This sells subscriptions through Stripe's hosted Checkout in the system browser, so there's no native payments SDK at all (@stripe/stripe-react-native is deliberately not used). src/lib/payments.ts implements the shim - entitlements come from GET /api/stripe/entitlements for whoever the request's session proves - and the server side lives in your tree: src/app/api/stripe/{checkout,entitlements,webhook,return}+api.ts with the shared logic in src/server/stripe.ts. You also get /paywall as a modal, tests for both halves, and /examples/paywall with --with-examples. @/lib/payments keeps the same API whichever option you pick - pick Stripe when you're selling to the web as well, or when the 30% store cut isn't something you have to pay.
When to pick Stripe Checkout
Pick Stripe if you're selling to the web too, or if what you sell isn't digital goods that Apple and Google require in-app purchase for - it runs on hosted Checkout in the system browser, needs backend/api-routes, and is the one option that works in Expo Go.
At a glance
- Runs in Expo Go
- Yes
- Files added
- 13
- npm packages
- 1
- Keys to paste
EXPO_PUBLIC_API_URL,EXPO_PUBLIC_STRIPE_PUBLISHABLE_KEY- Included in
- Pro
- Screens added
/paywall/- Tests included
- 2
Set it up
bun run setup --payments stripeSetup copies the module in, installs SDK-matched versions and removes the options you did not pick. Then bun run doctor lists every key still missing, with a link to where you get it. The step-by-step guide is in the Stripe Checkout docs.
Wiring it by hand instead? Read the guide: Best paywall tools for Expo in 2026.
Stripe Checkout vs other payments options
| Option | Expo Go | npm packages | Keys to paste | Included in |
|---|---|---|---|---|
| Stripe Checkout | Yes | 1 | 2 | Pro |
| RevenueCat | Dev build | 2 | 2 | Pro |
| Adapty | Dev build | 2 | 2 | Pro |
Questions
Can I use Stripe Checkout in Expo Go?
Yes. This module runs in Expo Go, so you can try it before you make a development build.
What do I need to set up Stripe Checkout in an Expo app?
Run bun run setup --payments stripe, then paste 2 keys into .env: EXPO_PUBLIC_API_URL, EXPO_PUBLIC_STRIPE_PUBLISHABLE_KEY. bun run doctor lists any that are missing, with a link to where you get each one.
Which other modules does Stripe Checkout need?
It needs a Backend option (API routes). Pick those in the same setup run.
Does the ReadyNative free tier include Stripe Checkout?
No. Payments is a Pro category: the free tier and Starter ship it switched off. Pro is one payment with lifetime updates.
Can I build the app without Stripe Checkout?
Yes. Pick none for payments (bun run setup --payments none) - payments.useEntitlements() shim returns none.
Stripe Checkout or RevenueCat for Expo?
Pick Stripe if you're selling to the web too, or if what you sell isn't digital goods that Apple and Google require in-app purchase for - it runs on hosted Checkout in the system browser, needs backend/api-routes, and is the one option that works in Expo Go. Pick RevenueCat for the default path to store subscriptions - it handles StoreKit and Play Billing, and its remote paywalls can be edited without shipping an update.
Stripe Checkout or Adapty for Expo?
Pick Stripe if you're selling to the web too, or if what you sell isn't digital goods that Apple and Google require in-app purchase for - it runs on hosted Checkout in the system browser, needs backend/api-routes, and is the one option that works in Expo Go. Pick Adapty if the no-code Paywall Builder and A/B tests on placements are what you want to iterate on; it's the same store billing underneath.
What does Stripe Checkout mean for the App Store and Google Play privacy forms?
It collects: Payment info (entered in Stripe's hosted checkout, never in the app); Email address; User id (customer metadata). Shared with: Stripe (processor). Setup adds its data types to the iOS privacy manifest; the docs page lists the answers for Play's Data safety form.
Which Stripe Checkout version does it install?
For Expo SDK 57: stripe ^22.6.2. Setup installs Expo packages with expo install, so they match the SDK.
Get it
Stripe Checkout ships in Pro: one payment, lifetime updates. See pricing or browse every module.