Why You Cannot Just Use Stripe
The first thing that surprises new app builders: for digital subscriptions inside an app, Apple and Google require you to use their own in-app purchase systems, not Stripe or your own checkout. This is a rule, not a preference, and trying to route around it is a fast rejection. Monetization is its own stage in the path because it works differently from web payments in ways you have to know up front.
That does not mean you have to hand-code Apple's StoreKit and Google's billing library yourself. That is what RevenueCat is for. It sits on top of both stores' payment systems and gives you one clean way to manage subscriptions across iOS and Android from your single Expo codebase.
What RevenueCat Actually Does
RevenueCat is the layer that turns two complicated store billing systems into one paywall you can wire into your Expo app. You define your subscription products once, and RevenueCat handles the purchase, the receipt validation, and knowing whether a given user currently has an active subscription, on both stores.
- Define your subscription products in App Store Connect and the Google Play Console.
- Connect them to RevenueCat so both stores are managed from one place.
- Wire the paywall into your Expo app: the onboarding into free-trial into subscription flow.
- Check subscription status in your app so paying users unlock the paid features and everyone else sees the paywall.
Keep 85% of Revenue, Not 70%
Both stores take a cut of your subscription revenue. The default is a larger cut, but Apple and Google each run a Small Business program that drops their commission for qualifying developers, and enrolling means you keep 85% of revenue instead of 70%. On a small app that is the difference between the numbers working and not.
Where your subscription revenue goes (Small Business program)
| Setup | Store keeps | You keep |
|---|---|---|
| Standard commission | ~30% | ~70% |
| Small Business program (qualifying) | ~15% | ~85% |
Test the Paywall Before You Submit
The most expensive paywall bug is the one you find after launch, when a real customer taps subscribe and nothing happens. Both stores give you sandbox and test environments to run a full purchase without spending real money. Run the entire flow, onboarding through trial through active subscription, and confirm the paid features actually unlock before you submit.
A broken subscription flow is also a review risk. If a reviewer taps your paywall and it fails, that is a rejection. Wiring and testing the paywall before submission is part of getting store-ready, not an afterthought for later.
Short, practical drops on app ideas, validating fast, store listings, and passing app review. No spam, unsubscribe anytime.
Frequently asked questions
Can I use Stripe for in-app subscriptions?
No, not for digital subscriptions inside the app. Apple and Google require you to use their own in-app purchase systems for digital goods, and routing around that is a fast rejection. RevenueCat sits on top of both stores' systems so you get one clean paywall without hand-coding each store's billing library.
What does RevenueCat do in an Expo app?
RevenueCat turns Apple's and Google's separate billing systems into one paywall you wire into your Expo app. You define your subscription products once, and RevenueCat handles the purchase, receipt validation, and knowing whether a user has an active subscription, across both iOS and Android from your single codebase.
How do I keep 85% of my app revenue instead of 70%?
Enroll in Apple's and Google's Small Business programs. Qualifying developers pay roughly 15% commission instead of 30%, so you keep about 85% of revenue instead of 70%. It is a one-time setup, so do it before you launch rather than leaving the difference on the table.
Should I build the paywall before or after I submit?
Before. Wire and test the full onboarding into free-trial into subscription flow before you submit. A broken or missing paywall is both a lost first customer and a review risk, because if a reviewer taps subscribe and it fails, that is a rejection. Getting the paywall right is part of getting store-ready.
How do I test in-app subscriptions without spending money?
Both stores provide sandbox and test environments so you can run a complete purchase flow without real charges. Run the entire sequence, from onboarding through trial to an active subscription, and confirm the paid features unlock. Finding a paywall bug in the sandbox is free. Finding it after launch costs you real customers.
Do I need a separate paywall for iOS and Android?
No. Because you build from one Expo codebase and RevenueCat manages both stores, you wire one paywall that works across iOS and Android. You define the products in each store's console once and connect them to RevenueCat, then check subscription status in a single place in your app.
Last reviewed by App Store Launch Club on July 29, 2026

