Factura Electrónica integrada

Que es la Facturación Electrónica integrada?

El sistema del Contribuyente contiene todo el ciclo de emisión de una Factura Electrónica, Boleta de Venta electrónica, Nota de Crédito electrónica, Nota de Débito electrónica u otro documento electrónico, embebido en los procesos del sistema. Bajo este escenario, debemos pensar en un sistema cuya transacción implica ejecutar actividades remotas. El sistema debe tener en cuenta que la variable tiempo juega un papel importante en la transacción.

Procesos a considerar en el diseño de Facturación Electrónica

Se debe considerar al menos estos procesos básicos:

Emisión de la Factura

    • Emisión interno y nuevo número correlativo interno. Contemplar los datos mínimos requeridos para la emisión del documento electrónico

    • Generación del archivo XML-UBL 2.1 con los atributos y campos definidos según la SUNAT. El documento se construye utilizando el estándar UBL (Universal Business Language Versión 2.1)

    • Firmar el documento electrónico con la firma digital. Aplicar el certificado emitido para persona jurídica.

    • Generación del archivo comprimido con el XML generado. El formato de nombres aprobado por la SUNAT.

    • Validar el documento firmado.

    • Comunicación y envío del archivo firmado al Web Services transaccional de la SUNAT.

    • Lectura del archivo digital firmado por la SUNAT CDR (Constancia de recepción). Es el archivo respuesta enviado por la SUNAT a los sistemas del contribuyente.

    • Generación del Código QR.

    • Construcción del archivo digital en formato PDF. Es la factura impresa y entregada al cliente.

    • Archivar los archivos resultantes en el proceso de emisión para el cliente (XML, CDR, PDF). Para descarga vía Web Site.

    • Generación del informe al cliente y envío por correo electrónico.


    • Construcción del resumen de Boletas de Venta electrónicas y Notas relacionadas por día utilizando el estándar XML - UBL 2.1.

    • Firmar el documento electrónico con la firma digital. Aplicar el certificado emitido para persona jurídica.

    • Generación del archivo comprimido con el XML generado. El formato de nombres aprobado por la SUNAT.

    • Comunicación y envío del archivo firmado al Web Services no transaccional de la SUNAT.

    • Lectura del archivo digital firmado por la SUNAT CDR (Conformidad de recepción). Es el archivo respuesta enviado por la SUNAT a los sistemas del contribuyente.


Anulación de documentos de venta

    • Anulación del documento en los archivos de la SUNAT

    • Lectura del archivo digital del Ticket de anulación.

    • Anulación del documento de venta en el sistema del contribuyente (SEE).


Reenvío de documentos no generados por problemas de envío desde el contribuyente o cuando el Web Services de la SUNAT no ha podido procesar

    • Exploración de documento no aceptados por la SUNAT, pero no rechazados por el entre supervisor. En este caso se usa el mismo numero interno.

    • Generación del archivo XML-UBL 2.1 con los atributos y campos definidos según la SUNAT. El documento se construye utilizando el estándar UBL (Universal Business Language 2.1)

    • Firmar el documento electrónico con la firma digital. Aplicar el certificado emitido para persona jurídica.

    • Validar el documento firmado.

    • Comunicación y envío del archivo firmado al Web Services transaccional de la SUNAT.

    • Lectura del archivo digital firmado por la SUNAT CDR (Conformidad de recepción). Es el archivo respuesta enviado por la SUNAT a los sistemas del contribuyente.

    • Generación del Código QR.

    • Construcción del archivo digital en formato PDF. Es la factura impresa y entregada al cliente.

    • Archivar los archivos resultantes en el proceso de emisión para el cliente (XML, CDR, PDF). Para descarga vía Web Site.

    • Generación del informe al cliente y envío por correo electrónico.

Aspectos a tener en cuenta

