Facturiadocs
Webhooks

Event catalogue

Every v1 event type, grouped by what happened in the world.

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

EventFires when
document.createdFacturia accepted it; a folio — the pre-authorised sequential number a DTE must carry — is assigned
document.sentTransmitted to the SII (Chile's tax authority); track_id known
document.acceptedDOK from the SII — the one most integrations use
document.reparoDNK from the SII, or RPR/RLV on boletas (the consumer-facing receipt)
document.rejectedEnvelope or document rejected
document.failedWe could not build it, sign it or transmit it
document.annulledA credit note voided it
document.cesion_submittedA 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_confirmedThe 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_failedA 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

EventFires when
received_document.createdA 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_approaching2 days left of the 8-day window and it is still pending
received_document.acceptedAn acceptance was registered (yours or an automation's)
received_document.rejectedA claim was registered
received_document.receipt_acknowledgedThe 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.

Empresa and operations

EventFires when
empresa.onboarding.updatedAny transition of the onboarding
empresa.onboarding.step.completedOne checklist step (step) just reached completed — so you don't have to diff steps[] between two reads
empresa.onboarding.action_requiredA human step is blocking
empresa.onboarding.completedThe empresa reached emitting
empresa.suspendedThe certificate expired, or the mandato — the signed authority to act for the empresa — was revoked
certificate.expiring30, 14 and 3 days before expiry
certificate.expiredOn expiry
folios.lowBelow the threshold for a type
folios.exhaustedNo folios left: emission is failing
folios.replenishedA new CAF (código de autorización de folios, the SII-signed block of folios) arrived
webhook_endpoint.disabledAuto-disabled after 5 days of sustained failure
connection.linkedThe Fintoc feed went active
connection.sync_succeededTransaction sync completed
connection.sync_failedSync failed
connection.requires_relinkThe feed needs the person to reconnect
api_key.createdA key was minted (carries the id of the minting key)
api_key.rolledA key was rolled
api_key.revokedA key was revoked

Taxes

EventFires when
tax.rcv.syncedAn RCV sync finished (with a changed flag)
tax.f29.proposal.readyA period's proposal is now computable
tax.f29.proposal.updatedThe proposal changed
tax.f29.review_requiredThere are observations with severity: error; automatic filing is suppressed
tax.f29.filing.submittedThe return was submitted to the SII
tax.f29.filing.succeededThe SII accepted it
tax.f29.filing.rejectedThe SII rejected it
tax.f29.filing.failedWe could not complete the submission
tax.suggestion.createdA suggestion appeared
tax.suggestion.auto_confirmedAn automation acted on a suggestion
tax.statement.importedA bank-statement import finished; the job's result carries the counts

What to listen for, by what you are building

If you are buildingListen for
Billing for a SaaSdocument.accepted, document.rejected, document.failed
Accounts payablereceived_document.created, received_document.deadline_approaching
An onboarding assistantempresa.onboarding.updated, empresa.onboarding.action_required
Unattended operationsfolios.low, certificate.expiring, connection.requires_relink, webhook_endpoint.disabled
Tax closetax.rcv.synced, tax.f29.proposal.ready, tax.f29.review_required

On this page