Коды валют (ISO 4217)

Пригодится при создании форм оплаты, таблиц курсов валют и экспорта счетов.

Обновлено:

ВалютаКодСимволЗнаков после запятой
доллар СШАUSD$2
евроEUR€2
британский фунтGBP£2
японская иенаJPY¥0
китайский юаньCNY¥ / 元2
гонконгский долларHKDHK$2
тайваньский долларTWDNT$2
южнокорейская вонаKRW₩0
швейцарский франкCHFCHF2
канадский долларCADC$2
австралийский доллارAUDA$2
новозеландский долларNZDNZ$2
сингапурский долларSGDS$2
индийская рупияINR₹2
индонезийская рупияIDRRp2
тайский батTHB฿2
вьетнамский донгVND₫0
малайзийский ринггитMYRRM2
филиппинское песоPHP₱2
бразильский реалBRLR$2
мексиканское песоMXNMex$2
аргентинское песоARS$2
турецкая лираTRY₺2
российский рубльRUB₽2
саудовский риялSAR﷼2
дирхам ОАЭAEDد.إ2
южноафриканский рэндZARR2
польский злотыйPLNzł2
шведская кронаSEKkr2
норвежская кронаNOKkr2
датская кронаDKKkr2

Примечания

Что именно определяет стандарт ISO 4217

ISO 4217 — это международный стандарт, который присваивает каждой валюте трёхбуквенный код, цифровой код и фиксированное количество знаков после запятой. Буквы не случайны: первые две обычно обозначают страну или регион, а третья — название валюты, поэтому USD означает долларов США, JPY — японскую иену, а EUR — евро. Стандарт также фиксирует минорную единицу — количество цифр после десятичной точки, — именно её используют программы для правильного округления сумм. Когда в системе говорят «хранить код», имеется в виду алфавитный код ISO 4217, а не символ, и это различие предотвращает целый класс ошибок при расчётах.

Почему одного символа недостаточно

Символы валют неоднозначны, в отличие от кодов. Знак доллара используется для долларов США, Канады, Австралии, Новой Зеландии, Гонконга, Сингапура и ряда других стран; знаки иены и юаня пересекаются; знак фунта означает как британский фунт стерлингов, так и несколько других валют. Надпись «$10» вообще не говорит о том, какой именно валютой она выражена. В инвойсах, API и базах данных хранение трёхбуквенного кода полностью устраняет неоднозначность, а символ становится лишь деталью оформления, которая выбирается при выводе в зависимости от аудитории. Для любой системы, работающей с международными платежами, правило просто: хранить код, отображать символ.

Минорные единицы, экспоненты и округление

Количество знаков после запятой — это свойство конкретной валюты, а не глобальный параметр системы. Большинство валют используют два знака, поэтому доллары, евро, фунты и юани всех имеют центы. Однако иена и корейская вона не имеют минорных единиц — 100 йен это сто целых, без дробной части, — тогда как ряд валют на базе динара, включая кувейтский динар, бахрейнский динар, оманский риал и тунисский динар, используют три знака. У некоторых валют также различаются минорные единицы для наличных расчётов и для бухгалтерского учёта. Ошибочное округление в этих случаях может давать разницу в сто раз, поэтому всегда берите значение экспоненты из стандарта, а не полагайтесь на предположение о двух знаках.

Краткий код и длинный список исключений

За handful крупных валют в любой справочной таблице скрываются сложные случаи. Валюты подвергаются деноминации — как в Зимбабве, где обнуляли нули не один раз, — а устаревшие коды сохраняются в исторических данных. Некоторые территории используют валюту другой страны полностью, поэтому местного кода нет. Криптовалюты намеренно не входят в ISO 4217 и используют собственные тикеры, поэтому система, обрабатывающая и фиатные, и криптоактивы, должна знать, в каком пространстве имён она работает. Несколько валют носят одинаковое название в разных странах, но имеют разные коды и стоимость. Практический вывод прост: код остаётся стабильным идентификатором, тогда как символы, названия и даже количество знаков после запятой могут меняться.

Частые вопросы

Для какой валюты код EUR?
EUR — это код ISO 4217 для евро, валюты большинства стран ЕС. Его символ — €.
Какой код у валюты Японии?
Японская иена имеет код ISO 4217 JPY и символ ¥. У неё нет знаков после запятой.
Почему лучше хранить трёхбуквенный код, а не символ?
Символы совпадают: $ может означать USD, CAD, AUD и другие. Трёхбуквенный код ISO 4217 однозначен.

Источники