expo-iap
v3.1.36
Published
In App Purchase module in Expo
Maintainers
Readme
Expo IAP
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.
🎨 Promotion
Compile-time CSS-in-JS for React Native
✨ Experience the next generation of styling with kstyled - a blazing-fast, fully type-safe CSS-in-JS solution with zero runtime overhead.
📚 Documentation
📖 Visit our comprehensive documentation site →
Notice
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.
Installation
npx expo install expo-iapAndroid Configuration
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.
Contributing
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!
Our Sponsors
We're building the OpenIAP ecosystem—defining the spec at openiap.dev, maintaining OpenIAP 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.
