Aquí se describen los principales recursos y lineamientos para el uso de la API pública del Ministerio de Hacienda de Costa Rica. Su objetivo es facilitar la integración de aplicaciones desarrolladas por terceros, garantizando al mismo tiempo la disponibilidad, estabilidad y equidad en el acceso.
A lo largo de este documento se detallan los diferentes endpoints disponibles, los parámetros requeridos y los códigos de respuesta. También se incluyen ejemplos prácticos en cURL, lineamientos de validación, políticas de uso y límites de consumo, así como recomendaciones de buenas prácticas para evitar bloqueos y asegurar una integración eficiente.
La API pone a disposición información de contribuyentes, tipos de cambio, exoneraciones, registros agropecuarios y pesqueros, además del Catálogo de Bienes y Servicios (CABYS). Cada sección incorpora casos de prueba y orientaciones técnicas para ayudar a los desarrolladores a implementar soluciones robustas y responsables.
En caso de consultas adicionales, reportes de incidencias o solicitudes de apoyo técnico relacionadas con el uso de esta API, le invitamos a comunicarse directamente con el equipo de soporte a través del correo electrónico: facturati@hacienda.go.cr.
Permite obtener el nombre, el tipo de identificación, el régimen, la situación tributaria y las actividades económicas asociadas a un contribuyente.
Ejemplo cURL:
curl "https://api.hacienda.go.cr/fe/ae?identificacion=2100042005"
EJECUTAR
Permite obtener el tipo de cambio del dólar (compra/venta). No requiere parámetros.
Ejemplo cURL:
curl "https://api.hacienda.go.cr/indicadores/tc/dolar"
EJECUTAR
Permite obtener el histórico del tipo de cambio diario del dólar. Requiere parámetros d
(desde) y
h
(hasta).
Ejemplo cURL:
curl "https://api.hacienda.go.cr/indicadores/tc/dolar/historico?d=2019-12-01&h=2019-12-09"
Permite obtener el tipo de cambio del euro en dólares y colones. No requiere parámetros.
Ejemplo cURL:
curl "https://api.hacienda.go.cr/indicadores/tc/euro"
EJECUTAR
Permite obtener tipo de cambio del dólar y euro en un solo recurso.
Ejemplo cURL:
curl "https://api.hacienda.go.cr/indicadores/tc"
EJECUTAR
Permite obtener información de exoneración. Requiere el parámetro autorizacion
en formato
AL-XXXXXXXX-XX
.
Ejemplo cURL:
curl "https://api.hacienda.go.cr/fe/ex?autorizacion=al-00460853-20"
EJECUTAR
Permite obtener información de productores agropecuarios del MAG.
Ejemplo cURL:
curl "https://api.hacienda.go.cr/fe/agropecuario?identificacion=2100042005"
Permite obtener datos de productores agropecuarios, INCOPESCA y acuicultores vinculados a pesca.
Ejemplo cURL:
curl "https://api.hacienda.go.cr/fe/pesca?identificacion=2100042005"
Permite obtener información del Catálogo de Bienes y Servicios (CABYS).
curl "https://api.hacienda.go.cr/fe/cabys?q=jugo%20de%20tomate&top=2"
EJECUTAR
curl "https://api.hacienda.go.cr/fe/cabys?codigo=2132100000100"
EJECUTAR
Con el propósito de asegurar la continuidad del servicio y la igualdad de acceso, se aplican límites de consumo que permiten regular la cantidad de consultas realizadas por los usuarios.
Tipo de límite | Umbral configurado | Equivalente en volumen | Consecuencia |
---|---|---|---|
Burst (ráfagas cortas) | 20 solicitudes/seg en 5 seg | Máx. 100 en 5 seg | Bloqueo de IP por 10 min |
Promedio sostenido | 10 solicitudes/seg en 120 seg | Máx. 1200 en 2 min | Bloqueo de IP por 10 min |
Las consultas excesivas o mal diseñadas pueden generar bloqueos automáticos, afectando tanto al consumidor de la API como a otros usuarios que comparten la misma red.
Causas comunes de bloqueos:
Escenarios de riesgo:
Recomendaciones para mitigar bloqueos:
Cada endpoint exige parámetros específicos:
/fe/ae
→ identificacion
(9–12 dígitos, numérico)/fe/ex
→ autorizacion
(formato AL-XXXXXXXX-XX
)/fe/cabys
→ codigo
(13 dígitos) o q
(mínimo 3 caracteres)Códigos de error diferenciados:
En los siguientes ejemplos se utiliza la opción -i
de cURL, la cual permite visualizar los encabezados HTTP junto con la respuesta. Esto facilita la verificación del código de estado devuelto por la API y asegura que las solicitudes estén siendo procesadas correctamente.
Endpoint | Parámetro | Caso | curl | HTTP Status | JSON esperado |
---|---|---|---|---|---|
/fe/ae |
identificacion |
OK | curl -i "https://api.hacienda.go.cr/fe/ae?identificacion=2100042005" |
200 OK |
{ "code":200, "status":"OK" } |
/fe/ae |
identificacion |
Falta parámetro | curl -i "https://api.hacienda.go.cr/fe/ae" |
400 Bad Request |
{ "code":400, "status":"Bad Request" } |
/fe/ex |
autorizacion |
OK | curl -i "https://api.hacienda.go.cr/fe/ex?autorizacion=al-00460853-20" |
200 OK |
{ "code":200, "status":"OK" } |
/fe/ex |
autorizacion |
Formato incorrecto | curl -i "https://api.hacienda.go.cr/fe/ex?autorizacion=AL-0460853-20" |
400 Bad Request |
{ "code":400, "status":"Bad Request" } |
/fe/cabys |
codigo |
OK | curl -i "https://api.hacienda.go.cr/fe/cabys?codigo=2132100000100" |
200 OK |
{ "code":200, "status":"OK" } |
/fe/cabys |
q |
OK | curl -i "https://api.hacienda.go.cr/fe/cabys?q=jugo%20de%20tomate" |
200 OK |
{ "code":200, "status":"OK" } |
/fe/cabys |
codigo/q |
Falta parámetro | curl -i "https://api.hacienda.go.cr/fe/cabys" |
400 Bad Request |
{ "code":400, "status":"Bad Request" } |
Con el fin de garantizar la disponibilidad, estabilidad y equidad en el acceso a api.hacienda.go.cr, se han identificado patrones de consumo que exceden los límites razonables, especialmente en las consultas al estado de situación tributaria.
Si bien entendemos que algunos accesos provienen de entornos con IP compartidas (por CGNAT o arquitecturas en la nube), el principal factor de sobrecarga no está en la conectividad, sino en la lógica de integración implementada por cada desarrollador.
El monitoreo continuo realizado por el equipo técnico de la DTIC ha detectado consultas repetitivas en intervalos muy cortos que no responden a cambios reales en el estado tributario. En seguimiento al monitoreo constante del servicio, se recalcan las siguientes recomendaciones:
Entendemos que en escenarios donde múltiples clientes comparten un mismo servidor o dirección IP (como ocurre en entornos de nube o con CGNAT), la concurrencia de solicitudes puede ser elevada.
Se aclaran algunos puntos importantes:
Toda la información publicada en esta documentación se ofrece con el objetivo de facilitar la integración tecnológica y garantizar el acceso equitativo a los servicios. En caso de dudas, comentarios o incidencias técnicas, le invitamos a comunicarse directamente con nuestro equipo de soporte a través del correo electrónico: facturati@hacienda.go.cr.