Over the past few years Apple and Google have opened the door for app-to-web, allowing developers to use external purchase flows for in-app subscriptions; making it possible to bypass app store fees and have more flexibility with pricing, promotions, and checkout experiments.
This has largely come about from court rulings like Epic Games v. Apple in the US and the Digital Markets Act in the EU, ultimately forcing Apple and Google to loosen strict requirements around in-app purchases (IAP).
For app teams, this opens up a new realm of app-to-web possibilities — but when it comes to the regulations surrounding app-to-web, it’s not quite so clear cut. New guidelines are constantly appearing and evolving, varying by country and app category, so it’s difficult to keep up with what’s allowed (or not).
To help, we’ve broken down the latest options, eligibility requirements, and commissions/fees for external payments around the world, on both the Apple App Store and Google Play Store. Here’s everything you need to know.
How external purchases with app-to-web work
Here’s a quick overview on how external purchases work, and the two primary ways to incorporate them in your app.
If you want to jump straight to Apple and Google’s purchase guidelines, click here.
1. External web link
Your app includes a link or button that sends the user to an external website (or opens a webview) where the user completes the purchase. The app then unlocks content/features based on that external purchase (usually by syncing with your backend).
Apple refers to this as using an External Purchase Link. For instance, a streaming app might have a “Subscribe on our website” button that opens its web checkout. After payment, the user can log into the app with the new subscription.
2. Third-party payment (in-app)
Your app integrates a non-Apple/non-Google payment gateway directly in the app’s UI. The purchase happens within the app, but not via App Store/Google Play billing. This is sometimes called alternative in-app payment.
A common example is using Stripe for in-app purchases, or showing a country-specific credit card form at checkout in lieu of App Store purchase dialogs.
While this used to be far trickier to implement, Apple v. Epic has meant third-party payments are much easier to use these days. However, Apple and Google have strict rules if you choose either of these paths:
Implementing third-party payment with Apple
- You’ll need to request Apple’s special entitlements before offering any kind of external purchase flow
- Depending on what you’re building, you’ll use either the External Purchase Link API (to send users to your web checkout) or the External Purchase Entitlement (to run a third-party payment flow inside the app)
- Before users leave the app or pay through a non-Apple method, Apple shows a built-in disclosure sheet letting them know the purchase isn’t handled by the App Store
- In some cases, if you use an external purchase entitlement, you cannot also offer Apple IAP in the same app in that region — it’s one or the other on a given storefront
Implementing third-party payment with Google
- Google’s User Choice Billing means the user is offered a choice between Google Play’s billing and an alternative billing method during checkout
- Developers must integrate Google’s alternative billing API to present this option
- For External Offers (EEA only), the app can directly link out to a purchase web page (and Google will display a ‘leaving Play’ prompt to users on tap)
- Like Apple, there are cases where you’re not allowed to mix standard Google Play Billing IAP with external offers
In-app purchases vs. external purchases: guidelines and regulations for Apple and Google
Most apps on both the Apple App Store and Google Play Store use the platform’s built-in billing system for subscriptions and digital goods. By default, you’re not allowed to direct users to a different payment flow inside your app unless you qualify for (and opt into) one of the external-purchase programs covered below.
For standard in-app purchases, each app store takes a cut. The standard commission for both Apple and Google Play is 30%, but both stores reduce this to 15% for developers making less than $1M/year from IAP. On Google Play, the 15% rate is also applied to recurring subscriptions after the first year.
To avoid these fees, apps are allowed to offer external purchases, as long as they adhere to the following guidelines:
Apple App Store external purchases guidelines
Google Play Store external purchases guidelines
Adding web checkout options to your app
If you’re reading this far, you’re probably already sold on app-to-web. The hard part isn’t why; it’s how to ship it quickly, stay compliant, and not turn your purchase flow into a science project.
RevenueCat Web is the simplest way to add a web checkout to a subscription app. Instead of stitching together a payment processor, entitlement sync, identity mapping, and analytics on your own, you get a full web billing stack that plugs into the RevenueCat setup you already use for mobile. Users can buy on the web and unlock access in iOS or Android right away, with one subscriber record and one source of truth.
Here’s how the pieces fit together:
Web Billing as your billing engine: Web Billing is RevenueCat’s native billing engine for web subscriptions. It manages the subscription lifecycle on the web and stays fully integrated with your RevenueCat products, customers, and entitlements. You don’t have to build or maintain separate web billing logic.
Web checkout surfaces that you can launch in minutes: once Web Billing is on, you can direct users to web checkout in a few different ways:
- Web Purchase Button inside your in-app paywall: add a button component to any RevenueCat Paywall; tapping it sends users to a web checkout
- Web Purchase Links: RevenueCat-hosted checkout URLs you can drop anywhere, including behind the Web Purchase Button — they work out of the box and support identified or anonymous flows
- Web Paywalls shown via the Web SDK: if you have your own web app or landing pages, you can render a RevenueCat Paywall directly on your site through Purchases.js, then complete checkout there
Everything stays connected. The Web overview dashboard shows you everything in one place, and your web and mobile offerings live in the same catalog, entitlements sync automatically, and events flow into the same analytics layer.
How to keep app-to-web conversion strong
Teams usually worry that a web step will convert worse than native checkout. This can be easily avoided by sending users to a web paywall that completes the purchase on the same page (aka, RevenueCat’s Express Purchase button).
If Apple Pay or Google Pay is available in the browser, a wallet button shows on the web paywall. The user taps once, confirms in their wallet, and the purchase completes. RevenueCat then syncs access back to the app automatically.
This keeps the handoff short: paywall in app → paywall on web → wallet confirmation = access unlocked.
Examples of app-to-web
- In-app upgrade with a web option: your in-app paywall includes a ‘Continue on web’ button. The web paywall opens with the same plan selected, and a wallet button appears when supported. Users who want a faster checkout finish in one tap.
- Win-back discount: a churned user sees a targeted in-app paywall with a comeback offer. The web button routes to a separate web offering with the discount already applied, so the user doesn’t need to hunt for the right plan.
- Campaign traffic you can measure: You share a Web Purchase Link in ads or email with UTM parameters intact. After purchase, a redemption step links the subscription to the user’s app account and unlocks access right away. You get clean attribution without custom glue code.
Ready to experiment with app-to-web?
As app-to-web guidelines continue to shift, your success depends on keeping checkouts flexible and compliant. We’ll keep this guide updated as Apple and Google refine their policies, so bookmark it and check back whenever you’re planning your next app-to-web iteration.
Whether you experiment with custom checkout code or get RevenueCat Web to do the heavy lifting, app-to-web can be an efficient and flexible purchase flow. Good luck, and happy testing!

