Special Year-End Offer: AI Review Toolkit $29.99 $49.99 Get it now →

iOS Submission Guide

Rejection Guide Guideline 3.1

Guideline 3.1: How to Fix In-App Purchase Rejections

Ah, 3.1. The guideline that sparked an antitrust lawsuit, got Fortnite banned from the App Store, and makes indie developers question their career choices. If you're here, Apple probably caught you trying to sell something without giving them their cut. Let's fix it.

The Short Version

If you sell anything digital inside your app—subscriptions, premium features, coins, content unlocks—you must use Apple's IAP system. No linking to your website. No "subscribe on web" buttons. No clever workarounds. Apple's reviewers have seen every trick in the book.

Apple takes 15-30%. Yes, it hurts. No, you can't avoid it for digital goods.

Real Story: Epic Games vs. Apple

In August 2020, Epic added a direct payment option to Fortnite, bypassing Apple's 30% cut. Apple removed Fortnite from the App Store within hours. The resulting lawsuit lasted years. Fortnite is still banned on iOS (outside the EU). Unless you're willing to fight a billion-dollar legal battle, just use IAP.

What is Guideline 3.1, Really?

Apple's Words

"If you want to unlock features or functionality within your app, (by way of example: subscriptions, in-game currencies, game levels, access to premium content, or unlocking a full version), you must use in-app purchase. Apps may not use their own mechanisms to unlock content or functionality."

Plain English: Anything consumed digitally on the phone = Apple gets a cut. The rule seems simple but the edge cases will make you pull your hair out. Here's the key distinction:

Must Use IAP (Digital)

  • • Premium app features
  • • Subscriptions (content, services)
  • • Virtual currency / coins
  • • Game levels or items
  • • E-books, music, videos
  • • Ad removal
  • • Cloud storage upgrades

Cannot Use IAP (Physical)

  • • Physical products (e-commerce)
  • • Food delivery
  • • Ride-hailing services
  • • Event tickets (real events)
  • • Rentals (cars, equipment)
  • • Professional services
  • • Person-to-person payments

How Developers Get Caught

Apple's reviewers are trained to spot payment workarounds. Here's what trips people up:

1

The "Just Go to Our Website" Move

You added a link to your website where people can subscribe for less. Maybe just a small "Manage subscription" link that happens to show pricing. Apple catches this every single time.

What they'll flag: "Subscribe at myapp.com" • "Better pricing on web" • QR codes to payment pages • Even just mentioning that web purchases exist

The Hey Email case (2020): Basecamp's email app was rejected because it didn't offer IAP signup—users had to go to the website. After massive backlash, Apple created the "reader app" exception. But unless you qualify, don't try this.

2

Forgetting the "Restore Purchases" Button

This one catches so many developers. If you have any non-consumable purchases or subscriptions, you MUST have a restore button. Apple checks for this specifically.

Why it matters: Users switch phones. If they can't restore their $9.99 purchase on their new iPhone, they'll leave 1-star reviews and file refund requests. Apple hates both.

Put it somewhere visible—settings screen, paywall, or subscription management. Don't hide it in a buried menu.

3

The Sketchy Subscription Screen

Apple's cracked down hard on shady subscription UX. If your paywall hides the price, makes the trial length unclear, or buries the "cancel" info—rejected.

Must include: Exact price ($9.99/month) • Billing frequency (weekly/monthly/yearly) • Trial length if applicable • How to cancel (Settings > Subscriptions)

Apple doesn't just reject these—they remember. Repeated dark pattern attempts can get your developer account flagged for extended reviews.

4

Using IAP for the Wrong Things

The flip side: you CAN'T use IAP for physical goods or real-world services. Apple will reject you for that too.

Physical goods (Stripe/PayPal): T-shirts, food delivery, Uber rides, concert tickets, furniture

Digital goods (IAP only): Premium features, coins, subscriptions, e-books, ad removal

5

The Bitcoin/Crypto Tip Trap

Thinking crypto tips bypass IAP? Think again. Apple considers any in-app tipping a digital transaction.

