Skip to content
This repository was archived by the owner on Aug 4, 2026. It is now read-only.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2,211 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Important

⚠️ This repository has moved to hyodotdev/openiap. react-native-iap is now developed in the monorepo at libraries/react-native-iap β€” this repository is archived and read-only.

OpenIAP

πŸ“¦ This project now lives in the OpenIAP monorepo

react-native-iap is actively maintained β€” development simply moved home.
This repository is archived and kept read-only as history.

🧭 Source code hyodotdev/openiap β†’ libraries/react-native-iap
🏠 Monorepo hyodotdev/openiap
πŸ“š Docs openiap.dev/docs/setup/react-native Β· legacy docs
πŸ› Issues hyodotdev/openiap/issues
πŸ’¬ Q&A react-native-iap discussions

The npm package name is unchanged β€” npm install react-native-iap keeps working as always.

Background: πŸ“’ announcement issue Β· discussion thread


React Native IAP

React Native IAP Logo

Version Download OpenIAP CI - Test codecov FOSSA Status

React Native IAP is a high-performance in-app purchase library using Nitro Modules 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.

Open IAP

πŸ“š Documentation

πŸ“– Visit the documentation β†’

⚠️ 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.swift with cppPart.pointee.*)? Temporarily pin Swift to 5.10 for the NitroModules pod (see Installation docs) or upgrade RN and Nitro deps.
  • Recommended: upgrade to RN 0.79+, update react-native-nitro-modules/nitro-codegen, then pod install and clean build.

More details and the Podfile snippet are in the docs: https://hyochan.github.io/react-native-iap/docs/installation#ios

✨ 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

  1. Install pods:

    cd ios && pod install
  2. Add StoreKit capability to your iOS app in Xcode:

    • Open your project in Xcode
    • Select your app target
    • Go to "Signing & Capabilities"
    • Click "+ Capability" and add "In-App Purchase"

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:

πŸ€– Using with AI Assistants

React Native IAP provides AI-friendly documentation for Cursor, GitHub Copilot, Claude, and ChatGPT.

πŸ“– AI Assistants Guide β†’

Quick links:

🎯 What's Next?

πŸ“– Visit our comprehensive documentation site β†’

Key Resources

Powered by OpenIAP

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

Other libraries built on OpenIAP: expo-iap Β· flutter_inapp_purchase Β· kmp-iap Β· maui-iap Β· godot-iap

Learn more about the OpenIAP standard β†’

Sponsors

πŸ’Ό View Our Sponsors

Angel

courier_dot_com

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

The original react-native-iap collective moved to opencollective.com/openiap and now supports the broader OpenIAP ecosystem.

Sponsors: OpenCollective sponsors

Backers: OpenCollective backers

Become a sponsor | Become a backer

Contributing

react-native-iap contributors

See our Contributing Guide for development setup and guidelines.

About

In App Purchase module for React Native that confirms OpenIAP

Topics

Resources

Contributing

Stars

3.2k stars

Watchers

31 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages