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

# Subscription Cancelled

## Overview

The `subscription.cancelled` webhook is triggered when a subscription is cancelled in your Metrifox account. This event is sent when a subscription is immediately cancelled (not scheduled for future cancellation).

## When It's Triggered

This event is sent immediately after a subscription is successfully cancelled, which can happen when:

* A customer cancels their subscription immediately
* A subscription is cancelled through the API
* A subscription is cancelled manually in the dashboard
* A subscription is cancelled due to payment failure or other reasons

<Note>
  For subscriptions scheduled to cancel at the end of the billing period, see the `subscription.cancel_scheduled` event instead.
</Note>

## Payload Structure

```json theme={null}
{
  "id": "550e8400-e29b-41d4-a716-446655440005",
  "type": "subscription.cancelled",
  "created_at": 1704067500000,
  "data": {
    "subscription": {
      "id": "sub_12345",
      "customer_id": "cust_67890",
      "customer_key": "cust_ext_67890",
      "tenant_id": "tenant_abc",
      "order_id": "order_001",
      "plan_id": "plan_456",
      "status": "canceled",
      "currency_code": "USD",
      "subscription_number": "sub_123",
      "starts_at": "2026-01-01T00:00:00.000Z",
      "ends_at": "2026-02-01T00:00:00.000Z",
      "renews_at": "2026-02-01T00:00:00.000Z",
      "paused_at": null,
      "cancelled_at": "2026-01-20T00:00:00.000Z",
      "metadata": {},
      "created_at": "2026-01-01T00:00:00.000Z",
      "updated_at": "2026-01-20T00:00:00.000Z",
      "price_option_id": "price_opt_001",
      "trial_end_date": null,
      "converted_at": null,
      "billing_interval": "month",
      "billing_interval_value": 1,
      "renew_date_anchor": 1
    },
  }
}
```

## Data Fields

The `data.subscription` object contains the subscription record with cancellation details:

* `id`: Internal subscription ID
* `customer_id`: ID of the customer who owns the subscription
* `customer_key`: Your external customer identifier
* `tenant_id`: The tenant ID this subscription belongs to
* `order_id`: Order ID that created the subscription
* `plan_id`: ID of the plan associated with this subscription
* `status`: Subscription status
* `currency_code`: Currency code (e.g., "USD", "NGN")
* `subscription_number`: Subscription number
* `starts_at`: Subscription start timestamp
* `ends_at`: Subscription end timestamp (if scheduled to end)
* `renews_at`: Next renewal timestamp
* `paused_at`: Pause timestamp (if paused)
* `cancelled_at`: Cancellation timestamp (if cancelled)
* `metadata`: Custom metadata object
* `created_at`: Timestamp when the subscription was created
* `updated_at`: Timestamp when the subscription was last updated
* `price_option_id`: Price option ID
* `trial_end_date`: Trial end timestamp (if applicable)
* `converted_at`: Conversion timestamp (if converted)
* `billing_interval`: Billing interval (e.g., "month")
* `billing_interval_value`: Billing interval value
* `renew_date_anchor`: Renewal day of month anchor

## Example Use Cases

* Deactivate features in your application for the customer
* Send cancellation confirmation emails
* Update user access levels
* Trigger retention workflows
* Update analytics and reporting
* Sync cancellation data to your CRM
