Every subscription state, one entitlement you can trust
Trials, renewals, refunds, and recovery. One verified answer to what each customer can access.
- Server-trusted entitlements
- Grace + dunning built in
- Cross-platform by default
The subscription lifecycle
Messy store states, one clean answer
Trial, renewal, grace, recovery. Every store event resolves to the access your customer has now.
7-day free trial. Entitled from minute one; billed only if it converts.
Paid and current. $8.99/mo, renews day 214.
Auto-renewal cleared. Entitlement extends without a round-trip.
Payment failed. Grace period keeps access on while retries run.
Grace expired. Entitlement revoked the moment the window closes.
A win-back offer re-subscribes them; access is restored instantly.
Server-trusted access
One check. Granted or revoked. Never guessed.
Check access against verified store receipts. Refunds and expired grace periods update the entitlement.
- Computed from verified receipts
- Refund revokes on the store event
- Deterministic, cache-friendly reads
- Product
- pro_annual
- Renews
- in 214 days
- Platform
- iOS · synced
- Store
- App Store
Grace & dunning
Paying users stay unlocked while the retry runs
Keep access open during the store’s grace period. Restore it when payment recovers.
Collected MRR + the slice grace & Smart Retries 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.
One customer identity. Consistent access across iOS, Android, and your backend.
- Keyed to your app_user_id
- Instant sync after purchase
- Survives reinstall & device swap

Less noise. More done.
Make space for your best ideas.
Edge cases handled
The billing states that break spreadsheets
“CashSDK gives us one entitlement to check, and grace periods and refunds just resolve correctly.”
Model every subscription state correctly
Trials, renewals, grace, and refunds resolve to one entitlement your app can trust. Wire it up in an afternoon.