Skip to documentation
Open dashboard
Docs/Start here

CherrySub from A to Z

How CherrySub fits together, what is available, and which path to follow.

Download this chapter
On this page

CherrySub connects App Store and Google Play purchases to customer access and subscription reporting. A project contains your team and apps. Each app connects store identities, credentials, products, customers, and delivery settings.

This handbook covers the hosted dashboard, the public-client SDKs, the trusted server integration, the CLI, the HTTP APIs, and self-hosted operation. It documents the current staging preview, reviewed against the implementation on September 9, 2026. Read release status before planning a production rollout.

Choose your starting point

Your taskStart hereYou will finish with
Integrate a new appFirst verified purchaseA sandbox transaction and an active access level
Connect an existing storeApp Store, Google Play, or CLIAn app credential and a notification plan
Add purchase handlingAuthentication, then your SDK guideA customer token, safe purchase submission, and completion
Investigate a customerCustomersThe relevant identity, transaction, access state, and evidence
Understand a chartCharts, metric definitions, and cohortsThe correct filters, denominator, currency, and time window
Receive backend updatesWebhooksA signature-verified, idempotent receiver
Operate the serviceSelf-hosting and securityA configured origin, recovery procedure, and monitoring plan

The product model

ConceptMeaningExample
ProjectMembership and app ownership boundaryA company or product team
AppOne CherrySub app, with an Apple identity, Google identity, or bothYour iOS and Android product
ProductA store SKUpro.monthly
Access levelA stable capability your application checkspro
Product access mappingA versioned rule connecting a SKU to accessApple pro.monthly grants pro
Product setAn ordered presentation of packagesdefault
PackageA named slot in a product setmonthly_ios
App User IDAn identity chosen by your authenticated applicationAn opaque user UUID
CustomerCherrySub's app-scoped identity recordThe aliases, purchases, and access for that user
EventImmutable evidence of a verified observation or derived changeA receipt observation or access.changed
TransactionThe current projection of a store purchaseA particular purchase or renewal

Use these names consistently. A product set controls presentation; an access level controls access. Creating one does not create the other. CherrySub does not create store SKUs when you register products in its dashboard.

How a purchase becomes access

  1. Your app authenticates the user with your backend.
  2. Your backend mints a customer token using an app secret key.
  3. Your app purchases through StoreKit or Google Play Billing.
  4. The SDK submits the signed transaction or purchase token to CherrySub.
  5. CherrySub verifies the store evidence, app identity, and customer-token subject before writing an event.
  6. In the same transaction, it updates purchase ownership, store projections, mapped access, and any matching outbound delivery work.
  7. The SDK completes the storefront purchase after backend acceptance. Your app reads the subscriber's access levels.
  8. Store notifications and reconciliation provide later authoritative observations for renewals, refunds, and missed changes.

A cancelled subscription can remain active until its verified expiry. An inactive grant from one product does not remove access supplied by another active grant. Use the subscriber response for the current access decision.

What the current preview includes

The dashboard provides projects, apps, account and team management, store credentials, API keys, products, access mappings, product sets, customers and notes, transactions, events, charts, saved analyses, exports, and webhook delivery inspection. The CLI automates credential setup and basic project/app administration.

Swift, Kotlin, Dart, TypeScript, Flutter storefront adapters, and a trusted Go package are implemented in the source repository. Their existing AppVisionOS package names are intentional. Public package registry publication is not available in this preview; SDK guides describe source-based integration.

This release is not a hosted paywall editor, experimentation service, tax/proceeds calculator, or store refund-issuance console. Those capabilities must not be inferred from a similarly named RevenueCat feature. See limits and release status for the precise boundaries.

Read the whole handbook

Use the chapter navigation to read in order, or search by a screen, metric, API field, or error. Download the complete handbook to keep every chapter together. The OpenAPI contract is available separately for tooling.