We are using RevenueCat only for non-subscription in-app purchases (e.g. consumables). We currently handle reward distribution exclusively via webhook events on our backend.
However, we’ve encountered some cases where a purchase fails (e.g. credit card limit exceeded or other payment method failures), but the frontend has no way to detect this and may incorrectly treat the purchase as successful.
We’d like to ask:
-
For non-subscription products, is there any way on the client side (React Native SDK) to detect if a purchase has failed right after calling Purchases.purchasePackage()?
-
What specific webhook events does RevenueCat send to indicate:
-
a successful non-subscription purchase?
-
a failed non-subscription purchase (e.g. payment declined, card limit, etc)?
-
Based on your answers, we plan to distribute in-app rewards only after receiving the successful purchase webhook.
Additionally, we would like to clarify the behavior for “Billing Issues” or “Pending” states.
If a purchase enters a pending state (e.g. due to payment issues) and is later resolved successfully,
-
will the webhook for purchase success be sent again?
If that is the case, we expect that we can simply listen to only the “purchase success” state to determine when to issue rewards.
Thank you!
