---
title: SDKs
nav: SDKs
order: 7
---
# SDKs and their status

The same methods and events on every platform: `configure`, `openStore`, `purchase(sku)`, `handle(url)`, `onPurchaseCompleted`, `onPurchaseCanceled`, `onPurchaseFailed`, `onStoreClosed`.

| SDK | Location | Verified on 2026-10-24 (updated after the toolchain install) |
|---|---|---|
| Web / JS | `sdks/web` (`appside/web`) | **Unit tests + real-browser journey** (Orbit Quest uses it: openStore, purchase, return, 40/40 E2E) |
| Node server | `sdks/node` (`appside/node`) | Unit tests; `getOrder` matched the signed webhook in the browser E2E |
| Python server | `sdks/python` | Unit test (ES256 signature, webhook tamper/age rejection, getOrder) |
| iOS (Swift Package) | `sdks/ios` | Core compiled with `swiftc` and smoke-tested (launch, purchase, result, replay and live rejection). **Not yet**: `swift test` / iOS UI build (needs Xcode) |
| React Native | `sdks/react-native` | JS bridge tests. Native host: source only |
| Android (Kotlin) | `sdks/android` | **Builds with Gradle (JDK 17, Android SDK 35)**, 12 JUnit tests pass, release AAR produced. Not yet: on-device integration test |
| Unity (UPM) | `sdks/unity` | **Source only, not compiled** (no Unity yet) |
| Flutter | `sdks/flutter` | **`flutter analyze` clean, 12 tests pass** (Flutter 3.47). Not yet: native host build on a device |

`PurchaseResult` is `{ status, orderId, state, verified: false }` everywhere: a UI hint. Grant items only from the [webhook](/docs/webhooks/) or `getOrder`.

This table is updated from each SDK's own tests on every release. "Preview source" means the code is written but hasn't been compiled and tested on that platform yet.
