Коды валют ISO 4217: Полное руководство для разработчиков
Если вы когда-либо разрабатывали платёжную систему, интегрировали API обменных курсов или отображали цены в нескольких валютах, вы уже сталкивались с кодами валют ISO 4217 — осознавали ли вы это или нет. Трёхбуквенные коды USD, EUR, JPY и GBP — это универсальный язык денег в разработке программного обеспечения. Понимание того, как они работают, откуда берутся и как их правильно использовать, необходимо каждому разработчику, создающему финансовые приложения.
Это руководство охватывает всё, что вам нужно знать: структуру кодов валют, справочный список наиболее часто используемых валют мира, работу с дробными единицами и специальными кодами, а также интеграцию с документацией API Finexly для получения курсов в реальном времени.
Что такое ISO 4217?
ISO 4217 — это международный стандарт, опубликованный Международной организацией по стандартизации (ISO), который определяет коды для представления мировых валют. Впервые введённый в 1978 году, сегодня он используется повсеместно в банковских системах, финансовом программном обеспечении, платформах электронной коммерции, платёжных системах и API обменных курсов.
Стандарт служит трём ключевым целям:
- Устранить неоднозначность — «доллар» может означать американский, канадский, австралийский или десятки других.
USD,CAD,AUD— однозначны. - Обеспечить автоматизированную обработку — Буквенные и числовые коды позволяют системам с различной поддержкой кодировок надёжно обрабатывать данные о валютах.
- Поддержать международную совместимость — Любая совместимая система может обмениваться финансовыми данными без пользовательских преобразований.
Стандарт поддерживается группой SIX от имени ISO и Швейцарской ассоциации по стандартизации.
Понимание структуры кодов
Буквенные коды (Alpha-3)
Каждый буквенный код ISO 4217 состоит ровно из трёх заглавных ASCII-букв. Структура продуманна:
- Первые две буквы — производные от кода страны ISO 3166-1 alpha-2 (например,
USдля США,JPдля Японии,GBдля Великобритании) - Третья буква — обычно первая буква названия валюты (например,
Dдля Dollar,Yдля Yen,Pдля Pound)
Таким образом, USD = США (US) + Доллар (D). JPY = Япония (JP) + Иена (Y). GBP = Великобритания (GB) + Фунт (P).
Числовые коды
Каждая валюта также имеет трёхзначный числовой код (например, 840 для USD, 978 для EUR, 826 для GBP). Эти коды особенно полезны в системах, не поддерживающих латинские символы.
Дробные единицы (Знаки после запятой)
ISO 4217 также определяет количество знаков после запятой для каждой валюты:
| Знаков после запятой | Примеры валют |
|---|---|
| 0 | Японская иена (JPY), Южнокорейская вона (KRW), Чилийское песо (CLP) |
| 2 | Доллар США (USD), Евро (EUR), Британский фунт (GBP) |
| 3 | Кувейтский динар (KWD), Бахрейнский динар (BHD), Оманский риал (OMR) |
¥1999 как ¥19,99, вы получите ошибку цены в 99 раз.Справочная таблица основных мировых валют
Америка
| Код | Валюта | Страна | Числовой код | Знаков |
|---|---|---|---|---|
| USD | Доллар США | США | 840 | 2 |
| CAD | Канадский доллар | Канада | 124 | 2 |
| MXN | Мексиканское песо | Мексика | 484 | 2 |
| BRL | Бразильский реал | Бразилия | 986 | 2 |
| ARS | Аргентинское песо | Аргентина | 032 | 2 |
Европа
| Код | Валюта | Страна/Регион | Числовой код | Знаков |
|---|---|---|---|---|
| EUR | Евро | Еврозона | 978 | 2 |
| GBP | Британский фунт стерлингов | Великобритания | 826 | 2 |
| CHF | Швейцарский франк | Швейцария | 756 | 2 |
| NOK | Норвежская крона | Норвегия | 578 | 2 |
| SEK | Шведская крона | Швеция | 752 | 2 |
| PLN | Польский злотый | Польша | 985 | 2 |
| TRY | Турецкая лира | Турция | 949 | 2 |
| RUB | Российский рубль | Россия | 643 | 2 |
Азиатско-Тихоокеанский регион
| Код | Валюта | Страна | Числовой код | Знаков |
|---|---|---|---|---|
| JPY | Японская иена | Япония | 392 | 0 |
| CNY | Китайский юань | Китай | 156 | 2 |
| HKD | Гонконгский доллар | Гонконг | 344 | 2 |
| SGD | Сингапурский доллар | Сингапур | 702 | 2 |
| AUD | Австралийский доллар | Австралия | 036 | 2 |
| KRW | Южнокорейская вона | Южная Корея | 410 | 0 |
| INR | Индийская рупия | Индия | 356 | 2 |
Использование кодов валют с API Finexly
API Finexly поддерживает более 170 кодов валют ISO 4217. Вот как получить обменные курсы в реальном времени:
cURL
curl "https://finexly.com/api/latest?base=USD&symbols=EUR,GBP,JPY,RUB,CNY" \
-H "Authorization: Bearer ВАШ_API_КЛЮЧ"JavaScript
const BASE_CURRENCY = 'USD';
const TARGET_CURRENCIES = ['EUR', 'GBP', 'JPY', 'RUB', 'CNY'];
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 ВАШ_API_КЛЮЧ' }
});
const data = await response.json();
return data.rates;
}
getExchangeRates().then(rates => {
console.log(`1 USD = ${rates.EUR} EUR`);
console.log(`1 USD = ${rates.RUB} RUB`);
});Python
import requests
API_KEY = "ВАШ_API_КЛЮЧ"
BASE = "USD"
TARGETS = ["EUR", "GBP", "JPY", "RUB", "CNY"]
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}")Форматирование валют по локалям
function formatCurrency(amount, currencyCode, locale = 'ru-RU') {
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, 'RUB', 'ru-RU')); // 1 234,56 ₽
console.log(formatCurrency(1500, 'JPY', 'ja-JP')); // ¥1 500Распространённые ошибки разработчиков
Ошибка 1: Хранение валюты как числа с плавающей точкой
# ❌ НЕВЕРНО — ошибки с плавающей точкой создадут проблемы
total = 19.99 * 1.20 # 23.988000000000003
# ✅ ВЕРНО — используйте целые числа в дробных единицах
price_cents = 1999 # $19.99 хранится в центахОшибка 2: Предположение, что у всех валют 2 знака после запятой
// ❌ НЕВЕРНО
formatJPY(1500) // "1500.00 JPY" — ОШИБКА!
// ✅ ВЕРНО
new Intl.NumberFormat('ja-JP', { style: 'currency', currency: 'JPY' }).format(1500); // ¥1 500Часто задаваемые вопросы
В чём разница между кодом валюты и символом валюты?
Код валюты — это стандартизированный трёхбуквенный идентификатор (например, USD), определённый ISO 4217, тогда как символ валюты — это типографическое сокращение (например, $, €, £). Символы варьируются в зависимости от локали, тогда как коды валют всегда однозначны.
Сколько кодов валют ISO 4217 существует? По состоянию на 2026 год существует около 180 активных кодов валют. Finexly поддерживает более 170 из них для запросов обменных курсов в реальном времени.
Могу ли я использовать коды валют с бесплатным планом Finexly? Да — бесплатный план предоставляет доступ ко всем поддерживаемым кодам валют ISO 4217 с до 1000 API-запросов в месяц.
Почему японская иена (JPY) не имеет знаков после запятой? Иена была децимализирована иначе, чем большинство валют. Хотя технически существует субъединица «сен» (1/100 иены), на практике сены больше не используются.
Какой код валюты следует использовать для евро во всех странах еврозоны?
Всегда используйте EUR — это один и тот же код валюты независимо от того, совершается ли транзакция в Германии, Франции, Испании, Италии или любой другой стране еврозоны.
Готовы интегрировать обменные курсы в реальном времени в свой проект? Получите бесплатный API-ключ Finexly — кредитная карта не требуется. Начните с 1000 бесплатных запросов в месяц и получите доступ к курсам в реальном времени для более чем 170 валют ISO 4217. Перейдите на более высокий тарифный план по мере роста.
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 →