Subscription state changes
Choose published lifecycle events and reconcile subscription access.
The public webhook specification currently lists subscription.created,
subscription.activated, subscription.canceled, and subscription.renewed.
It does not publish a subscription.updated webhook contract.
Choose a published event
Use the subscription event catalogue for schemas and examples. Do not subscribe to an undocumented generic update event on the basis of an older guide.
Reconcile access
A subscription lifecycle notification is not automatically proof of payment. Fetch the
current subscription through the API and inspect its status and effective period or
cancellation dates before granting or revoking access. Use invoice.paid for an
invoice-based fulfilment workflow; avoid applying the same business effect from two events.
Verify the raw signature, accept work into a durable inbox, and use a business
idempotency key. Do not rely on event order or assume previous_attributes is present.
Owner: david · Reviewed 30 Sep 2026 · Next review 30 Oct 2026