SDKS

The same purchase flow, in every language you ship.

Native purchases. Verified access. Swift and Kotlin SDKs, web packages, and a REST API for your backend.

Swift · Kotlin · TypeScript · REST

App.swift
import CashSDK

// Configure once. Build something great.
CashSDK.configure(publishableKey: "csk_pk_your_key")

// Start a purchase with your store product ID.
let result = try await CashSDK.shared.purchase(
    "app.example.pro.yearly"
)

// Server-verified access, ready to use.
if CashSDK.shared.entitlements.isActive("pro") {
    unlockPro()
}
Native iOS · StoreKit 2UTF-8

Native clients. Your own billing.

SwiftiOS & macOS
KotlinAndroid
TypeScriptWeb & Node.js
RESTAny backend
ChromeExtensions
StripeNo client SDK

Native where it counts, cross-platform where it helps, REST for everything else.

Type-safe

Autocomplete your way to a paid app.

Offerings, packages, and entitlements are fully typed, so your editor (and your coding agent) knows the shape of every response. No stringly-typed product IDs, no guessing which fields exist. Mistakes are compile errors, not production refunds.

  • Typed offerings & entitlements
  • Nullable-safe entitlement checks
  • Generated types stay in sync with your catalog
App Store

iOS

Swift, StoreKit 2 and native paywalls for iPhone and iPad.

App Store

Mac App Store

StoreKit purchases on macOS and Mac Catalyst, with shared customer access.

Google Play

Android

Kotlin, Play Billing and server verification for your Android app.

Your Stripe account

Web

TypeScript and React clients with authenticated customer sessions from your backend.

Your Stripe account

macOS with Stripe

A native Swift commerce client for direct distribution, with system browser checkout.

Your Stripe account

Chrome extension

Manifest V3 pages and service workers, with checkout attempts preserved across restarts.

Your Stripe account

Stripe only

Keep your checkout and read customer access from your backend. No client SDK required.

One purchase model

Write the entitlement once. Ship it everywhere.

The same entitlement logic, from native iOS to the web: one purchase model behind idiomatic SDKs.

iOS & macOS / Swift

StoreKit 2 native with async/await. The same package runs on iOS and macOS, Mac Catalyst included.

Android / Kotlin

Play Billing v9 wrapper with coroutines.

React Native & Flutter

On the roadmap: one bridge over both native billing stacks.

Web & REST

Browser, React and Node.js packages, and the REST API. Identical entitlement model.

Integrate

From install to first purchase in four calls.

01

Install

Add one dependency with your package manager of choice.

02

Configure

Initialize once on launch with your public API key.

03

Fetch offerings

Load the current paywall and pricing from the server.

04

Purchase

Call purchase and read the returned entitlement state.

SANDBOX / FIRST PURCHASEInteractive sample
~/your-appiOS simulator
✓Load sandbox configurationdone
✓Open the sample purchase flowdone
✓Receive verified accessdone
if CashSDK.shared.entitlements.isActive("pro") {
    unlockPro()
}
folio.You’re ready to create.pro: active
Illustrative flow · no SDK connection

Built for the coding agent doing the wiring.

Lightweight

Small footprint, full coverage

7Platform and billing choices
TypedEnd to end
1 keyTo configure
~1 hrInstall to first purchase
ONE CONNECTED PURCHASE FLOW
CashSDK
CashSDK
Store receipt
pro active
A purchase startsproduct: "pro.yearly"A familiar checkout, in your app.
Illustrative flow no live transactions

Explore the platform

The SDK is one call into the whole stack

Everything the purchase flow touches: the paywall it renders, the receipts it validates, the events it emits.

Paywalls

Design the purchase screen and ship it over the air. The SDK renders it natively.

Explore

Receipt validation

Every purchase is validated server-side before the entitlement unlocks.

Explore

Webhooks

Get a signed event the moment a purchase, renewal, or refund happens.

Explore

Add CashSDK to your app today.

Choose your platform, connect billing and verify the purchase flow with your customers’ identities.