Purchase abstraction SDK
One purchase + restore API across StoreKit, Play Billing, Stripe and web. Write it once, never branch on platform again.
EntitleHub sits between your app and every billing system (Apple, Google, Stripe, web) and turns the messy question of SKUs and platforms into one clean answer your code can trust.
Raw product IDs multiply with every platform and price change. Entitlements don't. You check one durable capability, and EntitleHub owns the mapping underneath.
// which of the 14 SKUs did they buy? if (sku === "com.app.pro.yearly" || sku === "pro_annual_v2" || sku === "price_1P…Zk" || sku === "plan_pro_web") { unlockPro() // …and the grandfathered ones? }
// ask what they're entitled to const pro = await entitlehub.check( user.id, "pro" ) if (pro.isActive) unlockPro() // ↳ works on iOS, Android, Stripe & web
Six subsystems, one source of truth. Parity on the fundamentals is table stakes; we obsess over the details around them.
One purchase + restore API across StoreKit, Play Billing, Stripe and web. Write it once, never branch on platform again.
The source of truth. Map any SKU, plan or platform to durable entitlements and answer check(user, "pro") authoritatively.
One subscriber, one status: consistent across iOS, Android, web and reinstalls.
Validation that survives reinstalls and resists client spoofing. Renewals, grace periods, billing retries and refunds tracked for you.
Emit new-sub, renewal, cancel, refund and trial-conversion events straight to your backend and analytics.
MRR, churn, LTV, trial conversion and cohorts. No data pipeline to wire up.
Most tools map one SKU to one flag and call it done. Real pricing is messier: bundles, add-ons, team plans, promos, cross-platform purchases. EntitleHub models it through entitlements, so your app keeps asking one simple question.
Explore the modelGrant many entitlements from one purchase: pro unlocks pro, sync and priority-support together.
Sell à-la-carte upgrades as their own entitlement that stacks on the base plan. Independent grants, no SKU-matrix explosion.
A team purchase grants a shared workspace entitlement to the buyer. Model plan tiers through entitlements, not product spaghetti.
Trials and promo grants resolve to the right entitlement state; trial start and conversion emit events you can act on.
One subscriber is the same person across iOS, Android and web. A purchase on any platform is honored everywhere they sign in.
Grant, revoke or extend any entitlement by hand for support cases. Every change is written to the event ledger.
Most entitlement services are closed boxes. EntitleHub ships a self-hostable core you can run inside your own VPC, no third party sitting between you and your money. Start on our cloud, move in-house whenever you like. Same SDK, same API.
$ docker run entitlehub/engine \ -e DATABASE_URL=postgres://… \ -p 8080:8080 ✓ engine up · migrations applied ✓ listening on :8080 # your data never leaves the box
Ship several apps under one developer account, but keep each in its own legal entity (an LLC per app, or cells of a Series LLC)? The stores pay you in one lump; your accountant wants it split. Assign every app to an entity and EntitleHub attributes each period's revenue where it belongs. No other entitlement platform does this.
Revenue & accounting docsGross, refunds, net and share % for every legal entity or Series-LLC cell, any period, one view.
Net × (1 − store fee) per entity, so the split maps onto the deposit Apple and Google actually send.
A read-only, account-scoped token feeds your finance portal; CSV drops into any spreadsheet or books.
Push each entity's period to QuickBooks Online as a journal entry. Connect once, sync per period.
A familiar, no-friction model: free under a threshold, then a small percentage, so adopting us costs you nothing. The difference is what you get.
up to $3k tracked revenue / mo
Everything to ship: full SDK, entitlements, sync and webhooks.
of tracked revenue past $3k
Scales with you. A simple percentage of tracked revenue, no seats, no surprises.
flat / year · your infrastructure
Run the self-hostable engine on your own servers. Your revenue data never leaves your VPC.
Install the SDK, map your first entitlement, and check it in under five minutes.