rc-payment-recovery
Installation
SKILL.md
Payment Recovery
Failed renewals on Google Play move a subscription through two states: grace period (user keeps access while Google retries the card) and account hold (access revoked until the user fixes the payment method). With RevenueCat, both states land in CustomerInfo automatically, and Google's in app message shows by default.
Phase 1: Understand
Three things happen when a renewal fails:
| State | Access | How RevenueCat surfaces it | User sees |
|---|---|---|---|
| Grace period | Retained | entitlement.isActive == true and billingIssueDetectedAt != null |
Google in app snackbar by default |
| Account hold | Revoked | entitlement.isActive == false and billingIssueDetectedAt != null |
Google in app snackbar by default |
| Recovered | Retained | billingIssueDetectedAt == null |
Nothing |
Two signals matter in the SDK:
EntitlementInfo.billingIssueDetectedAtis non null from the moment Google reports a billing problem until the user resolves it.EntitlementInfo.isActivetells you whether they still have access.