Monetization

Subscription Purchase Deferral (Billing Retry)

Also known asBilling RetryDeferred BillingSubscription RecoveryGrace Period

The mechanism by which Apple or Google automatically retry a failed subscription renewal payment (expired card, insufficient funds) before treating the subscription as cancelled.

Key takeaways

  1. 01When a subscription renewal payment fails, Apple / Google don't immediately cancel — they enter a billing-retry / grace-period window.
  2. 02Apple's default grace period is up to 16 days (configurable in App Store Connect); Google Play's is up to 30 days.
  3. 03During grace period, the user retains entitlement and your app should treat them as active.
  4. 04Recovers an estimated 30-50% of involuntary churn (failed billing not user intent) when combined with in-app payment-update prompts.

When a subscription renewal payment fails — most commonly because the user's card expired, the bank declined the transaction, or the account had insufficient funds — Apple and Google don't immediately cancel the subscription. Instead, both platforms enter a billing retry / grace period window during which the platform automatically re-attempts the charge at increasing intervals.

Apple's default behaviour: when a renewal fails, the user enters a billing retry state. Apple retries the charge across a 60-day window with decreasing frequency. If the developer has enabled the optional billing grace period in App Store Connect (typically 6 or 16 days), the user retains full subscription entitlement during that window — the app should treat them as active. After the grace period or 60-day retry window expires without a successful charge, the subscription is treated as cancelled.

Google Play's behaviour is similar — automatic retries with a grace period up to 30 days. Configured per-subscription in the Play Console. During the grace period the user keeps entitlement; after it expires the subscription enters "account hold" (read-only access for an additional period) before final cancellation.

What your app needs to do: (1) treat users in billing retry / grace period as actively subscribed (don't lock them out — that triggers voluntary cancellation), (2) surface a non-blocking prompt to update their payment method (in-app banner, push notification, email) — this is the single highest-ROI dunning intervention, (3) handle the eventual subscription-expired state cleanly with a winback flow.

Most subscription platforms (RevenueCat, Adapty, Stripe Billing for cross-platform apps) abstract this state management — they expose a single "is the user entitled?" boolean that incorporates billing-retry status correctly. Building this state machine in-house is doable but error-prone; the standard recommendation is to use a platform.

Quick answers

What happens when a subscription renewal payment fails on iOS?

Apple enters a billing-retry state and re-attempts the charge over a 60-day window. If you've enabled the optional billing grace period in App Store Connect (6 or 16 days), the user retains full entitlement during that window — your app should treat them as actively subscribed. After grace expires (or after 60 days if grace is off), the subscription is treated as cancelled.

What is a subscription billing grace period?

A configurable window after a failed renewal payment during which Apple or Google continue to grant the user subscription entitlement while they retry the charge. Apple offers 0, 6, or 16 days; Google up to 30 days. During the grace period your app should treat the user as active and surface a non-blocking prompt to update payment method.

How much involuntary churn can billing retry recover?

Across consumer subscription apps, automatic billing retry combined with in-app payment-update prompts recovers roughly 30-50% of involuntary cancellations (failed-payment, not user-intent). The biggest single lever is surfacing a clear, non-blocking prompt to update payment method — most failed payments are expired cards, which the user can fix in 30 seconds if they're prompted at the right moment.

Do I need to build subscription billing retry myself?

No — Apple and Google handle the retry mechanics natively. Your app's job is (a) treat users in grace period as actively subscribed, (b) surface a non-blocking prompt to update payment method, (c) handle the final expired-subscription state with a winback flow. Subscription platforms like RevenueCat or Adapty wrap this state machine so you get a single "is the user entitled?" boolean that incorporates retry state correctly.

Back to glossary