# Guideline 3.1.1: digital goods without In-App Purchase

> Rejected under Guideline 3.1.1 for selling subscriptions or credits with Stripe instead of In-App Purchase? What must use IAP, and how to fix it.

**Guideline 3.1.1 — In-App Purchase: digital goods must use Apple’s payments.** The app sells or unlocks digital content — subscriptions, credits, premium features — with Stripe or another processor instead of In-App Purchase. Physical goods and real-world services are exempt. Rules for linking out to a web checkout differ by country and changed in 2025.

- App Store · Guideline 3.1.1. In-App Purchase: digital goods must use Apple’s payments.
- Interactive page: https://capwr.app/free-tools/app-store-rejection-explainer/guideline-3-1-1-in-app-purchase
- Rejection explainer: https://capwr.app/free-tools/app-store-rejection-explainer
- Last updated: 2026-10-14

## What this rejection means

The app sells or unlocks digital content — subscriptions, credits, premium features — with Stripe or another processor instead of In-App Purchase. Physical goods and real-world services are exempt. Rules for linking out to a web checkout differ by country and changed in 2025.

## Why reviewers send it

Digital content and features unlocked inside the app generally have to be sold with Apple’s In-App Purchase. Web apps that wrap a Stripe checkout trip this rule, while physical goods and real-world services keep their own payments.

## The message App Review sends

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

We noticed that your app accesses digital content purchased outside the app, such as subscriptions, but that content isn’t available to purchase using in-app purchase.
```

The exact wording changes from one review to the next; the guideline number is what to look for.

## How to fix it

1. Sell digital content and subscriptions through In-App Purchase. RevenueCat makes it simpler in a Capacitor app.
2. Remove the Stripe checkout and “buy on our website” links from the iOS app, unless Apple’s current rules for your storefronts allow the link.
3. Create the products in App Store Connect and submit them with the new build.

## Fix it with Lovable, Bolt or Cursor

If the app was built with an AI builder, paste this into it, then check the result on a phone:

```
On iOS (Capacitor.getPlatform() === "ios"), hide the Stripe checkout and every “buy on the website” link, and sell premium through In-App Purchase with RevenueCat’s Capacitor SDK.
```

## What to reply in App Store Connect

Replace the [brackets] with what you actually changed:

```
Guideline 3.1.1 — Digital content in the app is now sold only through In-App Purchase. We removed [the Stripe checkout / the external purchase links] from the iOS app.
```

## Got a different message?

Paste the whole rejection into the [rejection explainer](https://capwr.app/free-tools/app-store-rejection-explainer). It recognises this one and 26 others, in your browser — nothing is uploaded.

## Other App Store rejections

- [App Store Guideline 4.3 Spam rejection](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-4-3-spam)
- [Guideline 4.2 Minimum Functionality rejection](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-4-2-minimum-functionality)
- [Guideline 2.1 App Completeness rejection](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-2-1-app-completeness)
- [Guideline 2.1 Information Needed: demo account](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-2-1-information-needed-demo-account)
- [Guideline 4.0 Design rejection: sign-in in Safari](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-4-0-design)
- [Guideline 2.3.3 Accurate Metadata: screenshots](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-2-3-3-screenshots)
- [Guideline 2.3.10: Android mentioned in the app](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-2-3-10-other-platforms)
- [Guideline 2.3.8: app icon or name doesn’t match](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-2-3-8-app-icon)
- [Guideline 4.8 Login Services: Sign in with Apple](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-4-8-sign-in-with-apple)
- [Guideline 5.1.1(v): account deletion required](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-5-1-1-v-account-deletion)
- [Guideline 5.1.1: permission purpose string](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-5-1-1-purpose-string)
- [Guideline 5.1.1: sign-up required to use the app](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-5-1-1-sign-up-required)
- [Guideline 5.1.1(i): privacy policy link missing](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-5-1-1-i-privacy-policy)
- [Guideline 5.1.2: App Tracking Transparency](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-5-1-2-app-tracking-transparency)
- [Guideline 3.1.2: subscription information missing](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-3-1-2-subscriptions)
- [Guideline 1.5: support URL doesn’t work](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-1-5-support-url)

## Fixed it? Send the build back to App Review

CapWrapp builds the fixed commit on GitHub’s Mac machines, uploads it to TestFlight, and sends the build you pick to App Review from one page — no Xcode.

[Get started free](https://capwr.app/login).

## About CapWrapp

CapWrapp turns a web app on GitHub — built with Lovable, Bolt, Base44, Cursor or by hand — into iPhone and Android apps. It adds Capacitor if the repo needs it, signs the builds, and ships them to TestFlight and Google Play from GitHub Actions, with no Mac or Xcode on your side. [Get started free](https://capwr.app/login) · [Lovable to App Store guide](https://capwr.app/guides/lovable-to-app-store)
