Subscription group and level App Review checklist
Subscription disclosure is only one layer. Reviewers also need products, groups, levels, upgrades, downgrades, offers, restore, and entitlement states to behave coherently.
Model the subscription group before creating products. Put mutually exclusive choices in one group, use levels to represent upgrade and downgrade paths, and test active, expired, upgraded, downgraded, trial, grace, and refunded states. AppReviewReady interpretation: many subscription review failures are actually entitlement-state failures hidden behind correct disclosure text.
Design the group before adding products
A subscription group represents alternatives a user can hold within one service relationship. If Basic, Pro, and Team are mutually exclusive access levels for the same app, they normally belong together. If two subscriptions unlock unrelated services, placing them in one group can make upgrades and downgrades confusing.
Write the entitlement model in product language before touching App Store Connect: what each plan unlocks, whether users can hold more than one plan, what happens when they upgrade, and what content remains after cancellation.
Use levels to express upgrade and downgrade intent
- Higher levels should unlock more valuable access or a larger package of the same service.
- Plans at the same level should represent alternatives such as monthly and annual duration, not different entitlements.
- A downgrade path should not leave the app showing features that the new level no longer includes.
- Product names, screenshots, paywall copy, and restore behavior should match the level model.
Test introductory and promotional offers as state changes
Offers are not only pricing copy. They change eligibility, checkout display, receipt interpretation, and user expectations. Test new accounts, previously subscribed accounts, expired users, and users who already consumed an introductory offer.
AppReviewReady interpretation: reviewers should see a deterministic offer state. If the offer depends on server eligibility, provide a test account configured for the visible path and another account that shows the normal price when useful.
Build an entitlement-state matrix
- Create sandbox accounts for no subscription, active subscription, expired subscription, refunded subscription, trial, upgraded, and downgraded states where possible.
- Verify the app unlocks and locks each feature according to the current receipt or server entitlement.
- Test restore purchases from a clean install and after account sign-out.
- Confirm subscription management and cancellation routes are discoverable from the app.
- Compare paywall disclosure, privacy links, terms, price, duration, and product display name against App Store Connect.
Give App Review a deterministic subscription path
Do not force the reviewer to discover a paywall through random usage. If the subscription path depends on a trial period, sample content, or server flag, call that out so the review can verify the purchase quickly.
Subscription review path: Group: [name] Products under review: [ids and display names] Test account state: [new, active, expired] How to reach paywall: [steps] Restore path: [steps] Expected entitlement after purchase: [feature list] Offer eligibility: [who sees offer]
Freeze product edits before final review
Changing group membership, levels, product identifiers, display names, or server entitlement mappings after QA invalidates the test matrix. Treat App Store Connect product changes as code-adjacent changes that require another purchase pass.
Primary references checked for this guide
Policy statements above are grounded in the linked Apple documentation. Operational recommendations are AppReviewReady's interpretation and should be tested against your app and the current guideline text.
Check subscription readiness
Review subscription groups, products, offers, restore, and disclosure before submission.
Open the tool