A complete guide on Apple’s Billing Grace Period

March 2, 2023 
by 
Disha Sharma
March 2, 2023 
6 min read
Handling App Store Billing Grace Period  A Comprehensive Guide

When an iOS subscription renewal payment fails, subscribers lose access to their premium features—even though they never intended to cancel. This involuntary churn accounts for up to 20% of all subscription payment attempts and can silently drain your app’s revenue.

Apple’s Billing Grace Period is your first line of defense against this revenue leak. By enabling it, you give subscribers continued access while Apple attempts to recover failed payments—and the data shows it works: apps with grace period enabled recover 15-20% more subscriptions than those without.

What is Apple’s Billing Grace Period?

Billing Grace Period is an App Store feature that maintains subscriber access to your app’s premium content when their renewal payment fails. Instead of immediately losing access, subscribers continue enjoying full service while Apple attempts to collect payment in the background.

Without Grace Period enabled:

When a subscription renewal fails, the subscriber immediately enters the billing retry state and loses access. They may not even realize there’s a problem until they open your app and find their premium features gone.

With Grace Period enabled:

When a renewal fails, the subscriber enters the grace period first. They retain full access to your app for the duration you’ve configured (3, 16, or 28 days) while Apple works to recover the payment. If successful within this window, there’s zero interruption to service—and zero lost revenue for you.

Image

Grace period and billing retry: Complete timeline

PhaseDurationUser accessWhat’s happening
Active subscriptionVaries✅ FullNormal subscription state
Grace period3, 16, or 28 days✅ FullPayment failed; Apple retrying; user retains access
Billing retryUp to 60 days❌ NoneGrace period ended; Apple still retrying; access revoked
Expired❌ NoneAll retry attempts failed; subscription ended

Why you should enable Grace Period

  1. Preserve revenue: If payment recovers within the grace period, you don’t lose any days of paid service.
  2. Protect user experience: Users who lose access unexpectedly are more likely to churn permanently.
  3. Accumulate paid service days: Grace period days count toward the 85% revenue share tier.
  4. Handle regional disruptions: Grace period gives time for users to update payment methods during policy changes.

Involuntary churn: Numbers you need to know

MetricValue
Subscription payments entering billing issue state~20%
Annual revenue lost to involuntary churn~10%
Recovery rate with grace period + proactive communication15-20%
Best-in-class recovery rate (full dunning strategy)70%+
Subscription-based payment decline rates18-20%
Most common failure reason: Insufficient Funds~40%

Common payment failure reasons

Failure reasonPercentageTypeRecovery likelihood
Insufficient funds~40%Soft DeclineHigh (retry in 2-7 days)
Expired card10-12%Hard DeclineMedium (requires user action)
Do not honor~7.5%Soft DeclineHigh (retry with different timing)
Fraud15-20%Hard DeclineMedium (user verification needed)
Credit limit exceeded6-8%Soft DeclineHigh (wait for payment cycle)
Invalid card number~5%Hard DeclineLow (card data error)

How to enable Apple’s Billing Grace Period?

Enabling grace period takes just a few minutes in App Store Connect:

Step 1: Sign in to App Store Connect and select your app.

Step 2: In the sidebar, click Subscriptions under the Features section.

Step 3: Locate the Billing Grace Period section and click Set Up Billing Grace Period.

Step 4: Choose your grace period duration (3, 16, or 28 days).

Step 5: Select which renewals qualify (All Renewals or Only Paid to Paid).

Step 6: Choose deployment environment (start with Sandbox Only for testing).

Step 7: Click Turn On to activate.

