Ir al contenido
SimploSimplo Docs

Obtener DTE por ID

GET
/api/v1/billing/dte/{id}
curl --request GET \
--url 'https://api.simplo.cl/api/v1/billing/dte/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0?include_xml=false' \
--header 'X-Api-Key: <X-Api-Key>'

Retorna el DTE completo con estado actual, tracking del envío al SII y último detalle de consulta de estado. Con include_xml=true incluye el XML firmado en el campo xml_documento.

id
requerido
string format: uuid

UUID del DTE

include_xml
boolean

Incluir XML firmado en la respuesta

DTE encontrado

Media typeapplication/json
object
id
requerido
string format: uuid
tipo_dte
requerido

Código SII del tipo de Documento Tributario Electrónico (33 factura, 39 boleta, 52 guía de despacho, 56/61 notas, 110-112 exportación). Detalle de cada tipo en la guía Tipos de DTE.

integer
Valores permitidos: 33 34 39 41 43 46 52 56 61 110 111 112
folio
requerido
integer
estado
requerido

Estado del DTE en su ciclo de vida.

Importante:

  • la API serializa estos valores exactamente como aparecen aquí
  • use estos mismos literales para renderizar UI, hacer exhaustiveness checks y filtrar por estado en GET /api/v1/billing/dte

Valores:

  • borrador: Creado pero aún no firmado
  • generado: Documento construido, previo a firma
  • firmado: Firmado digitalmente, pendiente de envío
  • enviando: Sobre aceptado por la plataforma, esperando procesamiento SII
  • procesando: SII recibió el envío y se está consultando estado final del DTE
  • aceptado: Aceptado por el SII
  • rechazado: Rechazado por el SII
  • con_reparos: Aceptado por el SII con observaciones
  • error_envio: El envío al SII falló de forma DEFINITIVA (no es un reintento pendiente). NO es un veredicto del SII: el documento nunca llegó a evaluarse. Causa típica: folios agotados (CAF) al momento de enviar. El motivo llega en sii_status.glosa como texto libre, sin code estructurado, y tracking queda en null.

Estados TERMINALES: aceptado, rechazado, con_reparos, error_envio. Un bucle de polling que sólo espere los tres primeros NO TERMINA NUNCA.

string
Valores permitidos: borrador generado firmado enviando procesando aceptado rechazado con_reparos error_envio
rut_receptor
requerido
string
razon_social_receptor
requerido
string
fecha_emision
requerido
string format: date
monto_neto
integer
nullable
monto_exento
integer
nullable
tasa_iva
number
iva
integer
nullable
monto_total
requerido
integer
detalle
requerido
Array<object>
object
tipo_doc_liq

Tipo de documento liquidado. Requerido en Liquidación Factura (tipo 43).

string
<= 3 characters
ind_exe

Marca una línea como exenta cuando el tipo de DTE lo requiere.

integer
Valores permitidos: 1
cod_imp_adic

Código de impuesto adicional por línea. Para factura de compra con retención total de IVA se usa 15.

integer
nombre
requerido

Nombre del item o servicio. Máximo 80 caracteres (NmbItem del schema SII). Superarlo responde 400 DETALLE_INVALIDO nombrando el índice de la línea; el SII real rechaza el documento con STATUS=7 «Esquema inválido». Un nombre de catálogo largo NO cabe: usa dsc_item para el detalle extenso. Medido 2026-09-04.

string
<= 80 characters
dsc_item

Descripción adicional de la línea. En notas con codigo_ref=2 y monto cero se serializa como DscItem y se omiten QtyItem/PrcItem.

string
<= 1000 characters
cantidad

Cantidad (soporta decimales para unidades fraccionarias). Puede omitirse solo en correcciones de texto codigo_ref=2 sin monto. cantidad: 0 en una línea con precio responde 400 MONTO_INVALIDO con context.field = detalle[N].cantidad; no se emite nada y no se quema folio (medido 2026-09-04).

number
unidad

Unidad de medida opcional del item, por ejemplo UN, Kg o Lt

string
<= 4 characters
precio

Precio unitario en pesos chilenos (en boletas 39/41 es bruto, IVA incluido; en facturas es neto). Puede omitirse solo en correcciones de texto codigo_ref=2 sin monto. Un precio negativo o un total <= 0 responden 400 MONTO_INVALIDO con context.field y received_value; no se emite nada y no se quema folio (medido 2026-09-04).

integer
monto_item

Monto total de la línea. Uso acotado (por ejemplo liquidaciones) cuando el valor de línea no debe recalcularse como cantidad por precio.

integer
descuento_pct

Descuento porcentual sobre la línea (0-100)

number
<= 100
recargo_pct

Recargo porcentual sobre la línea (0-100)

number
<= 100
referencias
Array<object>

