Pares de divisas explicados: pares mayores, menores y exóticos (guía para desarrolladores)
Si estás construyendo cualquier cosa que toque dinero internacional —un checkout, un dashboard fintech, un bot de trading, una herramienta de tesorería o incluso un simple conversor de divisas— te toparás con el concepto de pares de divisas en tu primera hora de trabajo. Los pares son la unidad de medida en el mercado de divisas (FX): una moneda no tiene precio por sí sola, solo respecto a otra moneda. Entender cómo se clasifican, cotizan y manejan los pares en código es la base de cualquier otra funcionalidad de FX que construyas.
Esta guía explica los pares de divisas mayores, menores y exóticos desde la perspectiva del desarrollador. Cubriremos qué significa cada categoría, las convenciones que debes respetar al leer o escribir cadenas de pares, y los patrones prácticos para obtener, normalizar y calcular pares mediante la documentación de la API de Finexly. Al final sabrás qué pares soportar primero, cómo tratar los casos límite y cómo obtener tasas en vivo con unas pocas líneas de código.
¿Qué es un par de divisas?
Un par de divisas es una cotización que expresa el precio de una moneda en términos de otra. Siempre se escribe con dos códigos ISO 4217 —por ejemplo EUR/USD o EURUSD— y un único precio decimal.
La primera moneda del par es la moneda base. La segunda es la moneda cotizada (a veces llamada moneda contraparte). El precio te dice cuántas unidades de la moneda cotizada hacen falta para comprar una unidad de la base.
Así, EUR/USD = 1,0850 significa que un euro vale 1,0850 dólares estadounidenses. Si la cotización sube a 1,0900, el euro se ha fortalecido frente al dólar. Si baja a 1,0800, se ha debilitado. La moneda base es "lo que se está valorando" y la cotizada es "el dinero con el que se paga".
Es una convención simple, pero tropieza casi todos los desarrolladores al menos una vez. Si almacenas tasas sin rastrear consistentemente cuál es la base y cuál la cotizada, antes o después invertirás un número y cobrarás de más o de menos sin darte cuenta. Veremos cómo evitarlo en la sección de código. Para profundizar en qué mueve el precio en sí, consulta nuestra guía sobre cómo funcionan los tipos de cambio.
El mercado FX global mueve alrededor de 7,5 billones de dólares al día, según la encuesta trienal del Banco de Pagos Internacionales, lo que lo convierte en el mayor mercado financiero del mundo. Esa liquidez no se reparte por igual entre los pares: la mayor parte se concentra en un grupo reducido llamado los pares mayores.
Pares de divisas mayores
Los pares mayores son los más negociados del mundo. El mercado no tiene una definición oficial única, pero en la práctica todo par mayor cumple dos propiedades: incluye al dólar estadounidense (USD) en uno de los lados, y el otro es la moneda de una economía grande, estable y desarrollada.
Hay siete pares aceptados casi universalmente como mayores:
EUR/USD— Euro / Dólar estadounidenseUSD/JPY— Dólar estadounidense / Yen japonésGBP/USD— Libra esterlina / Dólar estadounidenseUSD/CHF— Dólar estadounidense / Franco suizoAUD/USD— Dólar australiano / Dólar estadounidenseUSD/CAD— Dólar estadounidense / Dólar canadienseNZD/USD— Dólar neozelandés / Dólar estadounidense
En conjunto, los mayores representan aproximadamente el 75% del volumen FX global, y solo EUR/USD concentra alrededor de una cuarta parte de toda la negociación. Esta concentración tiene consecuencias directas para lo que construyes:
- Spreads más ajustados. La diferencia entre el bid (lo que pagan los compradores) y el ask (lo que piden los vendedores) es la menor en los mayores. Si muestras tasas a usuarios finales, esto significa la menor diferencia entre el tipo de cambio mid-market y lo que recibirán realmente.
- Mayor frecuencia de actualización. Los datos tick a tick de los mayores llegan muchas veces por segundo en horario de mercado. Los pares menores y exóticos se actualizan de forma más esporádica.
- Datos históricos más fiables. Si haces backtesting, analítica o gráficos, los mayores tendrán los históricos más limpios, largos y sin huecos.
- Menor coste de API por respuesta útil. Como un par mayor sirve a menudo de bloque para construir docenas de otras tasas (vía cálculo de tasas cruzadas), puedes servir un producto global cacheando agresivamente los mayores y derivando el resto.
Aquí tienes un ejemplo mínimo para obtener los siete mayores desde Finexly en una sola petición:
// Fetch all major pairs vs USD in a single call
const symbols = ['EUR', 'JPY', 'GBP', 'CHF', 'AUD', 'CAD', 'NZD'];
const response = await fetch(
`https://api.finexly.com/v1/latest?base=USD&symbols=${symbols.join(',')}`,
{ headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
);
const data = await response.json();
console.log(data.rates);
// { EUR: 0.9217, JPY: 154.32, GBP: 0.7891, CHF: 0.8843, ... }Fíjate en que pedimos base=USD y obtenemos las tasas para cada símbolo en términos de USD. Para obtener la dirección convencional del par (por ejemplo EUR/USD en vez de USD/EUR) puede que tengas que invertir. Vemos ese patrón más abajo.
Pares menores (cruzados)
Los pares menores, también llamados cruces o pares cruzados, son pares de dos monedas mayores que no incluyen el dólar estadounidense. El nombre "cruce" viene de que históricamente había que calcularlos "cruzando" dos pares contra USD: por ejemplo, derivar EUR/GBP a partir de EUR/USD y GBP/USD. Hoy la mayoría de APIs y brokers los cotizan directamente, pero entender la matemática subyacente sigue siendo útil.
Pares menores comunes:
EUR/GBP— Euro / Libra esterlinaEUR/JPY— Euro / Yen japonésEUR/CHF— Euro / Franco suizoGBP/JPY— Libra esterlina / Yen japonésAUD/JPY— Dólar australiano / Yen japonésCHF/JPY— Franco suizo / Yen japonésEUR/AUD— Euro / Dólar australianoGBP/CAD— Libra esterlina / Dólar canadiense
Los cruces siguen teniendo buena liquidez —especialmente los cruces con EUR y JPY— pero sus spreads suelen ser más amplios que los de los siete mayores y la volatilidad intradía suele ser mayor. GBP/JPY, por ejemplo, es famoso entre traders por moverse con agresividad, lo que le ha valido el apodo de "el dragón".
Para los desarrolladores, la implicación práctica es no asumir un markup de exótico ni una cadencia de actualización de exótico en cualquier par no-USD. Los cruces están en el medio: liquidez más que suficiente para casi cualquier producto B2C o B2B, pero no el spread tan ajustado de EUR/USD.
Si tu proveedor no cotiza un cruce concreto directamente, siempre puedes derivarlo desde sus dos patas USD:
# Derive EUR/GBP from EUR/USD and GBP/USD
eur_usd = 1.0850 # 1 EUR = 1.0850 USD
gbp_usd = 1.2680 # 1 GBP = 1.2680 USD
# 1 EUR = (eur_usd / gbp_usd) GBP
eur_gbp = eur_usd / gbp_usd
print(f"EUR/GBP = {eur_gbp:.4f}") # EUR/GBP = 0.8557Esto es exactamente lo que hacen entre bambalinas la mayoría de motores de tasas. Finexly devuelve los cruces directamente vía el conversor de divisas, pero conviene tener esta matemática en la cabeza: te permite verificar cualquier tasa y caer con elegancia si un par concreto falta en el feed.
Pares de divisas exóticos
Los pares exóticos combinan una moneda mayor (típicamente USD o EUR) con la moneda de una economía pequeña, emergente o menos líquida. Algunos ejemplos:
USD/TRY— Dólar estadounidense / Lira turcaUSD/MXN— Dólar estadounidense / Peso mexicanoUSD/ZAR— Dólar estadounidense / Rand sudafricanoUSD/BRL— Dólar estadounidense / Real brasileñoUSD/INR— Dólar estadounidense / Rupia indiaUSD/THB— Dólar estadounidense / Baht tailandésEUR/PLN— Euro / Zloty polacoEUR/HUF— Euro / Forint húngaroUSD/SGD— Dólar estadounidense / Dólar de SingapurUSD/HKD— Dólar estadounidense / Dólar de Hong Kong
La línea entre "menor" y "exótico" es difusa: USD/SGD y USD/HKD se clasifican a veces como menores porque sus economías están muy desarrolladas, mientras que USD/CNH (yuan chino offshore) se clasifica a veces como mayor por su volumen comercial. La categoría importa menos que las características, que son las que afectan a tu código:
- Spreads más amplios. La diferencia entre bid y ask puede ser entre 5 y 20 veces mayor que en un par mayor.
- Menor liquidez fuera de horario. Muchos exóticos cotizan finos fuera del horario de su mercado local, por lo que las tasas de fin de semana o nocturnas pueden estar obsoletas o saltar.
- Mayor sensibilidad a noticias. Las divisas exóticas se mueven con fuerza ante noticias políticas locales, decisiones del banco central y anuncios de control de capitales. Lee nuestro análisis sobre cómo los eventos geopolíticos afectan a los tipos de cambio.
- Saltos de tasa más frecuentes. Un par como
USD/TRYpuede saltar varios puntos porcentuales en un fin de semana o tras una decisión de tipos. Si tu lógica de facturación o pricing no lo contempla, puedes acabar mostrando una tasa caduca al usuario durante una hora tras un movimiento grande. - Divisas ancladas o gestionadas. Algunos pares "exóticos" apenas se mueven porque el banco central interviene:
USD/HKDes el ejemplo clásico, mantenido en una banda estrecha. Tus gráficos parecerán casi planos, lo cual es correcto, no un bug en tus datos.
Si tu producto sirve a mercados emergentes, no trates a los exóticos como una nota al pie: muchas veces es donde vive el dolor real de pricing. Tenemos una guía aparte sobre cómo gestionar la volatilidad de divisas en 2026 que profundiza en los patrones operativos.
Cotizaciones directas, indirectas e inversas
Más allá de mayor/menor/exótico, hay otra pieza de vocabulario que todo desarrollador necesita: la diferencia entre cotizaciones directas e indirectas.
Una cotización directa expresa la moneda extranjera en unidades de la moneda local. Desde la perspectiva estadounidense, USD/EUR = 0,92 es una cotización directa: dice al usuario estadounidense que un dólar compra 0,92 euros. Una cotización indirecta invierte eso: EUR/USD = 1,0850 es una cotización directa desde Europa e indirecta desde EE. UU.
La cotización convencional del mercado FX sigue reglas históricas de "ranking", no la perspectiva del usuario:
EURsiempre es la base cuando se empareja con cualquier otra cosa.GBPes la base excepto frente aEUR.AUDyNZDson la base frente a casi todo, salvoEURyGBP.USDes la base frente a la mayoría salvo las cuatro anteriores.JPYcasi siempre es la moneda cotizada.
Por eso EUR/USD, GBP/USD, AUD/USD, USD/JPY, USD/CHF son las direcciones convencionales —nunca USD/EUR. Si tu proveedor devuelve USD/EUR, es señal de que está devolviendo todas las tasas con USD como base, y es tu trabajo invertir el par al mostrarlo a traders o profesionales financieros que esperan la dirección convencional.
Invertir es matemática simple, pero fácil de equivocar:
// Convert USD-based rate to conventional pair direction
function toConventionalQuote(base: string, quote: string, rate: number) {
const usdBaseFirst = ['EUR', 'GBP', 'AUD', 'NZD'];
// If the quote currency is "stronger" by convention, flip
if (usdBaseFirst.includes(quote)) {
return { pair: `${quote}/${base}`, rate: 1 / rate };
}
return { pair: `${base}/${quote}`, rate };
}
toConventionalQuote('USD', 'EUR', 0.9217);
// → { pair: 'EUR/USD', rate: 1.0850 }Si solo muestras precios a usuarios finales que no se preocupan por la convención del mercado, puedes saltarte esto y cotizarlo todo desde tu moneda local. Pero si tus usuarios son profesionales —traders, tesoreros, contables— acertar la dirección es una marca de credibilidad.
Cómo manejar pares de divisas en código
Aquí es donde viven la mayoría de los bugs. Estos son los patrones que recomendamos, destilados de miles de integraciones de API.
1. Usa siempre códigos ISO 4217 internamente
Nunca almacenes identificadores de moneda como símbolos ($, €, ¥) ni nombres ("dólar"). Almacénalos como los códigos de tres letras ISO 4217: USD, EUR, JPY. Los símbolos son ambiguos (el $ lo usan más de 20 monedas) y los nombres están localizados. Los códigos ISO son inequívocos y neutros respecto al idioma.
2. Normaliza las cadenas de pares en el borde
Verás pares escritos como EURUSD, EUR/USD, EUR-USD, EUR_USD y eur/usd. Elige una representación interna y normaliza en el borde de tu sistema:
function normalizePair(input) {
const cleaned = input.toUpperCase().replace(/[^A-Z]/g, '');
if (cleaned.length !== 6) {
throw new Error(`Invalid pair: ${input}`);
}
return {
base: cleaned.slice(0, 3),
quote: cleaned.slice(3, 6),
canonical: `${cleaned.slice(0, 3)}/${cleaned.slice(3, 6)}`,
};
}
normalizePair('eur-usd');
// → { base: 'EUR', quote: 'USD', canonical: 'EUR/USD' }Internamente, prefiere la forma estructurada ({ base, quote }) antes que la cadena. Las cadenas son para logs y APIs; los datos estructurados son para código.
3. Convierte entre dos divisas cualesquiera vía un pivote
Si cacheas las tasas con una única base (USD es lo convencional), puedes calcular cualquier par al vuelo:
def convert(amount, source, target, rates_in_usd):
"""
rates_in_usd: dict like {'EUR': 0.9217, 'GBP': 0.7891, ...}
Each value is "1 USD = X units of currency"
"""
if source == target:
return amount
if source == 'USD':
return amount * rates_in_usd[target]
if target == 'USD':
return amount / rates_in_usd[source]
# Pivot through USD
amount_in_usd = amount / rates_in_usd[source]
return amount_in_usd * rates_in_usd[target]
# Convert 100 EUR to JPY using USD-based rates
rates = {'EUR': 0.9217, 'JPY': 154.32}
print(convert(100, 'EUR', 'JPY', rates)) # 16,743.31Este patrón te permite soportar 170+ divisas con una única caché caliente de tasas "USD vs todo". El endpoint /v1/latest?base=USD de Finexly devuelve exactamente esa forma.
4. Maneja la precisión decimal correctamente
Los pares de divisas usan distintos niveles convencionales de precisión: la mayoría de mayores cotizan a 4 o 5 decimales (1.08503), mientras que los pares con JPY cotizan a 2 o 3 (154.32). Divisas como el dong vietnamita no tienen unidades menores. Almacena siempre las tasas en tipos Decimal / BigDecimal —nunca floats— al calcular cantidades que tocan el saldo de un usuario. Los detalles están en nuestro tutorial de la API en Python.
5. Cachea con cabeza, no a lo bestia
Los pares mayores apenas se mueven de un segundo a otro en mercados tranquilos, así que puedes cachearlos 30–60 segundos sin que nadie se entere. Los exóticos pueden necesitar TTL más cortos cerca de noticias programadas. Nuestra guía de caching y manejo de errores describe una estrategia de caché por capas que funciona para ambos.
Errores comunes a evitar
Una lista corta de cosas que han quemado a equipos reales:
- Almacenar la tasa sin la dirección del par. "1,0850" no significa nada sin saber que es
EUR/USDy noUSD/EUR. - Mezclar cotización en perspectiva del usuario y perspectiva del mercado en la misma UI. Elige una y etiquétala con claridad.
- Tratar las tasas de fin de semana como en vivo. Los mercados FX cierran de viernes 17:00 EST a domingo 17:00 EST. La tasa que sirves un sábado por la mañana es el cierre del viernes —bien para la mayoría de apps, peligroso para cualquier ejecución. Lee horario del mercado forex.
- Hardcodear una lista de "pares soportados". Usa el endpoint
symbolsde la API como fuente de verdad. Aparecen nuevas divisas (y rara vez desaparecen) con el tiempo. - Redondear demasiado pronto. Redondea al mostrar, no al calcular. Una tasa mid-market a cuatro decimales multiplicada por una cantidad pequeña puede perder precisión significativa si se redondea a mitad de pipeline.
Preguntas frecuentes
¿Cuántos pares de divisas existen en total? Con unas 180 divisas nacionales activas, el número teórico de pares únicos es ~16.000 (180 × 179 / 2). En la práctica solo unas pocas centenas se negocian con liquidez significativa, y la mayoría de APIs —incluida Finexly— exponen 170+ divisas, lo que permite ~14.000 pares derivables. La mayoría de productos solo necesita soportar entre 20 y 50 en su UI.
¿Cuál es el par de divisas más negociado del mundo?
EUR/USD es el par más negociado, con aproximadamente el 22–24% del volumen diario de forex. USD/JPY y GBP/USD le siguen.
¿Es lo mismo USD/EUR que EUR/USD?
No. Los números son inversos matemáticos (USD/EUR = 1 / EUR/USD), pero son cotizaciones distintas. La notación convencional del mercado es EUR/USD. Si muestras USD/EUR a un profesional financiero, asumirá que algo va mal.
¿Por qué son más arriesgados los pares exóticos? Los exóticos descansan sobre mercados menos líquidos, lo que implica spreads más amplios, saltos mayores tras noticias, más sensibilidad a eventos políticos locales y, a veces, controles de capital o intervención del banco central. Nada de esto los hace inservibles, pero significa que tu código no debería asumir "spread pequeño, flujo suave de ticks" como puede asumirlo con los mayores.
¿Necesito un plan de API distinto para pares exóticos? No con Finexly. Las 170+ divisas —mayores, menores y exóticas— están disponibles en todos los planes, incluido el gratuito. Lo que diferencia a los planes es el volumen de llamadas, la frecuencia de refresco y la profundidad histórica, no la cobertura de pares. Compara los detalles en la página de planes de precios.
¿Cada cuánto debería refrescar las tasas de cambio? Para la mayoría de casos (visualización de e-commerce, facturación, reporting): cada 5–15 minutos es más que suficiente. Para trading activo o cobertura: cada pocos segundos, o consume un feed. Para cierre contable: una sola foto al final del día es lo correcto.
Empieza con datos de pares de divisas en vivo
Los pares de divisas son el idioma del FX. Una vez tengas un modelo mental limpio de mayor / menor / exótico y un set ordenado de helpers de normalización en código, todo lo demás que construyas con FX —conversores, checkout multi-divisa, billing SaaS, reporting— se vuelve mucho más fácil.
¿Listo para enchufar tasas en vivo a tu proyecto? Regístrate gratis y consigue una API key de Finexly en menos de un minuto, sin tarjeta de crédito. Obtendrás 1.000 peticiones al mes gratis, acceso a las 170+ divisas y las mismas tasas mid-market que usan productos fintech profesionales. Cuando se te quede pequeño el plan gratuito, nuestros planes de pago empiezan en un precio amigable para proyectos indie y escalan a volumen empresarial.
Si antes quieres comparar opciones, mira nuestro análisis del mejor API conversor de divisas para 2026.
Explore More
Vlado Grigirov
Senior Currency Markets Analyst & Financial Strategist
Vlado Grigirov is a senior currency markets analyst and financial strategist with over 14 years of experience in foreign exchange markets, cross-border finance, and currency risk management. He has wo...
View full profile →