subscription.updated
Se dispara cuando cambian los detalles de la suscripción, incluyendo cuando se agenda una cancelación.
Payload
All webhook payloads follow a consistent top-level structure with event-specific data nested within the data object.
The subscription ID.
The customer ID. Returns your externalId if you provided one when creating the customer, otherwise returns the Commet publicId.
Your external ID for this customer. Only included if you set an externalId when creating the customer.
Current status. When cancellation is scheduled, this is still "active" — the subscription remains usable until endDate.
ISO 8601 datetime when cancellation was requested. Present when cancellation is scheduled, null otherwise.
The reason for cancellation, if provided.
ISO 8601 datetime when the subscription will end. Present when cancellation is scheduled — this is the date access should be revoked (via subscription.canceled).
{
"event": "subscription.updated",
"timestamp": "2026-04-20T10:15:00.000Z",
"organizationId": "org_abc123",
"data": {
"subscriptionId": "sub_1a2b3c4d",
"customerId": "user_123",
"externalId": "user_123",
"status": "active",
"canceledAt": "2026-04-20T10:15:00.000Z",
"cancelReason": "Too expensive",
"endDate": "2026-04-25T00:00:00.000Z"
}
}Detectando cancelación agendada
Cuando un cliente cancela, subscription.updated se dispara con status: "active" pero con canceledAt y endDate seteados. Esto indica que la suscripción sigue siendo usable pero termina pronto. Muestra un aviso como "tu suscripción termina el {endDate}" en tu UI.
El acceso solo debe revocarse cuando recibes subscription.canceled (status: "canceled").
¿Cómo está esta guía?