Tutorial: Creación de Facturas Electrónicas con OpenInvoicePeru

PorErick Orlando

Tutorial: Creación de Facturas Electrónicas con OpenInvoicePeru

Hola!

El día de hoy haré un pequeño tutorial de cómo crear una factura con OpenInvoicePeru, enviarla y recibir el CDR.

He decidido colocar tres ejemplos:

  • Factura con Operaciones Gravadas.
  • Factura con Operaciones Exoneradas.
  • Factura con Operaciones Gratuitas.

Ejecución del Proyecto OpenInvoicePeru

Para comenzar, debo asumir que ya has podido ejecutar el proyecto desde Visual Studio 2015, si aun no has podido, te invito a que leas la descripción del proyecto en la página de GitHub, hay que tener en cuenta que cuando se ejecuta por primera vez la API REST en el navegador, saldrá una pantalla como esta:

snap1

 

Debido a que esta API REST no cuenta con una página de Inicio sale el error Forbidden (Prohibido), ya que no se tiene visibilidad del directorio físico a través del navegador, por lo cual se tiene que colocar la palabra swagger al final de la URL:

snap2

Y debería retornar la siguiente pantalla:

snap3

Swagger es un Framework que permite autodocumentar las API REST.

Creación de las Facturas

Hay que recalcar que los pasos son prácticamente los mismos en casi todos los casos, así que empecemos por los datos del contribuyente.

Para este ejemplo voy a usar el servidor de desarrollo de SUNAT, el cual es el beta, escogiéndolo desde el combo. Colocamos un RUC válido, y en Usuario y Clave SOL colocamos en ambos casos MODDATOS, luego en el Grupo de Documentos escogemos el primero, después elegimos como Tipo de Documento: Factura.

Y para concluir debemos escoger un Certificado Digital, no importa si es uno real o de prueba, lo importante es que el formato del Certificado debe ser un PFX; si quieres crear un Certificado Digital Autofirmado te recomiendo que leas el post que hice hace algun tiempo; y luego llenamos el campo de Contraseña si así fuera el caso, debería quedar como la siguiente imagen:

snap4

Como en este caso vamos a crear un XML desde cero, presionamos el botón Generar, para luego llenar los datos del contribuyente Emisor, así como los datos del Receptor, debido a que es una Factura, el Receptor, siempre debe ser una persona jurídica o una empresa, por lo tanto el Tipo de Documento del Receptor debe ser el 6: Registro Unico de Contribuyentes (RUC). Debería quedar como la siguiente imagen:

snap5

Luego, procedemos con los demás datos, para este ejemplo colocamos el ID del Documento, que se compone de la Serie y el Correlativo de la Factura, coloquemos FF11-1250, luego indiquemos que será en Soles, con la fecha de hoy, para luego indicar que el monto en letras no estará en blanco:

snap7

Finalmente agregamos un detalle, presionando sobre el botón Agregar y luego llenamos los siguientes datos:

snap6

La única diferencia entre cada caso es el tipo de Impuesto, sólo para el caso cuando sean operaciones gravadas, se presiona el botón Calcular IGV.

  • Para Gravadas, se usa el valor 10 (Gravado – Operación Onerosa)
  • Para Exoneradas, se usa el valor 20 (Exonerado – Operación Onerosa)
  • Y para Gratuitas, se usa el valor 21 (Exonerado – Transferencia Gratuita), solo que en este caso, el precio del valor unitario tendría que ser 0 y el precio referencial si debe incluir el monto que hubiera costado el ítem.

Una vez colocado todos esos detalles, procedemos a observar que cada grupo ha sido totalizado de manera automática, esto siempre dependerá del tipo de impuesto que se escoja.

snap8

Finalmente, presionamos el botón Generar XML y nos retornará a la pantalla inicial del aplicativo, como podrás apreciar, tanto el nombre de la ruta del XML se ha autogenerado asi como el campo Serie-Correlativo con lo hecho en la pantalla anterior.

snap9

Presionamos el botón Enviar y obtendremos la respuesta de SUNAT en el cuadro amarillo, si tienes configurado el asistente de Voz de Windows y el checkbox de Hablar en voz alta está activado, el contenido de la caja de texto se leerá de manera automática.

snap10

Para comprobar tanto el XML Firmado y enviado a SUNAT, así como el CDR (Constancia de Recepción) podremos navegar a través del Explorador de Windows que en la carpeta Artifacts, donde está corriendo el EXE. Existen dos carpetas para cada caso, y podremos visualizar dichos archivos con el editor que tengamos a la mano.

snap11

Métodos de la API REST

Los métodos de la API REST que se han usado durante todo este proceso son los siguientes:

  1. GenerarFactura
  2. Firmar
  3. EnviarDocumento

Tú mismo puedes depurar línea a línea lo que hace el proyecto y puedes hasta obtener el JSON que se envia entre cada solicitud POST y así poder construir tu propio cliente RESTful.

Consideraciones

Recuerda que el aplicativo Windows que acompaña a OpenInvoicePeru es tan sólo un proyecto de prueba, no pretende ser un Facturador, ya que no valida campos obligatorios, ni tampoco hace cálculos complejos, tan sólo se limita a calcular el Precio por la Cantidad y luego hacer la sumatoria de las mismas.

Te invito a que explores todas las funcionalidades de la aplicación pero como siempre acompañado de la documentación oficial de SUNAT con sus respectivos catálogos, ya que de eso depende cada caso.

Saludos!

About the author

Erick Orlando administrator

Desarrollador de Software con más de 13 años de experiencia en tecnologías Microsoft .NET, Co-Fundador de la comunidad Perú .NET Development y CEO de Framework Perú.

4 Comments so far

Nelson Dionicio NPosted on11:52 pm - Jul 10, 2017

Hola Erick
Quisiera contactarme contigo para que me asesores en la implementacion de facturación electrónica.

Saludos

Nelson Dionicio
Tf. 942973746

Richard AguilarPosted on12:54 pm - Ago 10, 2017

Hola Erick quería consultarte este proyecto de facturación Electrónica se podría acoplar a un programa ERP que ya cuenta la empresa que tiene su base de datos en SQL muy agradecido por tu respuesta

ALAN HERBERTH MARTIN HUANCA VILLAVERDEPosted on1:28 pm - Oct 16, 2017

Hola Erick felicitarte por todo lo bueno que vienes haciendo,tu aporte en grandioso

Deja un comentario