Self-hostable & private

Stop askingwhat did they buyask what they’re entitled to.

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.

Server-side validated Self-hostable core 5-minute install
entitlement enginelive
App Storecom.app.pro.yearlyGoogle Playpro_annual_v2Stripeprice_1P…ZkWebplan_pro_webRESOLVEcheck(user, "pro"){pro:truesince:}
App StoreGoogle PlayStripeWebAmazonApp StoreGoogle PlayStripeWebAmazonApp StoreGoogle PlayStripeWebAmazon
the shift

Delete the switch statement.

Raw product IDs multiply with every platform and price change. Entitlements don't. You check one durable capability, and EntitleHub owns the mapping underneath.

before.ts
brittle · per-platform
// 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?
}
after.ts
one check · any store
// ask what they're entitled to
const pro = await entitlehub.check(
  user.id, "pro"
)

if (pro.isActive) unlockPro()
// ↳ works on iOS, Android, Stripe & web
the platform

Everything between purchase and product.

Six subsystems, one source of truth. Parity on the fundamentals is table stakes; we obsess over the details around them.

SDK

Purchase abstraction SDK

One purchase + restore API across StoreKit, Play Billing, Stripe and web. Write it once, never branch on platform again.

Core

Entitlement engine

The source of truth. Map any SKU, plan or platform to durable entitlements and answer check(user, "pro") authoritatively.

Sync

Cross-platform sync

One subscriber, one status: consistent across iOS, Android, web and reinstalls.

Trust

Server-side receipts

Validation that survives reinstalls and resists client spoofing. Renewals, grace periods, billing retries and refunds tracked for you.

Events

Webhooks & integrations

Emit new-sub, renewal, cancel, refund and trial-conversion events straight to your backend and analytics.

Insight

Revenue analytics

MRR, churn, LTV, trial conversion and cohorts. No data pipeline to wire up.

differentiator · depth

An entitlement engine that handles the hard shapes.

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 model

Bundles

Grant many entitlements from one purchase: pro unlocks pro, sync and priority-support together.

Add-ons

Sell à-la-carte upgrades as their own entitlement that stacks on the base plan. Independent grants, no SKU-matrix explosion.

Team plans

A team purchase grants a shared workspace entitlement to the buyer. Model plan tiers through entitlements, not product spaghetti.

Promos & trials

Trials and promo grants resolve to the right entitlement state; trial start and conversion emit events you can act on.

Cross-platform

One subscriber is the same person across iOS, Android and web. A purchase on any platform is honored everywhere they sign in.

Overrides

Grant, revoke or extend any entitlement by hand for support cases. Every change is written to the event ledger.

differentiator · ownership

Your revenue data. Your infrastructure.

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.

deploy.sh
self-host
$ docker run entitlehub/engine \
    -e DATABASE_URL=postgres://… \
    -p 8080:8080

 engine up · migrations applied
 listening on :8080
# your data never leaves the box
differentiator · accounting

Revenue that lands in the right books.

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 docs

Per-entity statements

Gross, refunds, net and share % for every legal entity or Series-LLC cell, any period, one view.

Estimated payout

Net × (1 − store fee) per entity, so the split maps onto the deposit Apple and Google actually send.

Finance API + CSV

A read-only, account-scoped token feeds your finance portal; CSV drops into any spreadsheet or books.

QuickBooks sync

Push each entity's period to QuickBooks Online as a journal entry. Connect once, sync per period.

MRR
$482k
+12.4% · 30d
Active entitlements
1.9M
+8.1% · 30d
Trial conversion
41.7%
+3.2pt · 30d
Churn
2.3%
−0.4pt · 30d
pricing

Match on price. Win on product.

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.

Free

$0

up to $3k tracked revenue / mo

Everything to ship: full SDK, entitlements, sync and webhooks.

  • All platforms
  • Entitlement engine
  • Cross-platform sync
  • Webhooks
  • Community support
Start free
Most popular

Pro

1%

of tracked revenue past $3k

Scales with you. A simple percentage of tracked revenue, no seats, no surprises.

  • Everything in Free
  • Advanced analytics
  • Priority support
  • Unlimited seats
  • 99.99% uptime SLA
Start free

Self-host

$30k

flat / year · your infrastructure

Run the self-hostable engine on your own servers. Your revenue data never leaves your VPC.

  • Self-hostable core
  • No revenue metering
  • SSO / SAML
  • Dedicated support
  • Data residency
Talk to us

Ship entitlements, not spaghetti.

Install the SDK, map your first entitlement, and check it in under five minutes.