Veronica es una API Rest de c贸digo abierto utilizada para la emisi贸n y autorizaci贸n de comprobantes electr贸nicos seg煤n la normativa vigente del Sistema de Rentas Internas del Ecuador. El proyecto ha sido desarrollado a trav茅s de una aplicaci贸n Spring-Boot 1.5.9.RELEASE. Adicionalmente, Veronica almacena los comprobantes en una base de datos PostgreSQL lo cual le permite realizar posteriores consultas m谩s all谩 de las comunes como por ejemplo, consultar detalles de facturas, consultar totales o listar comprobantes por emisor o receptor.
Todo comprobante electr贸nico gestionado a trav茅s de Veronica manejar谩 un ciclo de vida basado en 4 fases:
- Software requerido
- Pasos previos
- Instalaci贸n
- Seguridad
- Documentaci贸n
- Bit谩cora
- Autor
- Colaboradores
- Patrocinadores
- Prueba Veronica Enterprise
- Try Veronica Enterprise
- JDK 1.8.0_121
- Apache Maven 3.5.3
- PostgreSQL 11.1-1
Veronica posee una lista de dependencias que no se encuentran disponibles en el repositorio remoto de Maven por lo que se tendr谩 que hacer la instalaci贸n de forma manual. Para esto, ejecutar los comandos listados a continuaci贸n.
cd /veronica-open-api/additional_libs
mvn install:install-file -Dfile=jss-4.2.5.jar -DgroupId=org.mozilla -DartifactId=jss -Dversion=4.2.5 -Dpackaging=jar
mvn install:install-file -Dfile=MITyCLibAPI-1.0.4.jar -DgroupId=es.mityc.javasign -DartifactId=api -Dversion=1.0.4 -Dpackaging=jar
mvn install:install-file -Dfile=MITyCLibCert-1.0.4.jar -DgroupId=es.mityc.javasign -DartifactId=cert -Dversion=1.0.4 -Dpackaging=jar
mvn install:install-file -Dfile=MITyCLibOCSP-1.0.4.jar -DgroupId=es.mityc.javasign -DartifactId=ocsp -Dversion=1.0.4 -Dpackaging=jar
mvn install:install-file -Dfile=MITyCLibPolicy-1.0.4.jar -DgroupId=es.mityc.javasign -DartifactId=policy -Dversion=1.0.4 -Dpackaging=jar
mvn install:install-file -Dfile=MITyCLibTrust-1.0.4.jar -DgroupId=es.mityc.javasign -DartifactId=trust -Dversion=1.0.4 -Dpackaging=jar
mvn install:install-file -Dfile=MITyCLibTSA-1.0.4.jar -DgroupId=es.mityc.javasign -DartifactId=tsa -Dversion=1.0.4 -Dpackaging=jar
mvn install:install-file -Dfile=MITyCLibXADES-1.0.4.jar -DgroupId=es.mityc.javasign -DartifactId=xades -Dversion=1.0.4 -Dpackaging=jar
mvn install:install-file -Dfile=xmlsec-1.4.2-ADSI-1.0.jar -DgroupId=org.apache.xmlsec-adsi -DartifactId=xmlsec-adsi -Dversion=1.4.2 -Dpackaging=jarVeronica puede ser ejecutado como una aplicaci贸n Spring-Boot la cual requiere la instalaci贸n previa de PostgreSQL.
- Abrir una consola o shell y crear la base de datos.
$ psql -U postgres
# CREATE DATABASE "veronica";
# \q- Crear la estructura de tablas ejecutando el script veronica.sql.
$ cd veronica-open-api/src/sql
$ psql -U postgres veronica < veronica.sql- Agregar la siguiente entrada al final del archivo postgresql.conf y reiniciar el servidor de base de datos.
encrypt.key = 8qxBjzCdQkwdpuRecordar cambiar la clave de conexi贸n de la base de datos en la carpeta
/veronica-open-api/src/filters
- Instalar
Veronica.
$ cd veronica-open-api
$ mvn clean package installVeronica proporciona dos perfiles de despliegue: Desarrollo y Producci贸n. Cada uno de estos perfiles posee un archivo de configuraci贸n situado en /veronica-open-api/src/filters. Para desplegar el proyecto con el perfil adecuado, indicar el ambiente como argumento de ejecuci贸n.
Desarrollo
$ cd veronica-open-api/app
$ mvn spring-boot:run -PdevelopmentProducci贸n
$ cd veronica-open-api/app
$ mvn spring-boot:run -PproductionAl instalar la base de datos de Veronica, autom谩ticamente se crear谩n dos usuarios con sus respectivas contrase帽as y roles.
| Usuario | Contrase帽a | Rol |
|---|---|---|
| admin | veronica | ROLE_ADMIN |
| user | veronica | ROLE_USER |
Para generar un token para el usuario admin, por ejemplo, podermos ejecutar el siguiente comando curl:
curl -u veronica:veronica -X POST http://localhost:8080/veronica/oauth/token -H "Accept:application/json" -d "username=admin&password=veronica&grant_type=password"Tambi茅n en el archivo /veronica-open-api/src/postman/Ver贸nica API Reference.postman_collection.json de postman podemos encontrar un ejemplo de llamada a este endpoint.
Con el token generado podemos hacer uso de cualquier de los endpoints que ofrece Veronica a trav茅s de su API Rest. Para esto, debemos utilizar el token generado a trav茅s de una llamada con autenticaci贸n Bearer, tal como se muestra a continuaci贸n:
curl http://localhost:8080/veronica/api/v1.0/facturas/2204201901109170199100120010010001467560014675614/archivos/xml -H "Authorization: Bearer 77ed953e-b3b6-4ea1-820e-2e9acc702293"Para acceder, debemos utilizar los usuarios indicados en la secci贸n anterior.
http://localhost:8080/veronica/swagger-ui.html
Veronica tambi茅n pone a disposici贸n de los usuarios una colecci贸n de llamadas y ejemplos que se encuentra en la ruta /src/postman/Ver贸nica API Reference.postman_collection.json.
- V1: 2018-04-12, Primera versi贸n.
- V2: 2018-04-27, Perfiles de Maven.
- V3: 2018-04-28, Habilitar Swagger2.
- V4: 2018-11-10, Generaci贸n de RIDEs.
- V5: 2018-11-19, Integraci贸n con Postman.
- V6: 2019-01-09, Integraci贸n con PostgreSQL.
- V7: 2019-02-21, Soporte para Retenciones y Gu铆as de remisi贸n.
- V8: 2019-05-18, Soporte para Notas de d茅bito.
V9: 2019-05-22, Soporte para Docker con Fabric8.- V10: 2019-05-28, Seguridad con OAuth2.0.
- V11: 2019-12-27, Mover dependencias gen茅ricas de Ver贸nica a Sonatype
| @RolandoPalermo | @XaviMontero | @Israel |
| @Japstones | @vperilla | @andresluzu |
Convi茅rtete en un patrocinador
- Veronica Enterprise Swagger UI
- Soporte para todos los tipos de documentos electr贸nicos incluyendo Liquidaciones de compras
- Soporte para notificaciones por email con plantillas personalizadas
- Soporte para plantillas personalizadas de RIDEs
- Soporte para GraphQL
- Soporte para QueryDSL y REST Query Language
- Cont谩ctanos en rolando.roc@gmail.com para m谩s informaci贸n
- Veronica Enterprise Swagger UI
- Best support for all electronic documents including Purchase clearance
- Support for email notifications with custom templates
- Support for custom RIDEs templates
- GraphQL support
- QueryDSL & REST Query Language support
- Contact us at rolando.roc@gmail.com for further information