Debe tener en cuenta que un proceso de comunicación remoto, implica enfrentarse a distintos eventos que debe controlar. Estos eventos son los tiempos de envío y respuesta, sujetos al ancho de banda que disponga y los cortes de comunicación en el proceso de envío. Ademas, si cumple con todos ellos, es posible que los servicios de la SUNAT tengas problemas de recepción y envío.

Para poder comunicarse con un Web Services, debe implementar el contrato. Estas interfaces son las funciones provista por el Web Services. Cuando se comunica con el servicio Web, debe proveer un usuario y contraseña provisto en la solicitud que envía a la SUNAT para cambiar su proceso de facturación a un proceso de facturación electrónico. Hasta ahora solo hemos hablado del proceso de comunicación. Queda por ver como se desarrollan los procesos internos del sistema.

Los procesos internos, deben estar preparados para producir los archivos digitales XML - UBL 2.1 con la información que es necesaria para construirlos. Siempre que planee el desarrollo debe construir 2 repositorios. El primero es la generación de la información que necesita el modelo de negocios del contribuyente; el segundo repositorio contiene los datos necesarios para gestionar la emisión del documento electrónico. Los datos del segundo repositorio deben ser lo recomendado por los estándares para generar el documento electrónico, y deben existir en el primer repositorio. Es decir, es un subconjunto del primer repositorio.

Al modelar las estructuras de datos, no se preocupen por la duplicidad de la información. Si bien el normalizar las estructuras de datos es bueno, no es obligatorio llegar a altos niveles, recuerde, son recomendaciones educativas. Cada empresa tiene un modelo de negocios que no es igual a otra, pero si parcialmente. Muchas empresas adicionan datos internos con fines de gestión. Esto es importante que lo tome en cuenta.

La SUNAT para poder recibir los datos de un documento, exige un formato que no solo va en la estructura del archivo , sino también en la composición del mismo. Por ejemplo, el archivo a enviar debe ser un archivo comprimido con el contenido del archivo con firma digital. El nombre de ambos debe tener una estructura en la construcción del nombre; y esta debe ser respetada.

Herramienta de desarrollo y lenguaje de programación adecuado

Bueno , eso depende del conocimiento de su área técnica. Si es un sistema empresarial para redes locales y utiliza Windows, una alternativa es desarrollarlo con Visual Studio 2019. Puede usar Visual Basic .Net o CSharp. Estos son los lenguajes recomendados por Microsoft. El lenguaje Visual Basic .Net Versión 16.2.5, ha sido reconstruido con la versión de Visual Studio 2019; es un lenguaje legendario, que ha evolucionado con los años. Es extremadamente flexible y muy fácil de utilizar. Si desea programar con CSharp Version 8, esta eligiendo un lenguaje flexible derivado del lenguaje C++, pero sin la complejidad de éste. Microsoft le da muy buen soporte. Otra alternativa es desarrollarlo en Java, lenguaje de programación que tiene el soporte de Oracle.

Actualmente existen sistemas empresariales que están desarrollados para ser ejecutados en plataformas Web; utilizan los navegadores de Internet y están programados con lenguajes como PHP, Python o ASP .Net con Visual Basic .Net o CSharp. Existen aspectos que deben ser considerados cuando es plataforma Web, como la seguridad. Un sistema expuesto en Internet, tiene riesgos de seguridad de la información. Ademas, la plataforma de Internet no nació para ser utilizado por sistemas transaccionales.

Si ya tiene un sistema de Facturación y desea llevarlo a un sistema de emisión de Facturación electrónica, necesita evaluar las bondades de la herramienta de desarrollo y el lenguaje que utiliza. Si la herramienta y el lenguaje de programación que ha sido desarrollado, brinda soporte para implementar las nuevas funcionalidades, debería tenerlo en cuenta, los costo del desarrollo bajan considerablemente. Recuerde que , si la herramienta de desarrollo cumple funcionalmente con sus objetivos, no lo cambie.