Image 1

    Grace Period duration by subscription type

    Subscription DurationMaximum Grace PeriodRecommended
    Weekly6 days (auto-capped)6 days
    Monthly28 days16 days
    2-Month28 days16 days
    3-Month28 days28 days
    6-Month28 days28 days
    Annual28 days28 days
    Image 2

    Implementing Grace Period with StoreKit 2

    StoreKit 2 provides clean, modern APIs for detecting and handling grace period states. Here’s how to implement proper subscription status checking:

    StoreKit 2 renewal states reference

    RenewalStateValueAccess levelYour action
    .subscribed1✅ FullNormal service
    .expired2❌ NoneShow resubscribe options
    .inBillingRetryPeriod3❌ NonePrompt payment update
    .inGracePeriod4✅ FullMaintain access, optionally notify
    .revoked5❌ NoneHandle refund case

    Swift code example: Checking subscription status

    func checkSubscriptionStatus() async {    guard let statuses = try? await Product.SubscriptionInfo.status(        for: "your_subscription_group_id"    ) else { return }        for status in statuses {        switch status.state {        case .subscribed:            grantFullAccess()        case .inGracePeriod:            grantFullAccess()  // Maintain access!            showPaymentUpdatePrompt()        case .inBillingRetryPeriod:            revokeAccess()            showPaymentFailedScreen()        case .expired, .revoked:            revokeAccess()        default: break        }    }}

    Server-side: App Store server notifications V2

    For robust subscription management, implement server-side handling of Apple’s notifications. Version 2 notifications provide granular events for every stage of the grace period lifecycle.

    Key notification types for Grace Period

    Notification typeSubtypeMeaningYour action
    DID_FAIL_TO_RENEWGRACE_PERIODUser entered grace periodLog event, send notification
    DID_FAIL_TO_RENEW(none)Payment failed, no grace periodRestrict access
    GRACE_PERIOD_EXPIRED(none)Grace period endedRestrict access, send email
    DID_RENEWBILLING_RECOVERYPayment recovered!Restore access
    EXPIREDBILLING_RETRY60-day retry endedTrigger win-back campaign

    Best practices for user communication

    Proactive communication dramatically improves recovery rates.

    Timing:

    • Send first notification immediately upon grace period entry
    • Send reminder at 50% of grace period elapsed
    • Send urgent reminder 24-48 hours before expiration

    Messaging tips:

    • Be helpful, not alarming—the user didn’t do anything wrong
    • Clearly explain the issue and how to fix it
    • Include a direct link to payment settings
    • Mention the deadline without being threatening

    Sample push notification sequence

    TimingMessage
    Day 1Quick heads up: There’s an issue with your subscription payment. Tap here to update your payment method and keep your premium features.
    Day 8 (50%)Reminder: Your subscription payment still needs attention. Update your payment method to avoid any interruption to your service.
    Day 14 (2 days left)Last chance: Update your payment method in the next 48 hours to keep your premium access.

    Testing Grace Period in development

    Always test your grace period implementation before deploying to production.

    Testing with Xcode StoreKit configuration

    1. Create or open your StoreKit Configuration file in Xcode
    2. Enable Billing Grace Period: Editor → Enable Billing Grace Period
    3. Enable Billing Retry: Editor → Enable Billing Retry
    4. Set subscription renewal rate for faster testing
    5. Make a test purchase in your app
    6. Open StoreKit Transaction Manager: Debug → StoreKit → Manage Transactions
    7. Observe lifecycle: Purchased → Grace Period → Billing Retry → Expired
    8. Test recovery: Click card icon to simulate resolving payment

    Conclusion

    Apple’s Billing Grace Period is a straightforward feature with significant revenue impact. By enabling it, you protect both your subscribers’ experience and your bottom line from the silent drain of involuntary churn.

    To maximize your recovery rates:

    • Enable grace period with an appropriate duration (16 or 28 days for most apps)
    • Implement proper StoreKit 2 status checking to maintain access during grace period
    • Set up App Store Server Notifications V2 for real-time event handling
    • Communicate proactively with grace period users through push notifications
    • Test thoroughly in sandbox before production deployment

    The data is clear: most payment failures are recoverable. Billing Grace Period gives your subscribers the time they need to fix the issue—and keeps your revenue growing.

    FAQ

    No. The standard 70%/85% revenue share applies regardless of grace period settings. If Apple recovers the subscription during the grace period, you receive full payment with no loss of paid service days.

    No. Grace periods are configured at the app level, not per product. All auto-renewable subscriptions in your app share the same grace period duration. However, Apple automatically caps weekly subscriptions at 6 days maximum.

    Choose All Renewals to maximize conversion from free trials to paid—users transitioning from free offers get grace period protection. Choose Only Paid to Paid if you want strict trial-to-paid conversion metrics. Most apps benefit from All Renewals.

    Yes. Users retain full control over their subscription. If they disable auto-renewal during grace period, their access continues until the grace period ends (not the original renewal date), then the subscription expires.

    Yes. If the subscription is recovered within the grace period, those days count toward the one year of accumulated paid service needed for the 85% revenue share.

    Track grace period entry frequency per user. For repeat offenders: suggest adding Apple ID balance as a backup payment method, recommend switching to an annual plan (reduces payment frequency and failure risk), or consider proactive outreach before their renewal date.

    Immediately. The sooner users know about the issue, the more time they have to resolve it. However, keep the tone helpful rather than alarming—most billing issues are temporary and easily fixed.
    Disha Sharma
    Tech-savvy expert who specializes in writing prolific articles about the latest trends and innovations of the mobile world
    Money
    Tutorial

    On this page

    Ready to create your first paywall with Adapty?
    Build money-making paywalls without coding
    Get started for free