Documentación de la API
egenio FX ofrece los tipos de cambio oficiales diarios de bancos centrales y autoridades tributarias de América Latina, y del BCE, a través de una sola API HTTPS con JSON uniforme.
| URL base | https://api.egenio.net |
|---|---|
| Formato | JSON (UTF-8); CSV a pedido en el endpoint de F&O |
| Fechas | AAAA-MM-DD |
| Tipos | Texto, exactamente como se publican (p. ej. "17.7100"), nunca redondeados, con punto decimal. Cada tipo son unidades de la moneda por 1 unidad de la base. |
Autenticación
Toda solicitud a /v1 requiere una clave de API. Envíe su clave en el encabezado X-API-Key:
curl -H "X-API-Key: fx_su_clave_aqui" https://api.egenio.net/v1/rates
Para una prueba rápida en el navegador puede agregar ?api_key=… a la dirección; en integraciones prefiera el encabezado, porque las direcciones pueden quedar en registros y en el historial del navegador. Mantenga sus claves en secreto: cualquiera que tenga su clave puede usar su cuota. ¿Necesita una clave? Obtenga una clave de prueba gratis; ¿perdió una? Simplemente cree otra. Por ahora las nuevas claves de prueba gratis están pausadas; las claves que ya tiene siguen funcionando.
no-key): hasta 250 solicitudes por día (UTC) desde cada dirección IP, y los últimos 7 días de historial. Esas respuestas llevan el encabezado X-API-Plan: no-key, y X-API-Key-Warning si envió una clave que no reconocemos. Una clave revocada siempre se rechaza con 401. Varias personas en la misma red de oficina comparten una dirección y su límite diario, así que use una clave para cualquier uso habitual.
curl https://api.egenio.net/v1/rates?currencies=MXN,BRL
Pruébela
Ingrese su clave de API, elija un endpoint y sus opciones, y envíe una solicitud real. Su clave se queda en esta página: solo se envía a api.egenio.net en el encabezado X-API-Key y no se guarda en ningún lugar. Cada solicitud cuenta para su límite. ¿No tiene clave? Deje el campo vacío para usar el acceso sin clave.
Tipos del día y últimos
Todos los tipos de un día: para cada moneda, el tipo oficial más reciente en o antes de date.
| Parámetro | Predeterminado | Descripción |
|---|---|---|
date | el día más reciente | El día para el que necesita los tipos. |
currencies | todas | Solo estas monedas: un código, o varios separados por comas, p. ej. MXN o MXN,BRL,COP. |
base | USD | USD para monedas latinoamericanas, EUR para los tipos de referencia del BCE. |
GET /v1/rates?date=2026-09-28
{
"date": "2026-09-28",
"base": "USD",
"rates": [
{ "currency": "BRL", "rate": "5.30160", "rate_date": "2026-09-28", "source": "BCB" },
{ "currency": "MXN", "rate": "17.7100", "rate_date": "2026-09-28", "source": "Banxico" }
]
}
rate_date es el día para el que se publicó el tipo. Puede ser anterior a date en fines de semana y feriados (vea más abajo).
Algunas monedas: último tipo o una fecha específica
Agregue currencies con un código, o varios separados por comas (currencies=MXN,BRL,COP). Omita date para obtener el último tipo, o agréguelo para el tipo vigente ese día (en fin de semana o feriado, el del día hábil anterior).
# Último tipo USD→MXN curl -H "X-API-Key: fx_su_clave_aqui" \ "https://api.egenio.net/v1/rates?currencies=MXN" # Tipo USD→MXN del 28 de septiembre de 2026 curl -H "X-API-Key: fx_su_clave_aqui" \ "https://api.egenio.net/v1/rates?currencies=MXN&date=2026-09-28" # Peso mexicano, real brasileño y peso colombiano del 28 de septiembre de 2026 curl -H "X-API-Key: fx_su_clave_aqui" \ "https://api.egenio.net/v1/rates?currencies=MXN,BRL,COP&date=2026-09-28"
{
"date": "2026-09-28",
"base": "USD",
"rates": [
{ "currency": "MXN", "rate": "17.7100", "rate_date": "2026-09-28", "source": "Banxico" }
]
}
Con una moneda, el tipo está en rates[0].rate; con varias, rates tiene una entrada por moneda, en orden alfabético. Otros ejemplos: euro a real brasileño con base=EUR¤cies=BRL; para verlo rápido en el navegador, https://api.egenio.net/v1/rates?currencies=MXN&api_key=fx_su_clave_aqui.
En Power Automate: una acción HTTP con método GET, la dirección anterior y el encabezado X-API-Key; luego use la expresión body('HTTP')?['rates']?[0]?['rate'] donde necesite el tipo (envuélvala en float(…) para hacer cálculos).
En Excel: Datos → Desde la web → Avanzado, ingrese la dirección y agregue el encabezado X-API-Key; Power Query convierte la respuesta en una tabla.
Historial
Una moneda, un tipo por cada día publicado, del más antiguo al más reciente.
| Parámetro | Predeterminado | Descripción |
|---|---|---|
from | 30 días antes de to | Primer día. |
to | el día más reciente | Último día. Como máximo 1.830 días por solicitud. |
base | USD | Moneda base. |
GET /v1/rates/MXN?from=2026-09-24&to=2026-09-30
{
"base": "USD", "currency": "MXN", "from": "2026-09-24", "to": "2026-09-30",
"rates": [
{ "date": "2026-09-24", "rate": "17.5030", "source": "Banxico" },
…
]
}
Dynamics 365 Finance & Operations
Filas con los nombres de la entidad de datos Tipos de cambio (ExchangeRates). EndDate se omite: F&O lo calcula a partir de la fecha de inicio del siguiente tipo.
| Parámetro | Predeterminado | Descripción |
|---|---|---|
from, to | solo el día más reciente | Rango de fechas. |
currencies | todas | Separadas por comas, p. ej. MXN,BRL. |
base | USD | Se convierte en FromCurrency. |
rate_type | Default | Su tipo de cambio de F&O (hasta 20 letras, dígitos, espacios o . - _ / & ( )). |
format | json | json (estilo OData) o csv (descarga de archivo). |
GET /v1/fo/exchange-rates?from=2026-09-28&to=2026-09-28¤cies=MXN&rate_type=Default
{
"value": [{
"RateTypeName": "Default", "FromCurrency": "USD", "ToCurrency": "MXN",
"StartDate": "2026-09-28T00:00:00Z", "Rate": "17.7100", "ConversionFactor": "One"
}]
}
Con Power Automate
Descargue nuestra solución de ejemplo e impórtela en el entorno de Power Platform vinculado a F&O. Contiene un flujo de nube que se ejecuta dos veces al día, lee los tipos de los últimos 7 días desde egenio FX, omite los que F&O ya tiene y crea el resto en la entidad ExchangeRates. Inicia sesión en F&O con el conector estándar Fin & Ops Apps, así que no necesita un registro de aplicación en Azure. Si una ejecución falla, le envía un correo con el paso que falló y el motivo; mientras hace pruebas, también puede enviarle un resumen después de cada ejecución correcta.
Descargar solución de ejemplo (.zip)
Detalles técnicos: qué hace el flujo
La solución egenioFXRates 1.2.2.0 es no administrada, con el prefijo de editor egfx. Contiene un flujo de nube, egenio FX - Import exchange rates into FO, 6 variables de entorno y dos referencias de conexión (Fin & Ops Apps (Dynamics 365) y Office 365 Outlook). No agrega tablas ni roles de seguridad.
Pasos
- Desencadenador: dos veces al día, a las 13:00 y 20:00 UTC. Cada ejecución revisa los últimos 7 días, para no perder tipos publicados con retraso.
- Try (ámbito):
- FO_address: el nombre de host de F&O como lo espera el conector (se quitan
https://, la/final y lo que siga, así que sirve una URL copiada del navegador). - Get_rates_from_egenio_FX (HTTP):
GET /v1/fo/exchange-ratesde los últimos 7 días, con sus monedas y el encabezadoX-API-Key. - Parse_rates: lee las filas (
FromCurrency,ToCurrency,StartDate,Rate). - Get_existing_rates_from_FO (Fin & Ops Apps, Enumerar los elementos presentes en la tabla): los
ExchangeRatesde su tipo de cambio, desde USD, de los últimos 8 días. - Existing_keys y New_rates: conservan solo los tipos que F&O aún no tiene (clave
MONEDA|AAAA-MM-DD), así que volver a ejecutarlo nunca crea duplicados. - For_each_new_rate (Fin & Ops Apps, Crear registro): agrega cada tipo nuevo a
ExchangeRates, uno a la vez, con su tipo de cambio yConversionFactorOne. - Summary: “Rates received: X. Already in F&O: Y. Created: Z.”
- FO_address: el nombre de host de F&O como lo espera el conector (se quitan
- Catch (ámbito, solo si un paso de Try falló o agotó el tiempo): enumera los pasos fallidos con su estado y mensaje de error, los envía por correo a la dirección de notificación con un enlace a la ejecución y termina la ejecución como Error, para que siga en rojo en el historial.
- Email_on_success: si Email on success es Sí, envía el resumen tras una ejecución correcta.
La llamada a egenio FX se reintenta hasta 4 veces con esperas crecientes (desde 30 segundos), y sus entradas, incluida la clave de API, se ocultan en el historial de ejecuciones.
Variables de entorno
| Nombre de esquema | Tipo | Predeterminado | Uso |
|---|---|---|---|
egfx_ApiKey | Texto | Clave de API de egenio FX | |
egfx_FinOpsUrl | Texto | URL del entorno de F&O | |
egfx_RateType | Texto | Default | Tipo de cambio de F&O a completar |
egfx_Currencies | Texto | MXN,BRL,ARS,CLP,COP,PEN | Monedas a importar contra USD |
egfx_NotifyEmail | Texto | Quién recibe los correos | |
egfx_NotifyOnSuccess | Sí/No | Sí | Enviar también correo tras ejecuciones correctas |
Conviene saber
- Los tipos se crean como el usuario de la conexión de Fin & Ops Apps; F&O muestra a ese usuario como su creador.
- Solo se importan, y se comprueban contra duplicados, los tipos desde USD.
- Un tipo que ya está en F&O nunca se modifica, aunque la fuente lo corrija después.
- Si falla la propia conexión de Outlook, la ejecución igualmente termina con Error y aparece en el historial.
Antes de importar
- Obtenga una clave de API de egenio FX (para empezar sirve una clave de prueba gratis).
- Elija la cuenta de F&O con la que trabajará el flujo: un usuario (idealmente una cuenta de servicio) que pueda mantener tipos de cambio.
- Asegúrese de que el tipo de cambio (p. ej.
Default) y las monedas existan en F&O. - Elija el buzón de Office 365 que enviará los correos del flujo (un buzón compartido o de servicio funciona bien).
Importar
- En Power Apps → Soluciones → Importar solución, elija el zip descargado.
- Cuando se le pidan las conexiones, cree o elija una conexión de Fin & Ops Apps (Dynamics 365), con la sesión de esa cuenta de F&O, y una conexión de Office 365 Outlook para ese buzón.
- Complete las variables de entorno cuando se le pidan:
Variable Ejemplo egenio FX API key fx_…FO environment URL https://contoso.operations.dynamics.comExchange rate type DefaultCurrencies MXN,BRL,ARS,CLP,COP,PENNotification email [email protected](varios: sepárelos con;)Email on success Sí durante las pruebas, No después (los errores siempre se envían) - Abra el flujo egenio FX - Import exchange rates into FO, ejecútelo una vez con Probar → Manualmente y luego actívelo. Se importa desactivado.
El flujo usa la acción premium HTTP y el conector premium Fin & Ops Apps, por lo que su propietario necesita una licencia premium de Power Automate. ¿Prefiere crearlo usted mismo? Los pasos son: Periodicidad → HTTP GET /v1/fo/exchange-rates con el encabezado X-API-Key → Analizar JSON → Aplicar a cada uno sobre value → Crear registro de Fin & Ops Apps en ExchangeRates.
Con Administración de datos (CSV)
- Descargue
/v1/fo/exchange-rates?from=…&to=…&format=csv. - En F&O: Administración de datos → Importar, entidad Tipos de cambio, formato de origen CSV. Las columnas se asignan automáticamente.
- Las fechas son
AAAA-MM-DD; si su formato de datos de origen espera otro formato de fecha, ajústelo allí.
Pruebe siempre la importación primero en un sandbox.
Fuentes y convenciones
| País | Par | Fuente y tipo | Fecha |
|---|---|---|---|
| 🇲🇽 México | USD/MXN | FIX de Banxico | El día de su publicación en el DOF (el día hábil siguiente a su determinación por Banxico): el FIX del viernes es el tipo del lunes. |
| 🇧🇷 Brasil | USD/BRL | PTAX del BCB, tipo de venta, boletín de cierre | Días hábiles de Brasil. |
| 🇦🇷 Argentina | USD/ARS | BCRA, Estadísticas Cambiarias | Días hábiles de Argentina. |
| 🇨🇱 Chile | USD/CLP | Banco Central de Chile, dólar observado | Días hábiles de Chile. |
| 🇨🇴 Colombia | USD/COP | TRM (Superintendencia Financiera) | Cada día del calendario en que está vigente, fines de semana incluidos. |
| 🇵🇪 Perú | USD/PEN | Tipo de cambio oficial de SUNAT, venta | La fecha de SUNAT. Historial desde octubre de 2026. |
| 🇵🇾 Paraguay | USD/PYG, EUR/PYG | Banco Central del Paraguay (BCP), tipo de cambio referencial interbancario | Días hábiles de Paraguay. |
| 🇺🇾 Uruguay | USD/UYU, EUR/UYU | Banco Central del Uruguay (BCU): "dólar billete" y el euro del BCU, venta | La fecha del BCU (el día de cierre), días hábiles de Uruguay. |
| 🇨🇷 Costa Rica | USD/CRC | Banco Central de Costa Rica (BCCR), tipo de cambio de referencia, venta | Cada día del calendario que publica el BCCR, fines de semana incluidos. |
| 🇧🇴 Bolivia | USD/BOB | Banco Central de Bolivia (fuente BCBO), tipo de cambio oficial; antes de julio de 2026, el oficial de venta | Días hábiles de Bolivia. |
| 🇪🇺 Euro | EUR/USD, EUR/MXN, EUR/BRL… | Tipos de referencia del euro del BCE (base EUR, ~30 monedas) | Días hábiles TARGET. |
Las fuentes se consultan cada hora; los días recientes se vuelven a revisar para incorporar correcciones. Los tipos nunca se calculan ni se invierten: recibe exactamente lo que publicó la autoridad.
Fines de semana y feriados
La mayoría de las autoridades no publica en fines de semana y feriados. /v1/rates devuelve entonces el tipo más reciente de cada moneda (con un máximo de 10 días de antigüedad) e indica su rate_date. Así se sigue la regla habitual (p. ej. la de SUNAT) de usar el tipo del día hábil anterior. Los endpoints de historial y de F&O listan solo los días publicados; F&O mantiene cada tipo vigente hasta el siguiente.
Direcciones del servicio
Dos direcciones públicas que no requieren clave de API, ambas en texto o JSON para herramientas, no páginas para leer:
| Dirección | Qué es |
|---|---|
/health | Estado del servicio para monitores de disponibilidad: {"status": "ok", "version": "…"}. |
/.well-known/security.txt | Cómo reportar un problema de seguridad de forma privada (el estándar security.txt). |
Errores
Los errores devuelven JSON: {"error": "explicación"}. La explicación está en inglés.
| Código | Significado |
|---|---|
400 | Un parámetro no es válido (formato de fecha, código de moneda, rango demasiado largo…). |
401 | Clave de API revocada. Si el acceso sin clave está desactivado, también una clave faltante o desconocida. |
403 | La fecha está fuera del historial que permite su clave. |
404 | No hay tipos guardados para esa solicitud. |
429 | Demasiadas solicitudes: el límite mensual de su clave, el límite diario sin clave, o demasiadas solicitudes por minuto (vea Retry-After). |
500 | Algo falló de nuestro lado. Vuelva a intentarlo más tarde. |
Límites
El acceso es gratuito durante las pruebas. Cada clave tiene un nivel de acceso con un límite mensual de solicitudes y una ventana de historial:
| Nivel de acceso | Solicitudes / mes | Historial con date / from |
|---|---|---|
| free | 500 | últimos 7 días |
| starter | 5.000 | últimos 730 días |
| business | 50.000 | ilimitado |
| partner | 250.000 | ilimitado |
| Sin clave | 250 por día, por dirección IP | últimos 7 días |
Cada respuesta incluye X-RateLimit-Limit y X-RateLimit-Remaining para el mes (para el día, sin clave). Además, cada dirección cliente puede hacer hasta 300 solicitudes por minuto, y las direcciones que envían muchas claves inválidas se pausan durante un minuto.
Preguntas frecuentes
¿Por qué rate_date es distinto de date?
En fines de semana y feriados no se publica un tipo nuevo, así que recibe el último publicado, y rate_date le indica de qué día es.
¿Por qué los tipos tienen distinta cantidad de decimales?
Cada autoridad publica con su propia precisión (Banxico 4, PTAX 4–5, SUNAT 3…). La conservamos exactamente. Redondee en su sistema si lo necesita.
¿Cómo obtengo USD→EUR?
El BCE publica EUR→USD. Use base=EUR. La mayoría de los ERP, incluido F&O, pueden usar un tipo en sentido inverso.
¿Puedo usarlo en producción?
Todavía no: es un servicio de prueba sin garantías. Úselo para evaluar y verifique con las fuentes oficiales.
¿Cómo reporto un problema de seguridad?
Consulte security.txt para conocer el canal de reporte privado.