# API reference (/en/docs/referencia)

This reference is generated from `public-api-openapi.yaml` on every build, so it cannot drift from the contract. The prose specification governs wherever the two disagree.

```
https://api.facturia.cl/v1
```

TLS 1.2+ only. No unversioned root, no unencrypted port. Every response carries `Facturia-Request-Id`; quote it in support.

## The raw contract [#the-raw-contract]

This page is the human reading of it. The OpenAPI 3.1 document it comes from, version `1.0.0`, is published verbatim to generate clients from:

| File                                                                         | What it is                                                         |
| ---------------------------------------------------------------------------- | ------------------------------------------------------------------ |
| [`/openapi.yaml`](https://docs.facturia.cl/openapi.yaml)                     | The `/v1` contract, byte for byte the one we review.               |
| [`/openapi.json`](https://docs.facturia.cl/openapi.json)                     | The same document in JSON, generated from the YAML on every build. |
| [`/openapi-bootstrap.yaml`](https://docs.facturia.cl/openapi-bootstrap.yaml) | The cold start: creating the account and minting the first key.    |
| [`/openapi-bootstrap.json`](https://docs.facturia.cl/openapi-bootstrap.json) | The same thing, in JSON.                                           |

There are **two** documents because there are two surfaces: `/v1` authenticates with an `sk_` key, and a freshly created account has none yet. The cold start answers on a different base URL, with an account session instead of a key, so folding it into the same file would declare URLs and credentials that do not exist. Generate a client from the second one to get the key, and one from the first to use the product.

No path reaches the published file without having been probed against the real router: if the contract declared an endpoint the API does not mount, this site’s build fails before publishing it.

## Generate a typed client [#generate-a-typed-client]

We publish no npm or pip package: the API is HTTP and nothing else, and an in-house SDK is a layer that lags behind the contract. What we do publish is the contract, and a typed client comes out of it in one line. There are **two** commands because there are two documents: the cold-start one gets you the key, the `/v1` one uses the product.

**TypeScript**

```bash
npx openapi-typescript https://docs.facturia.cl/openapi-bootstrap.yaml -o bootstrap.d.ts
npx openapi-typescript https://docs.facturia.cl/openapi.yaml -o facturia.d.ts
```

It emits types only, no runtime. For calls, `fetch` with those types is enough; if you would rather have a client with methods, `openapi-fetch` consumes the same `facturia.d.ts`.

**Python**

```bash
pipx run openapi-python-client generate --url https://docs.facturia.cl/openapi-bootstrap.yaml
pipx run openapi-python-client generate --url https://docs.facturia.cl/openapi.yaml

# uvx openapi-python-client generate --url …   # lo mismo, si usas uv / same thing, with uv
```

Both documents go through both Python generators whole: `openapi-python-client` emits all 11 cold-start operations and all 122 `/v1` ones without dropping a single response or schema, and `openapi-generator-cli -g python` finishes on both without an exception. It was not so until 2026-09-07 — the envelope's nullable `data` clashed with each operation's typed `data` and all five `/account/*` responses came out untyped, the one that hands over `data.api_key.secret` included; and `SendJob`, `StatementImportJob`, `RcvEntry`, `RcvEntryList` and `AutomationSettings` vanished from the client. Those were shapes in the document, not limits of the generator, and they are fixed (#476) without changing one byte of what goes over the wire.

The one exception left: the four binary artifacts (`GET /documents/{document_id}/pdf` and `/xml`, and their two twins under `/received_documents`) answer `application/pdf` and `application/xml`, and `openapi-python-client` only types JSON bodies. The method is generated all the same and `response.content` carries the bytes; if you want the type, hand it a `config.yml` with `content_type_overrides: {"application/pdf": "application/octet-stream", "application/xml": "text/plain"}`. We do not fix this in the document because the declared `Content-Type` is the one the server really sends.

Both documents are OpenAPI **3.1**. A generator that only understands 3.0 will trip over the nullable types (`type: [integer, "null"]`), which is the correct 3.1 shape — use a version that supports 3.1 rather than converting the document.

Versioning inside `/v1` is additive (§5.8), so a regenerated client never loses a method: it only gains new fields and new enum values. A client that breaks on an unknown field has a bug, and that is the only compatibility rule we ask for.

## Chapters [#chapters]

- [Account and keys (5)](/en/docs/referencia/cuenta): The authenticated account, the key in use, and minting keys with a root key.

- [Empresas (40)](/en/docs/referencia/empresas): The tenancy boundary: creation, the mandato (the power of attorney an empresa grants Facturia), certificate custody, onboarding and its automations.

- [Folios and CAF (5)](/en/docs/referencia/folios): Folio availability by document type, requesting stamping, and uploading your own CAF.

- [Documents (15)](/en/docs/referencia/documentos): Issuing DTEs, reading them, PDF and XML artifacts, public links, and actions on a document.

- [Received documents (7)](/en/docs/referencia/recibidos): Your suppliers' DTEs and the commercial response: acceptance, claim and acknowledgement of receipt.

- [Tax (23)](/en/docs/referencia/impuestos): RCV, characterisation, the F29 proposal and filing it, expenses and tipo-46 suggestions.

- [Connectors (7)](/en/docs/referencia/conectores): The first-party sources that feed the expense ledger: Fintoc and bank statement uploads.

- [Webhooks (11)](/en/docs/referencia/webhooks): Endpoints, the event log, delivery inspection and manual retry.

- [Usage (2)](/en/docs/referencia/consumo): The immutable usage ledger: how much you issued and for which empresa. It is a report, not a meter — the plan is flat, with unlimited documents.

- [Test helpers (8)](/en/docs/referencia/test-helpers): Endpoints that only exist for test keys, and move the pieces the real world normally moves.

- [Meta (3)](/en/docs/referencia/meta): Unauthenticated reference data.

- [Schemas (5)](/en/docs/referencia/esquemas): The objects the "Body" and "Responses" tables name: the empresa, onboarding, the handoff to a human, the recheck and the origen.

## Every endpoint [#every-endpoint]

| Method   | Path                                                                                                                                                                                            | What it does                                                                        |
| -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| `GET`    | [`/account`](/en/docs/referencia/cuenta#get-account)                                                                                                                                            | Retrieve the account and the key in use                                             |
| `GET`    | [`/api_keys`](/en/docs/referencia/cuenta#get-api-keys)                                                                                                                                          | List API keys (metadata only; secrets are never returned)                           |
| `POST`   | [`/api_keys`](/en/docs/referencia/cuenta#post-api-keys)                                                                                                                                         | Mint an API key (root key only)                                                     |
| `DELETE` | [`/api_keys/{key_id}`](/en/docs/referencia/cuenta#delete-api-keys-key-id)                                                                                                                       | Revoke an API key immediately (root key only)                                       |
| `POST`   | [`/api_keys/{key_id}/roll`](/en/docs/referencia/cuenta#post-api-keys-key-id-roll)                                                                                                               | Issue a replacement secret for a key (root key only)                                |
| `GET`    | [`/empresas`](/en/docs/referencia/empresas#get-empresas)                                                                                                                                        | List empresas visible to this key                                                   |
| `POST`   | [`/empresas`](/en/docs/referencia/empresas#post-empresas)                                                                                                                                       | Create an empresa                                                                   |
| `GET`    | [`/empresas/{empresa_id}`](/en/docs/referencia/empresas#get-empresas-empresa-id)                                                                                                                | Retrieve an empresa                                                                 |
| `PATCH`  | [`/empresas/{empresa_id}`](/en/docs/referencia/empresas#patch-empresas-empresa-id)                                                                                                              | Update an empresa                                                                   |
| `DELETE` | [`/empresas/{empresa_id}`](/en/docs/referencia/empresas#delete-empresas-empresa-id)                                                                                                             | Delete a SANDBOX empresa                                                            |
| `GET`    | [`/empresas/{empresa_id}/mandato`](/en/docs/referencia/empresas#get-empresas-empresa-id-mandato)                                                                                                | Whether the representante legal has signed, against which terms, and how            |
| `POST`   | [`/empresas/{empresa_id}/mandato`](/en/docs/referencia/empresas#post-empresas-empresa-id-mandato)                                                                                               | Record the mandato authorizing Facturia to act before the SII                       |
| `DELETE` | [`/empresas/{empresa_id}/mandato`](/en/docs/referencia/empresas#delete-empresas-empresa-id-mandato)                                                                                             | Revoke the mandato                                                                  |
| `GET`    | [`/empresas/{empresa_id}/certificate`](/en/docs/referencia/empresas#get-empresas-empresa-id-certificate)                                                                                        | Retrieve certificate metadata                                                       |
| `POST`   | [`/empresas/{empresa_id}/certificate`](/en/docs/referencia/empresas#post-empresas-empresa-id-certificate)                                                                                       | Upload (or reuse) the empresa's digital certificate                                 |
| `DELETE` | [`/empresas/{empresa_id}/certificate`](/en/docs/referencia/empresas#delete-empresas-empresa-id-certificate)                                                                                     | Purge the certificate from the vault (revokes custody, suspends emission)           |
| `GET`    | [`/empresas/{empresa_id}/sfg_credential`](/en/docs/referencia/empresas#get-empresas-empresa-id-sfg-credential)                                                                                  | Retrieve the SFG centralizado clave's custody metadata                              |
| `POST`   | [`/empresas/{empresa_id}/sfg_credential`](/en/docs/referencia/empresas#post-empresas-empresa-id-sfg-credential)                                                                                 | Store (or replace) the SFG centralizado clave                                       |
| `DELETE` | [`/empresas/{empresa_id}/sfg_credential`](/en/docs/referencia/empresas#delete-empresas-empresa-id-sfg-credential)                                                                               | Destroy the SFG centralizado clave (ends custody)                                   |
| `POST`   | [`/empresas/{empresa_id}/mandato/revocation_link`](/en/docs/referencia/empresas#post-empresas-empresa-id-mandato-revocation-link)                                                               | Mint the hosted page where the representante legal revokes                          |
| `POST`   | [`/empresas/{empresa_id}/resolucion/verify`](/en/docs/referencia/empresas#post-empresas-empresa-id-resolucion-verify)                                                                           | Verify a declared resolución with one production timbraje (Facturia operators only) |
| `GET`    | [`/empresas/{empresa_id}/counterparties`](/en/docs/referencia/empresas#get-empresas-empresa-id-counterparties)                                                                                  | Counterparties you have invoiced, with the address and contacts on file for each    |
| `GET`    | [`/contribuyentes/{rut}`](/en/docs/referencia/empresas#get-contribuyentes-rut)                                                                                                                  | What the SII publishes about a company, by RUT, and a giro that fits a factura      |
| `GET`    | [`/empresas/{empresa_id}/counterparties/{counterparty_rut}`](/en/docs/referencia/empresas#get-empresas-empresa-id-counterparties-counterparty-rut)                                              | What you know about one counterparty, and whether you stated it or we inferred it   |
| `PATCH`  | [`/empresas/{empresa_id}/counterparties/{counterparty_rut}`](/en/docs/referencia/empresas#patch-empresas-empresa-id-counterparties-counterparty-rut)                                            | Put a counterparty's razón social, giro and address on file                         |
| `GET`    | [`/empresas/{empresa_id}/counterparties/{counterparty_rut}/contacts`](/en/docs/referencia/empresas#get-empresas-empresa-id-counterparties-counterparty-rut-contacts)                            | The contacts on file for one counterparty                                           |
| `POST`   | [`/empresas/{empresa_id}/counterparties/{counterparty_rut}/contacts`](/en/docs/referencia/empresas#post-empresas-empresa-id-counterparties-counterparty-rut-contacts)                           | Put a contacto responsable on file                                                  |
| `PATCH`  | [`/empresas/{empresa_id}/counterparties/{counterparty_rut}/contacts/{contact_id}`](/en/docs/referencia/empresas#patch-empresas-empresa-id-counterparties-counterparty-rut-contacts-contact-id)  | Edit a contact, promote it, or record an opt-out                                    |
| `DELETE` | [`/empresas/{empresa_id}/counterparties/{counterparty_rut}/contacts/{contact_id}`](/en/docs/referencia/empresas#delete-empresas-empresa-id-counterparties-counterparty-rut-contacts-contact-id) | Remove a contact from the address book                                              |
| `GET`    | [`/empresas/{empresa_id}/onboarding`](/en/docs/referencia/empresas#get-empresas-empresa-id-onboarding)                                                                                          | Onboarding lifecycle, steps and blocking human actions                              |
| `POST`   | [`/empresas/{empresa_id}/onboarding/links`](/en/docs/referencia/empresas#post-empresas-empresa-id-onboarding-links)                                                                             | Mint a link to a hosted representante-legal page                                    |
| `DELETE` | [`/empresas/{empresa_id}/onboarding/links/{step}`](/en/docs/referencia/empresas#delete-empresas-empresa-id-onboarding-links-step)                                                               | Revoke a hosted representante-legal link                                            |
| `POST`   | [`/empresas/{empresa_id}/onboarding/go_live`](/en/docs/referencia/empresas#post-empresas-empresa-id-onboarding-go-live)                                                                         | Ask the titular to approve the go-live, or state the decision on their behalf       |
| `POST`   | [`/empresas/{empresa_id}/onboarding/steps/{step}/recheck`](/en/docs/referencia/empresas#post-empresas-empresa-id-onboarding-steps-step-recheck)                                                 | Tell us a human step was performed, and we go and look                              |
| `POST`   | [`/empresas/{empresa_id}/onboarding/steps/{step}/attest`](/en/docs/referencia/empresas#post-empresas-empresa-id-onboarding-steps-step-attest)                                                   | Record that a human performed a step this build cannot probe (#395)                 |
| `POST`   | [`/empresas/{empresa_id}/onboarding/steps/{step}/approve`](/en/docs/referencia/empresas#post-empresas-empresa-id-onboarding-steps-step-approve)                                                 | Record the titular's authorization for a step Facturia then performs (#452, #453)   |
| `GET`    | [`/empresas/{empresa_id}/onboarding/certification`](/en/docs/referencia/empresas#get-empresas-empresa-id-onboarding-certification)                                                              | The set de pruebas - what was uploaded, what is missing, what the SII said          |
| `POST`   | [`/empresas/{empresa_id}/onboarding/certification/set_file`](/en/docs/referencia/empresas#post-empresas-empresa-id-onboarding-certification-set-file)                                           | Upload the set de pruebas the SII issued for this empresa                           |
| `POST`   | [`/empresas/{empresa_id}/onboarding/certification/inputs`](/en/docs/referencia/empresas#post-empresas-empresa-id-onboarding-certification-inputs)                                               | Supply the facts the set de pruebas does not carry                                  |
| `GET`    | [`/empresas/{empresa_id}/onboarding/evidence`](/en/docs/referencia/empresas#get-empresas-empresa-id-onboarding-evidence)                                                                        | The rendicion de cuentas - what we did on the empresa's behalf                      |
| `GET`    | [`/empresas/{empresa_id}/onboarding/evidence/export`](/en/docs/referencia/empresas#get-empresas-empresa-id-onboarding-evidence-export)                                                          | The rendicion de cuentas as one CSV file                                            |
| `GET`    | [`/empresas/{empresa_id}/automation_settings`](/en/docs/referencia/empresas#get-empresas-empresa-id-automation-settings)                                                                        | Retrieve per-empresa automation settings                                            |
| `PATCH`  | [`/empresas/{empresa_id}/automation_settings`](/en/docs/referencia/empresas#patch-empresas-empresa-id-automation-settings)                                                                      | Update per-empresa automation settings                                              |
| `GET`    | [`/empresas/{empresa_id}/branding`](/en/docs/referencia/empresas#get-empresas-empresa-id-branding)                                                                                              | Read logo, default print format and footer text                                     |
| `PATCH`  | [`/empresas/{empresa_id}/branding`](/en/docs/referencia/empresas#patch-empresas-empresa-id-branding)                                                                                            | Update logo, default print format and footer text                                   |
| `GET`    | [`/folios`](/en/docs/referencia/folios#get-folios)                                                                                                                                              | Folio availability per doc type                                                     |
| `POST`   | [`/folios/requests`](/en/docs/referencia/folios#post-folios-requests)                                                                                                                           | Request a new CAF from the SII (async)                                              |
| `GET`    | [`/cafs`](/en/docs/referencia/folios#get-cafs)                                                                                                                                                  | List CAFs held for this empresa                                                     |
| `POST`   | [`/cafs`](/en/docs/referencia/folios#post-cafs)                                                                                                                                                 | Upload a CAF you already hold                                                       |
| `DELETE` | [`/cafs/{caf_id}`](/en/docs/referencia/folios#delete-cafs-caf-id)                                                                                                                               | Deactivate a CAF (history is preserved)                                             |
| `GET`    | [`/documents`](/en/docs/referencia/documentos#get-documents)                                                                                                                                    | List emitted documents                                                              |
| `POST`   | [`/documents`](/en/docs/referencia/documentos#post-documents)                                                                                                                                   | Emit a DTE                                                                          |
| `POST`   | [`/documents/previews`](/en/docs/referencia/documentos#post-documents-previews)                                                                                                                 | Price and validate a document without emitting it                                   |
| `GET`    | [`/documents/previews/{preview_id}`](/en/docs/referencia/documentos#get-documents-previews-preview-id)                                                                                          | Retrieve a stored preview                                                           |
| `GET`    | [`/documents/{document_id}`](/en/docs/referencia/documentos#get-documents-document-id)                                                                                                          | Retrieve a document                                                                 |
| `GET`    | [`/documents/{document_id}/pdf`](/en/docs/referencia/documentos#get-documents-document-id-pdf)                                                                                                  | Download the PDF                                                                    |
| `GET`    | [`/documents/{document_id}/xml`](/en/docs/referencia/documentos#get-documents-document-id-xml)                                                                                                  | Download the signed XML exactly as sent to the SII                                  |
| `GET`    | [`/documents/{document_id}/events`](/en/docs/referencia/documentos#get-documents-document-id-events)                                                                                            | Lifecycle events for one document                                                   |
| `POST`   | [`/documents/{document_id}/retry`](/en/docs/referencia/documentos#post-documents-document-id-retry)                                                                                             | Retry a document in `failed`                                                        |
| `POST`   | [`/documents/{document_id}/send`](/en/docs/referencia/documentos#post-documents-document-id-send)                                                                                               | Email the document to the receptor                                                  |
| `POST`   | [`/documents/{document_id}/cesion`](/en/docs/referencia/documentos#post-documents-document-id-cesion)                                                                                           | Ask the SII whether this factura is cedible                                         |
| `POST`   | [`/documents/{document_id}/cede`](/en/docs/referencia/documentos#post-documents-document-id-cede)                                                                                               | Cede this factura to a factoring company, registering it in the SII's RTC           |
| `POST`   | [`/documents/{document_id}/credit_note`](/en/docs/referencia/documentos#post-documents-document-id-credit-note)                                                                                 | Emit a nota de crédito against this document                                        |
| `POST`   | [`/documents/{document_id}/public_links`](/en/docs/referencia/documentos#post-documents-document-id-public-links)                                                                               | Create or rotate public links for this document's artifacts                         |
| `DELETE` | [`/documents/{document_id}/public_links`](/en/docs/referencia/documentos#delete-documents-document-id-public-links)                                                                             | Revoke every public link for this document                                          |
| `GET`    | [`/received_documents`](/en/docs/referencia/recibidos#get-received-documents)                                                                                                                   | List supplier DTEs received for this empresa                                        |
| `GET`    | [`/received_documents/{received_document_id}`](/en/docs/referencia/recibidos#get-received-documents-received-document-id)                                                                       | Retrieve a received document                                                        |
| `GET`    | [`/received_documents/{received_document_id}/xml`](/en/docs/referencia/recibidos#get-received-documents-received-document-id-xml)                                                               | Download the original supplier XML                                                  |
| `GET`    | [`/received_documents/{received_document_id}/pdf`](/en/docs/referencia/recibidos#get-received-documents-received-document-id-pdf)                                                               | Render the received document as PDF                                                 |
| `POST`   | [`/received_documents/{received_document_id}/accept`](/en/docs/referencia/recibidos#post-received-documents-received-document-id-accept)                                                        | Accept the content (SII acción ACD)                                                 |
| `POST`   | [`/received_documents/{received_document_id}/reject`](/en/docs/referencia/recibidos#post-received-documents-received-document-id-reject)                                                        | Reclamar the document (RCD / RFP / RFT)                                             |
| `POST`   | [`/received_documents/{received_document_id}/acknowledge_receipt`](/en/docs/referencia/recibidos#post-received-documents-received-document-id-acknowledge-receipt)                              | Otorgar recibo de mercaderías o servicios (SII acción ERM)                          |
| `GET`    | [`/tax/purchases`](/en/docs/referencia/impuestos#get-tax-purchases)                                                                                                                             | RCV — registro de compras                                                           |
| `GET`    | [`/tax/sales`](/en/docs/referencia/impuestos#get-tax-sales)                                                                                                                                     | RCV — registro de ventas                                                            |
| `GET`    | [`/tax/summary`](/en/docs/referencia/impuestos#get-tax-summary)                                                                                                                                 | Aggregated RCV totals for a period (the F29 inputs)                                 |
| `POST`   | [`/tax/sync`](/en/docs/referencia/impuestos#post-tax-sync)                                                                                                                                      | Force an RCV resync (async)                                                         |
| `POST`   | [`/tax/purchases/characterize`](/en/docs/referencia/impuestos#post-tax-purchases-characterize)                                                                                                  | Caracterizar up to 500 purchase entries in one call                                 |
| `POST`   | [`/tax/purchases/{entry_id}/characterize`](/en/docs/referencia/impuestos#post-tax-purchases-entry-id-characterize)                                                                              | Caracterizar one purchase entry (writes to the SII registry)                        |
| `POST`   | [`/tax/purchases/{entry_id}/characterize/revert`](/en/docs/referencia/impuestos#post-tax-purchases-entry-id-characterize-revert)                                                                | Undo the last settled caracterización on a purchase                                 |
| `POST`   | [`/tax/purchases/{entry_id}/estado_contable`](/en/docs/referencia/impuestos#post-tax-purchases-entry-id-estado-contable)                                                                        | Move an entry between REGISTRO / PENDIENTE / NO\_INCLUIR                            |
| `GET`    | [`/tax/f29/proposals`](/en/docs/referencia/impuestos#get-tax-f29-proposals)                                                                                                                     | List the periods that have a computed propuesta                                     |
| `GET`    | [`/tax/f29/proposals/{period}`](/en/docs/referencia/impuestos#get-tax-f29-proposals-period)                                                                                                     | Computed F29 propuesta for a period                                                 |
| `GET`    | [`/tax/f29/proposals/{period}/upload_file`](/en/docs/referencia/impuestos#get-tax-f29-proposals-period-upload-file)                                                                             | Download the SII-format upload .txt for this proposal                               |
| `POST`   | [`/tax/f29/proposals/{period}/public_links`](/en/docs/referencia/impuestos#post-tax-f29-proposals-period-public-links)                                                                          | Mint a no-auth link to the propuesta's upload .txt                                  |
| `DELETE` | [`/tax/f29/proposals/{period}/public_links`](/en/docs/referencia/impuestos#delete-tax-f29-proposals-period-public-links)                                                                        | Revoke every public link for this propuesta                                         |
| `POST`   | [`/tax/f29/proposals/{period}/recompute`](/en/docs/referencia/impuestos#post-tax-f29-proposals-period-recompute)                                                                                | Recompute the proposal, optionally overriding codes                                 |
| `GET`    | [`/tax/f29/filings`](/en/docs/referencia/impuestos#get-tax-f29-filings)                                                                                                                         | List F29 filings                                                                    |
| `POST`   | [`/tax/f29/filings`](/en/docs/referencia/impuestos#post-tax-f29-filings)                                                                                                                        | File the F29 for a period (async job)                                               |
| `GET`    | [`/tax/f29/filings/{filing_id}`](/en/docs/referencia/impuestos#get-tax-f29-filings-filing-id)                                                                                                   | Retrieve a filing                                                                   |
| `GET`    | [`/tax/expenses`](/en/docs/referencia/impuestos#get-tax-expenses)                                                                                                                               | List ingested foreign-currency charges                                              |
| `POST`   | [`/tax/expenses`](/en/docs/referencia/impuestos#post-tax-expenses)                                                                                                                              | Ingest a charge that may require a tipo-46 factura de compra                        |
| `GET`    | [`/tax/suggestions`](/en/docs/referencia/impuestos#get-tax-suggestions)                                                                                                                         | List tax suggestions                                                                |
| `GET`    | [`/tax/suggestions/{suggestion_id}`](/en/docs/referencia/impuestos#get-tax-suggestions-suggestion-id)                                                                                           | Retrieve a suggestion                                                               |
| `POST`   | [`/tax/suggestions/{suggestion_id}/confirm`](/en/docs/referencia/impuestos#post-tax-suggestions-suggestion-id-confirm)                                                                          | Act on a suggestion (for `emit_46`, emits the document)                             |
| `POST`   | [`/tax/suggestions/{suggestion_id}/dismiss`](/en/docs/referencia/impuestos#post-tax-suggestions-suggestion-id-dismiss)                                                                          | Dismiss a suggestion                                                                |
| `GET`    | [`/connections`](/en/docs/referencia/conectores#get-connections)                                                                                                                                | List connector connections for this empresa                                         |
| `POST`   | [`/connections`](/en/docs/referencia/conectores#post-connections)                                                                                                                               | Create a Fintoc bank/card connection                                                |
| `GET`    | [`/connections/{connection_id}`](/en/docs/referencia/conectores#get-connections-connection-id)                                                                                                  | Retrieve a connection                                                               |
| `DELETE` | [`/connections/{connection_id}`](/en/docs/referencia/conectores#delete-connections-connection-id)                                                                                               | Disconnect (revokes the link, stops ingestion)                                      |
| `POST`   | [`/connections/{connection_id}/sync`](/en/docs/referencia/conectores#post-connections-connection-id-sync)                                                                                       | Force a movement sync (async)                                                       |
| `GET`    | [`/tax/statements`](/en/docs/referencia/conectores#get-tax-statements)                                                                                                                          | List uploaded cartolas                                                              |
| `POST`   | [`/tax/statements`](/en/docs/referencia/conectores#post-tax-statements)                                                                                                                         | Upload a cartola (CSV/XLSX) to create expenses                                      |
| `GET`    | [`/webhook_endpoints`](/en/docs/referencia/webhooks#get-webhook-endpoints)                                                                                                                      | List webhook endpoints                                                              |
| `POST`   | [`/webhook_endpoints`](/en/docs/referencia/webhooks#post-webhook-endpoints)                                                                                                                     | Register a webhook endpoint                                                         |
| `GET`    | [`/webhook_endpoints/{webhook_endpoint_id}`](/en/docs/referencia/webhooks#get-webhook-endpoints-webhook-endpoint-id)                                                                            | Retrieve a webhook endpoint                                                         |
| `PATCH`  | [`/webhook_endpoints/{webhook_endpoint_id}`](/en/docs/referencia/webhooks#patch-webhook-endpoints-webhook-endpoint-id)                                                                          | Update a webhook endpoint                                                           |
| `DELETE` | [`/webhook_endpoints/{webhook_endpoint_id}`](/en/docs/referencia/webhooks#delete-webhook-endpoints-webhook-endpoint-id)                                                                         | Delete a webhook endpoint                                                           |
| `POST`   | [`/webhook_endpoints/{webhook_endpoint_id}/ping`](/en/docs/referencia/webhooks#post-webhook-endpoints-webhook-endpoint-id-ping)                                                                 | Send a synthetic event to verify plumbing                                           |
| `POST`   | [`/webhook_endpoints/{webhook_endpoint_id}/rotate_secret`](/en/docs/referencia/webhooks#post-webhook-endpoints-webhook-endpoint-id-rotate-secret)                                               | Rotate the signing secret                                                           |
| `GET`    | [`/webhook_endpoints/{webhook_endpoint_id}/deliveries`](/en/docs/referencia/webhooks#get-webhook-endpoints-webhook-endpoint-id-deliveries)                                                      | Inspect delivery attempts                                                           |
| `POST`   | [`/webhook_endpoints/{webhook_endpoint_id}/deliveries/{delivery_id}/retry`](/en/docs/referencia/webhooks#post-webhook-endpoints-webhook-endpoint-id-deliveries-delivery-id-retry)               | Redeliver an event                                                                  |
| `GET`    | [`/events`](/en/docs/referencia/webhooks#get-events)                                                                                                                                            | Query the event ledger (retained 12 months)                                         |
| `GET`    | [`/events/{event_id}`](/en/docs/referencia/webhooks#get-events-event-id)                                                                                                                        | Retrieve an event                                                                   |
| `GET`    | [`/usage`](/en/docs/referencia/consumo#get-usage)                                                                                                                                               | Usage summary for a billing period                                                  |
| `GET`    | [`/usage/records`](/en/docs/referencia/consumo#get-usage-records)                                                                                                                               | The immutable usage ledger                                                          |
| `POST`   | [`/test_helpers/received_documents`](/en/docs/referencia/test-helpers#post-test-helpers-received-documents)                                                                                     | Inject a supplier DTE as if it had arrived at the reception address                 |
| `POST`   | [`/test_helpers/rcv/seed`](/en/docs/referencia/test-helpers#post-test-helpers-rcv-seed)                                                                                                         | Seed RCV rows for a period so F29 propuestas have data                              |
| `POST`   | [`/test_helpers/clock`](/en/docs/referencia/test-helpers#post-test-helpers-clock)                                                                                                               | Advance this empresa's simulated clock                                              |
| `POST`   | [`/test_helpers/empresas/{empresa_id}/onboarding`](/en/docs/referencia/test-helpers#post-test-helpers-empresas-empresa-id-onboarding)                                                           | Drive an empresa's onboarding to any state                                          |
| `POST`   | [`/test_helpers/empresas/{empresa_id}/onboarding/steps`](/en/docs/referencia/test-helpers#post-test-helpers-empresas-empresa-id-onboarding-steps)                                               | Force one onboarding step to a status                                               |
| `POST`   | [`/test_helpers/documents/{document_id}/estado`](/en/docs/referencia/test-helpers#post-test-helpers-documents-document-id-estado)                                                               | Force the raw SII estado of an already-emitted sandbox document                     |
| `POST`   | [`/test_helpers/f29/proposals`](/en/docs/referencia/test-helpers#post-test-helpers-f29-proposals)                                                                                               | Inject a computed F29 propuesta                                                     |
| `POST`   | [`/test_helpers/f29/validations`](/en/docs/referencia/test-helpers#post-test-helpers-f29-validations)                                                                                           | Force the cross-validation verdict for a period                                     |
| `GET`    | [`/jobs/{job_id}`](/en/docs/referencia/meta#get-jobs-job-id)                                                                                                                                    | Retrieve an async job (folio request, send, cesión, RCV sync, import)               |
| `GET`    | [`/mandato_terms`](/en/docs/referencia/meta#get-mandato-terms)                                                                                                                                  | The current mandato text and version                                                |
| `GET`    | [`/error_codes`](/en/docs/referencia/meta#get-error-codes)                                                                                                                                      | The machine-readable error dictionary (unauthenticated)                             |

## Webhooks [#webhooks]

The OpenAPI also describes the outgoing deliveries. Their shape, their signature and their retry schedule are in [Webhooks](/en/docs/webhooks).

| Group                         | Events                                                                                                   |
| ----------------------------- | -------------------------------------------------------------------------------------------------------- |
| `document.lifecycle`          | document.created \| .sent \| .accepted \| .reparo \| .rejected \| .failed \| .annulled                   |
| `document.delivery`           | document.emailed \| .email\_failed                                                                       |
| `document.cesion`             | document.cesion\_submitted \| .cesion\_confirmed \| .cesion\_failed                                      |
| `received_document.lifecycle` | received\_document.created \| .deadline\_approaching \| .accepted \| .rejected \| .receipt\_acknowledged |
| `reception.operations`        | reception.acuse\_sent \| .acuse\_failed \| .quarantined                                                  |
| `empresa.lifecycle`           | empresa.\* \| certificate.\* \| folios.\* \| connection.\* \| api\_key.\* \| webhook\_endpoint.disabled  |
| `tax.lifecycle`               | tax.rcv.synced \| tax.f29.\* \| tax.suggestion.\* \| tax.statement.imported                              |
| `ping`                        | ping                                                                                                     |
