Somos una comunidad de individuos y organizaciones que voluntariamente unimos esfuerzos para colaborar y compartir conocimiento, crear software libre para resolver problemas que enfrentamos en nuestra realidad en Costa Rica.
En este repositorio estamos creando un API
*libre ** y componentes de software para simplificar el proceso de la Factura Electrónica requerido por el Ministerio de Hacienda de Costa Rica.
De forma complementaria al proyecto de este API creamos dos repositorios relacionados con la facturación electrónica
- Repositorio de información general del proceso de la facturación
electrónica: https://github.com/CRLibre/fe-hacienda-cr-docs
- Allí se encuentra un Diagrama de flujo Factura Electrónica Costa Rica
- Archivos y recursos comunes para cualquier proyecto https://github.com/CRLibre/fe-hacienda-cr-misc
Para la implementación de la Factura Electrónica, el Ministerio de Hacienda puso a disposición documentación técnica e interfaces de programación sofisticados que muchos programadores encuentran difíciles de comprender y utilizar. Nuestro objetivo es crear un software que simplifique el proceso a desarrolladores de cumplir con las resoluciones del Ministerio, de forma más ágil, desde cualquier lenguaje de programación y sin depender de intermediarios al poder instalar esta pieza de software libre en un servidor propio manteniendo control de sus datos sensibles.
- Póngase en contacto con los otros miembros voluntarios de la comunidad.
Trabajo en proceso lo estamos creando en conjunto
Esta es una API en PHP, la idea de esto es poder realizar módulos sobre una base que maneja ya diferentes aspectos como la conexión a bases de datos y usuarios, está basado en CalaAPI
Se encuentran 2 carpetas, una que se llama api y otra que se llama www
La que se llama api la idea es ubicarla en un lugar en donde no sea accesible, o bien, que no sea en el "document root" (ejemplo: public_html)
La que se llama www contiene un archivo de configuración, en donde se modifican aspectos como la conexión a base de datos, nombre del sitio y muy importante, la ubicación de en donde se encontrará el resto de cosas o bien, la carpeta api.
- Conector en .NET https://github.com/CRLibre/fe-hacienda-cr-dotnet
- Conector en JavaScript: https://github.com/CRLibre/CalaAPI/tree/master/conectores/js
- Ver y colaborar documentación en wiki del API
Documento Step by Step del API para migrar al wiki.
- Upload del certificado o llave criptográfica
- Solicitud de Token
- Solicitud de refrescar token
- Creación de Clave para los XML de Factura Electrónica
- Creación de Clave para Nota de Crédito
- Creación de Clave para Nota de Débito
- Creación de Clave para Tiquete Electronico
- Creación de clave para Mensaje Aceptación (Aceptación total, Parcialmente y Rechazo)
- Creación de xml Factura Electrónica
- Creación de xml Nota de Crédito
- Creación de xml Nota de Debito
- Creación de xml Tiquete Electronico
- Creación de xml Mensaje Aceptacion
- Firmado del xml Factura Electrónica
- Firmado del xml Nota de Crédito
- Firmado del xml Nota de Debito
- Firmado del xml Tiquete Electronico
- Firmado del xml Mensaje de Aceptación
- Envió a Hacienda del xml de Factura Electrónica, Notas de Crédito, Notas de Debito
- Envió a Hacienda del xml de Tiquete Electronico
- Envió a Hacienda del xml de Mensaje Aceptación (Aceptación total, Parcialmente y Rechazo)
- Consulta de estado de los comprobantes
- ALTER TABLE files MODIFY COLUMN md5 VARCHAR(40);
Se tiene una carpeta con pruebas unitarias en tests/.
Las pruebas escritas con PHPUnit, y se pueden ejecutar con el siguiente
commando:
./vendor/bin/phpunit --stderr --debug --bootstrap vendor/autoload.php tests/api_contrib_genXML_FE.php
Guardando el resultado en un archivo de junit:
./vendor/bin/phpunit --log-junit junit-report.xml --stderr --debug --bootstrap vendor/autoload.php tests/api_contrib_genXML_FE.php
Convertir el archivo junit-report.xml a HTML:
junit2html junit-report.xml junit-report.html
Instalar junit2html:
./vendor/bin/junit2html
Ejecutar test específico:
./vendor/bin/phpunit --log-junit junit-report.xml --stderr --debug --bootstrap vendor/autoload.php --filter testGenXMLFeFullStructure tests/api_contrib_genXML_FE.php
Este proyecto está licenciado bajo la Licencia GNU Affero General Public
License v3 (AGPL v3).
Todos los usuarios y desarrolladores que utilicen, modifiquen o distribuyan
este módulo están obligados a colaborar en su mantenimiento y mejora, conforme a
los términos de la licencia.
- Cualquier modificación o mejora debe ser publicada y compartida con la comunidad bajo la misma licencia AGPL v3.
- Si el módulo se utiliza en entornos privados o en servicios web, el código fuente debe estar disponible para todos los usuarios que interactúen con él.
- Se espera que todos los beneficiarios del módulo contribuyan con * correcciones, mejoras o documentación* para asegurar su evolución y mantenimiento.
💡 El incumplimiento de estas condiciones podría considerarse una violación de los términos de la licencia AGPL v3.