Facturiadocs
Referencia API

Folios y CAF

Disponibilidad de folios por tipo de documento, solicitud de timbraje y carga de CAF propios.

Base: https://api.facturia.cl/v1. Todos los endpoints de este capítulo se autentican con Authorization: Bearer salvo que se diga lo contrario, y el sobre de error es el de Errores.

MétodoRutaQué hace
GET/foliosDisponibilidad de folios por tipo de documento
POST/folios/requestsSolicita un CAF nuevo al SII (asíncrono)
GET/cafsLista los CAF que esta empresa tiene cargados
POST/cafsCarga un CAF que ya tienes
DELETE/cafs/{caf_id}Desactiva un CAF (el historial se conserva)

GET /folios

Disponibilidad de folios por tipo de documento

curl -sS https://api.facturia.cl/v1/folios \
  -H "Authorization: Bearer $FACTURIA_KEY" \
  -H "Facturia-Empresa: $EMPRESA"

Parámetros

ParámetroEnRequeridoTipoNotas
Facturia-EmpresaheaderstringLa empresa destino: RUT canónico (77928532-4) o id de empresa (emp_…). Obligatorio en toda llamada con alcance de empresa, salvo que la llave sea un token de empresa. Este header es el ÚNICO mecanismo: no hay parámetro ?empresa= ni campo empresa en el cuerpo. Omitido donde se requiere → 400 empresa_required; fuera de la lista blanca → 403 empresa_not_allowed.
tipo_dtequery33 · 34 · 39 · 41 · 46 · 52 · 56 · 61

Respuestas

CódigoSignificadoCuerpo
200Los rangos de folios.lista de FolioRange
400Entrada mal formada o incompleta.ErrorResponse

POST /folios/requests

Solicita un CAF nuevo al SII (asíncrono)

El timbraje del SII es un flujo de portal guionizado, no un webservice. Devuelve un job.

curl -sS -X POST https://api.facturia.cl/v1/folios/requests \
  -H "Authorization: Bearer $FACTURIA_KEY" \
  -H "Facturia-Empresa: $EMPRESA" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"tipo_dte":33}'

Parámetros

ParámetroEnRequeridoTipoNotas
Facturia-EmpresaheaderstringLa empresa destino: RUT canónico (77928532-4) o id de empresa (emp_…). Obligatorio en toda llamada con alcance de empresa, salvo que la llave sea un token de empresa. Este header es el ÚNICO mecanismo: no hay parámetro ?empresa= ni campo empresa en el cuerpo. Omitido donde se requiere → 400 empresa_required; fuera de la lista blanca → 403 empresa_not_allowed.
Idempotency-KeyheaderstringLlave que genera el cliente, única por operación lógica, retenida 24 h y con alcance (cuenta, empresa, endpoint). Un replay devuelve la respuesta original con Facturia-Idempotent-Replay: true. Misma llave y cuerpo distinto → 409.

Cuerpo

CampoTipoRequeridoNotas
tipo_dte33 · 34 · 39 · 41 · 46 · 52 · 56 · 6133 factura afecta · 34 factura exenta · 39 boleta afecta · 41 boleta exenta · 46 factura de compra · 52 guía de despacho · 56 nota de débito · 61 nota de crédito. Las boletas (39/41) viajan por otro transporte del SII; eso es invisible desde esta API.
quantityintegerCuántos folios pides. Omítelo y Facturia dimensiona según tu historial de consumo.
Respuestas
CódigoSignificadoCuerpo
202Job aceptado.Job
422Bien formado pero viola una regla del dominio: folios agotados, ventana de acuse cerrada.ErrorResponse

GET /cafs

Lista los CAF que esta empresa tiene cargados

curl -sS https://api.facturia.cl/v1/cafs \
  -H "Authorization: Bearer $FACTURIA_KEY" \
  -H "Facturia-Empresa: $EMPRESA"

Parámetros

ParámetroEnRequeridoTipoNotas
Facturia-EmpresaheaderstringLa empresa destino: RUT canónico (77928532-4) o id de empresa (emp_…). Obligatorio en toda llamada con alcance de empresa, salvo que la llave sea un token de empresa. Este header es el ÚNICO mecanismo: no hay parámetro ?empresa= ni campo empresa en el cuerpo. Omitido donde se requiere → 400 empresa_required; fuera de la lista blanca → 403 empresa_not_allowed.
limitqueryinteger
cursorquerystringCursor opaco tomado del next_cursor de una respuesta anterior.

Respuestas

CódigoSignificadoCuerpo
200Una lista de CAF.lista de Caf

POST /cafs

Carga un CAF que ya tienes

curl -sS -X POST https://api.facturia.cl/v1/cafs \
  -H "Authorization: Bearer $FACTURIA_KEY" \
  -H "Facturia-Empresa: $EMPRESA" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"caf_xml":"<AUTORIZACION>…</AUTORIZACION>"}'

Parámetros

ParámetroEnRequeridoTipoNotas
Facturia-EmpresaheaderstringLa empresa destino: RUT canónico (77928532-4) o id de empresa (emp_…). Obligatorio en toda llamada con alcance de empresa, salvo que la llave sea un token de empresa. Este header es el ÚNICO mecanismo: no hay parámetro ?empresa= ni campo empresa en el cuerpo. Omitido donde se requiere → 400 empresa_required; fuera de la lista blanca → 403 empresa_not_allowed.
Idempotency-KeyheaderstringLlave que genera el cliente, única por operación lógica, retenida 24 h y con alcance (cuenta, empresa, endpoint). Un replay devuelve la respuesta original con Facturia-Idempotent-Replay: true. Misma llave y cuerpo distinto → 409.

Cuerpo

CampoTipoRequeridoNotas
caf_xmlstringEl XML &lt;AUTORIZACION&gt; crudo, tal como lo descargaste del SII.
Respuestas
CódigoSignificadoCuerpo
201CAF registrado.Caf
400Entrada mal formada o incompleta.ErrorResponse

DELETE /cafs/{caf_id}

Desactiva un CAF (el historial se conserva)

curl -sS -X DELETE https://api.facturia.cl/v1/cafs/caf_01K2P4V8QW2M \
  -H "Authorization: Bearer $FACTURIA_KEY" \
  -H "Facturia-Empresa: $EMPRESA"

Parámetros

ParámetroEnRequeridoTipoNotas
caf_idpathstring
Facturia-EmpresaheaderstringLa empresa destino: RUT canónico (77928532-4) o id de empresa (emp_…). Obligatorio en toda llamada con alcance de empresa, salvo que la llave sea un token de empresa. Este header es el ÚNICO mecanismo: no hay parámetro ?empresa= ni campo empresa en el cuerpo. Omitido donde se requiere → 400 empresa_required; fuera de la lista blanca → 403 empresa_not_allowed.

Respuestas

CódigoSignificadoCuerpo
204Desactivado.
404No existe ese objeto bajo esta llave.ErrorResponse

En esta página