Reference library · App Review
Guideline 3.1.2 Subscriptions: the EULA link, the billed amount, and what a subscription must offer
Most 3.1.2 rejections are about two links and one price label. A few are about whether your app should be a subscription at all.
Guideline 3.1.23. Business · SubscriptionsApple text last updated June 8, 2026Checked against Apple's App Review Guidelines (last updated June 8, 2026) and Apple's auto-renewable subscriptions guidance, on Oct 3, 2026.
The short answer
Guideline 3.1.2 governs auto-renewable subscriptions. The usual rejection is missing information: the app and its App Store metadata must both link to your Terms of Use (EULA) and privacy policy, and the paywall must show the plan name, length and the amount actually billed as its most prominent price. Less often, Apple rejects a subscription that doesn't provide ongoing value.
- Shortest period allowed
- 7 days
- 3.1.2(a)
- Links required
- 2, in 2 places
- Terms of Use and privacy, in the app and the metadata
- Active plans per group
- 1
- People can only buy one subscription in a group at a time
- Your share
- 70% → 85%
- After a subscriber's first paid year
On this page
01The three parts of 3.1.2
Apps may offer auto-renewable in-app purchase subscriptions, regardless of category on the App Store.
Any category may sell subscriptions. The guideline then sets three conditions, and a rejection message names the one you failed:
| Part | Rule | How indie apps fail it |
|---|---|---|
| 3.1.2(a) Permissible uses | Ongoing value, at least seven days, available on all the user's devices | A one-off feature unlock sold as a weekly plan; features gated behind sharing or check-ins |
| 3.1.2(b) Upgrades and downgrades | A seamless switch between plans; no accidental double subscriptions | Monthly and annual plans in separate subscription groups |
| 3.1.2(c) Subscription information | Say clearly what the user gets for the price, per Schedule 2 of the license agreement | Missing Terms of Use or privacy links; the weekly equivalent shown bigger than the annual charge |
Payment method rules — using in-app purchase at all, and linking out to web checkout — sit in the neighbouring guideline, covered in our page on Guideline 3.1.1. This page is about the subscription itself.
According to ASOitis, most 3.1.2 rejections indie apps receive are about missing disclosure, not the business model: reviewers want Terms of Use and privacy policy links in both the app and the App Store metadata, and the metadata half can be fixed without a new build.
02The common one: "did not include all the required information"
The submission did not include all the required information for apps offering auto-renewable subscriptions.
What follows that sentence is a list, and it has two halves: what's missing "within the app" and what's missing from "App Store metadata". A version from August 2024 spells out the in-app half — the subscription's title, its length, its price "and price per unit if appropriate", and "functional links to the privacy policy and Terms of Use (EULA)" — then adds that the metadata needs the same two links.
| Item | Inside the app (new build) | In App Store Connect (no build) |
|---|---|---|
| Plan name and length | On the paywall, next to each option | — |
| Price billed | On the paywall, as the largest price | — |
| Terms of Use (EULA) | A tappable link on or near the paywall | Standard EULA: a link in the App Description. Custom EULA: App Information > License Agreement |
| Privacy policy | A tappable link on or near the paywall | The Privacy Policy URL field under App Privacy |
| Restore or sign in | A visible button for existing subscribers | — |
If you build the paywall with StoreKit's SubscriptionStoreView, the subscriptionStorePolicyDestination modifier adds the Terms of Use and privacy links to the store view itself. Paywall tools such as RevenueCat and Superwall have their own footer components — check they're switched on in the template you used.
03The price label: show what will actually be charged
In the purchase flow, the amount that will be billed must be the most prominent pricing element in the layout.
This is the paywall pattern that trips most subscription apps. Apple's example is an annual plan: you may show what it works out to per week or per month, or a percentage saving, but those "should be displayed in a subordinate position and size to the annual price".
Gets flagged
- "$0.96/week" in large type, with "$49.99 billed yearly" in small grey text
- A trial button that says "Try free" with no price after the trial
- "Save 80%" as the biggest element on the card
- The renewal price only on a second screen
Passes
- "$49.99 per year" as the headline price, with "$0.96/week" underneath in smaller text
- "3 days free, then $49.99 per year" on or right beside the button
- Savings badges smaller than the price they refer to
- Every option showing its own billed amount
For trials, Apple asks you to "clearly indicate how long the free trial lasts and the price billed once the free trial is over." Trials themselves are configured in App Store Connect as introductory offers — the guideline points there rather than letting you build your own.
04Does your app qualify for a subscription? (3.1.2(a))
If you offer an auto-renewable subscription, you must provide ongoing value to the customer, and the subscription period must last at least seven days and be available across all of the user’s devices.
Apple's examples of appropriate subscriptions are new game levels, episodic content, multiplayer support, apps with "consistent, substantive updates", large or continually updated media libraries, software as a service, and cloud support. The list is "not exhaustive", and in practice most productivity, health and AI apps qualify through ongoing service or sync. The rules that do get enforced are narrower:
- No chores to unlock what was paid for. Subscribers must get what they paid for "without performing additional tasks, such as posting on social media, uploading contacts, checking in to the app a certain number of times".
- Every device. If the app runs on iPhone and iPad, the subscription must work on both. Apple's guidance says to make subscriptions "available across all device types that your app supports."
- Don't take back what people bought. Moving a paid app to subscriptions, you "should not take away the primary functionality existing users have already paid for". Keep previous buyers unlocked.
- No bait-and-switch. Apps that trick users into subscribing "will be removed from the App Store", and the developer may be removed from the Developer Program.
If the honest answer is that your app does one fixed thing and won't change, a one-time purchase (a non-consumable) is the safer model. It's also the model some categories' users prefer: in our habit tracker snapshot, several of the top apps sell a lifetime unlock.
05Upgrades, downgrades and subscription groups (3.1.2(b))
3.1.2(b) asks that users "should not be able to inadvertently subscribe to multiple variations of the same thing." StoreKit enforces this for you if your plans share one subscription group. Apple's guidance: "Since people can only buy one subscription within a group at a time, creating a single group is the best practice for most apps."
| Change | What happens | Set it up by |
|---|---|---|
| Upgrade | Immediate, with a prorated refund of the old plan | Ranking the richer plan at a higher level |
| Downgrade | Takes effect at the next renewal date | Ranking the cheaper plan lower |
| Crossgrade, same duration | Immediate | Putting equal plans on the same level |
| Crossgrade, different duration | Takes effect at the next renewal date | Putting monthly and annual of the same tier on the same level |
06Fixing a 3.1.2 rejection and replying
Split the message into its two lists
Items under "within the app" need a new build. Items under "App Store metadata" are fixed in App Store Connect.
Fix the metadata first
Add the Terms of Use link to the description (or the custom EULA under App Information) and fill in the Privacy Policy URL. If that's all the message lists, reply and resubmit the same build.
Fix the paywall
Plan name, length, billed amount as the largest price, trial length and post-trial price, Restore, and both links on the same screen.
Test the purchase path the reviewer takes
Fresh install, sandbox account, from onboarding to purchase to restore. A product that fails to load is a separate rejection under Guideline 2.1.
Tell the reviewer where the paywall is
In the review notes, give the exact taps to reach it and say which links are on it.
Hello App Review team,
Thank you for the feedback on Guideline 3.1.2.
App Store metadata (updated, no new build needed for these):
- Added a Terms of Use (EULA) link to the end of the App Description:
[URL]
- Privacy Policy URL is set under App Privacy: [URL]
In the app (build [number]):
- The paywall now shows each plan's name, length and the billed
amount as the main price, e.g. "$49.99 per year".
- Terms of Use and Privacy Policy links sit under the purchase button.
To reach the paywall: launch the app > skip onboarding > tap [button].
Thank you,
[Name]Frequently asked questions
Where do I put the Terms of Use (EULA) link in App Store Connect?
If you use Apple's standard EULA, add a link to it in your App Description. If you use your own, add it under App Information > License Agreement. The link must also appear inside the app, on or near the paywall.
Can I resubmit the same build after a 3.1.2 rejection?
Only if everything listed is metadata — for example, a missing Terms of Use link in the description. If the message lists items missing "within the app", such as links or prices on the paywall, you need a new build.
Can I show the weekly price on an annual plan?
Yes, as a secondary element. Apple says the amount that will be billed must be the most prominent price, and any per-week breakdown or saving should be smaller and below the annual price.
What's the shortest subscription I can sell?
Seven days. Guideline 3.1.2(a) says the subscription period must last at least seven days, so weekly is the shortest auto-renewable plan.
Can I switch my paid app to a subscription?
Yes, but 3.1.2(a) says you should not take away primary functionality existing users already paid for. Keep earlier buyers unlocked — Apple's example is honoring a "full game unlock" bought before the change.
Where to go next
- Guideline 3.1.1: In-App PurchaseThe payment method rules — unlock codes, web checkout links and restore.
- RevenueCat vs SuperwallWhich paywall stack makes the required disclosures easiest to get right.
- RevenueCat reviewWhat the subscription backend handles, and what it costs at indie revenue.
- The Paywall Setup — $99A paywall built to pass 3.1.2, sandbox-tested end to end.
Sources
- App Store Review Guidelines — 3.1.2 Subscriptions — Apple Developer
- Auto-renewable subscriptions — Apple Developer
- Apple standard EULA — Apple
- Forum: 3.1.2 rejection, links within the app and in metadata (Jan 2026) — Apple Developer Forums
- Forum: 3.1.2(c) required information in the binary (Aug 2024) — Apple Developer Forums
- Forum: missing a functional link to the Terms of Use (EULA) — Apple Developer Forums
Published Oct 3, 2026 · last checked Oct 3, 2026. Found something out of date? Tell us and we'll fix it within a day. Machine-readable version: /app-review/guideline-3-1-2-subscriptions.md
Have it done for you
The Paywall Setup
$99 one-time · Delivered in 5 business days
We install RevenueCat, build your paywall with the billed price, trial terms, restore and both policy links in place, and test the path App Review takes.
- RevenueCat SDK installed and configured; products, entitlements and offering set up
- One paywall built from RevenueCat's template with your copy, prices and trial
- Customer Center enabled — cancellations, refunds and restores handled without you