Expo IAP is a powerful in-app purchase solution for Expo and React Native applications that conforms to the Open IAP specification. It provides a unified API for handling in-app purchases across iOS and Android platforms with comprehensive error handling and modern TypeScript support.
If you're shipping an app with expo-iap, we’d love to hear about it—please share your product and feedback in Who's using Expo IAP?. Community stories help us keep improving the ecosystem.
📖 Visit our comprehensive documentation site →
The expo-iap
module has been migrated from react-native-iap. While we initially considered fully merging everything into react-native-iap
, we ultimately decided to maintain the two libraries in parallel, each tailored to its own ecosystem.
react-native-iap
→ a Nitro Modules–based implementation for React Native.expo-iap
→ an Expo Module with tighter integration and smoother compatibility in the Expo ecosystem.
Both libraries will continue to be maintained in parallel going forward.
📖 See the Future Roadmap and Discussion for more details.
👉 Stay updated via the Current Project Status comment.
npx expo install expo-iap
Important: For Android, expo-iap
uses Google Play Billing Library v8.0.0 which requires Kotlin 2.0+. Since expo-modules-core
doesn't support Kotlin v2 yet, you need to configure your project with expo-build-properties
:
{
"expo": {
"plugins": [
[
"expo-build-properties",
{
"android": {
"kotlinVersion": "2.1.20"
}
}
]
]
}
}
If you're targeting Expo SDK 54 or newer, please confirm whether this manual override is still required and share findings with the community at github.com/hyochan/expo-iap/discussions.
We welcome contributions! Please see our Contributing Guide for details on:
- Development setup
- Running the example app
- Testing guidelines
- Code style and conventions
- Submitting pull requests
For detailed usage examples and error handling, see the documentation.
Sharing your thoughts—any feedback would be greatly appreciated!
We're building the OpenIAP ecosystem—defining the spec at openiap.dev, maintaining openiap-gql for the shared type system, and shipping platform SDKs like openiap-apple and openiap-google that power expo-iap, flutter_inapp_purchase, React Native, and kmp-iap. The work so far has focused on untangling fragmented APIs; the next milestone is a streamlined purchase flow: initConnection → fetchProducts → requestPurchase → (server receipt validation) → finishTransaction
.
Your sponsorship helps ensure developers across platforms, OS, and frameworks can implement in-app purchases without headaches. It also fuels new plugins, payment systems, and partner integrations already being explored in the OpenIAP community. Sponsors receive shout-outs in every release and can request tailored support depending on tier. If you’re interested—or have rollout feedback to share—you can view sponsorship options at openiap.dev/sponsors.