Payloads: liquidación, compra y exportación
Payloads completos y verificados para los tipos de DTE 43 (liquidación-factura), 46 (factura de compra), 110 (factura de exportación), 111 y 112 (notas de exportación) — cada ejemplo fue emitido de verdad en el sandbox y aceptado. Las reglas por tipo están codificadas máquina-legibles en el contrato OpenAPI como unión discriminada por tipo_dte (EmitirDTERequestPorTipo).
Los tipos comunes (33, 34, 39, 41, 52, 56, 61) están cubiertos en el
Quickstart y en Tipos de DTE.
Esta página completa los cinco tipos restantes con payloads completos y
medidos: cada ejemplo de esta página fue emitido tal cual contra
POST /api/v1/billing/dte en el sandbox, llegó a estado aceptado
(SII simulado, estado_sii: "DOK") y su XML fue verificado. Los montos de
respuesta que ves aquí son los que devolvió la API.
Las reglas generales (header Idempotency-Key obligatorio, flujo asíncrono
firmado → aceptado, polling con GET /api/v1/billing/dte/{id}) son las
mismas de siempre — ver Emisión.
43 — Liquidación-factura
Sección titulada «43 — Liquidación-factura»La emite un consignatario/comisionista al mandante (el receptor). Dos reglas propias del tipo, ambas validadas por la API:
- Cada línea de
detallerequieretipo_doc_liq— el código del tipo de documento que se está liquidando (ej."33"facturas,"39"boletas). Omitirlo responde400 LIQUIDACION_TPO_DOC_LIQ_REQUERIDO. comisionesexigetipo_movim"C"(comisión) u"O"(otros cargos), conglosa. Otro valor responde400 LIQUIDACION_COMISION_INVALIDA.
El total del documento descuenta las comisiones:
monto_total = neto + IVA − (val_com_neto + val_com_exe + val_com_iva).
curl -X POST https://api.simplo.cl/api/v1/billing/dte \ -H "X-Api-Key: $SIMPLO_API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: $(uuidgen)" \ -d '{ "tipo_dte": 43, "receptor": { "rut": "76543210-3", "razon_social": "COMERCIAL MANDANTE SPA", "giro": "VENTA AL POR MAYOR", "direccion": "AVENIDA PRINCIPAL 100", "comuna": "SANTIAGO", "ciudad": "SANTIAGO" }, "detalle": [ { "tipo_doc_liq": "33", "nombre": "Ventas del período por cuenta del mandante", "cantidad": 1, "precio": 500000 } ], "comisiones": [ { "tipo_movim": "C", "glosa": "Comisión de venta 10%", "tasa_comision": 10, "val_com_neto": 50000, "val_com_exe": 0, "val_com_iva": 9500 } ] }'Resultado medido: 201 con estado: "firmado", y al consultar el detalle
tras la aceptación: monto_neto: 500000, iva: 95000,
monto_total: 535500 (595.000 − 59.500 de comisiones). En el XML el
documento va como <Liquidacion>, cada línea lleva <TpoDocLiq>, la sección
<Comisiones> detalla cada movimiento y Totales incluye el resumen
<Comisiones> con ValComNeto/ValComIVA.
46 — Factura de compra
Sección titulada «46 — Factura de compra»La emite el comprador; el receptor es el proveedor al que le
compras. El caso típico es retención total de IVA (cambio de sujeto):
declara impuestos_retenciones con tipo_imp: 15 y la tasa — la API calcula
la retención sobre el neto y la descuenta del total.
curl -X POST https://api.simplo.cl/api/v1/billing/dte \ -H "X-Api-Key: $SIMPLO_API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: $(uuidgen)" \ -d '{ "tipo_dte": 46, "receptor": { "rut": "77112223-K", "razon_social": "AGRICOLA PROVEEDOR LIMITADA", "giro": "CULTIVO DE CEREALES", "direccion": "CAMINO RURAL KM 12", "comuna": "MELIPILLA", "ciudad": "MELIPILLA" }, "detalle": [ { "nombre": "Compra de trigo a productor primario", "cantidad": 100, "precio": 1200, "unidad": "QQM" } ], "impuestos_retenciones": [ { "tipo_imp": 15, "tasa_imp": 19 } ] }'Resultado medido: monto_neto: 120000, iva: 22800, y como el IVA queda
totalmente retenido (tipo_imp: 15), monto_total: 120000 — igual al
neto. En el XML, Totales lleva el bloque <ImptoReten> con
TipoImp 15 / TasaImp 19 / MontoImp 22800.
110 — Factura de exportación
Sección titulada «110 — Factura de exportación»Documento exento con moneda extranjera y datos de aduana en
export_data. Reglas medidas:
preciova en la moneda del documento (entero — ej.12= USD 12). El total sale enmonto_exento/monto_totalen esa moneda; el IVA es 0.tpo_monedausa los nombres de la tabla de monedas de Aduana del SII:"DOLAR USA","EURO","LIBRA EST","YEN", … Un código ISO como"USD"responde400 EXPORT_MONEDA_INVALIDA.- Incluye siempre
tpo_cambio(pesos por unidad de la moneda). Con él, el XML lleva el bloque<OtraMoneda>con el total enPESO CL(MntTotOtrMnda) que el SII real exige para cuadrar el encabezado. ⚠️ El sandbox acepta una exportación en moneda extranjera sintpo_cambio(medido:201), pero el SII real rechaza ese documento («Encabezado No Cuadra»). No omitas el campo porque el sandbox te lo permita. - Los campos de aduana aceptan etiqueta o código numérico:
clausula_venta: "CIF"→CodClauVenta 1(una cláusula desconocida responde400 EXPORT_CLAUSULA_INVALIDA),pais_recep: "USA"→CodPaisRecep 225,puerto_embarque: "SAN ANTONIO"→CodPtoEmbarque 906. Un puerto que no está en la tabla (ej."MIAMI") viaja como texto libre enIdAdicPtoDesemb. - Para el receptor extranjero usa el RUT genérico
55555555-5.
curl -X POST https://api.simplo.cl/api/v1/billing/dte \ -H "X-Api-Key: $SIMPLO_API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: $(uuidgen)" \ -d '{ "tipo_dte": 110, "receptor": { "rut": "55555555-5", "razon_social": "OVERSEAS TRADING LLC", "giro": "IMPORTACION DE ALIMENTOS", "direccion": "1200 HARBOR BLVD, MIAMI FL", "ciudad": "MIAMI" }, "detalle": [ { "nombre": "Cajas de arándanos frescos 2,5 kg", "cantidad": 500, "precio": 12 } ], "export_data": { "tpo_moneda": "DOLAR USA", "tpo_cambio": 945.3, "modalidad_venta": 1, "clausula_venta": "CIF", "total_clausula": 6000, "via_transporte": 1, "puerto_embarque": "SAN ANTONIO", "puerto_desembarque": "MIAMI", "pais_recep": "USA", "pais_dest": "USA", "peso_bruto": 1350.5, "unidad_peso_bruto": 6, "tipo_bulto": "PALLET", "total_bultos": 25 } }'Resultado medido: monto_exento: 6000, monto_total: 6000 (USD),
iva: 0. El XML sale bajo <Exportaciones> con el bloque
<Transporte><Aduana> (códigos ya mapeados) y
<OtraMoneda> TpoCambio 945.3 / MntTotOtrMnda 5671800.
111 y 112 — Notas de débito y crédito de exportación
Sección titulada «111 y 112 — Notas de débito y crédito de exportación»Igual que 56/61, requieren referencias (omitirlas responde
400 "referencia is required for document type 111"), y como todo documento
de exportación llevan export_data con tpo_moneda y tpo_cambio. Emite
primero la 110 y referencia su folio y fecha reales.
Nota de débito de exportación (111) — cargo adicional sobre la 110:
curl -X POST https://api.simplo.cl/api/v1/billing/dte \ -H "X-Api-Key: $SIMPLO_API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: $(uuidgen)" \ -d '{ "tipo_dte": 111, "receptor": { "rut": "55555555-5", "razon_social": "OVERSEAS TRADING LLC", "giro": "IMPORTACION DE ALIMENTOS", "direccion": "1200 HARBOR BLVD, MIAMI FL", "ciudad": "MIAMI" }, "detalle": [ { "nombre": "Flete marítimo adicional no facturado", "cantidad": 1, "precio": 350 } ], "referencias": [ { "tipo_doc_ref": "110", "folio_ref": 1042, "fecha_ref": "2026-09-02", "codigo_ref": 3, "razon_ref": "Corrige monto: flete adicional" } ], "export_data": { "tpo_moneda": "DOLAR USA", "tpo_cambio": 945.3 } }'Nota de crédito de exportación (112) — devolución parcial sobre la 110:
curl -X POST https://api.simplo.cl/api/v1/billing/dte \ -H "X-Api-Key: $SIMPLO_API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: $(uuidgen)" \ -d '{ "tipo_dte": 112, "receptor": { "rut": "55555555-5", "razon_social": "OVERSEAS TRADING LLC", "giro": "IMPORTACION DE ALIMENTOS", "direccion": "1200 HARBOR BLVD, MIAMI FL", "ciudad": "MIAMI" }, "detalle": [ { "nombre": "Devolución 40 cajas arándanos dañadas", "cantidad": 40, "precio": 12 } ], "referencias": [ { "tipo_doc_ref": "110", "folio_ref": 1042, "fecha_ref": "2026-09-02", "codigo_ref": 3, "razon_ref": "Corrige monto: devolución parcial" } ], "export_data": { "tpo_moneda": "DOLAR USA", "tpo_cambio": 945.3 } }'Resultados medidos: 111 → monto_total: 350; 112 → monto_total: 480
(40 × 12), ambos aceptado, ambos con la <Referencia> al folio real de la
110 y su bloque <OtraMoneda> en el XML. Reemplaza folio_ref: 1042 y
fecha_ref por el folio y la fecha que te devolvió la emisión de tu 110.
Dos comportamientos medidos que debes conocer:
- Una 111 que referencia una 112 con
codigo_ref: 3es rechazada:400 REFERENCIA_CODIGO_INVALIDO(«use codigo_ref=1») — para anular una nota de crédito de exportación referencia concodigo_ref: 1. - La API verifica que el folio de exportación referenciado exista, igual
que en 56/61: una 111/112 apuntando a un folio 110 inexistente de tu
empresa responde
400 REFERENCIA_INVALIDA(el SII real la rechazaría conREF-3-750, quemando el folio). Mismo alcance que 56/61: solo se verifican referencias a tipos electrónicos gestionados por Simplo; documentos emitidos fuera de Simplo (p. ej. pre-migración) no son verificables y pasan sin chequear.
Errores propios de estos tipos (medidos)
Sección titulada «Errores propios de estos tipos (medidos)»code |
Status | Cuándo |
|---|---|---|
LIQUIDACION_TPO_DOC_LIQ_REQUERIDO |
400 | Tipo 43 con alguna línea de detalle sin tipo_doc_liq |
LIQUIDACION_COMISION_INVALIDA |
400 | Tipo 43 con comisión sin glosa o con tipo_movim distinto de C/O |
EXPORT_MONEDA_INVALIDA |
400 | tpo_moneda fuera de la tabla de Aduana (ej. "USD") |
EXPORT_CLAUSULA_INVALIDA |
400 | clausula_venta que no es cláusula Incoterm de Aduana ni código |
REFERENCIA_CODIGO_INVALIDO |
400 | 111 referenciando una 112 con codigo_ref: 3 |
REFERENCIA_INVALIDA |
400 | 56/61/111/112 referenciando un tipo+folio que no existe para tu empresa |
BAD_REQUEST (referencia) |
400 | 111/112 sin referencias |
Relacionado
Sección titulada «Relacionado»- Tipos de DTE — los 12 tipos y sus requisitos
- Emisión — endpoint, idempotencia y flujo asíncrono
- Estados — ciclo de vida hasta
aceptado - Errores — clases de error y reintentos