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?