Facturiadocs
Emisión

Tipos de documento

Los ocho tipos de DTE que emite la v1, sus bloques específicos y cómo funcionan las referencias.

Los tipos soportados

tipo_dteDocumentoLos precios sonNotas
33Factura electrónica (afecta)netosCedible
34Factura no afecta o exentanetosTodas las líneas exentas
39Boleta electrónica (afecta)brutos (IVA incluido)Receptor opcional (66666666-6)
41Boleta exentabrutosReceptor opcional
46Factura de compranetosTú retienes el IVA
52Guía de despachonetosRequiere un bloque dispatch
56Nota de débitonetosRequiere una referencia
61Nota de créditonetosRequiere una referencia

No están en la v1: exportación (110/111/112), liquidación factura (43) y boleta de honorarios (que es un régimen del SII completamente distinto).

Las boletas viajan por otro camino, y no te enteras

Las boletas (39/41) usan un transporte distinto al de las facturas — REST en vez de SOAP, por lotes, con su propio token y su propia certificación. Eso es invisible para ti: mismo endpoint, mismos campos, mismos estados.

Referencias

Una referencia apunta a otro documento. La necesitan obligatoriamente las notas de crédito (61) y de débito (56), y es opcional en el resto.

"references": [
  { "tipo_dte": 33, "folio": 412, "date": "2026-08-14", "code": 3, "reason": "Corrige montos" }
]
codeSignificado
1Anula el documento referenciado
2Corrige texto
3Corrige montos

Las referencias a documentos que no son DTE — una orden de compra, un contrato — usan los códigos de tipo_dte del SII en el rango 800 y omiten code:

"references": [
  { "tipo_dte": 801, "folio": "OC-99213", "date": "2026-08-01", "code": null, "reason": "Orden de compra" }
]

Guía de despacho (52)

Requiere un bloque dispatch.

curl -sS https://api.facturia.cl/v1/documents \
  -H "Authorization: Bearer $FACTURIA_KEY" -H "Facturia-Empresa: $EMPRESA" \
  -H "Content-Type: application/json" \
  -d '{
    "tipo_dte": 52,
    "receptor": { "rut": "76543212-K" },
    "dispatch": {
      "transfer_type": "venta",
      "dispatch_type": "emisor_propio",
      "carrier": { "rut": "11111111-1", "name": "Transportes Sur", "plate": "KJHZ-42", "driver_rut": "13456789-9" },
      "destination": { "street": "Ruta 5 Sur km 12", "comuna": "San Bernardo", "city": "Santiago" }
    },
    "items": [{ "description": "Pallet de insumos", "quantity": 4, "unit_price": 120000 }]
  }'

Nota de crédito (61) y nota de débito (56)

Autónomas, es decir sin pasar por el endpoint de conveniencia:

curl -sS https://api.facturia.cl/v1/documents \
  -H "Authorization: Bearer $FACTURIA_KEY" -H "Facturia-Empresa: $EMPRESA" \
  -H "Content-Type: application/json" \
  -d '{
    "tipo_dte": 61,
    "receptor": { "rut": "76543212-K" },
    "references": [{ "tipo_dte": 33, "folio": 412, "date": "2026-08-14", "code": 3, "reason": "Corrige montos" }],
    "items": [{ "description": "Ajuste de precio", "quantity": 1, "unit_price": 120000 }]
  }'

Si lo que quieres es anular una factura, el atajo es POST /v1/documents/{document_id}/credit_note.

Factura de compra (46)

Tú eres el agente retenedor.

curl -sS https://api.facturia.cl/v1/documents \
  -H "Authorization: Bearer $FACTURIA_KEY" -H "Facturia-Empresa: $EMPRESA" \
  -H "Content-Type: application/json" \
  -d '{
    "tipo_dte": 46,
    "receptor": { "rut": "55555555-5", "legal_name": "Google Cloud EMEA Ltd", "foreign": true },
    "items": [{ "description": "Google Ads — julio 2026", "quantity": 1, "unit_price": 1000000 }],
    "withholding": { "iva": "total" }
  }'

55555555-5 es el RUT genérico del SII para proveedores extranjeros no registrados. withholding.iva: "total" produce IVA totalmente retenido — el débito del F29 cae en el código 39 y el crédito en el 519/520.

La automatización que detecta estos cargos y propone el documento está en Impuestos · Tipo 46.

Boletas (39/41) y el consumidor anónimo

Las boletas pueden ir sin receptor. Cuando no hay uno, el documento va al consumidor final anónimo 66666666-6 — que es un RUT válido también en producción, y solo para boletas.

curl -sS https://api.facturia.cl/v1/documents \
  -H "Authorization: Bearer $FACTURIA_KEY" -H "Facturia-Empresa: $EMPRESA" \
  -H "Content-Type: application/json" \
  -d '{"tipo_dte":39,"items":[{"description":"Café","quantity":2,"unit_price":2500}]}'

Trampa

En una boleta, unit_price es bruto

prices_include_tax es true por defecto para 39 y 41. Los 2500 del ejemplo son 2.500 pesos con IVA incluido, no 2.500 más IVA. Si tu sistema guarda precios netos, pon "prices_include_tax": false explícitamente y normalizamos.

En esta página