# Tipos de evento

> Los 50 tipos de evento que Trevol manda a tus webhooks, agrupados por documento, con cuándo se emite cada uno.

Fuente: https://platform.trevol.si/docs/webhooks/eventos

Cada evento tiene la forma `{id, object: "event", type, timestamp, environment, api_version, data}`. El `data` es un resumen: nunca los datos del comprador, del vendedor ni del trabajador. Cómo recibirlos y verificarlos: [Webhooks](/docs/webhooks). La referencia de los objetos (`Event`, `DocumentEventData`…) está en [Objetos](/docs/api/objetos#Event).

## invoice

| Tipo | Cuándo |
| --- | --- |
| `invoice.accepted` | La DIAN validó la factura. Pasa por cualquier camino (API, app, conector o verificación de fondo). |
| `invoice.rejected` | La DIAN rechazó la factura. Corrígela con PUT y se reenvía con el mismo número. |
| `invoice.error` | La factura quedó en error: la DIAN no confirmó y Trevol dejó de reintentar. `data.error` lleva un `code` y un texto fijo (nunca el mensaje de la DIAN). |
| `invoice.delivered` | La factura ya tiene PDF, ZIP y un correo en estado final (la primera vez). |
| `invoice.email_bounced` | El correo de la factura rebotó o el comprador lo marcó como queja (`delivery.email.status`: `bounced` o `complained`). |
| `invoice.email_failed` | El correo de la factura falló de forma definitiva (`delivery.email.status`: `failed`). |

## credit_note

| Tipo | Cuándo |
| --- | --- |
| `credit_note.accepted` | La DIAN validó la nota crédito. Pasa por cualquier camino (API, app, conector o verificación de fondo). |
| `credit_note.rejected` | La DIAN rechazó la nota crédito. Corrígela con PUT y se reenvía con el mismo número. |
| `credit_note.error` | La nota crédito quedó en error: la DIAN no confirmó y Trevol dejó de reintentar. `data.error` lleva un `code` y un texto fijo (nunca el mensaje de la DIAN). |
| `credit_note.delivered` | La nota crédito ya tiene PDF, ZIP y un correo en estado final (la primera vez). |
| `credit_note.email_bounced` | El correo de la nota crédito rebotó o el comprador lo marcó como queja (`delivery.email.status`: `bounced` o `complained`). |
| `credit_note.email_failed` | El correo de la nota crédito falló de forma definitiva (`delivery.email.status`: `failed`). |

## debit_note

| Tipo | Cuándo |
| --- | --- |
| `debit_note.accepted` | La DIAN validó la nota débito. Pasa por cualquier camino (API, app, conector o verificación de fondo). |
| `debit_note.rejected` | La DIAN rechazó la nota débito. Corrígela con PUT y se reenvía con el mismo número. |
| `debit_note.error` | La nota débito quedó en error: la DIAN no confirmó y Trevol dejó de reintentar. `data.error` lleva un `code` y un texto fijo (nunca el mensaje de la DIAN). |
| `debit_note.delivered` | La nota débito ya tiene PDF, ZIP y un correo en estado final (la primera vez). |
| `debit_note.email_bounced` | El correo de la nota débito rebotó o el comprador lo marcó como queja (`delivery.email.status`: `bounced` o `complained`). |
| `debit_note.email_failed` | El correo de la nota débito falló de forma definitiva (`delivery.email.status`: `failed`). |

## balance

| Tipo | Cuándo |
| --- | --- |
| `balance.low` | El saldo de la cuenta quedó bajo o se agotó (`data.level`). Solo producción: te llega a cada empresa de la cuenta. |

## numbering

| Tipo | Cuándo |
| --- | --- |
| `numbering.low` | A una resolución de numeración le quedan pocos números. Solo producción. |
| `numbering.expiring` | Una resolución de numeración vence en 30 y en 7 días. Solo producción. |

## certificate

| Tipo | Cuándo |
| --- | --- |
| `certificate.expiring` | El certificado de firma de la empresa vence en 30, 15, 7 y 1 día. Los dos ambientes. |

## support_document

| Tipo | Cuándo |
| --- | --- |
| `support_document.accepted` | La DIAN validó el documento soporte. Pasa por cualquier camino (API, app, conector o verificación de fondo). (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
| `support_document.rejected` | La DIAN rechazó el documento soporte. Corrígela con PUT y se reenvía con el mismo número. (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
| `support_document.error` | El documento soporte quedó en error: la DIAN no confirmó y Trevol dejó de reintentar. `data.error` lleva un `code` y un texto fijo (nunca el mensaje de la DIAN). (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |

## support_document_adjustment

| Tipo | Cuándo |
| --- | --- |
| `support_document_adjustment.accepted` | La DIAN validó la nota de ajuste del documento soporte. Pasa por cualquier camino (API, app, conector o verificación de fondo). (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
| `support_document_adjustment.rejected` | La DIAN rechazó la nota de ajuste del documento soporte. Corrígela con PUT y se reenvía con el mismo número. (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
| `support_document_adjustment.error` | La nota de ajuste del documento soporte quedó en error: la DIAN no confirmó y Trevol dejó de reintentar. `data.error` lleva un `code` y un texto fijo (nunca el mensaje de la DIAN). (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |

## equivalent_document

| Tipo | Cuándo |
| --- | --- |
| `equivalent_document.accepted` | La DIAN validó el documento equivalente. Pasa por cualquier camino (API, app, conector o verificación de fondo). (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
| `equivalent_document.rejected` | La DIAN rechazó el documento equivalente. Corrígela con PUT y se reenvía con el mismo número. (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
| `equivalent_document.error` | El documento equivalente quedó en error: la DIAN no confirmó y Trevol dejó de reintentar. `data.error` lleva un `code` y un texto fijo (nunca el mensaje de la DIAN). (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
| `equivalent_document.delivered` | El documento equivalente ya tiene PDF, ZIP y un correo en estado final (la primera vez). (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
| `equivalent_document.email_bounced` | El correo de el documento equivalente rebotó o el comprador lo marcó como queja (`delivery.email.status`: `bounced` o `complained`). (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
| `equivalent_document.email_failed` | El correo de el documento equivalente falló de forma definitiva (`delivery.email.status`: `failed`). (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |

## equivalent_document_adjustment

| Tipo | Cuándo |
| --- | --- |
| `equivalent_document_adjustment.accepted` | La DIAN validó la nota de ajuste del documento equivalente. Pasa por cualquier camino (API, app, conector o verificación de fondo). (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
| `equivalent_document_adjustment.rejected` | La DIAN rechazó la nota de ajuste del documento equivalente. Corrígela con PUT y se reenvía con el mismo número. (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
| `equivalent_document_adjustment.error` | La nota de ajuste del documento equivalente quedó en error: la DIAN no confirmó y Trevol dejó de reintentar. `data.error` lleva un `code` y un texto fijo (nunca el mensaje de la DIAN). (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
| `equivalent_document_adjustment.delivered` | La nota de ajuste del documento equivalente ya tiene PDF, ZIP y un correo en estado final (la primera vez). (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
| `equivalent_document_adjustment.email_bounced` | El correo de la nota de ajuste del documento equivalente rebotó o el comprador lo marcó como queja (`delivery.email.status`: `bounced` o `complained`). (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
| `equivalent_document_adjustment.email_failed` | El correo de la nota de ajuste del documento equivalente falló de forma definitiva (`delivery.email.status`: `failed`). (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |

## payroll

| Tipo | Cuándo |
| --- | --- |
| `payroll.accepted` | La DIAN validó la nómina electrónica. Pasa por cualquier camino (API, app, conector o verificación de fondo). (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
| `payroll.rejected` | La DIAN rechazó la nómina electrónica. Corrígela con PUT y se reenvía con el mismo número. (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
| `payroll.error` | La nómina electrónica quedó en error: la DIAN no confirmó y Trevol dejó de reintentar. `data.error` lleva un `code` y un texto fijo (nunca el mensaje de la DIAN). (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |

## payroll_adjustment

| Tipo | Cuándo |
| --- | --- |
| `payroll_adjustment.accepted` | La DIAN validó la nota de ajuste de nómina. Pasa por cualquier camino (API, app, conector o verificación de fondo). (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
| `payroll_adjustment.rejected` | La DIAN rechazó la nota de ajuste de nómina. Corrígela con PUT y se reenvía con el mismo número. (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
| `payroll_adjustment.error` | La nota de ajuste de nómina quedó en error: la DIAN no confirmó y Trevol dejó de reintentar. `data.error` lleva un `code` y un texto fijo (nunca el mensaje de la DIAN). (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |

## radian_event

| Tipo | Cuándo |
| --- | --- |
| `radian_event.accepted` | La DIAN validó el evento RADIAN. Pasa por cualquier camino (API, app, conector o verificación de fondo). (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
| `radian_event.rejected` | La DIAN rechazó el evento. Un rechazo es final: el siguiente intento es otro `POST /v1/radian_events` (otro número). (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |
| `radian_event.error` | El evento quedó en error: la DIAN no confirmó y Trevol dejó de reintentar. `data.error` lleva un `code` y un texto fijo. Reenvíalo con `POST …/send`. (Catálogo 2: un `*` de un endpoint creado antes de la fase 3 no lo recibe hasta que se guarde de nuevo su lista de eventos.) |

## webhook

| Tipo | Cuándo |
| --- | --- |
| `webhook.test` | Lo manda POST …/test (o «Probar» en la app) solo a ese endpoint. No se suscribe. |
