Skip to main content
All events share the same envelope shape. Switch on type and read data.object. See Receiving webhooks for registration and signature verification.

Subscription events

Trigger: A new subscription is created.
Trigger: A trial subscription converts to active (trial period ends, first charge succeeds).
Trigger: A billing cycle completes successfully — card charged or transfer matched.
Trigger: The first renewal attempt fails. Dunning starts.
Trigger: All dunning retries exhausted. Grace period begins.
Trigger: Grace period expired without payment. Access is revoked.
Trigger: An outstanding invoice is paid (card retry succeeded or bank transfer matched) while the subscription is in past_due or grace. Access is restored.
Trigger: Subscription is paused via the API. Billing stops. Access revoked.
Trigger: A paused subscription is resumed. Billing restarts.
Trigger: Subscription is canceled (at period end or immediately).
Trigger: Customer’s plan is upgraded (move to higher-priced plan).
Trigger: Customer’s plan is downgraded (move to lower-priced plan).
Trigger: Plan changed to a plan of equal price (lateral move).
Trigger: A plan change is queued for the end of the current period.
Trigger: A scheduled plan change is canceled before it fires.

Invoice events

Trigger: A new invoice is created (at renewal or from a plan change proration).
Trigger: Invoice is fully paid — card charged or transfer matched in full.
Trigger: A transfer was received but only covers part of the invoice.
Trigger: Invoice is voided (canceled before collection).

Transfer events

Trigger: An inbound bank transfer was matched to an open invoice and paid it in full.
Trigger: A transfer arrived for less than the invoice amount. Invoice moves to partially_paid.
Trigger: A transfer arrived from a virtual account but there’s no open invoice to match it to.
Resolve via POST /admin/suspense/:id/resolve.