Entradas

💼 Servicio de Firma XML para Documentos Tributarios desde cualquier lenguaje (Go, Java, VB6, etc.)

  EGGA INFORMATICA E.I.R.L ofrece un servicio un servicio REST confiable y compatible con SII para la firma digital de documentos XML , ideal para integrarse fácilmente desde cualquier lenguaje de programación (Java, Go, PHP, Python, VB6, etc). 💲 Plan de Licencia Servicio de Firma XML : 🔐 11,5 UF + IVA (pago único) Incluye entrega del servicio en endpoint REST, documentación técnica, y pruebas de funcionamiento. Asesoría Técnica para la implementación : 👨‍💻 1 UF + IVA por hora Aplica si necesitas ayuda para generar correctamente los XML, integrarte con el servicio, o adaptar tu sistema. 📌 Características del Servicio Firma compatible con el formato requerido por el SII. Certificados digitales en formato .pfx . Firma tipo enveloped, compatible con documentos de tipo DTE (facturas, boletas, etc.). Servicio portable y sin amarre tecnológico (puede instalarse en tu propio servidor). 🚀 ¿Cómo se utiliza? El servicio se invoca mediante una llamada POS...

🔐 Obtener la Semilla (Seed) del SII usando Bash y Curl

En Chile, uno de los pasos fundamentales para firmar documentos electrónicos con el SII es obtener la "semilla" (seed) . Este valor es necesario para solicitar el token de autenticación , el cual luego se usa para enviar documentos tributarios (DTE). En esta entrada te muestro cómo invocar el método SOAP getSeed del SII directamente desde un script en Bash, usando herramientas simples como curl y sed . 🧾 El script completo: -- #!/bin/bash # Endpoint del servicio URL="https://maullin.sii.cl/DTEWS/CrSeed.jws" # SOAP Body del método getSeed SOAP_REQUEST='<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://www.sii.cl/SiiDte"> <soapenv:Header/> <soapenv:Body> <ws:getSeed/> </soapenv:Body> </soapenv:Envelope>' # Enviar la solicitud con curl RESPONSE=$(curl -s -X ...

📤 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 po...

USANDO XMLSEC PARA FIRMAR ARCHIVOS XML

Firmar un documento XML es una tarea común en procesos que requieren autenticidad e integridad, como la generación de DTE (Documento Tributario Electrónico). Para esto, podemos usar la utilidad xmlsec , una herramienta disponible en sistemas Unix y también en Windows (versiones de 32 y 64 bits). 🛠 Instalación de xmlsec1 Para firmar archivos XML desde la línea de comandos, utilizamos la herramienta xmlsec1 . Esta utilidad está disponible en la mayoría de los sistemas operativos, tanto en entornos Unix como en Windows. 🐧 En Linux (Debian/Ubuntu): sudo apt update sudo apt install xmlsec1 🐧 En Fedora o derivados: sudo dnf install xmlsec1 🍏 En macOS (usando Homebrew): brew install libxmlsec1 🐚 En sistemas Unix tipo BSD (FreeBSD, OpenBSD, etc.): En FreeBSD , puedes instalarlo usando el sistema de ports o mediante paquetes binarios: Desde ports: cd /usr/ports/security/xmlsec1 make install clean O desde pkg: pkg install xmlsec1 🪟 En Windows: Puedes descargar las versio...

🔐 ¿Cuál es el riesgo real de usar SHA-1 en una factura electrónica?

Muy bajo. Te explico por qué: ✅ 1. El contexto es distinto al de un sistema bancario o confidencial La factura electrónica: No contiene secretos militares ni credenciales bancarias. Va firmada principalmente para garantizar integridad, autenticidad y no repudio. Su uso está regulado y supervisado por el SII , que valida y almacena los documentos. ✅ 2. Ya hay múltiples capas de validación: Firma del emisor (firma del XML). Validaciones cruzadas vía trackid y timbre electrónico. ✅ 3. SHA-1 es usado solo porque el validador lo exige No estás implementando SHA-1 por elección ni como práctica insegura. Lo usas porque el validador del SII lo requiere explícitamente en su especificación. Ruby y Python modernos lo bloquean por defecto . Pero Java, bien configurado, puede seguir cumpliendo con esta exigencia sin comprometer todo el sistema. ✅ 4. El interés de “hackear” facturas es mínimo ¿Quién querría falsificar una factura electrónica si la verifica...

Criptografía en Ruby: Desventajas frente a Java y .NET

Aunque Ruby es un lenguaje expresivo y productivo, especialmente popular en el desarrollo web con Ruby on Rails, presenta desventajas claras frente a plataformas como Java y .NET cuando se trata de implementar soluciones criptográficas complejas.  1.  Enfoque del lenguaje y comunidad Ruby ha sido históricamente popular para desarrollo web (especialmente con Rails), automatización y scripting, no tanto para sistemas de bajo nivel, criptografía o aplicaciones de misión crítica donde el rendimiento criptográfico es clave. Java y .NET, en cambio, han sido usados más extensivamente en entornos corporativos donde la criptografía es un requerimiento común (banca, firmas digitales, etc.). 🔐 2.  Bibliotecas disponibles en Ruby Aunque no son tan completas como las de Java/.NET, sí existen bibliotecas para tareas criptográficas básicas: OpenSSL : Ruby incluye bindings a la biblioteca OpenSSL, lo que permite trabajar con cifrado simétrico, asimétrico, firmas, certificados, etc. RbN...

EJEMPLO CALCULO DE TIMBRE ELECTRÓNICO CON RUBY

Mensaje a Firmar <DD><RE>97975000-5</RE><TD>33</TD><F>27</F><FE>2003-09-08</FE> <RR>8414240-9</RR><RSR>JORGE GONZALEZ LTDA</RSR><MNT>502946</M NT><IT1>Cajon AFECTO</IT1><CAF version="1.0"><DA><RE>97975000- 5</RE><RS>RUT DE PRUEBA</RS><TD>33</TD><RNG><D>1</D><H>200</H> </RNG><FA>2003-09-04</FA><RSAPK><M>0a4O6Kbx8Qj3K4iWSP4w7KneZYe J+g/prihYtIEolKt3cykSxl1zO8vSXu397QhTmsX7SBEudTUx++2zDXBhZw==< /M><E>Aw==</E></RSAPK><IDK>100</IDK></DA><FRMA algoritmo="SHA1 withRSA">g1AQX0sy8NJugX52k2hTJEZAE9Cuul6pqYBdFxj1N17umW7zG/hAa vCALKByHzdYAfZ3LhGTXCai5zNxOo4lDQ==</FRMA></CAF><TSTED>2003-09 -08T12:28:31</TSTED></DD> Clave RSA Privada obtenida del CAF -----BEGIN RSA PRIVATE KEY----- MIIBOwIBAA...