payment-recovery

Installation
SKILL.md

Payment Recovery: Grace Period and Account Hold

Google Play does not cancel a subscription the moment a renewal charge fails. It runs a two stage recovery process: grace period (user keeps access while Google retries) then account hold (access revoked while Google keeps retrying). Your job is to react to the right RTDNs, toggle entitlements at the right moments, and prompt the user to fix payment without forcing them to leave your app.

Phase 1: Understand

Map the stages, the RTDN for each transition, and the entitlement you should hold.

Stage Entry RTDN Duration User access SubscriptionPurchaseV2 state
Silent grace period none (always applies) ~1 day Active SUBSCRIPTION_STATE_ACTIVE
Configured grace period SUBSCRIPTION_IN_GRACE_PERIOD 0 to 30 days (per base plan) Keep full access SUBSCRIPTION_STATE_IN_GRACE_PERIOD
Account hold SUBSCRIPTION_ON_HOLD 0 to 30 days Revoke SUBSCRIPTION_STATE_ON_HOLD
Recovered SUBSCRIPTION_RECOVERED n/a Restore immediately SUBSCRIPTION_STATE_ACTIVE
Terminal failure SUBSCRIPTION_CANCELED or SUBSCRIPTION_EXPIRED n/a Gone canceled/expired

Key facts to internalize before writing any code:

Installs
1
GitHub Stars
42
First Seen
Jun 26, 2026
payment-recovery — revenuecat/play-billing-skills