Skip to main content
Subscription webhooks use a dedicated envelope. The top-level event is always subscription; the concrete event name is in data.event_type.

Example delivery payload

Failure events include the same subscription fields plus retry context such as attempt_number and failure_reason.

Events emitted today

  • subscription.created
  • subscription.started
  • subscription.renewed
  • subscription.updated
  • subscription.canceled
  • subscription.payment_failed
  • subscription.past_due
  • subscription.trial_will_end
  • subscription.chargeback_received

Handling guidance

  • Deduplicate by the top-level event id.
  • Use data.event_type to route each event to the correct handler.
  • Use data.status for the current subscription state.
  • Use latest_transaction for the billing transaction linked to the event.
  • Use the UUID in data.id as the subscription identifier.
  • Reconcile with GET /v2/subscriptions/{id} if delivery or processing is interrupted.