Hi RevenueCat Team,
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 immediately 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 so, we assume that we can rely solely on the “purchase success” webhook to determine when to issue rewards.
One more thing:
We’d like to test credit card limit / failure scenarios in our internal environment (e.g. TestFlight or Internal Test).
Are there any recommended methods to simulate such edge cases (e.g. exceeded card limit, declined payments) so we can verify the behavior?
For reference, we are currently using react-native-purchases version 9.1.0.
Thank you in advance!
