In App Purchase module for React Native that confirms OpenIAP
β οΈ This repository has moved to the OpenIAP monorepo. This repository is deprecated and will be archived soon. All future development happens in the monorepo. See the π’ announcement issue or the discussion thread for details.
React Native IAP
π¨ Promotion
Compile-time CSS-in-JS for React Native
β¨ Banishing runtime overhead, one style at a time with kstyled - fully type-safe styling that compiles away.
π Explore kstyled β
π Documentation
π Visit our comprehensive documentation site β
β οΈ Notice
Starting from version 14.0.0, this library uses Nitro Modules for high-performance native bridge implementation. You must install react-native-nitro-modules alongside react-native-iap.
Compatibility (Nitro 14.x)
react-native-iap@14.x(Nitro) requires React Native 0.79+.- Stuck on RN 0.75.x or lower? Use the last preβNitro version:
npm i react-native-iap@13.1.0. - Seeing Swift 6 C++ interop errors in Nitro (e.g.,
AnyMap.swiftwithcppPart.pointee.*)? Temporarily pin Swift to 5.10 for theNitroModulespod (see Installation docs) or upgrade RN and Nitro deps. - Recommended: upgrade to RN 0.79+, update
react-native-nitro-modules/nitro-codegen, thenpod installand clean build.
β¨ Features
- π Cross-platform Support: Works seamlessly on both iOS and Android
- β‘ Nitro Modules: High-performance native bridge with minimal overhead
- π― TypeScript First: Full TypeScript support with comprehensive type definitions
- π‘οΈ Centralized Error Handling: Unified error management with platform-specific error code mapping
- π£ React Hooks: Modern React hooks API with
useIAP - π± Expo Compatible: Works with Expo development builds
- π Receipt Validation: Built-in receipt validation for both platforms
- π Products & Subscriptions: Support for both one-time purchases and subscriptions
- π Performance Optimized: Efficient caching and minimal re-renders
π Quick Start
npm install react-native-iap react-native-nitro-modules
or
yarn add react-native-iap react-native-nitro-modules
π See the complete installation guide and quick start tutorial β
ποΈ Architecture
React Native IAP is built with a modern architecture that emphasizes:
- Nitro Modules: High-performance native bridge with C++ core and platform-specific implementations
- Type Safety: Comprehensive TypeScript definitions for all APIs
- Error Resilience: Centralized error handling with meaningful error codes
- Platform Abstraction: Unified API that handles platform differences internally
- Performance: Optimized for minimal bundle size and runtime performance
π± Platform Support
| Platform | Support | Notes | | ----------------- | ------- | --------------------------------------- | | iOS | β | StoreKit 2 (requires iOS 15+) | | Android | β | Google Play Billing v8.0.0+ | | Expo Go | β | Not supported (requires native modules) | | Expo Dev Client | β | Full support | | Bare React Native | β | Full support |
π¦ Installation & Configuration
Prerequisites
Before installing React Native IAP, make sure you have:
- React Native 0.64 or later, or Expo SDK 45 or later
- Node.js 16 or later
- iOS 15+ for iOS apps (StoreKit 2 requirement)
- Android API level 21+ for Android apps
Post Installation
Android Configuration
Kotlin Version Requirement: This library requires Kotlin 2.0+. Configure your project's Kotlin version:
In your root android/build.gradle:
buildscript {
ext {
kotlinVersion = "2.1.20"
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
}
}
iOS Configuration
- Install pods:
cd ios && pod install
- Add StoreKit capability to your iOS app in Xcode:
Expo Configuration
For Expo projects, add the plugin to your app.json or expo.json:
{
"expo": {
"plugins": [
"react-native-iap",
[
"expo-build-properties",
{
"android": {
"kotlinVersion": "2.2.0"
}
}
]
]
}
}
Note: Expo projects require development build (dev-client) as this library contains native code.
Store Configuration
React Native IAP is OpenIAP compliant. For detailed store configuration:
- iOS Setup β - App Store Connect configuration
- Android Setup β - Google Play Console configuration
π€ Using with AI Assistants
React Native IAP provides AI-friendly documentation for Cursor, GitHub Copilot, Claude, and ChatGPT.
Quick links:
- llms.txt - Quick reference
- llms-full.txt - Full API reference
π― What's Next?
π Visit our comprehensive documentation site β
Key Resources
- Installation & Quick Start - Get started in minutes
- API Reference - Complete useIAP hook documentation
- Examples - Production-ready implementations
- Error Handling - OpenIAP compliant error codes
- Troubleshooting - Common issues and solutions
Powered by OpenIAP
React Native IAP conforms to the OpenIAP specification β an open, vendor-neutral interoperability standard for in-app purchases. OpenIAP provides:
- Shared specification β Common types, error codes, and purchase flows across all platforms
- Generated type-safe bindings β Swift, Kotlin, Dart, and GDScript from a single GraphQL schema
- Platform implementations β openiap-apple (StoreKit 2) and openiap-google (Play Billing 8.x)
- Verification profiles β Standardized receipt validation and purchase verification patterns
Learn more about the OpenIAP standard β
Sponsors
πΌ View Our Sponsors
Angel
Past Supporters
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. Buy me a coffee.
OpenCollective Sponsorship
We also manage sponsorships through OpenCollective, which operates separately from our main sponsor program.
Become a sponsor | Become a backer
Contributing
See our Contributing Guide for development setup and guidelines.
