billing.tier_cancelled
Creator cancels their Subscriby subscription.
project_id is always null for billing events.When this fires
The creator cancels their Subscriby tier subscription. The account remains usable until the current period ends.
Required ability
billing:read — token must carry this at mint time to subscribe an endpoint to this event.
Payload
This event has two distinct payload shapes depending on which side initiated the cancellation. Branch on the presence of effective_at versus subscription_id.
{
"id": "evt_01HX...",
"type": "billing.tier_cancelled",
"created_at": "2026-05-18T10:05:00Z",
"api_version": "2026-05-01",
"project_id": null,
"data": {
"creator_id": "2a91c4e7-6f38-4b52-8e0d-9c1a7b3f5d80",
"plan_id": "882b72bb-1eb6-11f0-b4f2-d8bbc173f8c3",
"effective_at": "2026-06-18T00:00:00Z"
}
}{
"id": "evt_01HX...",
"type": "billing.tier_cancelled",
"created_at": "2026-06-18T00:00:05Z",
"api_version": "2026-05-01",
"project_id": null,
"data": {
"creator_id": "2a91c4e7-6f38-4b52-8e0d-9c1a7b3f5d80",
"subscription_id": "sub_1PabcdEFGH",
"plan_id": "882b72bb-1eb6-11f0-b4f2-d8bbc173f8c3",
"status": "canceled",
"canceled_at": "2026-06-18T00:00:00Z"
}
}Field reference
| Field | Type | Notes |
|---|---|---|
id | string ULID | Unique event id, prefixed evt_. Use for idempotent processing. |
type | string | Always billing.tier_cancelled for this event. |
created_at | ISO 8601 timestamp | Server-side emission time. |
api_version | string | Webhook API contract version. |
project_id | null | Always null — account-level event. |
data.creator_id | string UUID | Creator whose tier was cancelled. Present on both shapes. |
data.plan_id | string UUID | null | Tier plan id. Present on both shapes. |
data.effective_at | ISO 8601 timestamp | null | Dashboard shape only. When the cancellation takes effect, i.e. end of paid period. |
data.subscription_id | string | Provider shape only. The provider-side subscription id. |
data.status | string | Provider shape only. Provider subscription status, e.g. canceled. |
data.canceled_at | ISO 8601 timestamp | null | Provider shape only. When the provider recorded the cancellation. |
Caveats
- Expect this event twice for a single cancellation. The dashboard shape fires when the creator cancels; the provider shape fires later, when the period actually ends and the provider deletes the subscription. De-duplicate on
data.creator_idif you only want to act once. - Cancellation does not refund the active period — there is a no-refunds policy on creator tier billing.
- The account does not auto-lock at
effective_atunless past_due conditions also apply; it gracefully drops to the Free tier feature set.
Related events
billing.tier_downgraded— alternative path that retains paid features.billing.invoice_paid— last paid invoice before cancellation.- Billing events overview — back to family overview.
How is this guide?