Responder automáticamente DTE recibidos
LibreDTE permite automatizar la recepción o reclamo de documentos electrónicos (DTE) que llegan por intercambio, mediante un servicio web propio.
Este sistema permite automatizar gran parte del flujo de intercambio, mejorando tiempos de respuesta y reduciendo errores manuales.
¿Cómo funciona?
Debes crear un endpoint HTTP que reciba solicitudes POST. LibreDTE enviará en el cuerpo un JSON que contiene el archivo EnvioDTE codificado en base64.
Ejemplo de endpoint
https://example.com/api/intercambios/procesar
Ejemplo de payload recibido
{
"xml": "aWRfcGFnbwo="
}
Tipos de respuesta esperada
Tu servicio debe responder con JSON. Hay múltiples opciones dependiendo del comportamiento deseado:
1. Recibir todos los documentos (estado ERM)
true
2. Reclamar todos los documentos (estado RCD)
false
3. No procesar (deja el intercambio sin respuesta automática)
Cualquier valor de tipo string en la respuesta se interpreta como que no se logró determinar qué hacer, y se omite la acción (el intercambio queda pendiente de procesamiento manual). El string puede usarse, de hecho, para reportar el motivo por el cual no se está procesando la respuesta:
"null"
o, por ejemplo:
"Sin stock para validar recepción."
La respuesta debe ser un string (con comillas), no el literal JSON null. Un null sin comillas no equivale a “no procesar”: se interpreta como un valor booleano falso, es decir, como reclamar todo el intercambio.
4. Procesar por documento (recibir y reclamar según DTE)
Si el intercambio tiene más de un DTE, se puede indicar qué documentos se deben recibir o reclamar:
{
"recibir": [
{
"TipoDTE": 33,
"Folio": 1
}
],
"reclamar": [
{
"TipoDTE": 33,
"Folio": 2
}
]
}
Los índices recibir y reclamar son arreglos de arreglos (objetos) que pueden tener los siguientes índices:
// esto no es una respuesta válida, es sólo un ejemplo de cómo asignar datos de un DTE
{
"TipoDTE": 31,
"Folio": 1,
"FchEmis": "2018-05-21",
"RUTEmisor": "76192083-9",
"RUTRecep": "88777666-5",
"MntTotal": 1000,
"EstadoRecepDTE": "ERM",
"RecepDTEGlosa": "Otorga recibo de mercaderías o servicios"
}
Solo TipoDTE y Folio son obligatorios. Sin embargo, se recomienda incluir RUTEmisor, EstadoRecepDTE y RecepDTEGlosa si hay más de un DTE. Los índices EstadoRecepDTE y RecepDTEGlosa permiten definir los estados que se asignarán (por defecto es ERM para recibidos y RCD para reclamados).
Configuración general opcional
También puedes incluir un bloque config con información adicional, por ejemplo la sucursal que recibe el DTE o el período donde se debe asignar:
{
"accion": true,
"config": {
"NmbContacto": "Esteban",
"MailContacto": "usuario@empresa.cl",
"sucursal": 0,
"Recinto": "Casa matriz",
"responder_a": "dte@proveedor.cl",
"periodo": "202509"
}
}
En el índice accion se puede indicar cualquiera de las respuestas antes vistas (true, false, o el objeto con recibir/reclamar).
En el índice config, todos los campos son opcionales; si no se indica alguno, será determinado automáticamente por el sistema.
| Campo | Descripción |
|---|---|
NmbContacto |
Nombre del contacto para consultas |
MailContacto |
Email del contacto |
sucursal |
Código de sucursal (0 = casa matriz) |
Recinto |
Nombre del lugar de recepción |
responder_a |
Email del proveedor (recomendado: no asignar) |
periodo |
Período tributario en formato AAAAMM; debería ser siempre el actual |
Aunque puedas responder automáticamente, es tu responsabilidad validar el contenido del EnvioDTE y establecer políticas claras de aceptación o reclamo.