# Guideline 3.1.1 - In-App Purchase: Using External Payment for Digital Content

**Guideline:** 3.1.1 · **Store:** Apple App Store · **Severity:** high · **Fix difficulty:** hard · **Typical turnaround:** 1-3 days

Canonical URL: https://appstorereject.com/rejections/apple/3/guideline-311-in-app-purchase-using-external-payment-for-digital-content

## Description

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.

## Common variations

- App uses Stripe/PayPal to process payments for digital content
- App uses external payment mechanism to unlock features
- App directs users to a website to purchase digital content
- App uses a third-party payment SDK for in-app functionality
- App collects credit card information for digital goods

## Example rejection email

```
Guideline 3.1.1 - Business - Payments - In-App Purchase

We found that your app uses a mechanism other than in-app purchase to unlock or enable additional functionality. Specifically, the app uses Stripe to process payments for premium features and digital content.

In-App Purchase is required for digital content, features, and subscriptions offered within apps on the App Store.

Next Steps:
Please revise the app to use in-app purchase for all digital content and feature unlocks. You may continue to use external payment methods for physical goods and services delivered outside of the app.
```

## Resolution steps

## Quick Assessment
- **Risk level:** High
- **Resolution path:** Fix & Resubmit (migrate to IAP)
- **Typical turnaround:** 1-3 days

## The Fix (if you're only using Stripe for US users)

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

2. **Test segmentation thoroughly** -- Ensure that your filtering works regardless of internet connectivity or device state.

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

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

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

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

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

5. **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%.

6. **Update server-side receipt validation** -- Implement App Store Server Notifications v2 to handle subscription lifecycle events.

## Prevention
- Design payment architecture with IAP from the start for any digital goods
- Keep external payment only for physical goods, real-world services, and person-to-person transactions
- Explore the reader app and multiplatform entitlement provisions if applicable

## Appeal guidance

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 examples

**Before:** Tapping 'Upgrade to Pro' opens a Stripe Checkout sheet collecting credit card details for a $9.99/month digital subscription
**After:** Tapping 'Upgrade to Pro' triggers a StoreKit 2 purchase sheet for a $9.99/month auto-renewable subscription configured in App Store Connect
**Why it works:** All digital content and feature purchases must route through Apple's In-App Purchase system, not external payment processors.

## Common questions

**Can you appeal a 3.1.1 rejection?**

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.

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

Typical turnaround is 1-3 days (difficulty: hard). After resubmission, most re-reviews complete within 24-48 hours.

---
*Machine-readable source: https://api.appstorereject.com/api/rejections/detail?slug=guideline-311-in-app-purchase-using-external-payment-for-digital-content*