Skip to main content

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
For subscriptions scheduled to cancel at the end of the billing period, see the subscription.cancel_scheduled event instead.

Payload Structure

{
  "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