All rejection guidesGuideline 3.1.1
3.1.1
Guideline 3.1.1 rejection: unlocking features without in-app purchase
The app unlocks digital features or content in some way other than Apple’s in-app purchase, or there is no way to restore purchases.
“If you want to unlock features or functionality within your app … you must use in-app purchase.”
Why apps get rejected for it
- ×A web checkout (Stripe, PayPal) or license key that unlocks features inside the app.
- ×Buttons or links that send people to buy outside the app where that isn’t allowed in their storefront.
- ×No “Restore Purchases” option for subscriptions or non-consumables.
- ×Promo codes or QR codes of your own that unlock premium content.
How to fix it
- 01Sell every digital feature, subscription and content unlock through StoreKit.
- 02Add a visible Restore Purchases button, usually on the paywall and in settings.
- 03Physical goods and real-world services can use other payment methods. Digital ones can’t, except where Apple’s rules for a storefront say otherwise.
- 04Use App Store offer codes instead of your own unlock codes.
What to tell App Review
“All premium features are now sold through in-app purchase, and Restore Purchases is on the paywall and in Settings.” Submit the new build.
Want a second pair of eyes before you resubmit?
The App Launch Audit checks your app against 3.1.1 and every other common rejection reason, and gives you a READY / NOT READY report with the exact fixes within 48 hours.
Not affiliated with Apple. The guidelines change; the full text on Apple's site is what counts. Last checked 5 October 2026.