Guideline 3.1.2
Guideline 3.1.2(a) - Subscriptions: Scammy or Deceptive Subscription Flow
Our Take
Apple is rejecting your app because its subscription purchase flow is designed to trick, pressure, or confuse users into subscribing. This covers dark patterns such as: presenting the paywall before the user has seen any app content, making the close/dismiss button hard to find, using countdown timers to create false urgency, or making the free trial appear to be a free app. Apple has significantly increased enforcement against scammy subscription flows since 2022. The review team now specifically looks for manipulative UI patterns that exploit user confusion. This is not about technical compliance with pricing display rules (that is 3.1.2 pricing prominence) -- this is about the overall intent and design of the subscription flow. Apps with aggressive or deceptive subscription patterns risk not just rejection but removal from the App Store and developer account investigation. Apple treats this as a trust and safety issue.
Resolution Guide
Let users see the app first
Do not present the paywall until the user has experienced some app content or functionality. Let them understand what they are paying for.
Make the dismiss button obvious
The close/skip button must be clearly visible from the moment the paywall appears. Use standard iOS patterns (X button, top-left/right, normal size). Do not delay its appearance or make it blend into the background.
Remove urgency tactics
Delete countdown timers, 'limited time offer' language, and 'X users are subscribing right now' social proof that creates false pressure. Genuine seasonal promotions are fine if they are real.
Clearly distinguish free trial from free app
If you offer a free trial, make it unmistakable that a subscription charge will follow. Do not use 'Start Free' as a CTA without showing the post-trial price prominently.
Show the paywall at a natural point
Present the subscription offer when the user encounters a premium feature, not as a forced gate on launch.
Prevention
Example Rejection Email
Before & After
App launches directly into a full-screen paywall with a 3-second delay before the tiny 'X' button appears, pre-selects the $49.99/year plan, and shows a countdown timer reading 'Offer expires in 4:59'
App opens to the main content screen; paywall appears when user taps a premium feature, with a visible 'X' button from the start, no pre-selected plan, and clear pricing without urgency language
What changed: Users must be able to experience the app before seeing a paywall, easily dismiss subscription offers, and make unpressured purchasing decisions.
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