AppReviewX Log in

Test in-app purchases with the iOS sandbox

Sandbox accounts, renewal speeds and what to verify for subscriptions. Verify current behavior in docs.

In this guide

Real money must not move while you test a subscription. The sandbox solves that: it is a test environment where purchases behave like real ones, but nobody is charged. This guide covers the setup, the accelerated clock and a test plan for subscriptions. Apple changes details over time, so treat the linked pages as the reference and check them before relying on a number.

Sandbox accounts

According to Apple, you create Sandbox accounts in App Store Connect (Users and Access > Sandbox) and sign in with them on devices running a development-signed build of your app. Developer Mode must be enabled on each device. Points from Apple's page, as retrieved on 2026-10-23:

  • The email address must not already be registered as an Apple Account. Apple suggests a dedicated address per tester.
  • Sandbox accounts are valid only for testing; they cannot sign in to or buy on the real App Store.
  • Each account belongs to a storefront, and you can change its country or region later to test other storefronts.
  • On the device, use the Sandbox sign-in option in Settings, not your main Apple Account settings. For in-app purchases you do not need to sign out of your personal account.

The accelerated clock

Sandbox subscriptions renew faster than real ones. Per Apple's page (retrieved 2026-10-23), the default is 1 month = 5 minutes, and the speed depends on the subscription length:

Subscription length Default sandbox renewal
1 week 3 minutes
1 month 5 minutes
2 months 10 minutes
3 months 15 minutes
6 months 30 minutes
1 year 1 hour

You can change a tester's renewal rate in the sandbox account settings (options: every 3 minutes, 5 minutes, 30 minutes or hourly). The rate also sets the length of billing retry and billing grace period for that tester. Apple states that subscriptions renew up to 12 times before auto-renewal stops on the thirteenth attempt, so plan long tests with that cap in mind.

What to verify for subscriptions

  1. Purchase. Buy each product. Check price display, localized text and the unlock after success.
  2. Entitlement state. After purchase, restart the app and reinstall it. Is access still correct?
  3. Renewal. Wait for a renewal and confirm the app and your server record the new period.
  4. Cancellation. Cancel and confirm access continues until the period ends, then stops.
  5. Expiration. Let the subscription lapse. The app must lock paid content and show a way back.
  6. Billing retry and grace. If you use these states, test them at the accelerated speed.
  7. Restore. Test restoring purchases on a clean install with the same account.
  8. Upgrade, downgrade, crossgrade. Switch between plans in the same group and check the resulting state.
  9. Offers. Free trials and introductory offers: test eligibility and what happens when the trial ends.
  10. Interrupted purchase. Cancel the sheet or lose the network mid-purchase. The app must not unlock or break.
  11. Server-side checks. If your backend validates receipts or notifications, confirm that it receives and handles sandbox events separately from production ones.

The paywall screen itself needs separate checks: see how to test your paywall.

Limits

Sandbox behavior is close to production but not identical. Run a final check on a build distributed the way users get it, and read Apple's current documentation before you ship.

Next step

A second person buying through your flow finds confusion you no longer see. On AppReviewX other developers give you private, structured feedback; one feedback you write earns one credit. New accounts start with 0 credits.

Start free

Hub: iOS app testing guide. Related: demo account for app review, iOS app review readiness checklist.