En el mundo de la facturación electrónica, la capacidad de crear y utilizar tu propio firmador electrónico es una herramienta poderosa, especialmente si eres un desarrollador o tienes un equipo técnico en tu empresa. En este artículo, te guiaremos paso a paso a través del proceso de creación y uso de un firmador electrónico personal en Windows, permitiéndote firmar documentos tributarios electrónicos (DTE) sin límites y con total autonomía. Este contenido está basado en el webinar técnico ofrecido por ContaPortable, donde se abordaron los aspectos clave para desarrollar y configurar un firmador electrónico desde cero.
¿Por qué Crear tu Propio Firmador Electrónico?
La firma electrónica es un componente esencial en la facturación electrónica, ya que garantiza la autenticidad e integridad de los documentos tributarios. Sin una firma electrónica válida, cualquier persona podría alterar los datos de una factura o incluso emitir facturas fraudulentas a nombre de otros contribuyentes. Por ello, contar con un firmador electrónico personalizado no solo te brinda control total sobre el proceso de firma, sino que también te permite:
- Firmar sin límites: No depender de terceros para firmar tus documentos.
- Autonomía: Mantener tus credenciales de firma bajo tu control, sin riesgo de bloqueos externos.
- Funcionamiento sin internet: Firmar documentos incluso en situaciones donde no hay conexión a internet, lo que es especialmente útil en zonas rurales o con conectividad limitada.
En esta guía, te proporcionaremos una hoja de ruta detallada para que puedas crear y configurar tu propio firmador electrónico en Windows, utilizando las herramientas proporcionadas por el Ministerio de Hacienda.
¿Esto es lo que necesitarás para ejecutar esta Guía?
Descarga e Instalación del Firmador: Puedes obtenerlo desde la pagina web del ministerio de hacienda
Configuración de Variables de Entorno: Pasos para asegurar que el firmador funcione correctamente.
1)Busca las variables de entorno en tu sistema operativo windows

2)Click en el botón de variables de entorno del sistema, ahí es donde se crean las variables que vamos ocupar para firmar con el firmador para DTE’s basado en sistema operativo windows.

3)Crear las siguientes variables de entorno, en la cual podemos incluir los valores de ejemplo siguientes, en mi caso yo tengo instalado los archivos del firmador en la siguiente ruta
C:\FIRMADOR\dte-firmador\dte-firmador\servicioFirmadoWindows

Nota: Si tu pusiste estos archivos en otra ubicación debes usar la que tu asignaste.
CERTIFICATE_HOME | C:\FIRMADOR\dte-firmador\dte-firmador\servicioFirmadoWindows\ |
CERTIFICATE_PROFILE | nonssl |
Se deben crear tanto en las variables de usuario como en la variables de sistema

Recuerda que debes copiar los certificados a la ubicación de la variable CERTIFICATE_HOME
4)Instalación del JDK: Requisito técnico para ejecutar el firmador.
Se debe instalar el Jdk 11 de Java para poder correr el firmador, recuerda que el firmador de windows funciona con lenguaje de programación JAVA por lo que el runtime de ejecución para programas JAVA debe estar disponible en tu sistema windows

Completa el asistente para ejecución del jdk 11 y comprueba que lo tienes instalado ejecutando el comando :
java --version
en la consola de powerShell

