Powered by OpenIAP
Expo IAP conforms to the OpenIAP specification — an open, vendor-neutral interoperability standard for in-app purchases across all platforms and frameworks.
What is OpenIAP?
OpenIAP is not just a library — it's a shared specification layer that ensures consistent, secure, and verifiable in-app purchase behavior everywhere. Instead of each framework reinventing its own types, error models, and verification flows, OpenIAP defines them once in a single GraphQL schema and generates type-safe bindings for every platform.
How It Works
GraphQL Schema (Single Source of Truth)
│
▼
IR (Intermediate Representation)
│
├── Swift bindings → openiap-apple (StoreKit 2)
├── Kotlin bindings → openiap-google (Play Billing 8.x)
├── Dart bindings → flutter_inapp_purchase
└── GDScript bindings → godot-iap
What OpenIAP Provides
| Component | Description |
|---|---|
| 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 |
| Conformance Tests | Cross-platform test matrix ensuring behavioral consistency |
Libraries Built on OpenIAP
| Library | Platform |
|---|---|
| react-native-iap | React Native |
| expo-iap | Expo |
| flutter_inapp_purchase | Flutter |
| kmp-iap | Kotlin Multiplatform |
| godot-iap | Godot Engine |
Learn More
- OpenIAP Website — Full specification and documentation
- OpenIAP GitHub — Source code and monorepo
- About OpenIAP — Project overview and vision
- Governance — Open governance model
- Become a Sponsor — Support the standard