Heray-Was-Here
Server : Apache
System : Linux mail.lomejor.cr 6.8.0-1059-azure #65~22.04.1-Ubuntu SMP Thu May 28 16:59:19 UTC 2026 x86_64
User : www-data ( 33)
PHP Version : 8.2.31
Disable Function : NONE
Directory :  /var/www/facapi44/API_Hacienda/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/facapi44/API_Hacienda/README.md
![https://crlibre.org](https://crlibre.org/wp-content/uploads/2018/03/cropped-CRLibre-Logo_15-1.png)

## Sobre CRLibre

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.

[![GitHub](https://img.shields.io/github/license/CRLibre/API_Hacienda.svg)](https://github.com/CRLibre/API_Hacienda/blob/master/LICENSE)
[![GitHub commit activity the past week, 4 weeks, year](https://img.shields.io/github/commit-activity/y/CRLibre/API_Hacienda.svg?logo=github)](https://github.com/CRLibre/API_Hacienda/commits/master)
[![GitHub issues](https://img.shields.io/github/issues-raw/CRLibre/API_Hacienda.svg)](https://github.com/CRLibre/API_Hacienda/issues)
[![GitHub pulls](https://img.shields.io/github/issues-pr/CRLibre/API_Hacienda.svg)](https://github.com/CRLibre/API_Hacienda/pulls)
[![PHPUnit Tests](https://github.com/CRLibre/API_Hacienda/actions/workflows/phpunit.yml/badge.svg)](https://github.com/CRLibre/API_Hacienda/actions/workflows/phpunit.yml)
[![Telegram @CRLibreFE](https://img.shields.io/badge/Telegram-%40CRLibreFE-blue.svg?logo=telegram)](https://crlibre.org/chats/)

En este repositorio estamos creando
un [API](https://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones "Interfaz de programaci贸n de aplicaciones, del ingl茅s Application Programming Interface es un conjunto de subrutinas, funciones y procedimientos que ofrece una pieza de software para ser utilizado por otro software")

*

*[libre](https://es.wikipedia.org/wiki/Software_libre "El software libre es todo programa inform谩tico cuyo c贸digo fuente puede ser estudiado, modificado, y utilizado libremente con cualquier fin y redistribuido con o sin cambios o mejoras")
** y componentes de software para simplificar el proceso de la **Factura
Electr贸nica** requerido por el Ministerio de Hacienda de Costa Rica.

#### Documentaci贸n general sobre la Factura Electr贸nica en 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
      ](https://raw.githubusercontent.com/CRLibre/docs-fe-hacienda-cr/master/diagrama-flujo/Diagrama%20de%20Flujo%20para%20Factura%20Electronica%20Costa%20Rica.png)
* Archivos y recursos comunes para cualquier
  proyecto https://github.com/CRLibre/fe-hacienda-cr-misc

### 驴Por qu茅 un API para conectarse a los del Ministerio de Hacienda?

Para
la [implementaci贸n de la Factura Electr贸nica](https://www.hacienda.go.cr/docs/N2ComprobantesElectronicos.pdf),
el Ministerio de Hacienda puso a
disposici贸n [documentaci贸n t茅cnica e interfaces de programaci贸n sofisticados](https://atv.hacienda.go.cr/ATV/ComprobanteElectronico/frmAnexosyEstructuras.aspx)
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](https://cdn.comprobanteselectronicos.go.cr/xml-schemas/Resoluci%C3%B3n_General_sobre_disposiciones_t%C3%A9cnicas_comprobantes_electr%C3%B3nicos_para_efectos_tributarios.pdf),
de forma m谩s 谩gil, desde cualquier lenguaje de programaci贸n y sin depender de
intermediarios al poder instalar esta pieza
de [software libre](https://es.wikipedia.org/wiki/Software_libre) en un servidor
propio manteniendo control de sus datos sensibles.

## C贸mo colaborar

* P贸ngase en contacto con los otros miembros voluntarios de la comunidad.
    * [Sistema de Preguntas y Respuestas de la Comunidad](https://crlibre.org/qa/)
    * [Grupos de CHAT de CRLibre.org](https://crlibre.org/chats/)
    * [Grupo de Facebook CRLibre](https://www.facebook.com/groups/105812240170199/)

## Sobre este API

**Trabajo en proceso [lo estamos creando en conjunto](THANKS.md)**

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](https://github.com/CRLibre/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.

## Requerimientos m铆nimos

- PHP >= 5.5.0
- MySQL o MariaDB ([MySQLi](http://php.net/manual/en/book.mysqli.php))
- [cURL](http://php.net/manual/en/book.curl.php)
- [php-xml](http://php.net/manual/en/book.simplexml.php)
- [OpenSSL](http://php.net/manual/en/book.openssl.php)

### Conectores/Clientes del API

* Conector en .NET https://github.com/CRLibre/fe-hacienda-cr-dotnet
* Conector en
  JavaScript: https://github.com/CRLibre/CalaAPI/tree/master/conectores/js

### Uso del API

* Ver y colaborar documentaci贸n
  en [wiki del API](https://github.com/CRLibre/API_Hacienda/wiki "Wiki CRLibre API_Hacienda")
*

Documento [Step by Step del API](https://crlibre.org/wp-content/uploads/2018/08/586abf6db6fc1117b60b2753-280x124.png)
para migrar al wiki.

#### Primeros Pasos

* [Primera petici贸n al API](https://github.com/CRLibre/API_Hacienda/wiki/Primera-petici%C3%B3n-al-API)
* [Uso de M贸dulos del API](https://github.com/CRLibre/API_Hacienda/wiki/Uso-de-M%C3%B3dulos-del-API)
* [Creaci贸n de Usuario](https://github.com/CRLibre/API_Hacienda/wiki/Creaci%C3%B3n-de-Usuario)
* [Login y Logout del API](https://github.com/CRLibre/API_Hacienda/wiki/Login-y-Logout-del-API)

#### Uso de los m贸dulos del API

* 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

#### Observations

* ALTER TABLE files MODIFY COLUMN md5 VARCHAR(40);

#### Ejecutar los Test Cases:

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```

# 馃摙 Aviso Importante - Licencia y Colaboraci贸n Obligatoria 馃摙

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.**

## 馃敼 Condiciones principales

- 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._

---

Hry