Fix an App Store subscription disclosure rejection
A technically valid StoreKit purchase can still fail review when the customer cannot understand what renews, what unlocks, and what the displayed price buys before subscribing.
Before asking a user to subscribe, clearly state what access or ongoing value the price provides. Make the product name, duration, displayed localized price, renewal context, and key limitations understandable on the purchase screen. Ensure the submitted subscription product is review-ready and the reviewer can load, purchase, restore, and use the entitlement.
Make one purchase promise consistent across every surface
Guideline 3.1.2(c) asks developers to clearly describe what a customer gets for the price before asking them to subscribe. The paywall headline, benefit list, product name, billing period, trial language, purchase button, and post-purchase entitlement should describe the same offer.
Create a table with every marketing claim in one column and the entitlement that proves it in another. Remove vague superlatives, qualify limits, and state whether features, credits, storage, content, or devices have boundaries that affect the decision.
Audit what is visible before the purchase sheet
- Use the localized StoreKit price instead of hard-coding a currency string.
- Place the subscription duration next to the price and avoid a button label that hides the renewal nature of the offer.
- Explain trial length and what happens after the trial without making the paid renewal visually obscure.
- Link to Terms of Use and Privacy Policy from a readable, tappable location.
- Provide a Restore Purchases path and make the account-to-entitlement relationship understandable.
Verify the product record and binary agree
- Compare the StoreKit product identifier in the release build with the exact App Store Connect record.
- Confirm localization, pricing, tax category, availability, review screenshot, and required metadata are complete.
- Test product loading on a clean device and capture the actual storefront price returned by StoreKit.
- Complete a sandbox purchase, relaunch, restore, expire or revoke the transaction, and verify entitlement transitions.
- Make sure the reviewer account is not already stuck in an internal premium state that hides the paywall.
Demonstrate ongoing value, not merely recurring billing
Apple permits auto-renewable subscriptions when they provide ongoing value. Describe the service cadence in product terms a customer can evaluate: continuously updated content, cloud processing, cross-device access, maintained data, or substantive feature updates. A one-time unlock relabeled as a monthly plan creates a value mismatch.
If the business model changed from a paid app or permanent unlock, verify that existing customers do not unexpectedly lose primary functionality they already purchased. Document grandfathering and restoration behavior for the reviewer.
Reply with a paywall-to-entitlement proof
Use the storefront price visible during the test rather than promising a universal amount in Review Notes. If only metadata changed, name it; if behavior changed, submit and identify the corrected build.
Subscription product: [reference name and product ID]. Paywall path: [numbered taps]. Offer displayed: [localized price] per [period], providing [specific access/value]. Trial/renewal explanation: [where shown]. Restore path: [location]. Reviewer verification: purchase in sandbox, then open [feature] to observe [entitlement]. Changes in this submission: [copy, layout, metadata, product, or binary fix].
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 review risk
Run the free quick check or generate a reusable evidence-based readiness report.
Open the tool