Payments · Subscriptions / in-app purchases

Expo + Adapty

Adapty in an Expo SDK 57 app for iOS and Android, wired by one command and checked by doctor.

This gives you in-app subscriptions through Adapty: src/lib/payments.ts implements the shim on react-native-adapty (its active list holds access-level ids such as premium), a PaymentsProvider (order 70) activates the SDK once and listens on onLatestProfileLoad, and /paywall ships as a modal with your feature bullets, the placement's products with localized price and period, Buy, Restore, and Terms/Privacy links from readynative.config.ts urls. If you set up with --with-examples there's an example at /examples/paywall and a jest mock for the SDK. @/lib/payments keeps the same API whichever option you pick - pick Adapty when you want its no-code Paywall Builder and A/B tests on placements.

When to pick Adapty

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.

At a glance

Runs in Expo Go
No - needs a development build
Files added
8
npm packages
2
Keys to paste
EXPO_PUBLIC_ADAPTY_PUBLIC_KEY, EXPO_PUBLIC_ADAPTY_PLACEMENT_ID
Included in
Pro
Screens added
/paywall/
Tests included
1

Set it up

bun run setup --payments adapty

Setup 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 Adapty docs.

Wiring it by hand instead? Read the guide: Best paywall tools for Expo in 2026.

Adapty vs other payments options

OptionExpo Gonpm packagesKeys to pasteIncluded in
AdaptyDev build22Pro
RevenueCatDev build22Pro
Stripe CheckoutYes12Pro

Questions

Can I use Adapty in Expo Go?

No. This module needs a development build: npx expo run:ios or npx expo run:android locally, or eas build --profile development in the cloud.

What do I need to set up Adapty in an Expo app?

Run bun run setup --payments adapty, then paste 2 keys into .env: EXPO_PUBLIC_ADAPTY_PUBLIC_KEY, EXPO_PUBLIC_ADAPTY_PLACEMENT_ID. bun run doctor lists any that are missing, with a link to where you get each one.

Does the ReadyNative free tier include Adapty?

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 Adapty?

Yes. Pick none for payments (bun run setup --payments none) - payments.useEntitlements() shim returns none.

Adapty or RevenueCat for Expo?

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

Adapty or Stripe Checkout for Expo?

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

What does Adapty mean for the App Store and Google Play privacy forms?

It collects: Purchase history; Profile id (anonymous by default); Device info. Shared with: Adapty (processor). Setup adds its data types to the iOS privacy manifest; the docs page lists the answers for Play's Data safety form.

Which Adapty version does it install?

For Expo SDK 57: expo-build-properties ~57.0.17, react-native-adapty ^4.1.0. Setup installs Expo packages with expo install, so they match the SDK.

Get it

Adapty ships in Pro: one payment, lifetime updates. See pricing or browse every module.