# Guideline 3.1.2(a) - Subscriptions: Scammy or Deceptive Subscription Flow

**Guideline:** 3.1.2 · **Store:** Apple App Store · **Severity:** high · **Fix difficulty:** medium · **Typical turnaround:** 2-8 hours

Canonical URL: https://appstorereject.com/rejections/apple/3/guideline-312a-subscriptions-scammy-or-deceptive-subscription-flow

## Description

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.

## Common variations

- Subscription paywall blocks app access before user sees any content
- Close or dismiss button is hidden, delayed, or hard to find
- Subscription flow uses deceptive urgency tactics
- Free trial presentation makes the app appear to be free
- Most expensive subscription tier is pre-selected

## Example rejection email

```
Guideline 3.1.2(a) - Business - Payments - Subscriptions

We found that your app's subscription purchase flow may confuse or mislead users. Specifically:

- The app presents a subscription paywall immediately upon launch before users can access any app content or functionality.
- The dismiss/close button for the subscription screen is not clearly visible or accessible.
- The subscription flow uses urgency language ('Limited time offer - Subscribe now!') that may pressure users into purchasing.

Next Steps:
Please revise the subscription purchase flow to ensure it is clear, transparent, and does not mislead or pressure users. Users should be able to understand and dismiss subscription offers easily.
```

## Resolution steps

## Quick Assessment
- **Risk level:** High (repeat violations risk account action)
- **Resolution path:** Fix & Resubmit
- **Typical turnaround:** 2-8 hours

## The Fix

1. **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.

2. **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.

3. **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.

4. **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.

5. **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
- Follow Apple's Human Interface Guidelines for subscription offers
- Use Apple's SubscriptionStoreView for an automatically compliant presentation
- Have someone unfamiliar with your app test the flow and report if anything feels pressured or confusing
- Document your paywall trigger logic in Review Notes

## Before / after examples

**Before:** 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'
**After:** 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
**Why it works:** Users must be able to experience the app before seeing a paywall, easily dismiss subscription offers, and make unpressured purchasing decisions.

## Common questions

**How long does this typically take to fix?**

Typical turnaround is 2-8 hours (difficulty: medium). After resubmission, most re-reviews complete within 24-48 hours.

---
*Machine-readable source: https://api.appstorereject.com/api/rejections/detail?slug=guideline-312a-subscriptions-scammy-or-deceptive-subscription-flow*