# Event catalogue (/en/docs/webhooks/eventos)

`enabled_events: ["*"]` subscribes you to everything, including the types we add later. If you list
explicit types, you have to update the list whenever you want a new one.

## The lifecycle of a document [#the-lifecycle-of-a-document]

| Event                       | Fires when                                                                                                                                                                                                                                                   |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `document.created`          | Facturia accepted it; a folio — the pre-authorised sequential number a DTE must carry — is assigned                                                                                                                                                          |
| `document.sent`             | Transmitted to the SII (Chile's tax authority); `track_id` known                                                                                                                                                                                             |
| `document.accepted`         | `DOK` from the SII — the one most integrations use                                                                                                                                                                                                           |
| `document.reparo`           | `DNK` from the SII, or `RPR`/`RLV` on boletas (the consumer-facing receipt)                                                                                                                                                                                  |
| `document.rejected`         | Envelope or document rejected                                                                                                                                                                                                                                |
| `document.failed`           | We could not build it, sign it or transmit it                                                                                                                                                                                                                |
| `document.annulled`         | A credit note voided it                                                                                                                                                                                                                                      |
| `document.cesion_submitted` | A `POST .../cede` reached the SFG portal's "AEC generado exitosamente" page — **AEC generated, registration pending** (tickets #60, #69). The file exists; registration in the RTC is a separate act and this event does NOT prove it. Do not pay against it |
| `document.cesion_confirmed` | The SII's own answer for the document (`consultarDocDteCedible`) CHANGED after the cesión — the assignment of the invoice to a third party — and that is the only evidence of registration this API has (ticket #69). This is the event you act on           |
| `document.cesion_failed`    | A `POST .../cede` was rejected by the portal, is fenced (owner-gated at launch), landed on a page the driver does not recognise, or produced an AEC whose registration could never be confirmed                                                              |

## Reception [#reception]

| Event                                    | Fires when                                                                                                                                               |
| ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `received_document.created`              | A supplier DTE (*documento tributario electrónico*) arrived, by intercambio or by reconciliation against the RCV (the SII's purchase and sales register) |
| `received_document.deadline_approaching` | 2 days left of the 8-day window and it is still `pending`                                                                                                |
| `received_document.accepted`             | An acceptance was registered (yours or an automation's)                                                                                                  |
| `received_document.rejected`             | A claim was registered                                                                                                                                   |
| `received_document.receipt_acknowledged` | The goods receipt was granted                                                                                                                            |

> **`received_document.deadline_approaching` is the event that saves the most money**
>
> It is the warning that two days are left of the 8 days you have to dispute a supplier factura (a
> Chilean B2B invoice). After day 8, silence has already accepted. See
> [The 8-day window](/en/docs/recepcion/ventana-8-dias).

## Empresa and operations [#empresa-and-operations]

| Event                                | Fires when                                                                                                   |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
| `empresa.onboarding.updated`         | Any transition of the onboarding                                                                             |
| `empresa.onboarding.step.completed`  | One checklist step (`step`) just reached `completed` — so you don't have to diff `steps[]` between two reads |
| `empresa.onboarding.action_required` | A human step is blocking                                                                                     |
| `empresa.onboarding.completed`       | The empresa reached `emitting`                                                                               |
| `empresa.suspended`                  | The certificate expired, or the mandato — the signed authority to act for the empresa — was revoked          |
| `certificate.expiring`               | 30, 14 and 3 days before expiry                                                                              |
| `certificate.expired`                | On expiry                                                                                                    |
| `folios.low`                         | Below the threshold for a type                                                                               |
| `folios.exhausted`                   | No folios left: emission is failing                                                                          |
| `folios.replenished`                 | A new CAF (*código de autorización de folios*, the SII-signed block of folios) arrived                       |
| `webhook_endpoint.disabled`          | Auto-disabled after 5 days of sustained failure                                                              |
| `connection.linked`                  | The Fintoc feed went active                                                                                  |
| `connection.sync_succeeded`          | Transaction sync completed                                                                                   |
| `connection.sync_failed`             | Sync failed                                                                                                  |
| `connection.requires_relink`         | The feed needs the person to reconnect                                                                       |
| `api_key.created`                    | A key was minted (carries the id of the minting key)                                                         |
| `api_key.rolled`                     | A key was rolled                                                                                             |
| `api_key.revoked`                    | A key was revoked                                                                                            |

## Taxes [#taxes]

| Event                           | Fires when                                                                    |
| ------------------------------- | ----------------------------------------------------------------------------- |
| `tax.rcv.synced`                | An RCV sync finished (with a `changed` flag)                                  |
| `tax.f29.proposal.ready`        | A period's proposal is now computable                                         |
| `tax.f29.proposal.updated`      | The proposal changed                                                          |
| `tax.f29.review_required`       | There are observations with `severity: error`; automatic filing is suppressed |
| `tax.f29.filing.submitted`      | The return was submitted to the SII                                           |
| `tax.f29.filing.succeeded`      | The SII accepted it                                                           |
| `tax.f29.filing.rejected`       | The SII rejected it                                                           |
| `tax.f29.filing.failed`         | We could not complete the submission                                          |
| `tax.suggestion.created`        | A suggestion appeared                                                         |
| `tax.suggestion.auto_confirmed` | An automation acted on a suggestion                                           |
| `tax.statement.imported`        | A bank-statement import finished; the job's `result` carries the counts       |

## What to listen for, by what you are building [#what-to-listen-for-by-what-you-are-building]

| If you are building     | Listen for                                                                                      |
| ----------------------- | ----------------------------------------------------------------------------------------------- |
| Billing for a SaaS      | `document.accepted`, `document.rejected`, `document.failed`                                     |
| Accounts payable        | `received_document.created`, `received_document.deadline_approaching`                           |
| An onboarding assistant | `empresa.onboarding.updated`, `empresa.onboarding.action_required`                              |
| Unattended operations   | `folios.low`, `certificate.expiring`, `connection.requires_relink`, `webhook_endpoint.disabled` |
| Tax close               | `tax.rcv.synced`, `tax.f29.proposal.ready`, `tax.f29.review_required`                           |
