> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cope.com/llms.txt
> Use this file to discover all available pages before exploring further.

# subscription.cancelled

> A subscription has been cancelled, and `cancellation_reason` says why.

# subscription.cancelled

> Generated from COPE public event contracts. Do not edit this page by hand.

Use this event to stop expecting renewals on a subscription and to end whatever you grant alongside it. You receive it once per subscription. A cancellation the buyer or COPE support asked for through COPE arrives when it is accepted: the subscription keeps running and the buyer keeps access until `access_until`, so do not revoke anything before that date. Every other ending — one you asked for through the cancel endpoint, renewal payments that kept failing, or a cancellation made directly at the payment processor — arrives when the subscription has already ended, and `access_until` is when it ended. `cancellation_reason` is one of `buyer_cancel`, `admin_cancel`, `business_cancel` and `payment_failed`, and those four are the whole list. The body names the business, the order, the line item and the subscription, each as `object` and `id`; store `subscription.id` to match later events on the same subscription, and read everything else about them through the API.

## Delivery Contract

| Field        | Value                                                                                                   |
| ------------ | ------------------------------------------------------------------------------------------------------- |
| Encoding     | JSON: `id`, `type`, `version`, `source`, `created_at`, `data`                                           |
| Delivery     | At least once                                                                                           |
| Idempotency  | Deduplicate on `id`: every retry and replay of this event repeats it, and `X-Cope-Event-Id` carries it. |
| Source       | `cope.subscription`                                                                                     |
| Category     | Subscriptions                                                                                           |
| Availability | Available in the public webhook reference.                                                              |
| Schema title | subscription.cancelled webhook body                                                                     |
| Schema ID    | `https://schemas.cope.com/webhooks/subscription.cancelled/v1`                                           |

## Payload Fields

| Field                 | Required | Type     | Allowed Values                                                      | Description                                                                                             |                                                                 |
| --------------------- | -------- | -------- | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| `access_until`        | yes      | \`string | null\`                                                              | -                                                                                                       | When the buyer's access ends. Do not revoke anything before it. |
| `business`            | no       | `object` | -                                                                   | The business that sold the subscription.                                                                |                                                                 |
| `cancellation_reason` | yes      | `string` | `buyer_cancel`, `admin_cancel`, `business_cancel`, `payment_failed` | Who or what ended it: the buyer, COPE support, you, or renewal payments that kept failing.              |                                                                 |
| `cancelled_at`        | yes      | `string` | -                                                                   | When the cancellation was accepted, or when the subscription ended if nobody asked for it through COPE. |                                                                 |
| `line_item`           | no       | `object` | -                                                                   | The order line the subscription belongs to.                                                             |                                                                 |
| `order`               | no       | `object` | -                                                                   | The order the subscription was bought on.                                                               |                                                                 |
| `subscription`        | no       | `object` | -                                                                   | The subscription. Absent when the event names no subscription id of the right shape.                    |                                                                 |

## Example delivery

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "created_at": "2026-08-19T13:47:27Z",
  "data": {
    "access_until": "2026-09-01T08:00:00Z",
    "business": {
      "id": "biz_g7-Jq2PxT_4mRvNa",
      "object": "business"
    },
    "cancellation_reason": "buyer_cancel",
    "cancelled_at": "2026-08-19T13:47:26Z",
    "line_item": {
      "id": "li_4nHs8QwZ2pLk7XcY",
      "object": "line_item"
    },
    "order": {
      "id": "ord_V7kP2mQx9RtL",
      "object": "order"
    },
    "subscription": {
      "id": "ps_Gm3Tq8ZrW1bN",
      "object": "subscription"
    }
  },
  "id": "3b9e0d57-8c1f-4a62-a7e3-5f2d6b9c1e08",
  "source": "cope.subscription",
  "type": "subscription.cancelled",
  "version": "v1"
}
```

## Compatibility

Fields may be added within the same major version. Removing or changing the meaning of a documented field requires a new event version.
