Usando la Librería C# de Polaris para firmar

Introducción

Polaris ofrece una Librería C# que encapsula toda la comunicación con el API de Polaris y simplifica su integración en el código fuente de cualquier sistema desarrollado con este lenguaje.

El código fuente de la Librería C# de Polaris puede ser descargado de este enlace: https://bitbucket.org/fortechint/polaris-api-interface. Luego deberá ser compilado e integrado ahí donde se quiera usar.

El código fuente de la Librería C# de Polaris también contiene unos Unit Tests de firmado electrónico que si se analizan, uno puede entender cómo implementar la integración de Polaris con cualquier sistema.

Requerimientos

Antes de bajar la Librería C# de Polaris y ejecutar los Units Test existentes en ella, existen algunos requisitos que se deberías tener:

  • Visual Studio 2019 (o superior) para analizar y ejecutar el código

  • Razón Social del emisor electrónico

  • RNC del emisor electrónico

  • Token de autenticación generado en el portal de Polaris

Firmado de una Factura de Crédito Fiscal paso a paso

Por si acaso, todos los test acá explicados se ejecutarán en un ambiente de pruebas de la DGII.

Sin entrar a detalles, los pasos para firmar la Factura de Crédito Fiscal que se encuentra en los Unit Tests de la Librería C# de Polaris son:

  1. Actualizar los ajustes (settings) que se encuentran en el archivo appsettings.Development.json

     

    1. AuthToken: Token de autenticación generado anteriormente

    2. RazonSocialEmisor: La razón social del emisor

    3. RNCEmisor: RNC del emisor

  2. Actualizar la constante entera _ENCF que se encuentra en el archivo /Tests/TestProject1/Tools/Tools.cs

     

    1. Tal como dice el comentario, esta constante almacena el número de secuencia fiscal que se le asignará al comprobante fiscal que queremos firmar

    2. DGII asigna 10 millones de números para pruebas para cada tipo de comprobante fiscal, es recomendable llevar un control del último número usado puesto que DGII no permite repetidos incluso en sus ambientes de prueba.

  3. Ejecutar el Units Test llamado FacturasCreditoFiscalServiceTests.FirmarAsyncTest

     

    1. Si se ejecuta el test de manera satisfactoria, significa que todo está bien configurado y que se ha podido firmar electrónicamente una Factura de Crédito Fiscal con Polaris

    2. Si es que no se ha podido firmar, revisar el procedimiento realizado e intentar nuevamente.

  4. ¡Y listo! Una Factura de Crédito Fiscal acaba de ser firmada

Entendiendo el firmado

¿Qué factura se ha firmado?

La primera pregunta que debes estar haciéndote es: ¿Qué factura se ha firmado?

  • La Factura de Crédito Fiscal firmada ha sido generada automáticamente por el Unit Test que se ha ejecutado

  • Si analizamos el método GenerarFacturaCreditoFiscal de la clase Tools, podremos fijarnos que:

    • Se recuperan los datos del emisor y receptor; además, se crea el NCF y una lista de ítems vacía:

       

    • Luego se crea la Factura de Crédito Fiscal con algunos datos iniciales:

       

      • Notar que ahí donde los datos son fijos, como por ejemplo TipoIngreso, se utilizan enumeradores claramente identificables para evitar errores.

    • Luego se crean los artículos de la Factura de Crédito Fiscal, en este caso 2 artículos y, posteriormente se calculan los totales y se retorna el comprobante fiscal para que, seguramente, se envíe a Polaris para su firmado:

       

      • Los artículos de un comprobante fiscal aceptado por Polaris / DGII tienen muchísimos campos y dependiendo del tipo de comprobante algunos son aceptados y otros no

      • En el ejemplo solo usamos los datos obligatorios, todos los demás que podrían existir son opcionales y no se envían para simplificar el ejemplo.

¿Cuáles son los pasos detallados del firmado realizado?

Los pasos detallados para firmar una Factura de Crédito Fiscal se encuentran en el código fuente del método de testeo FismarAsyncTest de la clase FacturasCreditoFiscalServiceTests.

 

Si analizamos el código fuente podremos notar que:

  • Se recupera la configuración de donde saldrá la URL de Polaris, el token de autenticación y todo lo antes definido.

  • Se instancia el servicio de firmado de Facturas de Crédito Fiscal para el ambiente de TEST

    • Esto es muy importante para asegurar que estamos en un modo de test y no de producción.

  • Con el token de autenticación se genera un nuevo token de consumo

    • Este token de consumo es el que en realidad protege a Polaris puesto que su tiempo de vida es corto y solo servirá para un par de llamadas

  • Se crea la Factura de Crédito Fiscal que queremos firmar con el método anteriormente explicado

  • Se envía a firmar con el nuevo token y la factura

    • Internamente, si se quiere analizar el código, se podrá ver cómo se traducen estas llamadas a métodos C# en llamadas a servicios web de tipo REST

  • Luego, a partir del comentario “Consulta Resultado”, ya no es parte del firmado sino de la verificación del mismo.

    • DGII funciona en un proceso de dos pasos para la mayoría de los comprobantes fiscales: 1) Se envía un comprobante fiscal y 2) Se verifica si fue aceptado o rechazado


Volver a Empezando con Polaris.