Purpose
Thesubscription.inactive webhook is triggered at the moment a Subscription stops being active — the point at which you can stop providing service to the customer.
This differs from the order-scoped lifecycle webhooks:
order.endfires whenever an order reaches its end date, including orders that are immediately replaced by a closed renewal — service may continue uninterrupted.order.terminatedfires when a termination is recorded, which can be well before it takes effect — service continues until the termination date.
subscription.inactive fires only when service entitlement actually ends. The payload includes a reason field:
Timing and delivery
- No backfill — only subscriptions that go inactive after you enable the webhook will fire. Enabling it will not send events for subscriptions that lapsed in the past.
- Exactly one event per transition — if a subscription is revived after the event fired (a late renewal is closed, or a terminated order is reinstated) and later goes inactive again, a new event fires for the new inactive date. Use
order.completeto observe the revival itself. - Automatic retries — failed deliveries are retried hourly until they succeed.
Payload format
Your configured endpoint will receive a Subscription Inactive payload, containing thereason, the inactive_at timestamp, the full subscription, and the subscription’s final order.