Skip to content

About

馃嚜馃嚚 Rest API de c贸digo abierto para la integraci贸n con los servicios web del "Servicio de Rentas Internas" del Ecuador

Resources

Stars

0 stars

Watchers

0 watching

Forks

聽
聽

Latest commit

聽

History

68 Commits

Folders and files

Repository files navigation

Veronica Logo

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:

Cotenidos

Software requerido

  • JDK 1.8.0_121
  • Apache Maven 3.5.3
  • PostgreSQL 11.1-1

Pasos previos

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=jar

Instalaci贸n

Veronica puede ser ejecutado como una aplicaci贸n Spring-Boot la cual requiere la instalaci贸n previa de PostgreSQL.

Despliegue est谩ndar

  1. Abrir una consola o shell y crear la base de datos.
$ psql -U postgres
# CREATE DATABASE "veronica";
# \q
  1. Crear la estructura de tablas ejecutando el script veronica.sql.
$ cd veronica-open-api/src/sql
$ psql -U postgres veronica < veronica.sql
  1. Agregar la siguiente entrada al final del archivo postgresql.conf y reiniciar el servidor de base de datos.
encrypt.key = 8qxBjzCdQkwdpu

Recordar cambiar la clave de conexi贸n de la base de datos en la carpeta /veronica-open-api/src/filters

  1. Instalar Veronica.
$ cd veronica-open-api
$ mvn clean package install

Veronica 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 -Pdevelopment

Producci贸n

$ cd veronica-open-api/app
$ mvn spring-boot:run -Pproduction

Seguridad

Al 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

Obtenci贸n de tokens OAuth2.0

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"

Documentaci贸n

Swagger

Para acceder, debemos utilizar los usuarios indicados en la secci贸n anterior.

http://localhost:8080/veronica/swagger-ui.html

Postman

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.

Bit谩cora

  • 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

Autores

@RolandoPalermo @XaviMontero @Israel

Colaboradores

@Japstones @vperilla @andresluzu

Patrocinadores

Convi茅rtete en un patrocinador

Prueba Veronica Enterprise gratis

  • 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

Try Veronica Enterprise for free

  • 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

About

馃嚜馃嚚 Rest API de c贸digo abierto para la integraci贸n con los servicios web del "Servicio de Rentas Internas" del Ecuador

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages