Four types
Consumables, non-consumables, auto-renewable subscriptions and non-renewing subscriptions.
Guide
An in-app purchase is a payment inside a mobile app for digital content or features, charged by the App Store or Google Play instead of your own payment processor. Both stores sell one-time purchases and auto-renewing subscriptions. The store keeps a commission, usually 15% or 30%, and a backend checks each purchase and decides what the customer can use.
RevenueDot is a free backend for in-app purchases, up to $10,000 a month in revenue. Already have an account? Sign in
Consumables, non-consumables, auto-renewable subscriptions and non-renewing subscriptions.
Apple and Google keep a commission on each sale. Small developers and subscriptions after one year pay 15% on the App Store.
Apple requires in-app purchase to unlock features in an iOS app. US storefront apps may also link to a web checkout.
A server validates purchases, tracks who has access, and hears about renewals and refunds while the app is closed.
Types
Apple lists four in-app purchase types in App Store Connect. Google Play sells one-time products and subscriptions, which cover the same cases under different names.
| Type | What the customer gets | Example | On Google Play |
|---|---|---|---|
| Consumable | Something used up, which they can buy again | Coins, AI credits, extra lives | A one-time product that your app consumes |
| Non-consumable | Something bought once and kept for good | Remove ads, a lifetime unlock | A one-time product that your app acknowledges |
| Auto-renewable subscription | Access that renews every period until they cancel | Pro monthly or Pro yearly | A subscription with base plans and offers |
| Non-renewing subscription | Access for a fixed time that does not renew | A season pass | A prepaid base plan, extended with top-ups |
Sources: Apple: In-App Purchase types · Android Developers: Subscriptions. More detail in the glossary: consumable and non-consumable, auto-renewable subscription, non-renewing subscription.
How it works
Add each product in App Store Connect or Google Play Console with an ID such as pro_monthly and a price. The store owns prices, taxes and currencies.
The app asks the store for the products by ID and shows them, with the store's local prices, on a paywall.
The store shows its own payment sheet and charges the customer's Apple or Google account. The app gets a signed transaction on iOS or a purchase token on Android.
The app or a server verifies the transaction and gives access. Google refunds purchases that are not acknowledged within three days, and Apple expects the app to finish each transaction (Google).
Renewals, billing problems, cancellations and refunds happen while the app is closed. Apple sends App Store Server Notifications and Google sends real-time developer notifications to your server.
Fees
The store keeps a commission on every in-app purchase before it pays you. Web payments cost less per sale, but you then handle tax, refunds and chargebacks yourself.
| Where you sell | Subscriptions | One-time purchases |
|---|---|---|
| App Store | 30% in a subscriber's first year, 15% after one year of paid service | 30% |
| App Store Small Business Program | 15% | 15%, for developers who earned up to $1 million in the previous year |
| Google Play | 15% in most markets | 15% on your first $1 million each year, 30% above that |
| Your website with Stripe | 2.9% + 30¢ per US card charge, plus 0.7% for Stripe Billing | 2.9% + 30¢ per US card charge |
Sources: Apple subscriptions · Apple Small Business Program · Google Play service fees · Stripe pricing. Google is rolling out new fee tiers by market, so check its page for your countries. Try your own numbers in the App Store and Google Play fee calculator.
Store rules
Apple's App Review Guideline 3.1.1 says that if you want to unlock features or functionality within your app, such as subscriptions, in-game currencies or premium content, you must use in-app purchase (Apple). Physical goods and services used outside the app, such as a ride or a meal, must use another payment method, such as Apple Pay or a card.
On the United States storefront, apps may also include buttons and links to buy on your website. In other storefronts that needs a specific Apple entitlement. See external purchase links and our guide to selling iOS subscriptions on the web with Stripe.
Google Play's Payments policy requires Google Play's billing system for digital goods sold in apps, with exceptions for physical goods and for alternative billing programs in some countries.
Backend
StoreKit 2 and the Google Play Billing Library run the purchase on the device. A server handles everything that happens after it, or on another device.
RevenueDot
RevenueDot is an open-source backend for in-app purchases and subscriptions. Your app uses the RevenueCat SDK, an open-source library, pointed at RevenueDot with one line of code. RevenueDot validates App Store, Google Play, Amazon Appstore and Stripe purchases, keeps entitlements, receives store notifications and sends webhooks.
RevenueDot Cloud is free up to $10,000 a month in revenue, and you can run the same code on your own servers. Start with the step-by-step setup, or read whether an iOS-only app needs a backend at all.
FAQ
An in-app purchase is a payment made inside a mobile app for digital content or features, such as a subscription, coins or a lifetime unlock. The App Store or Google Play charges the customer and pays the developer after keeping a commission.
Apple keeps 30% by default, 15% for subscriptions after one year of paid service, and 15% for developers in the Small Business Program. Google Play keeps 15% of subscriptions in most markets, and 15% of one-time purchases on your first $1 million each year. See the fee calculator.
A consumable is used up and can be bought again, like coins or credits. A non-consumable is bought once and kept, like removing ads or a lifetime unlock. Neither renews on its own.
Not for digital features unlocked inside an iOS app, which Apple says must use in-app purchase. On the US storefront you may link from the app to a web checkout, and you can sell on your website with Stripe. Physical goods must use a method other than in-app purchase. See RevenueCat vs Stripe.
Not always. An iOS-only app can check purchases on the device with StoreKit 2. You need a server for Android and web customers, for events while the app is closed, for webhooks and charts, and when your backend must trust a purchase. See Do I need RevenueCat for an iOS-only app?.
Get started
Start free on RevenueDot Cloud, free up to $10,000 a month in tracked revenue, or move an existing RevenueCat app with one line of code.
Already have an account? Sign in · Prefer your own servers? Self-host free