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."
Warning

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"
}
Note

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

Tus Documentos, Tu Responsabilidad

Aunque puedas responder automáticamente, es tu responsabilidad validar el contenido del EnvioDTE y establecer políticas claras de aceptación o reclamo.

En esta página

Última actualización el 02/06/2025 por