Skip to main content

One event to sync access

Instead of handling every lifecycle event (subscription.activated, subscription.canceled, trial.expired, …) to keep your access flags in sync, handle this single event. Every entitlement transition fires it with the customer’s current state, computed at delivery time:

Handling the payload

Use status as the access gate (trialing and active grant access), features for per-feature limits, and credits/balance for consumption headroom on credits/balance plans. The payload reflects the state at delivery time — if two transitions happen back to back, the later event always carries the final state, so processing events in timestamp order converges to the correct result. See Plan Grants for the temporary access lifecycle.

Body

application/json
id
string
required
event
string
required
Allowed value: "customer.state_changed"
timestamp
string
required
organizationId
string
required
mode
enum<string>
required
Available options:
live,
sandbox
apiVersion
string
required
data
object
required

Response

200

Return any 2xx status code to acknowledge receipt of the event.