# Catálogo de eventos (/docs/webhooks/eventos)

`enabled_events: ["*"]` te suscribe a todo, incluidos los tipos que agreguemos después. Si listas
tipos explícitos, tendrás que actualizar la lista cuando quieras uno nuevo.

## Ciclo de vida de un documento [#ciclo-de-vida-de-un-documento]

| Evento                      | Se dispara cuando                                                                                                                                                                                                                                     |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `document.created`          | Facturia lo aceptó; folio asignado                                                                                                                                                                                                                    |
| `document.sent`             | Transmitido al SII; `track_id` conocido                                                                                                                                                                                                               |
| `document.accepted`         | `DOK` del SII — el que más integraciones usan                                                                                                                                                                                                         |
| `document.reparo`           | `DNK` del SII, o `RPR`/`RLV` de boletas                                                                                                                                                                                                               |
| `document.rejected`         | Sobre o documento rechazado                                                                                                                                                                                                                           |
| `document.failed`           | No pudimos armarlo, firmarlo o transmitirlo                                                                                                                                                                                                           |
| `document.annulled`         | Una nota de crédito lo anuló                                                                                                                                                                                                                          |
| `document.cesion_submitted` | Un `POST .../cede` llegó a la página «AEC generado exitosamente» del portal SFG — **AEC generado, registro pendiente** (tickets #60, #69). El archivo existe; el registro en el RTC es un acto aparte y este evento NO lo prueba. No pagues contra él |
| `document.cesion_confirmed` | La propia respuesta del SII (`consultarDocDteCedible`) sobre el documento CAMBIÓ después de la cesión — la única evidencia de registro que tiene esta API (ticket #69). Este es el evento sobre el que se actúa                                       |
| `document.cesion_failed`    | Un `POST .../cede` fue rechazado por el portal, está fenced (owner-gated al lanzamiento), llegó a una página que el driver no reconoce, o generó un AEC cuyo registro nunca pudo confirmarse                                                          |

## Recepción [#recepción]

| Evento                                   | Se dispara cuando                                                           |
| ---------------------------------------- | --------------------------------------------------------------------------- |
| `received_document.created`              | Llegó un DTE de proveedor (por intercambio o por reconciliación con el RCV) |
| `received_document.deadline_approaching` | Quedan 2 días de la ventana de 8 y sigue en `pending`                       |
| `received_document.accepted`             | Se registró una aceptación (tuya o de una automatización)                   |
| `received_document.rejected`             | Se registró un reclamo                                                      |
| `received_document.receipt_acknowledged` | Se otorgó el recibo de mercaderías                                          |

> **`received_document.deadline_approaching` es el evento que más plata ahorra**
>
> Es el aviso de que quedan dos días de la ventana de 8 días para objetar una factura de proveedor.
> Pasado el día 8, el silencio ya aceptó. Ver
> [La ventana de 8 días](/docs/recepcion/ventana-8-dias).

## Empresa y operación [#empresa-y-operación]

| Evento                               | Se dispara cuando                                                                                                    |
| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------- |
| `empresa.onboarding.updated`         | Cualquier transición de la puesta en marcha                                                                          |
| `empresa.onboarding.step.completed`  | Un paso del checklist (`step`) acaba de quedar `completed` — para no tener que comparar `steps[]` entre dos lecturas |
| `empresa.onboarding.action_required` | Un paso humano está bloqueando                                                                                       |
| `empresa.onboarding.completed`       | La empresa llegó a `emitting`                                                                                        |
| `empresa.suspended`                  | Venció el certificado o se revocó el mandato                                                                         |
| `certificate.expiring`               | 30, 14 y 3 días antes del vencimiento                                                                                |
| `certificate.expired`                | Al vencer                                                                                                            |
| `folios.low`                         | Bajo el umbral de un tipo                                                                                            |
| `folios.exhausted`                   | Ya no hay folios: la emisión está fallando                                                                           |
| `folios.replenished`                 | Llegó un CAF nuevo                                                                                                   |
| `webhook_endpoint.disabled`          | Auto-apagado tras 5 días de falla sostenida                                                                          |
| `connection.linked`                  | El feed de Fintoc quedó activo                                                                                       |
| `connection.sync_succeeded`          | Sincronización de movimientos completada                                                                             |
| `connection.sync_failed`             | Sincronización fallida                                                                                               |
| `connection.requires_relink`         | El feed necesita que la persona reconecte                                                                            |
| `api_key.created`                    | Se minteó una llave (lleva el id de la llave minteadora)                                                             |
| `api_key.rolled`                     | Se rotó una llave                                                                                                    |
| `api_key.revoked`                    | Se revocó una llave                                                                                                  |

## Impuestos [#impuestos]

| Evento                          | Se dispara cuando                                                                  |
| ------------------------------- | ---------------------------------------------------------------------------------- |
| `tax.rcv.synced`                | Terminó una sincronización del RCV (con bandera `changed`)                         |
| `tax.f29.proposal.ready`        | La propuesta de un período ya es calculable                                        |
| `tax.f29.proposal.updated`      | La propuesta cambió                                                                |
| `tax.f29.review_required`       | Hay observaciones con `severity: error`; la declaración automática queda suprimida |
| `tax.f29.filing.submitted`      | La declaración se envió al SII                                                     |
| `tax.f29.filing.succeeded`      | El SII la aceptó                                                                   |
| `tax.f29.filing.rejected`       | El SII la rechazó                                                                  |
| `tax.f29.filing.failed`         | No pudimos completar el envío                                                      |
| `tax.suggestion.created`        | Apareció una sugerencia                                                            |
| `tax.suggestion.auto_confirmed` | Una automatización actuó sobre una sugerencia                                      |
| `tax.statement.imported`        | Terminó una carga de cartola; el `result` del job trae los conteos                 |

## Qué escuchar, según lo que estés construyendo [#qué-escuchar-según-lo-que-estés-construyendo]

| Si estás construyendo      | Escucha                                                                                         |
| -------------------------- | ----------------------------------------------------------------------------------------------- |
| Facturación de un SaaS     | `document.accepted`, `document.rejected`, `document.failed`                                     |
| Cuentas por pagar          | `received_document.created`, `received_document.deadline_approaching`                           |
| Un asistente de onboarding | `empresa.onboarding.updated`, `empresa.onboarding.action_required`                              |
| Operación desatendida      | `folios.low`, `certificate.expiring`, `connection.requires_relink`, `webhook_endpoint.disabled` |
| Cierre tributario          | `tax.rcv.synced`, `tax.f29.proposal.ready`, `tax.f29.review_required`                           |
