Guide

In-app purchases: how they work on iOS, Android and the web

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

Four types

Consumables, non-consumables, auto-renewable subscriptions and non-renewing subscriptions.

15% or 30% to the store

Apple and Google keep a commission on each sale. Small developers and subscriptions after one year pay 15% on the App Store.

Required for digital goods

Apple requires in-app purchase to unlock features in an iOS app. US storefront apps may also link to a web checkout.

A backend keeps it right

A server validates purchases, tracks who has access, and hears about renewals and refunds while the app is closed.

Types

The types of in-app purchase

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.

TypeWhat the customer getsExampleOn Google Play
ConsumableSomething used up, which they can buy againCoins, AI credits, extra livesA one-time product that your app consumes
Non-consumableSomething bought once and kept for goodRemove ads, a lifetime unlockA one-time product that your app acknowledges
Auto-renewable subscriptionAccess that renews every period until they cancelPro monthly or Pro yearlyA subscription with base plans and offers
Non-renewing subscriptionAccess for a fixed time that does not renewA season passA 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

How an in-app purchase works, step by step

  1. 01

    Create the products in the store

    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.

  2. 02

    Load the products in the app

    The app asks the store for the products by ID and shows them, with the store's local prices, on a paywall.

  3. 03

    The customer pays the store

    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.

  4. 04

    Check the purchase and unlock access

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

  5. 05

    Hear about renewals and refunds

    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

What Apple and Google charge

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 sellSubscriptionsOne-time purchases
App Store30% in a subscriber's first year, 15% after one year of paid service30%
App Store Small Business Program15%15%, for developers who earned up to $1 million in the previous year
Google Play15% in most markets15% on your first $1 million each year, 30% above that
Your website with Stripe2.9% + 30¢ per US card charge, plus 0.7% for Stripe Billing2.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

When you must use in-app purchase

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

What a backend does for in-app purchases

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.

  • Validates purchases with Apple's App Store Server API and Google's Play Developer API, so a tampered app cannot unlock access.
  • Keeps entitlements: one answer to "is this customer Pro?" across iPhone, Android and the web. See entitlement.
  • Receives store notifications for renewals, billing retries, grace periods, refunds and cancellations, and acknowledges Google Play purchases in time.
  • Sends events to your own backend with webhooks, and to analytics and messaging tools.
  • Measures revenue: MRR, churn, trial conversion and refunds across stores. See subscription charts.

RevenueDot

How RevenueDot fits

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

Questions people ask

What is an in-app purchase?

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.

How much do Apple and Google take from in-app purchases?

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.

What is the difference between consumable and non-consumable in-app purchases?

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.

Can I use Stripe instead of in-app purchases?

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.

Do I need a server for in-app purchases?

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

Run subscriptions without the revenue share.

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