Real case: Damus, a decentralized social app, was threatened with removal in 2023 for allowing Bitcoin tips. Apple demanded they use IAP for all tipping. The developer complied rather than lose their app.

When to Use In-App Purchase

Product Type Use IAP? Notes
Premium features Yes Non-consumable or subscription
Virtual currency Yes Consumable IAP
Content subscriptions Yes Auto-renewable subscription
SaaS/B2B apps Yes* Unless purchased before download or for enterprise
Physical products No Use Stripe, PayPal, etc.
Food delivery No Real-world service
Ride-hailing No Real-world service
1:1 tutoring/coaching No Real-world service (live sessions)
Tips/donations Yes Must use IAP, no external links

Reader Apps Exception

Certain "reader" apps (Netflix, Spotify, Kindle) can allow users to access content purchased elsewhere without offering IAP in-app. However, you cannot link to external purchase options. Users must already have an account.

Implementation Guide

1. Set Up Products in App Store Connect

  1. 1 Go to App Store Connect → Your App → Features → In-App Purchases
  2. 2 Click "+" and choose product type (Consumable, Non-Consumable, Auto-Renewable, Non-Renewing)
  3. 3 Set Reference Name, Product ID, Price, and localized Display Name/Description
  4. 4 Submit for review (products must be approved before they work in production)

2. Implement StoreKit 2 (Swift)

import StoreKit

// Fetch products
let products = try await Product.products(for: ["com.app.premium"])

// Purchase
let result = try await product.purchase()
switch result {
case .success(let verification):
    let transaction = try checkVerified(verification)
    // Grant access to content
    await transaction.finish()
case .userCancelled, .pending:
    break
}

// Restore purchases
for await result in Transaction.currentEntitlements {
    let transaction = try checkVerified(result)
    // Re-grant access
}

3. Required UI Elements

✓ Must Include

  • • Clear price display
  • • Subscription terms (if applicable)
  • • Restore Purchases button
  • • Links to Terms & Privacy Policy
  • • Cancellation instructions

✗ Never Include

  • • Links to external payment
  • • "Cheaper on website" messaging
  • • QR codes to external purchase
  • • Fake "discount" pricing
  • • Hidden recurring charges

Guideline 3.1 Compliance Checklist

Related Guides

Avoid 3.1 Rejections Before They Happen

Our AI Review Toolkit checks your app's payment implementation against Apple's guidelines before you submit.

Check Your IAP Setup

The Questions Everyone Asks

"Can I just tell users it's cheaper on my website?"

Absolutely not. You can't mention pricing differences. You can't link to your website's pricing page. You can't put a winking emoji next to "manage subscription." Apple's reviewers have seen every creative workaround and they're not amused.

"How much does Apple actually take?"

30% is the standard rate. But there's the App Store Small Business Program: if you made under $1M last year, you pay only 15%. Subscriptions also drop to 15% after a user stays subscribed for 12+ continuous months. Still painful, but less painful.

"I sell both physical products AND digital subscriptions. What do I do?"

You use both. Physical goods (t-shirts, food, event tickets) go through Stripe/PayPal. Digital content (premium features, ad-free, subscriptions) goes through IAP. Just keep them clearly separate—don't let users "buy credits" that work for both.

"My app was approved before, why is it getting rejected now?"

Apple's enforcement evolves. Something that slipped through in 2022 might get flagged in 2025. Also, different reviewers have different interpretations. And if you added or changed any payment flows since the last approval, those get scrutinized fresh.

"What about users who already subscribed on web?"

They're fine. Existing web subscribers can log in and access their content. You just can't direct NEW users to purchase outside the app. This is how Netflix and Spotify work—they don't offer in-app signup, but existing subscribers can use the app normally.

"Is there any way around this?"

Legally? The "reader app" exception (Netflix model) requires Apple approval and only works for content consumption apps. The EU's Digital Markets Act forces Apple to allow alternative payment in the EU starting 2024. Outside the EU? For most apps, IAP is the only way.

Want AI to audit your app before submission?

Get our AI Review Toolkit with prompts that catch guideline violations automatically.

Get the AI Toolkit