Guideline 3.1.1
Guideline 3.1.1 - In-App Purchase: Using External Payment for Digital Content
Our Take
Apple is rejecting your app because it uses an external payment processor (Stripe, PayPal, Braintree, or a custom payment form) to sell digital content, features, or services that should be sold through Apple's In-App Purchase system. This is a tricky one, given the changes Apple has had to make in response to legal rulings in 2025. While Apple enforces this aggressively, guideline 3.1.1(a) allows developers to link to external payment providers for US storefronts. Specifically, the guideline states, "These entitlements are not required for developers to include buttons, external links, or other calls to action in their United States storefront apps. Please see additional details below". For users outside the US storefront, all digital goods and services consumed within the app must use IAP. This includes premium features, content unlocks, subscriptions to digital services, virtual currencies, and any functionality gating. The 30% commission (15% for Small Business Program members) is the cost of App Store distribution. This rejection is almost always automated or caught in the first pass of review. Apple's tooling detects Stripe SDK imports, PayPal WebViews, and similar payment infrastructure. Even if the payment UI is hidden behind a server-side flag, the SDK presence can trigger scrutiny. If you are using Stripe or another provider for users in the US, the best course of action is to explicitly state in your reviewer notes how you're using third-party payment providers, how you're segmenting US users, and that they can see Apple IAPs if they change their test device settings to see the experience for users outside the US. Sometimes however, the fastest path to approval is might be migrating digital purchases to StoreKit while keeping external payments only for physical goods and services delivered outside the app.
Resolution Guide
Check your user filters
Set up user segmentation so Stripe and other third-party payment providers are only shown to users with their App Store storefront set to the US.
Test segmentation thoroughly
Ensure that your filtering works regardless of internet connectivity or device state.
Update reviewer notes
Add something like the following to your reviewer notes: "We have added user segmentation so only user with a US App Store storefront will be able to purchase a subscription using [Stripe/PayPal/Braintree]. Please set your App Store storefront to US to test this purchase flow, then change to another country and test again so you can see that non-US users will continue to use Apple IAPs, as per guideline 3.1.1(a)."
The Fix (if you aren't planning to segment users)
Audit all payment flows
Identify every place your app accepts payment. Categorize each as digital (must use IAP) or physical/real-world service (can use external payment).
Implement StoreKit 2
Replace external payment for digital goods with StoreKit 2. Configure products in App Store Connect (consumables, non-consumables, auto-renewable subscriptions, or non-renewing subscriptions as appropriate).
Remove external payment SDK references for digital goods
If Stripe/PayPal is only used for digital content, remove the SDK entirely. If it serves dual purpose (digital + physical), ensure the digital purchase paths route through StoreKit.
Handle existing subscribers
If users already paid via external payment, implement a server-side entitlement check that honors existing purchases. New purchases go through IAP.
Consider the Small Business Program
If your annual App Store revenue is under $1M, enroll in the Apple Small Business Program to reduce commission from 30% to 15%.
Update server-side receipt validation
Implement App Store Server Notifications v2 to handle subscription lifecycle events.
Prevention
Example Rejection Email
Consider Appealing
Appeal only if your app qualifies as a reader app (3.1.3(a)), a multiplatform service (where content is consumed across platforms), or if the purchases are genuinely for physical goods or real-world services. Otherwise, fix and resubmit.
Before & After
Tapping 'Upgrade to Pro' opens a Stripe Checkout sheet collecting credit card details for a $9.99/month digital subscription
Tapping 'Upgrade to Pro' triggers a StoreKit 2 purchase sheet for a $9.99/month auto-renewable subscription configured in App Store Connect
What changed: All digital content and feature purchases must route through Apple's In-App Purchase system, not external payment processors.
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