Códigos de Moneda ISO 4217: La Guía Completa para Desarrolladores
Si alguna vez has construido un sistema de pagos, integrado una API de tasas de cambio o mostrado precios en múltiples monedas, ya has encontrado los códigos de moneda ISO 4217 — aunque no lo supieras. Estos códigos de tres letras como USD, EUR, JPY y GBP son el lenguaje universal del dinero en el desarrollo de software. Entender cómo funcionan, de dónde vienen y cómo usarlos correctamente es esencial para cualquier desarrollador que cree aplicaciones financieras.
Esta guía cubre todo lo que necesitas saber: la estructura de los códigos de moneda, una lista de referencia de las divisas más utilizadas del mundo, cómo gestionar unidades menores y códigos especiales, y cómo integrarlos con la documentación de la API de Finexly para obtener tasas de cambio en tiempo real.
¿Qué es ISO 4217?
ISO 4217 es un estándar internacional publicado por la Organización Internacional de Normalización (ISO) que define códigos para representar las monedas del mundo. Introducido por primera vez en 1978, ahora se utiliza de forma universal en sistemas bancarios, software financiero, plataformas de comercio electrónico, procesadores de pagos y APIs de cambio de divisas.
El estándar tiene tres objetivos principales:
- Eliminar la ambigüedad — "dólar" puede referirse al dólar estadounidense, canadiense, australiano o decenas de otros.
USD,CAD,AUDson inequívocos. - Habilitar el procesamiento automatizado — Tanto los códigos alfabéticos como los numéricos permiten que los sistemas con diferentes compatibilidades de juegos de caracteres gestionen datos de divisas de forma fiable.
- Apoyar la interoperabilidad internacional — Cualquier sistema compatible — ya sea un banco en Tokio o una startup en Berlín — puede intercambiar datos financieros sin mapeos personalizados.
El estándar es mantenido por SIX Group en nombre de ISO y la Asociación Suiza de Normalización.
Comprensión de la Estructura de los Códigos
Códigos Alfabéticos (Alpha-3)
Cada código alfabético ISO 4217 tiene exactamente tres letras ASCII mayúsculas. La estructura es deliberada:
- Primeras dos letras — Derivadas del código de país ISO 3166-1 alpha-2 (p.ej.,
USpara Estados Unidos,JPpara Japón,GBpara Gran Bretaña) - Tercera letra — Generalmente la primera letra del nombre de la moneda (p.ej.,
Dpara Dólar,Ypara Yen,Ppara Libra/Pound)
Así, USD = Estados Unidos (US) + Dólar (D). JPY = Japón (JP) + Yen (Y). GBP = Gran Bretaña (GB) + Libra (P).
Códigos Numéricos
Cada moneda también tiene un código numérico de tres dígitos (p.ej., 840 para USD, 978 para EUR, 826 para GBP). Estos códigos son especialmente útiles en sistemas que no manejan caracteres latinos y en sistemas EDI (Electronic Data Interchange).
Unidades Menores (Decimales)
ISO 4217 también especifica el número de lugares decimales (unidades menores) para cada moneda. La mayoría usa 2 decimales (p.ej., $1,99), pero hay excepciones importantes:
| Decimales | Monedas de Ejemplo |
|---|---|
| 0 | Yen Japonés (JPY), Won Coreano (KRW), Peso Chileno (CLP) |
| 2 | Dólar Estadounidense (USD), Euro (EUR), Libra Esterlina (GBP) |
| 3 | Dinar Kuwaití (KWD), Dinar Bareiní (BHD), Rial Omaní (OMR) |
¥1999 como ¥19,99, has introducido un error de precio de 99x. Siempre consulta el número correcto de decimales para cualquier moneda que soporte tu aplicación.Tabla de Referencia de las Principales Monedas Mundiales
Américas
| Código | Moneda | País | Numérico | Decimales |
|---|---|---|---|---|
| USD | Dólar Estadounidense | Estados Unidos | 840 | 2 |
| CAD | Dólar Canadiense | Canadá | 124 | 2 |
| MXN | Peso Mexicano | México | 484 | 2 |
| BRL | Real Brasileño | Brasil | 986 | 2 |
| ARS | Peso Argentino | Argentina | 032 | 2 |
| CLP | Peso Chileno | Chile | 152 | 0 |
Europa
| Código | Moneda | País/Región | Numérico | Decimales |
|---|---|---|---|---|
| EUR | Euro | Eurozona | 978 | 2 |
| GBP | Libra Esterlina | Reino Unido | 826 | 2 |
| CHF | Franco Suizo | Suiza | 756 | 2 |
| NOK | Corona Noruega | Noruega | 578 | 2 |
| SEK | Corona Sueca | Suecia | 752 | 2 |
| PLN | Esloti Polaco | Polonia | 985 | 2 |
| TRY | Lira Turca | Turquía | 949 | 2 |
Asia-Pacífico
| Código | Moneda | País | Numérico | Decimales |
|---|---|---|---|---|
| JPY | Yen Japonés | Japón | 392 | 0 |
| CNY | Yuan Chino | China | 156 | 2 |
| HKD | Dólar de Hong Kong | Hong Kong | 344 | 2 |
| SGD | Dólar de Singapur | Singapur | 702 | 2 |
| AUD | Dólar Australiano | Australia | 036 | 2 |
| KRW | Won Surcoreano | Corea del Sur | 410 | 0 |
| INR | Rupia India | India | 356 | 2 |
Usando Códigos de Moneda con la API de Finexly
La API de Finexly soporta más de 170 códigos de moneda ISO 4217. Aquí te mostramos cómo obtener tasas de cambio en tiempo real:
cURL
curl "https://finexly.com/api/latest?base=USD&symbols=EUR,GBP,JPY,CAD,AUD" \
-H "Authorization: Bearer TU_API_KEY"JavaScript
const BASE_CURRENCY = 'USD';
const TARGET_CURRENCIES = ['EUR', 'GBP', 'JPY', 'CNY', 'AUD'];
async function getExchangeRates() {
const symbols = TARGET_CURRENCIES.join(',');
const url = `https://finexly.com/api/latest?base=${BASE_CURRENCY}&symbols=${symbols}`;
const response = await fetch(url, {
headers: { 'Authorization': 'Bearer TU_API_KEY' }
});
const data = await response.json();
return data.rates;
}
getExchangeRates().then(rates => {
console.log(`1 USD = ${rates.EUR} EUR`);
console.log(`1 USD = ${rates.JPY} JPY`);
});Python
import requests
API_KEY = "TU_API_KEY"
BASE = "USD"
TARGETS = ["EUR", "GBP", "JPY", "CNY", "BRL"]
response = requests.get(
"https://finexly.com/api/latest",
params={"base": BASE, "symbols": ",".join(TARGETS)},
headers={"Authorization": f"Bearer {API_KEY}"}
)
data = response.json()
for code, rate in data["rates"].items():
print(f"1 {BASE} = {rate} {code}")Formato de Divisas por Locale
JavaScript — Intl.NumberFormat
function formatCurrency(amount, currencyCode, locale = 'es-ES') {
return new Intl.NumberFormat(locale, {
style: 'currency',
currency: currencyCode,
}).format(amount);
}
console.log(formatCurrency(1234.56, 'USD', 'en-US')); // $1,234.56
console.log(formatCurrency(1234.56, 'EUR', 'de-DE')); // 1.234,56 €
console.log(formatCurrency(1234.56, 'EUR', 'es-ES')); // 1.234,56 €
console.log(formatCurrency(1500, 'JPY', 'ja-JP')); // ¥1,500Errores Comunes con Códigos de Moneda
Error 1: Almacenar monedas como números de punto flotante
# ❌ INCORRECTO — los errores de punto flotante causarán problemas
total = 19.99 * 1.20 # 23.988000000000003
# ✅ CORRECTO — usa enteros en unidades menores
price_cents = 1999 # $19.99 guardado en centavosError 2: Asumir que todas las monedas tienen 2 decimales
// ❌ INCORRECTO
formatJPY(1500) // "1500.00 JPY" — WRONG
// ✅ CORRECTO — usa Intl.NumberFormat
new Intl.NumberFormat('ja-JP', { style: 'currency', currency: 'JPY' }).format(1500); // ¥1,500Preguntas Frecuentes
¿Cuál es la diferencia entre un código de moneda y un símbolo de moneda?
Un código de moneda es un identificador estandarizado de tres letras (p.ej., USD) definido por ISO 4217, mientras que un símbolo de moneda es una abreviatura tipográfica (p.ej., $, €, £). Los símbolos varían según el locale — por ejemplo, $ puede significar CAD, USD, AUD u otros dólares dependiendo del contexto. Los códigos de moneda son siempre inequívocos.
¿Cuántos códigos de moneda ISO 4217 existen? A partir de 2026, hay alrededor de 180 códigos de moneda activos. Finexly soporta más de 170 de estos para consultas de tasas de cambio en tiempo real.
¿Puedo usar códigos de moneda con el plan gratuito de Finexly? Sí — el plan gratuito te da acceso a todos los códigos de moneda ISO 4217 compatibles con hasta 1.000 solicitudes de API al mes.
¿Por qué el Yen Japonés (JPY) no tiene decimales? El Yen se decimalizó de manera diferente a la mayoría de las monedas. Aunque técnicamente tiene una subunidad llamada "sen" (1/100 de Yen), los sen ya no se usan en la práctica, convirtiendo al JPY en una moneda sin decimales.
¿Qué código de moneda debo usar para el Euro en todos los países de la Eurozona?
Siempre usa EUR — es el mismo código de moneda independientemente de si la transacción es en Alemania, Francia, España, Italia o cualquier otra nación de la Eurozona.
¿Listo para integrar tasas de cambio en tiempo real en tu proyecto? Obtén tu clave de API gratuita de Finexly — sin necesidad de tarjeta de crédito. Comienza con 1.000 solicitudes gratuitas al mes y accede a tasas en tiempo real para más de 170 monedas ISO 4217. Actualiza tu plan a medida que crezcas.
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 →