Kotlin Multiplatform billing

Craft your own billing

Subscriptions across Stripe, Razorpay, Cashfree, Google Play and the App Store, behind one Kotlin Multiplatform SDK. Self-hosted, so the money and the data stay yours.

shared/App.kt
PayCraft.initialize(
  apiKey = "pk_live_…"
)
One SDK. Six targets.
AndroidiOSDesktopWebmacOSwasm

Any provider. Equal peers.

Connect at account level once. Every app you ship shares the connection.

Stripe
Cards, wallets, global
Razorpay
India, UPI, netbanking
Google Play
Android in-app
App Store
iOS in-app
Cashfree
India, payouts

Account-level by design

Providers, keys, plan and billing belong to your account. Apps consume them. Connect Stripe once, ship five apps.

Account
Stripe · Razorpay · Play · App Store
App one
App two
App three

What you keep

CapabilityPayCraftHosted platforms
Takes a cut of revenueNoYes, a percentage
You own the subscriber dataYesNo
Self-hostableYesNo
One KMP SDK, all platformsYesPartial

What we cannot do

Google Play and App Store test mode cannot be enabled by any API, because neither store exposes one. PayCraft reports those providers ready only when a real sandbox purchase arrives, and hands you the exact steps to get there: in the dashboard, in the API response, and to your assistant.

Fifteen minutes to your first subscription

Apache-2.0 SDK · no revenue share on any tier