CashSDKCashSDK
Subscriptions

Every subscription state, one entitlement you can trust

Trials, renewals, grace periods, refunds, and win-backs are messy across the stores. CashSDK reconciles them into a single server-trusted answer to what each user can access — the same answer on iOS, Android, and web.

  • Server-trusted entitlements
  • Grace + dunning built in
  • Cross-platform by default

The subscription lifecycle

Messy store states, one clean answer

A subscription is a clock, not a flag. It starts a trial, converts, renews, misses a payment and enters grace, recovers or churns, and sometimes comes back on a win-back offer. CashSDK models every transition from the store server notifications so your app only ever asks one question: is this user entitled right now?

Server-trusted access

One check. Granted or revoked. Never guessed.

Your client never decides who's Pro — it asks CashSDK, and the answer is computed server-side from verified store receipts. When a refund, chargeback, or grace expiry lands, the entitlement flips to revoked before the next check returns. No stale flags, no client trust.

  • Computed from verified receipts
  • Refund revokes on the store event
  • Deterministic, cache-friendly reads
Pro entitlement
app_user_id: u_812
Active
Product
pro_annual
Renews
in 214 days
Platform
iOS · synced
Store
App Store
entitled: true

Grace & dunning

Paying users stay unlocked while the retry runs

A failed renewal isn't a churned customer. CashSDK opens the store's grace window, keeps the entitlement live while Smart Retries work, and only revokes if the window truly closes — then reopens access the instant payment recovers.

Billing recovery73% recovered
Failed
Retry
Recovered
Revenue saved this month+$5,280
Revenue recovered73% recovered

Collected MRR + the slice grace & Smart Retries saved

Collected Recovered
+$5,280 saved

Trials & offers

Trials, intro pricing, and win-backs without the timer math

Every offer type the stores support, modeled for you and resolved into one current entitlement.

Free trials

Entitled from the first tap; billed only on conversion. Trial state is tracked for you.

Intro offers

Discounted first period or pay-as-you-go intro pricing, modeled per store.

Win-back offers

Re-engage churned users with an offer that restores entitlement the moment it's redeemed.

Upgrades & downgrades

Plan changes and proration the stores' way, resolved into one current entitlement.

Cross-platform

Bought on iOS. Unlocked on the web.

A subscription purchased in the iOS app entitles the same person in your Android app and your web app — because entitlement lives on the CashSDK server, keyed to your app_user_id, not to a store or a device. Reconciliation is instant after purchase and survives reinstalls.

  • Keyed to your app_user_id
  • Instant sync after purchase
  • Survives reinstall & device swap
A person holding a phone showing a subscription renewal

Unlock Pro

Everything you need, no limits.

Unlimited projects
Advanced analytics
Priority support
AnnualSAVE 40%
$59.99 / year
Monthly
$8.99 / month

Cancel anytime · Restore purchase

entitlement keyed to app_user_id: u_812
iOSpurchased
Androidunlocked
Webunlocked

Edge cases handled

The billing states that break spreadsheets

By hand
With CashSDK
Upgrades and proration
Manual math per store
Prorated automatically
Trials
Timers you track yourself
Trial state built in
Grace period
Locked-out paying users
Access kept during retries
Refunds
Access lingers after refund
Revoked on the refund event
Cross-platform
Separate state per store
One entitlement everywhere
CashSDK gives us one entitlement to check, and grace periods and refunds just resolve correctly.
Elena Duarte · Head of Subscriptions

Model every subscription state correctly

Trials, renewals, grace, and refunds resolve to one entitlement your app can trust. Wire it up in an afternoon.