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.canceled

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

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

Always "canceled" for this event. Revoke access when you receive this.

canceledAtstring

ISO 8601 datetime when the customer originally requested cancellation.

cancelReasonstring | null

The reason for cancellation, if provided.

endDatestring

ISO 8601 datetime when the subscription ended (matches the billing period end).

{
  "event": "subscription.canceled",
  "timestamp": "2026-04-25T00:00:00.000Z",
  "organizationId": "org_abc123",
  "data": {
    "subscriptionId": "sub_1a2b3c4d",
    "customerId": "user_123",
    "externalId": "user_123",
    "status": "canceled",
    "canceledAt": "2026-04-20T10:15:00.000Z",
    "cancelReason": "Too expensive",
    "endDate": "2026-04-25T00:00:00.000Z"
  }
}

Ciclo de vida de la cancelación

Las cancelaciones en Commet siempre se agendan para el final del período de cobro actual. Se disparan dos eventos en momentos distintos:

MomentoEventostatusQué hacer
El cliente solicita la cancelaciónsubscription.updatedactiveMuestra "termina el {endDate}" en tu UI. NO revoques el acceso.
Termina el período de cobrosubscription.canceledcanceledRevoca el acceso.
POST /subscriptions/{id}/cancel
  └→ subscription.updated  (status: "active", canceledAt: set, endDate: set)
       ... pasa el tiempo hasta que termina el período de cobro ...
  └→ subscription.canceled (status: "canceled")

¿Cómo está esta guía?

subscription.activated

Se dispara cuando una suscripción se activa después del pago

subscription.updated

Se dispara cuando cambian los detalles de la suscripción, incluyendo cuando se agenda una cancelación.