Guideline 3.1.2: Subscriptions
Your auto-renewing subscription is missing required disclosures, usually clear pricing, or Terms of Use and privacy policy links.
What Apple sent you
Guideline 3.1.2 - Business - Payments - Subscriptions We noticed that your app or its metadata did not fully meet the terms and conditions for auto-renewing subscriptions, as specified in Schedule 2 of the Apple Developer Program License Agreement. Specifically, the following required information is missing or unclear: - The price of the subscription and the length of the subscription period - A functional link to the Terms of Use (EULA) - A functional link to the privacy policy Next Steps To resolve this issue, please update your app and its metadata to include the missing information.
What it actually means
Apple has specific rules for auto-renewable subscriptions: the kind that charge again every week, month, or year until cancelled. The guideline itself requires that a subscription provide ongoing value to the customer, run for a period of at least seven days, and work on all of the user's devices where the app is available.
The part that catches first-time submitters is 3.1.2(c): before asking anyone to subscribe, you must clearly describe what they get for the price. Apple's own examples of the questions to answer: how many issues per month? How much cloud storage? What kind of access to your service? The guideline also points to disclosure requirements in "Schedule 2" of Apple's developer agreement, the legal contract behind paid apps, and it's what the rejection message cites when your paywall or metadata is missing required information. In practice, rejection messages list what's missing: usually the price and period stated plainly on the paywall, or working links to your Terms of Use (EULA) and privacy policy. A privacy policy link is independently required for every app, in both the App Store metadata and inside the app.
Why AI-built apps hit this
Paywall screens from AI tools and templates are designed to convert, not to comply. They ship with a big "Start free trial" button, a feature list, and nothing else: no price on the screen, no billing period, no Terms of Use link, no privacy policy link. The subscription itself often gets configured in a hurry too: a vague product name in App Store Connect, or a "premium" tier that doesn't obviously deliver anything ongoing.
The other trap is asking an AI tool to "add a subscription" to an app whose paid content is a one-time thing. If there's nothing ongoing (no updates, no service, no continually refreshed content) the subscription model itself is the problem, not the paywall wording.
How to fix it
Read your rejection message for the list. Apple's 3.1.2 rejections usually itemize exactly what's missing. Fix everything on the list, not just the first item; resubmitting with one gap fixed earns the same rejection again.
Put price and period on the paywall itself. The screen where users subscribe should state the price and how often it renews (for example "$4.99 per month, renews monthly") in plain text, not hidden behind a tap. If there's a free trial, state its length and what it converts to.
Say what subscribers get. One clear sentence beats a vague "unlock premium." Answer Apple's own questions: what access, how much, how often.
Add working Terms of Use and privacy policy links. Put both on the paywall screen and in your App Store Connect metadata (the description field works for the Terms of Use link; the privacy policy has its own field). Tap both links on a real phone to confirm they open.
Here's the part almost nobody tells you, because it isn't spelled out in Apple's documentation: a 3.1.2 rejection for auto-renewable subscriptions is commonly caused by the Terms of Use link missing from the App Store description itself, not just inside the app. Multiple developers have confirmed that appending one line to the end of the description cleared the rejection. If you don't have your own terms document, Apple's standard license agreement works:
Terms of Use: https://www.apple.com/legal/internet-services/itunes/dev/stdeula/A description edit doesn't need a new build: add the line, save, and it's part of your next submission.
Check the subscription setup itself. In App Store Connect, confirm the period is at least seven days and the product name matches what your paywall promises. If your "subscription" is really a one-time unlock, switch it to a one-time purchase instead of defending it.
What to write in Resolution Center
Adapt this to what you actually changed; don't send it unmodified:
Hello,
Thank you for the review. We've updated the app and metadata to include
the required subscription information:
- The paywall now states the full price and billing period:
[e.g. "$X.XX per month, renews monthly"]
- The paywall describes what subscribers receive: [one-line description]
- Functional links to our Terms of Use ([URL]) and privacy policy ([URL])
are now on the paywall screen and in the App Store metadata
The subscription provides ongoing value through [what renews: updated
content / continued service access / etc.].
Thank you,
[Your name]
How to avoid it next time
When you prompt an AI tool to build a paywall, include the compliance items in the prompt: visible price and renewal period, a plain description of what subscribers get, and Terms of Use and privacy policy links on the screen. Then apply the honest-stranger test: could someone who has never seen your app look at the paywall and say what they'd pay, how often, and for what? If not, neither can the reviewer.
Related guides: 3.1.1: In-app purchase (selling digital content outside Apple's payment system) and 5.1.1: Data collection & privacy (the privacy policy requirement on its own).