Volver al blog

Códigos de Moneda ISO 4217: La Guía Completa para Desarrolladores

V
Vlado Grigirov
April 04, 2026
"Currency API" "Exchange Rates" "Finexly" "ISO 4217" "Developer Guide" "Currency Codes"

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, AUD son 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., US para Estados Unidos, JP para Japón, GB para Gran Bretaña)
  • Tercera letra — Generalmente la primera letra del nombre de la moneda (p.ej., D para Dólar, Y para Yen, P para 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:

DecimalesMonedas de Ejemplo
0Yen Japonés (JPY), Won Coreano (KRW), Peso Chileno (CLP)
2Dólar Estadounidense (USD), Euro (EUR), Libra Esterlina (GBP)
3Dinar Kuwaití (KWD), Dinar Bareiní (BHD), Rial Omaní (OMR)
Esto es crucial en el software: si formateas ¥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ódigoMonedaPaísNuméricoDecimales
USDDólar EstadounidenseEstados Unidos8402
CADDólar CanadienseCanadá1242
MXNPeso MexicanoMéxico4842
BRLReal BrasileñoBrasil9862
ARSPeso ArgentinoArgentina0322
CLPPeso ChilenoChile1520

Europa

CódigoMonedaPaís/RegiónNuméricoDecimales
EUREuroEurozona9782
GBPLibra EsterlinaReino Unido8262
CHFFranco SuizoSuiza7562
NOKCorona NoruegaNoruega5782
SEKCorona SuecaSuecia7522
PLNEsloti PolacoPolonia9852
TRYLira TurcaTurquía9492

Asia-Pacífico

CódigoMonedaPaísNuméricoDecimales
JPYYen JaponésJapón3920
CNYYuan ChinoChina1562
HKDDólar de Hong KongHong Kong3442
SGDDólar de SingapurSingapur7022
AUDDólar AustralianoAustralia0362
KRWWon SurcoreanoCorea del Sur4100
INRRupia IndiaIndia3562

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,500

Errores 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 centavos

Error 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,500

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

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 →