Skip to content

Receipts in. Revenue and access levels out.

CherrySub verifies App Store and Google Play events, turns them into one signed history, and keeps access, revenue, and system health attached to the event that changed them.

Sandbox and production histories stay isolated by design.

Verify

signed

Authenticity, ordering, and replay protection at the store boundary.

Resolve

pro · active

One stable access model across products, plans, and stores.

Explain

evt_73f1

Every customer state and metric keeps its source identity.

One subscription history, used four ways.

Connect the stores once. CherrySub preserves the source fact, applies your product rules, and maintains the views each team needs without creating parallel versions of the truth.

Normalize
Two stores become one event model.
Store-specific payloads are verified, deduplicated, and reconciled before they reach product logic.
Entitle
Products change. Access names do not.
Pricing and store identifiers map into app-owned permissions.
Deliver
The signed event carries the answer.
Your endpoint receives the fact, reason, and resolved access state together.
CherrySub-Signature: t=1755518400,v1=9f2c…
{
  "type": "subscription.renewed",
  "reason": "billing_retry_recovered",
  "access_levels": { "pro": "active" }
}
Analyze
Maintained numbers, not detached exports.
Revenue metrics carry their definition, source events, and freshness.
Current periodPrevious periodsynced 2m ago
Health
A green connection is not enough.
Receipt, verification, mapping, and delivery report independently.
Store connectedCredentials acceptedyes
Events receivingLast message 1.2s agolive
!Product mapped1 legacy ID needs reviewopen

Store products are inputs. Your product model is the contract.

Keep store-specific validation and identifiers at the edge. Let every client, chart, and support workflow ask the same stable questions.

Store-shaped subscription logic

Apple and Google identifiers leak into client code.
Pricing changes require access-logic changes.
Support reconstructs state from purchase screenshots.

App-owned subscription logic

The app asks has("pro") on every platform.
Products change without changing permissions.
Every access and revenue change keeps its signed reason.

Infrastructure that stays inspectable.

The operational contract is as important as the SDK surface.

01 / deterministic

One event identity

Verification, normalization, access, analytics, and delivery preserve the same traceable ID.

02 / explainable

Every answer has a reason

Current state stays linked to the event and product rule that produced it.

03 / reversible

History remains portable

Signed deliveries, stable exports, and ordered replay keep the ledger useful outside one interface.

Resolve one sandbox purchase through the full stack.

Connect one store, map one product, and watch access, revenue, and health resolve from the same event.