Dodo Payments proporciona notificaciones de webhook en tiempo real para mantenerte informado sobre eventos críticos relacionados con transacciones, suscripciones, reembolsos, disputas y gestión de claves de licencia. A continuación, se presenta una guía detallada de estos eventos, categorizados para mayor claridad, junto con consejos y consideraciones de implementación.
Eventos de Pago
| Nombre del evento | Tipo de evento | Descripción |
|---|
| Pago realizado con éxito | payment.succeeded | Se activa cuando un pago se procesa correctamente. |
| Pago fallido | payment.failed | Ocurre cuando un intento de pago falla debido a errores, tarjetas rechazadas u otros problemas. |
| Pago en proceso | payment.processing | Indica que un pago se está procesando actualmente. |
| Pago cancelado | payment.cancelled | Se activa cuando un pago se cancela antes de completarse. |
Eventos de Reembolso
| Nombre del evento | Tipo de evento | Descripción |
|---|
| Reembolso realizado con éxito | refund.succeeded | Se activa cuando un reembolso se procesa correctamente. |
| Reembolso fallido | refund.failed | Ocurre cuando un intento de reembolso falla debido a errores de procesamiento u otros problemas. |
Eventos de Disputa
| Nombre del evento | Tipo de evento | Descripción |
|---|
| Disputa abierta | dispute.opened | Se activa cuando un cliente inicia una disputa. |
| Disputa expirada | dispute.expired | Indica que una disputa expiró sin resolución. |
| Disputa aceptada | dispute.accepted | Se activa cuando un comerciante acepta la disputa. |
| Disputa cancelada | dispute.cancelled | Ocurre cuando el cliente o el sistema cancelan una disputa. |
| Disputa impugnada | dispute.challenged | Se activa cuando un comerciante impugna una disputa. |
| Disputa ganada | dispute.won | Indica que el comerciante ha ganado con éxito una disputa. |
| Disputa perdida | dispute.lost | Ocurre cuando el comerciante pierde una disputa. |
Eventos de Suscripción
| Nombre del evento | Tipo de evento | Descripción |
|---|
| Suscripción activa | subscription.active | Indica que una suscripción está activa y se han programado cargos recurrentes. |
| Suscripción actualizada | subscription.updated | Se activa cuando se actualiza cualquier campo de la suscripción (sincronización en tiempo real sin sondeo). |
| Suscripción en espera | subscription.on_hold | Se activa cuando una suscripción se pone temporalmente en espera debido a una renovación fallida. |
| Suscripción renovada | subscription.renewed | Ocurre cuando una suscripción se renueva con éxito. |
| Plan de suscripción cambiado | subscription.plan_changed | Se activa cuando una suscripción se actualiza a una versión superior, inferior o se modifica con complementos distintos. |
| Suscripción cancelada | subscription.cancelled | Se activa cuando el comerciante o el cliente cancelan una suscripción. |
| Suscripción fallida | subscription.failed | Indica una suscripción fallida. Esto significa que no pudimos crear un mandato. |
| Suscripción expirada | subscription.expired | Se activa cuando una suscripción alcanza el final de su período y expira. |
Eventos de Clave de Licencia
| Nombre del evento | Tipo de evento | Descripción |
|---|
| Clave de licencia creada | license_key.created | Se activa cuando se crea una nueva clave de licencia para un producto. |
Eventos de Concesión de Derechos
| Nombre del Evento | Tipo de Evento | Descripción |
|---|
| Grant Created | entitlement_grant.created | Se crea una nueva concesión de derechos para un cliente. Las concesiones de clave de licencia llegan delivered; las concesiones basadas en OAuth (Discord, GitHub, Notion) llegan pending. |
| Grant Delivered | entitlement_grant.delivered | La entrega de la concesión se completa: se emite la clave de licencia, se resuelven los enlaces de archivo o se concede acceso a la plataforma. |
| Grant Failed | entitlement_grant.failed | Fallo en la entrega de la concesión; inspecciona error_code y error_message. |
| Grant Revoked | entitlement_grant.revoked | Se retira el acceso; inspecciona revocation_reason (estado de suscripción, reembolso, cambio de plan o manual). |
Para esquemas de carga útil detallados, eventos de muestra y la referencia completa revocation_reason, consulta Entitlement Grant Webhooks.
Eventos de Crédito
| Nombre del Evento | Tipo de Evento | Descripción |
|---|
| Crédito Añadido | credit.added | Se activa cuando se otorgan créditos a un cliente (suscripción, único, complemento o API). |
| Crédito Deducido | credit.deducted | Ocurre cuando se consumen créditos a través de uso o débito manual. |
| Crédito Expirado | credit.expired | Se activa cuando los créditos no utilizados expiran después del período de vencimiento configurado. |
| Crédito Acumulado | credit.rolled_over | Ocurre cuando créditos no utilizados se transfieren a un nuevo otorgamiento al final del ciclo. |
| Renuncia de Acumulación | credit.rollover_forfeited | Se activa cuando se pierden créditos porque se alcanzó el máximo de acumulación. |
| Cargo por Exceso | credit.overage_charged | Ocurre cuando se aplican cargos por exceso para uso más allá de saldo cero. |
| Reinicio de Exceso | credit.overage_reset | Se activa cuando se reinician los cargos acumulados por exceso (por ejemplo, al inicio de un nuevo ciclo de facturación). |
| Ajuste Manual | credit.manual_adjustment | Se activa cuando se realiza un ajuste manual de crédito o débito. |
| Saldo Bajo | credit.balance_low | Se activa cuando el saldo de crédito cae por debajo del umbral configurado. |
Eventos de Recuperación
| Nombre del Evento | Tipo de Evento | Descripción |
|---|
| Abandoned Checkout Detected | abandoned_checkout.detected | Se activa cuando se detecta un checkout incompleto o fallido después de 60 minutos. |
| Abandoned Checkout Recovered | abandoned_checkout.recovered | Ocurre cuando un cliente completa el pago a través de un enlace de recuperación. |
Para esquemas de carga útil detallados, descripciones de campos y ejemplos de controladores, consulta Webhooks de Recuperación.
Eventos de Cobro de Morosidad
| Nombre del Evento | Tipo de Evento | Descripción |
|---|
| Dunning Started | dunning.started | Se activa cuando comienza un intento de cobro de morosidad para una suscripción que estuvo en espera o fue cancelada. |
| Dunning Recovered | dunning.recovered | Ocurre cuando un cliente actualiza su método de pago y el cargo resultante tiene éxito. |
Para esquemas de carga útil detallados, descripciones de campos y ejemplos de controladores, consulta Recovery Webhooks.
Estos eventos de webhook están diseñados para proporcionar a los comerciantes actualizaciones críticas para gestionar sus operaciones de manera efectiva. Implementa controladores robustos para cada evento relevante en tu integración de webhook para asegurar una funcionalidad fluida y confiable. Last modified on May 22, 2026