Use this page with AI

Copy this into your coding assistant and add your request.

Read https://openiap.dev/docs/updates/releases and https://openiap.dev/llms.txt. Follow the reading instructions, detailed reference, and linked guides relevant to my task before making changes.
Inspect my existing project and reuse its framework and conventions. Ask me for missing product decisions. Implement the requested behavior and run the applicable checks.
Show the working result, the commands and actual test results, and any remaining limitations. Keep your explanation brief.

My request: [describe what customers should be able to do]
See an example request →

Releases

Release notes for OpenIAP packages and framework libraries.

October 31, 2026 - iOS receipt recovery and error helper exports#

iOS apps can recover unfinished receipts and, with opt-in event recovery, verified purchases from a failed inventory query. React Native and Expo also expose their existing recoverable-error helper.

Protocols and native packages
  • openiap-apple 4.0.7:
    • Preserves expired, upgraded and revoked subscription receipts for explicit app reconciliation (#572).
    • Opt-in event recovery publishes verified purchases while failed queries still reject; default and return-only restore paths remain strict (#573).
Framework libraries
  • react-native-iap 17.3.1 and expo-iap 6.4.1: export the unchanged isRecoverableError classifier from default and Vega entry points without automatic purchase retries (#563).
  • kmp-iap 4.2.1 and OpenIap.Maui 3.2.1: add the Amazon LAT confirmation update shipped in the other four SDKs on October 30.
Integration notes

Rebuild iOS apps with the framework patches below to include Apple 4.0.7. Recover unfinished receipts with getPendingTransactionsIOS and record your app's entitlement decision before finishing them. A receipt or event alone does not establish active access. Keep handlers idempotent and never clear ownership after a failed restore.

confirmOnDeviceIOS can report failed for a past-expiry receipt even during billing grace; this is not a final no-access verdict. Check current subscription status before cleanup, following the device-only cleanup guidance.

Package Releases

October 30, 2026 - Amazon LAT verification and native errors#

React Native, Expo, Flutter and Godot can confirm Amazon LAT receipts through real RVS while accepting only Sandbox verdicts in a test build. React Native also exposes structured native purchase errors across calls and listeners.

Protocols and native packages
  • Client Protocol 1.3.1 adds Amazon verdict expectations to the IAPKit helper and confirmation vectors; direct helper and vector consumers need this release for the new cases.
Framework libraries
  • react-native-iap 17.3.0 preserves native error codes and diagnostics across queries, purchases, completion and restore; iOS failures no longer hide later errors for the same product.
Integration notes

In a LAT build, use amazon.expectedEnvironment: 'Sandbox' with amazon.sandbox: false. Godot names the option expected_environment. Rebuild without the Sandbox setting before submitting to production: promoting the LAT binary unchanged would reject real purchases after payment. See the verification guide.

Rebuild React Native apps for structured error transport, then read error codes and diagnostics directly from their properties. Older native binaries remain supported through 17.x. The legacy string parser and cancellation detection from strings or code-less Error.message are deprecated for removal in 18.0.0. See #569.

IAPKit also updates its runtime image for an OpenSSL security fix. Self-hosted deployments should rebuild; see the hosted release notes.

Package Releases

October 26, 2026 - Operate IAPKit from the terminal#

OpenIAP CLI 0.3.0 adds openiap kit for browser login, organization and project administration, API keys, store credentials, catalog sync, payloads, purchases, subscriptions, webhooks and revenue analytics. Existing init and doctor commands keep their local behavior.

sh
npx @hyodotdev/openiap kit login
npx --yes @hyodotdev/openiap kit projects list --json
npx --yes @hyodotdev/openiap kit schema keys create --json

Coding agents discover inputs through JSON Schemas and receive structured results without an MCP connection. Invalid inputs are rejected locally with schema guidance. Automation tokens have scopes, expiry and revocation. Store synchronization previews changes by default; applying changes requires --apply --yes. Key regeneration immediately disables the old key. Commands that return secrets and key deactivation require --yes; use --output to save secrets in a private file. Purchase tokens and raw store evidence stay hidden on reads unless explicitly confirmed. A waiting sync exits with an error if any product failed, even when its worker completed.

The CLI requires the matching IAPKit server update, including its browser authorization page and /cli/v1 endpoints. Self-hosted operators deploy the server and Convex functions together. See the CLI guide for authentication, credential uploads and automation examples, and the IAPKit weekly history for the server changes.

Package Releases

October 25, 2026 - Clear Expo Go setup errors#

react-native-iap 17.2.2 reports that Expo Go is unsupported when initializing purchases, instead of failing while importing Nitro. Registering purchase listeners before initialization remains safe.

For Expo projects, use expo-iap in a native development build. Neither library runs in Expo Go; react-native-iap continues to support bare React Native apps. See #561.

Package Releases

October 25, 2026 - Keep purchase verification open to any service#

The purchase flow now keeps verification services separate from purchase processing. Keep using the SDK's confirmWithIapkit or confirmOnDeviceIOS, or supply another verifier through the existing confirmWithBackend callback.

Common changes

On Vega, react-native-iap and expo-iap no longer infer renewal from access; active paid terms remain listed with renewal unknown.

Protocols and native packages
  • Client Protocol 1.3.0: keeps the published purchase-flow callback contract and retains the deprecated helpers and verification types until Client Protocol 2.0.
  • openiap-apple 4.0.5: the SwiftUI example now displays subscription prices and purchase options correctly.
  • openiap-google 4.0.6: Amazon reports unknown renewal preferences without dropping active paid subscriptions. The legacy isAutoRenewing hint is false when renewal is unknown; autoRenewingAndroid is null.
Framework libraries
  • react-native-iap 17.2.1: corrects plan and renewal labels and Google Play prepaid plan changes in the subscription example.
  • expo-iap 6.3.0: deprecates the low-level helpers and verification types in expo-iap/build/purchase-flow and expo-iap/src/purchase-flow until Expo 7.0. Imports from expo-iap remain supported.
  • flutter_inapp_purchase 11.2.0: deprecates the low-level confirmation helpers. Example purchase cards use reported renewal preferences and preserve unknown values.
  • godot-iap 4.2.0: deprecates the low-level confirmation helpers on PurchaseFlow.
  • kmp-iap 4.2.0: marks the low-level confirmation helpers deprecated while preserving their public function types.
  • OpenIap.Maui 3.2.0: marks IapkitConfirmation and DeviceConfirmationIOS obsolete with their existing signatures. The example purchase list now shows active Amazon subscriptions.
Migration notes

Use the SDK's confirmWithIapkit or confirmOnDeviceIOS. Godot names these confirm_with_iapkit and confirm_on_device_ios; MAUI exposes OpenIapClient.ConfirmWithIapkit and ConfirmOnDeviceIOS. Custom confirmWithBackend callbacks keep their existing contract. See the validation guide for examples with IAPKit or your own verifier.

Deprecated names and scheduled removal versions

Replace createIapkitConfirmation, toIapkitVerificationProps and readIapkitVerification with the SDK's IAPKit confirmer. Replace createDeviceConfirmationIOS with its on-device confirmer. Godot uses the corresponding snake_case names on PurchaseFlow.

Removal is scheduled for Client Protocol 2.0, Expo 7.0, Flutter 12.0, Godot 5.0, KMP 5.0 and MAUI 4.0. The migration table lists each import path, type and replacement.

Rebuild native apps after updating the framework SDKs to link the matching native packages. Use active subscription status to determine access on Amazon. A null renewal preference does not expire a paid term.

Package Releases
...
Showing 1-5 of 103 items