Skip to main content
subscription.expired is the deprecated flat event for a subscription ending and the subscriber losing access. It requires the read:creator scope, and new integrations use creator.subscription.deactivated instead.
Don’t build new integrations on subscription.expired. It keeps firing during the migration window, after which only creator.subscription.deactivated is delivered. Subscribe to creator.subscription.deactivated and move existing consumers before the window closes.

When this fires

subscription.expired fires when a subscription ends and the subscriber loses access, because the paid period ran out without renewing, a renewal payment failed, or one of the accounts was deleted or banned. subscription.expired is the terminal event in the subscription lifecycle. Where subscription.cancelled tells you a cancellation was scheduled, subscription.expired tells you access has been removed. An expiry is not always preceded by a cancellation, because a failed renewal expires a subscription with no prior subscription.cancelled.

Payload

Example payload