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. Returns your externalId if you provided one when creating the customer, otherwise returns the Commet publicId.

externalIdstring

Your external ID for this customer. Only included if you set an externalId when creating the 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": "user_123",
    "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