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_dte | Documento | Los precios son | Notas |
|---|---|---|---|
| 33 | Factura electrónica (afecta) | netos | Cedible |
| 34 | Factura no afecta o exenta | netos | Todas las líneas exentas |
| 39 | Boleta electrónica (afecta) | brutos (IVA incluido) | Receptor opcional (66666666-6) |
| 41 | Boleta exenta | brutos | Receptor opcional |
| 46 | Factura de compra | netos | Tú retienes el IVA |
| 52 | Guía de despacho | netos | Requiere un bloque dispatch |
| 56 | Nota de débito | netos | Requiere una referencia |
| 61 | Nota de crédito | netos | Requiere 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" }
]code | Significado |
|---|---|
1 | Anula el documento referenciado |
2 | Corrige texto |
3 | Corrige 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.