Guideline 3.1.2
Guideline 3.1.2 - Subscriptions: Missing Auto-Renewal Disclosure Language
Our Take
Apple is rejecting your app because the subscription purchase flow does not include the required auto-renewal disclosure language. Specifically, Apple requires apps to clearly state that the subscription will automatically renew, how to manage or cancel the subscription, and what happens if the user does not cancel before the renewal date. This is a compliance checklist rejection -- Apple has a set of required informational elements that must appear in the purchase flow, and missing auto-renewal language is one of the most commonly omitted. However, it should be noted that Apple has eased some of these policy requirements during the last few years, provided your purchase flow includes language describing the same effect as these terms. For example, if your app says "7 days free, then $39.99/year" and includes a cancellation flow in your app settings, then this is often accepted as meeting the requirements of this rejection. Many developers assume the StoreKit confirmation sheet covers this, but Apple also expects the information on your own paywall UI.
Resolution Guide
**Add specific pricing terms** -- Include language on your paywall UI that describes the terms of your subscription: 'X days free, then $39.99/year.'
**OR: Add the required disclosure text** -- Include the following information on your paywall, typically as smaller text below the subscription options:
- 'Payment will be charged to your Apple ID account at confirmation of purchase.'
- 'You can manage and cancel subscriptions in your Account Settings.'
- The renewal price and period.
**Use Apple's template language** -- Apple provides recommended language in the App Store Review Guidelines and the auto-renewable subscription documentation. Using their exact phrasing reduces rejection risk.
**Make it visible but not dominant** -- The disclosure text should be readable and not hidden (no need to scroll past the fold), but it does not need to be the most prominent element. Small gray text below the purchase options is typical.
**Consider SubscriptionStoreView** -- Apple's `SubscriptionStoreView` automatically includes all required disclosure language. If you can use it, it eliminates this category of rejection entirely.
**Localize the disclosure** -- If your app supports multiple languages, translate the auto-renewal disclosure into each supported language.
Prevention
Example Rejection Email
Before & After
Subscription screen shows 'Monthly Plan $9.99' and 'Yearly Plan $79.99' with Subscribe buttons but no auto-renewal language, no cancellation instructions, and no payment charge disclosure
Below the subscription options, small text reads: 'Subscription automatically renews. Cancel at least 24 hours before the end of the current period.'
What changed: Every custom subscription paywall must include auto-renewal disclosure, cancellation instructions, and payment charge language.
Community Solutions · 0
Sign in to share your solution.
More Guideline 3 (Business) rejections
- Guideline 3.0 - Business: Irrationally High Pricing
- Guideline 3.1.1 - In-App Purchase: Expiring Virtual Currency
- Guideline 3.1.1 - In-App Purchase: External Link for Digital Content in Reader App Without Entitlement
- Guideline 3.1.1 - In-App Purchase: License Key or Serial Number Unlocks
- Guideline 3.1.1 - In-App Purchase: Loot Boxes Without Disclosed Odds
- Guideline 3.1.1 - In-App Purchase: Missing Restore Purchases Button