Integración con el cliente de LibreDTE
El cliente de escritorio de LibreDTE permite integrar tu sistema con los servicios web de LibreDTE desde cualquier aplicación y en cualquier lenguaje, siempre que puedas generar un archivo JSON o XML con los datos del documento a emitir.
Antes de usar cualquier comando:
- Descarga e instala el cliente de escritorio de LibreDTE. El instalador incluye Python y todas las dependencias necesarias.
- Obtén el
hashde tu usuario desde tu perfil. - Agrega el
hashal archivo de configuraciónconfig.ymldel cliente.
Emisión con dte_generar
Usa este comando cuando tu sistema genera un archivo (JSON, XML u otro formato) por cada documento a emitir y quiere enviarlo en ese momento. El cliente lo envía al servicio web de LibreDTE y guarda los resultados en el directorio que indiques.
Archivos de salida
Tras cada ejecución exitosa encontrarás estos archivos en el directorio de salida:
| Archivo | Contenido |
|---|---|
temporal.json |
Respuesta del servicio web al crear el DTE temporal. |
emitido.json |
Respuesta al crear el DTE real; incluye el track_id si fue enviado al SII. |
emitido.csv |
Los mismos datos de emitido.json separados por punto y coma. |
emitido.xml |
XML del documento real (solo si se pasa --getXML). |
emitido.pdf |
PDF del documento real, con copia cedible por defecto. |
Ejemplos
Generar a partir de un archivo JSON:
libredte-cliente.py dte_generar --json=dte.json --dir=resultado
Generar a partir de un archivo XML:
libredte-cliente.py dte_generar --xml=dte.xml --dir=resultado
Si tu archivo usa una codificación distinta a UTF-8, agrega --encoding:
libredte-cliente.py dte_generar --json=dte.json --dir=resultado --encoding=ISO-8859-1
Consulta el README del repositorio para ver todas las opciones: otros formatos de entrada (YAML, etc.), formato del PDF, envío automático por correo, entre otras.
Emisión en modo monitor
Usa este comando cuando prefieras una integración desacoplada: tu sistema deposita archivos en un directorio de entrada y el cliente los procesa automáticamente. El monitor se ejecuta de forma continua y revisa el directorio de entrada cada 1 segundo; cuando detecta un archivo nuevo genera el DTE y deja los resultados en el directorio de salida.
Ejemplos
Monitorear con archivos en formato JSON (por defecto):
libredte-cliente.py monitor --emisor=76192083-9 --dir_entrada=/ruta/entrada --dir_salida=/ruta/salida
Monitorear con archivos en formato XML:
libredte-cliente.py monitor --emisor=76192083-9 --formato=xml --dir_entrada=/ruta/entrada --dir_salida=/ruta/salida
Enviar el DTE automáticamente por correo al receptor (si tiene correo asociado en LibreDTE):
libredte-cliente.py monitor --emisor=76192083-9 --dir_entrada=/ruta/entrada --dir_salida=/ruta/salida --email
Imprimir el PDF automáticamente en la impresora por defecto del equipo:
libredte-cliente.py monitor --emisor=76192083-9 --dir_entrada=/ruta/entrada --dir_salida=/ruta/salida --imprimir
Si los archivos de entrada usan una codificación distinta a UTF-8:
libredte-cliente.py monitor --emisor=76192083-9 --dir_entrada=/ruta/entrada --dir_salida=/ruta/salida --encoding=ISO-8859-1
Consulta el README del repositorio para ver todas las opciones e información sobre otros comandos disponibles (estado de DTE, descarga de PDF, emisión masiva desde CSV, impresión directa, etc.).