una vez confirmes que tienes el java Runtime instalado debes crear el servicio de Windows para que se ejecute automáticamente cada que inicies el sistema.
5)Instalación del Servicio en Windows: Cómo convertir el firmador en un servicio que se ejecute automáticamente.
Para esta parte necesitarás de la consola, yo prefiero usar consola de powerShell ya que se me hace una herramienta con superpoderes a la hora de ejecutar comandos en windows, te recomiendo que la instales o que la actualices para garantizar que puedas ejecutar los mismos comandos que yo.
Para crear el servicio de Windows debes posicionarte en la carpeta donde se encuentren los archivos del firmador :
- svfe-api-firmador-0.1.1.jar
- WinSW.exe
- WinSW.xml
Estos archivos son los que proporciona el Ministerio de Hacienda como solución estandard para el firmado de Documentos Tributarios Electrónicos; a continuación te comparto que son estos archivos:
svfe-api-firmador-0.1.1.jar: Es el código fuente del firmador desarrollado por hacienda, está en lenguaje de programación Java, con Framework SpringBoot
WinSW.exe: Es el ejecutable para ambiente Windows (.EXE) que ejecuta (levanta ) el código de java
WinSW.xml: Contiene la configuración del como se creará el servicio de Windows, está en formato xlm lo que significa que podemos editarlo y configurar los parámetros
<configuration>
<!-- ID of the service. It should be unique accross the Windows system-->
<id>FIRMADOR-SERVICE</id>
<!-- Display name of the service -->
<name>FIRMADOR</name>
<!-- Service description -->
<description>Servicio firmador de documentos MH</description>
<!-- we need to execute java -jar ./XXX.jar -->
<executable>java</executable>
<arguments> -Dspring.profiles.active=%CERTIFICATE_PROFILE% -jar svfe-api-firmador-0.1.1.jar</arguments>
</configuration>
Puedes cambiar la etiqueta id o name, si lo que deseas es cambiar el nombre bajo el cual se creara en el administrador de servicios de Windows.
Volvamos a la creación del servicio, para ello debemos posicionarnos en la consola dentro del la carpeta donde tenemos los archivos, recuerda que estos archivos se bajan de la pagina web del ministerio de hacienda en la que se descarga todo lo referente a la facturación electrónica : https://factura.gob.sv
cd C:\FIRMADOR\dte-firmador\dte-firmador\servicioFirmadoWindows\
estando dentro de esa carpeta ejecutamos el comando
.\WinSW.exe install WinSW.xml

Una vez realices este comando debes reiniciar tu equipo para que el servicio de firmador Windows se ejecute correctamente.
Si acaso no se iniciara automáticamente debes ejecutar el siguiente comando
.\WinSW.exe start winsw.xml
Si aparece el mensaje: The following feature couldn’t be installed : .NEt Framework 3.5 (includes .NET)

Debes bajar e instalar este paquete.
6)Pruebas y Validación
Antes de usar el firmador en producción, es crucial realizar pruebas para asegurarte de que todo funcione correctamente.
Antes que nada debemos comprobar si el servicio Windows se está ejecutando, para ello debemos ir a la siguiente opción en tu Windows


Ahora debemos comprobar por medio de Postman (Software para testeo de apis )
Prueba el Estado del Firmador: Usa una herramienta como Postman para enviar una solicitud a la URL del firmador (por ejemplo, http://localhost:8080/signer/status). Si el firmador está funcionando, recibirás una respuesta que dice «Application is running».

Firma un Documento de Prueba: Usa el firmador para firmar un documento de prueba y verifica que la firma se genere correctamente.
Ventajas de Tener tu Propio Firmador Electrónico
Garantiza la autonomía de Facturación, es decir poder emitir factura aún y cuando no hay internet o la plataforma de hacienda se ha caído, eso permite que tu negocio pueda continuar operando incluso en medio de una catástrofe esto es por medio del evento de invalidación.
Otras ventajas:
Firmar sin Internet: Puedes firmar documentos incluso en zonas con conectividad limitada.
Sin Límites de Firma: No dependes de terceros para firmar tus documentos, lo que te da total autonomía.
Seguridad: Tus credenciales de firma están bajo tu control, sin riesgo de bloqueos externos.
Conclusión
Crear y usar tu propio firmador electrónico en Windows es un proceso técnico, pero con la guía adecuada, es totalmente alcanzable. En este artículo, te hemos proporcionado una hoja de ruta detallada para que puedas configurar tu propio firmador, desde la descarga e instalación hasta las pruebas finales.
Recuerda que la clave del éxito está en realizar pruebas exhaustivas y asegurarte de que todos los componentes estén funcionando correctamente antes de pasar a producción. Si tienes alguna duda o necesitas más información, no dudes en consultar los recursos adicionales disponibles en nuestro blog ContaPortable.