Commet
  • Pricing
Log InTry out
Introducción

Eventos de Suscripción

subscription.createdsubscription.activatedsubscription.canceledsubscription.updatedsubscription.plan_changed

Eventos de Pago

payment.receivedpayment.failed

Eventos de Recibo

invoice.created
DocumentaciónRecursosConstruir con AIAPI ReferenceWebhooks

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.

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.

statusstring

Current status. When cancellation is scheduled, this is still "active" — the subscription remains usable until endDate.

canceledAtstring | null

ISO 8601 datetime when cancellation was requested. Present when cancellation is scheduled, null otherwise.

cancelReasonstring | null

The reason for cancellation, if provided.

endDatestring | null

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?

subscription.canceled

Se dispara cuando una suscripción termina al final del período de cobro. Revoca el acceso acá.

subscription.plan_changed

Se dispara cuando una suscripción cambia de plan