The standardized protocol for implementing in-app purchases across all platforms
OpenIAP is two protocols for in-app purchases across platforms, frameworks, and emerging technologies: the Client Protocol for what an app calls, and the Commerce Protocol for what servers exchange.
The two protocols standardize IAP implementations to reduce fragmentation and enable consistent behavior across every platform. The Client Protocol gives an app one purchase API whatever the store; the Commerce Protocol gives backends one contract for verification, entitlements, and subscription lifecycle events. This is especially critical in the AI coding era where standardized APIs enable better code generation.
The contracts every package and library implements live under specs/. They are publishable, implementation-independent, and never deployed as services:
- Client Protocol — Client purchase API and generated types for six languages.
- Commerce Protocol — Server operations, events, bindings, and conformance.
This monorepo contains all OpenIAP packages:
- google - Android library
- apple - iOS/macOS library
- docs - Documentation site at openiap.dev
- cli -
@hyodotdev/openiapprints an AI implementation brief and runs local configuration checks. - mcp-server - IAPKit MCP server, hosted at kit.openiap.dev/mcp for AI coding agents
- kit - Open-source purchase validation and entitlement infrastructure for the OpenIAP ecosystem, with a hosted service and dashboard at kit.openiap.dev. Free for every developer under hosted fair-use safeguards.
Framework SDK implementations built on top of OpenIAP. These libraries are managed in this monorepo — see discussion #86 for the rationale and migration context.
| Library | Platform | Package | Downloads |
|---|---|---|---|
| expo-iap | Expo | ||
| react-native-iap | React Native | ||
| flutter_inapp_purchase | Flutter | ||
| kmp-iap | Kotlin Multiplatform | — | |
| maui-iap | .NET MAUI | ||
| godot-iap | Godot 4.x | — |
Visit openiap.dev for complete documentation and API reference.
Have a question or need help? Ask in the relevant GitHub Discussions category:
| Library | Discussion |
|---|---|
| openiap-apple | Q&A |
| openiap-google | Q&A |
| expo-iap | Q&A |
| react-native-iap | Q&A |
| flutter_inapp_purchase | Q&A |
| kmp-iap | Q&A |
| maui-iap | Q&A |
| godot-iap | Q&A |
| IAPKit | Q&A |
For bug reports, please open an issue.
Thank you to Meta and Amazon Developer for supporting OpenIAP. View sponsorship options.
We also recognize sponsors and backers through OpenCollective. The original react-native-iap collective now supports the broader OpenIAP ecosystem and is managed separately from the main sponsor program.
Become a sponsor | Become a backer
Supported the project before the OpenIAP sponsor program.
OpenIAP began with the original react-native-iap community and carries that work forward across the broader ecosystem:
See CONTRIBUTING.md for development setup, workflows, and contribution guidelines.