Forma de una referencia en las RESPUESTAS de detalle. Asimetría real respecto del request: no incluye codigo_ref, y la fecha se llama fch_ref (no fecha_ref).

object
tipo_doc_ref
One of:

Código SII del tipo de Documento Tributario Electrónico (33 factura, 39 boleta, 52 guía de despacho, 56/61 notas, 110-112 exportación). Detalle de cada tipo en la guía Tipos de DTE.

integer
Valores permitidos: 33 34 39 41 43 46 52 56 61 110 111 112
folio_ref
integer
fch_ref

Fecha del documento referenciado (en el request es fecha_ref)

string format: date
razon_ref
string
tracking

Información de tracking del envío al SII

object
envio_id
string format: uuid
nullable
track_id

Track ID asignado por el SII

string
nullable
estado_envio
string
nullable
codigo_sii

Código de respuesta del SII

string
nullable
glosa_sii

Glosa descriptiva de la respuesta SII

string
nullable
informados

Cantidad total de documentos informados por el SII

integer
aceptados

Cantidad de documentos aceptados

integer
rechazados

Cantidad de documentos rechazados

integer
reparos

Cantidad de documentos con reparos

integer
intentos
integer
sii_status

Último detalle fino por documento consultado al SII.

object
source

Fuente del dato consultado en SII

string
track_id
string
nullable
estado_sii

Estado crudo del documento devuelto por SII

string
nullable
glosa

Glosa consolidada

string
nullable
glosa_estado

Glosa principal asociada al estado

string
nullable
err_code
string
nullable
glosa_err
string
nullable
num_atencion
string
nullable
checked_at
string format: date-time
nullable
raw_xml

Respuesta XML cruda relevante, cuando está disponible.

string
nullable
xml_documento

XML firmado (solo si se solicita con include_xml=true)

string
nullable
metadata

Metadata generada por el servidor (p.ej. tracking del envío al SII). NO es el metadata que enviaste al emitir — ese campo hoy no se persiste.

object
key
additional properties
any
created_at
requerido
string format: date-time
updated_at
requerido
string format: date-time
Example
{
"id": "4f9c9c2e-8a49-4f2e-9d5f-0d8f3a1b2c3d",
"tipo_dte": 33,
"folio": 1042,
"estado": "aceptado",
"rut_receptor": "76543210-3",
"razon_social_receptor": "Empresa Ejemplo SpA",
"fecha_emision": "2026-08-01",
"monto_neto": 500000,
"monto_exento": 0,
"tasa_iva": 19,
"iva": 95000,
"monto_total": 595000,
"detalle": [
{
"nombre": "Servicio de consultoria TI",
"cantidad": 10,
"unidad": "UN",
"precio": 50000
}
],
"tracking": {
"track_id": "1234567890",
"estado_envio": "aceptado",
"informados": 1,
"aceptados": 1,
"rechazados": 0,
"reparos": 0,
"intentos": 1
},
"created_at": "2026-08-01T14:30:00Z",
"updated_at": "2026-08-01T15:05:00Z"
}

Token o API key inválido o ausente

Media typeapplication/json
object
code
requerido

Código de error máquina-legible

string
message
requerido

Mensaje descriptivo del error. Este es el campo canónico para clientes nuevos.

string
error

Alias de compatibilidad de message mantenido hacia atrás.

string
details
Array<object>
object
field
requerido

Campo con error (dot notation para nested)

string
code
requerido

Código de validación

string
message
requerido

Mensaje descriptivo

string
action

Acción recomendada para el cliente

string
severity

Severidad opcional del error

string
Valores permitidos: critical error warning info
context

Contexto estructurado opcional para debugging

object
key
additional properties
any
Example
{
"code": "VALIDATION_ERROR",
"message": "Error de validacion en los campos enviados",
"details": [
{
"field": "receptor.rut",
"code": "INVALID_RUT",
"message": "RUT invalido: digito verificador no coincide"
}
],
"severity": "critical"
}

Recurso no encontrado

Media typeapplication/json
object
code
requerido

Código de error máquina-legible

string
message
requerido

Mensaje descriptivo del error. Este es el campo canónico para clientes nuevos.

string
error

Alias de compatibilidad de message mantenido hacia atrás.

string
details
Array<object>
object
field
requerido

Campo con error (dot notation para nested)

string
code
requerido

Código de validación

string
message
requerido

Mensaje descriptivo

string
action

Acción recomendada para el cliente

string
severity

Severidad opcional del error

string
Valores permitidos: critical error warning info
context

Contexto estructurado opcional para debugging

object
key
additional properties
any
Example
{
"code": "VALIDATION_ERROR",
"message": "Error de validacion en los campos enviados",
"details": [
{
"field": "receptor.rut",
"code": "INVALID_RUT",
"message": "RUT invalido: digito verificador no coincide"
}
],
"severity": "critical"
}