馃摛 Subiendo un DTE al SII desde Bash usando curl
Cuando trabajamos con facturaci贸n electr贸nica en Chile, uno de los pasos clave es la carga del documento tributario electr贸nico (DTE) al sistema del Servicio de Impuestos Internos (SII). Aunque muchos desarrolladores usan bibliotecas en Java, Python o Ruby, tambi茅n es posible realizar esta operaci贸n directamente desde un script Bash usando curl
.
馃懘 Ideal para entornos legacy
Este enfoque es especialmente 煤til para desarrolladores que usan tecnolog铆as antiguas como:
-
Visual Basic 6.0
-
FoxPro
-
Delphi
-
Aplicaciones heredadas que no cuentan con librer铆as modernas para HTTP o multipart/form-data
Estas plataformas pueden delegar la carga del DTE a un script externo en Bash, o llamar al comando curl
desde l铆nea de comandos, facilitando la integraci贸n sin tener que portar toda la l贸gica de comunicaci贸n.
A continuaci贸n, te muestro c贸mo hacerlo paso a paso:
馃洜️ Script Bash para subir un DTE
#!/bin/bash TOKEN="F4SZQLTL09LUH" # Token entregado por el SII ARCHIVO="DTE1331.xml" # Archivo XML firmado RUTCOMPANY="76659268" # RUT de la empresa emisora (sin guion) DVCOMPANY="6" # D铆gito verificador de la empresa RUTSENDER="13968481" # RUT del usuario que env铆a (sin guion) DVSENDER="8" # D铆gito verificador del usuario curl -v -X POST "https://maullin.sii.cl/cgi_dte/UPL/DTEUpload" \ -H "Accept: */*" \ -H "Accept-Language: es-cl" \ -H "Accept-Encoding: gzip, deflate" \ -H "User-Agent: Mozilla/4.0 (compatible; PROG 1.0; Windows NT 5.0; YComp 5.0.2.4)" \ -H "Connection: Keep-Alive" \ -H "Cache-Control: no-cache" \ -b "TOKEN=$TOKEN" \ --form-string "rutCompany=$RUTCOMPANY" \ --form-string "dvCompany=$DVCOMPANY" \ --form-string "rutSender=$RUTSENDER" \ --form-string "dvSender=$DVSENDER" \ -F "archivo=@$ARCHIVO"
Detalles importantes
-
El par谩metro
-b "TOKEN=$TOKEN"
indica la cookie de sesi贸n, que debe haberse obtenido previamente desde una autenticaci贸n previa. -
Se utiliza
--form-string
para los campos de texto, y-F
para subir el archivo comomultipart/form-data
. -
El
User-Agent
est谩 configurado para simular un navegador antiguo, ya que es un requisito com煤n del SII en sus endpoints legacy. -
El endpoint utilizado es
https://maullin.sii.cl/cgi_dte/UPL/DTEUpload
, dedicado al upload de documentos tributarios.
✅ Resultado
Si todo est谩 correcto, recibir谩s una respuesta XML desde el SII indicando si la carga fue exitosa o si hubo errores.
馃殌 Conclusi贸n
Este enfoque con curl
es ideal para tareas automatizadas, scripts cron, pruebas o integraciones r谩pidas sin necesidad de implementar un cliente completo. Es una herramienta poderosa cuando sabes exactamente qu茅 est谩s haciendo y tienes bien configurado tu archivo DTE firmado.
¿Te gustar铆a que te muestre tambi茅n c贸mo obtener el token o validar la respuesta del SII desde Bash? D茅jalo en los comentarios. 馃憞
Comentarios
Publicar un comentario