Verify
signedStore authenticity and replay protection.
One verified event model for App Store and Google Play, one access-level check in your app, and delivery tooling that tells you what failed before a customer does.
Six setup steps. Sandbox events stay isolated from production.
Store authenticity and replay protection.
One vocabulary across both stores.
Ordered webhooks with visible attempts.
The setup path is explicit and observable. Each checkpoint produces a testable artifact instead of hiding behind a final green badge.
{
"id": "pro",
"active": true,
"store": "play",
"reason": "renewed",
"periodEnd": "2026-09-19"
}const event = cherry.webhooks.verify({ rawBody: request.body, signature: request.headers.get("CherrySub-Signature") }) switch (event.type) { case "access.changed": await syncAccess(event.customer) }
Keep store-specific validation at the boundary and expose one stable state model to the rest of your codebase.
Verification, normalization, and delivery preserve a traceable identity from store payload to endpoint.
Connected, receiving, mapping, and delivery report separately, so every red state has an owner.
Undelivered work retains order and can be replayed after the destination recovers.
Create an app, connect one store, and see the signed event before adding client code.