Skip to main content
subscription.expired is deprecated. Use creator.subscription.deactivated instead. This event continues to fire during the migration window; new integrations should use the creator.* event.

When this fires

Triggered (subscription.expired) when a subscription actually ends and the subscriber loses access — the paid period ran out without renewing, a renewal payment failed, or one of the accounts was deleted or banned. This is the terminal event in the subscription lifecycle. Where subscription.cancelled tells you a cancellation was scheduled, subscription.expired tells you access has now been removed. Note that an expiry is not always preceded by a cancellation — a failed renewal expires a subscription with no prior subscription.cancelled.
Requires the read:creator scope.

Payload

  • recipientUuid: UUID of the creator who was subscribed to
  • subscriberUuid: UUID of the fan whose subscription expired
  • reason: Why it ended. One of payment_failed, not_renewed, user_deleted, user_banned, other.
  • expiredAt: ISO 8601 time access was removed
  • clientReferenceId: The attribution reference captured on the original subscription purchase, echoed here so churn events carry the same attribution as the subscription.new event. Omitted when the subscription was not attributed. See Checkout Attribution.
  • metadata: The custom metadata captured on the original subscription purchase, echoed here. Omitted when none was set.
  • timestamp: ISO 8601 time the event was emitted

Example payload

{
  "recipientUuid": "f4b2a184-2b4a-4a04-9b70-3c0e0a1caa12",
  "subscriberUuid": "5939ae62-3eb5-4433-954f-f78c7b4282f3",
  "reason": "payment_failed",
  "expiredAt": "2026-06-19T08:39:33.139Z",
  "clientReferenceId": "crm-contact-8821",
  "metadata": {
    "campaign": "spring-promo"
  },
  "timestamp": "2026-06-19T08:39:33.310Z"
}