Commet
  • Pricing
Log InTry out
Introduction

Subscription Events

subscription.createdsubscription.activatedsubscription.canceledsubscription.updatedsubscription.plan_changed

Payment Events

payment.receivedpayment.failed

Invoice Events

invoice.created
DocumentationKnowledge BaseBuild with AIAPI ReferenceWebhooks

subscription.plan_changed

Fired when a subscription changes plans

Payload

All webhook payloads follow a consistent top-level structure with event-specific data nested within the data object.

subscriptionIdstring

The subscription ID.

customerIdstring

The customer ID.

externalIdstring | null

Your external ID for this customer.

previousPlanobject

The previous plan (id and name).

currentPlanobject

The new plan (id and name).

billingIntervalstring | null

The billing interval (monthly, yearly).

creditnumber | null

Prorated credit in cents from the previous plan.

chargenumber | null

Prorated charge in cents for the new plan.

totalChargednumber | null

Total amount charged in cents.

{
  "event": "subscription.plan_changed",
  "timestamp": "2026-04-15T12:00:00.000Z",
  "organizationId": "org_abc123",
  "data": {
    "subscriptionId": "sub_1a2b3c4d",
    "customerId": "cus_8h9i0j",
    "externalId": "user_123",
    "previousPlan": {
      "id": "plan_starter",
      "name": "Starter"
    },
    "currentPlan": {
      "id": "plan_pro",
      "name": "Pro"
    },
    "billingInterval": "monthly",
    "credit": 1500,
    "charge": 4900,
    "totalCharged": 3400
  }
}

How is this guide?

subscription.updated

Fired when subscription details change

payment.received

Fired when a recurring payment is processed