Currency Minor Units
ISO 4217 codes and exponents, with a converter so you stop getting JPY and KWD wrong.
Runs entirely in your browser. Nothing you paste is uploaded, logged or stored.
All 178 currency codes
| Code | Numeric | Exponent | Name |
|---|---|---|---|
| 784 | 2 | UAE Dirham | |
| 971 | 2 | Afghani | |
| 008 | 2 | Lek | |
| 051 | 2 | Armenian Dram | |
| 532 | 2 | Netherlands Antillean Guilder | |
| 973 | 2 | Kwanza | |
| 032 | 2 | Argentine Peso | |
| 036 | 2 | Australian Dollar | |
| 533 | 2 | Aruban Florin | |
| 944 | 2 | Azerbaijan Manat | |
| 977 | 2 | Convertible Mark | |
| 052 | 2 | Barbados Dollar | |
| 050 | 2 | Taka | |
| 975 | 2 | Bulgarian Lev | |
| 048 | 3 | Bahraini Dinar | |
| 108 | 0 | Burundi Franc | |
| 060 | 2 | Bermudian Dollar | |
| 096 | 2 | Brunei Dollar | |
| 068 | 2 | Boliviano | |
| 984 | 2 | Mvdolfund | |
| 986 | 2 | Brazilian Real | |
| 044 | 2 | Bahamian Dollar | |
| 064 | 2 | Ngultrum | |
| 072 | 2 | Pula | |
| 933 | 2 | Belarusian Ruble | |
| 084 | 2 | Belize Dollar | |
| 124 | 2 | Canadian Dollar | |
| 976 | 2 | Congolese Franc | |
| 947 | 2 | WIR Eurofund | |
| 756 | 2 | Swiss Franc | |
| 948 | 2 | WIR Francfund | |
| 990 | 4 | Unidad de Fomentofund | |
| 152 | 0 | Chilean Peso | |
| 156 | 2 | Yuan Renminbi | |
| 170 | 2 | Colombian Peso | |
| 970 | 2 | Unidad de Valor Realfund | |
| 188 | 2 | Costa Rican Colon | |
| 192 | 2 | Cuban Peso | |
| 132 | 2 | Cabo Verde Escudo | |
| 203 | 2 | Czech Koruna | |
| 262 | 0 | Djibouti Franc | |
| 208 | 2 | Danish Krone | |
| 214 | 2 | Dominican Peso | |
| 012 | 2 | Algerian Dinar | |
| 818 | 2 | Egyptian Pound | |
| 232 | 2 | Nakfa | |
| 230 | 2 | Ethiopian Birr | |
| 978 | 2 | Euro | |
| 242 | 2 | Fiji Dollar | |
| 238 | 2 | Falkland Islands Pound | |
| 826 | 2 | Pound Sterling | |
| 981 | 2 | Lari | |
| 936 | 2 | Ghana Cedi | |
| 292 | 2 | Gibraltar Pound | |
| 270 | 2 | Dalasi | |
| 324 | 0 | Guinean Franc | |
| 320 | 2 | Quetzal | |
| 328 | 2 | Guyana Dollar | |
| 344 | 2 | Hong Kong Dollar | |
| 340 | 2 | Lempira | |
| 332 | 2 | Gourde | |
| 348 | 2 | Forint | |
| 360 | 2 | Rupiah | |
| 376 | 2 | New Israeli Sheqel | |
| 356 | 2 | Indian Rupee | |
| 368 | 3 | Iraqi Dinar | |
| 364 | 2 | Iranian Rial | |
| 352 | 0 | Iceland Krona | |
| 388 | 2 | Jamaican Dollar | |
| 400 | 3 | Jordanian Dinar | |
| 392 | 0 | Yen | |
| 404 | 2 | Kenyan Shilling | |
| 417 | 2 | Som | |
| 116 | 2 | Riel | |
| 174 | 0 | Comorian Franc | |
| 408 | 2 | North Korean Won | |
| 410 | 0 | Won | |
| 414 | 3 | Kuwaiti Dinar | |
| 136 | 2 | Cayman Islands Dollar | |
| 398 | 2 | Tenge | |
| 418 | 2 | Lao Kip | |
| 422 | 2 | Lebanese Pound | |
| 144 | 2 | Sri Lanka Rupee | |
| 430 | 2 | Liberian Dollar | |
| 426 | 2 | Loti | |
| 434 | 3 | Libyan Dinar | |
| 504 | 2 | Moroccan Dirham | |
| 498 | 2 | Moldovan Leu | |
| 969 | 2 | Malagasy Ariary | |
| 807 | 2 | Denar | |
| 104 | 2 | Kyat | |
| 496 | 2 | Tugrik | |
| 446 | 2 | Pataca | |
| 929 | 2 | Ouguiya | |
| 480 | 2 | Mauritius Rupee | |
| 462 | 2 | Rufiyaa | |
| 454 | 2 | Malawi Kwacha | |
| 484 | 2 | Mexican Peso | |
| 979 | 2 | Mexican Unidad de Inversionfund | |
| 458 | 2 | Malaysian Ringgit | |
| 943 | 2 | Mozambique Metical | |
| 516 | 2 | Namibia Dollar | |
| 566 | 2 | Naira | |
| 558 | 2 | Cordoba Oro | |
| 578 | 2 | Norwegian Krone | |
| 524 | 2 | Nepalese Rupee | |
| 554 | 2 | New Zealand Dollar | |
| 512 | 3 | Rial Omani | |
| 590 | 2 | Balboa | |
| 604 | 2 | Sol | |
| 598 | 2 | Kina | |
| 608 | 2 | Philippine Peso | |
| 586 | 2 | Pakistan Rupee | |
| 985 | 2 | Zloty | |
| 600 | 0 | Guarani | |
| 634 | 2 | Qatari Rial | |
| 946 | 2 | Romanian Leu | |
| 941 | 2 | Serbian Dinar | |
| 643 | 2 | Russian Ruble | |
| 646 | 0 | Rwanda Franc | |
| 682 | 2 | Saudi Riyal | |
| 090 | 2 | Solomon Islands Dollar | |
| 690 | 2 | Seychelles Rupee | |
| 938 | 2 | Sudanese Pound | |
| 752 | 2 | Swedish Krona | |
| 702 | 2 | Singapore Dollar | |
| 654 | 2 | Saint Helena Pound | |
| 925 | 2 | Leone | |
| 706 | 2 | Somali Shilling | |
| 968 | 2 | Surinam Dollar | |
| 728 | 2 | South Sudanese Pound | |
| 930 | 2 | Dobra | |
| 222 | 2 | El Salvador Colon | |
| 760 | 2 | Syrian Pound | |
| 748 | 2 | Lilangeni | |
| 764 | 2 | Baht | |
| 972 | 2 | Somoni | |
| 934 | 2 | Turkmenistan New Manat | |
| 788 | 3 | Tunisian Dinar | |
| 776 | 2 | Pa'anga | |
| 949 | 2 | Turkish Lira | |
| 780 | 2 | Trinidad and Tobago Dollar | |
| 901 | 2 | New Taiwan Dollar | |
| 834 | 2 | Tanzanian Shilling | |
| 980 | 2 | Hryvnia | |
| 800 | 0 | Uganda Shilling | |
| 840 | 2 | US Dollar | |
| 997 | 2 | US Dollar (next day)fund | |
| 940 | 0 | Uruguay Peso en Unidades Indexadasfund | |
| 858 | 2 | Peso Uruguayo | |
| 927 | 4 | Unidad Previsionalfund | |
| 860 | 2 | Uzbekistan Sum | |
| 926 | 2 | Bolivar Soberano (VED) | |
| 928 | 2 | Bolivar Soberano | |
| 704 | 0 | Dong | |
| 548 | 0 | Vatu | |
| 882 | 2 | Tala | |
| 950 | 0 | CFA Franc BEAC | |
| 951 | 2 | East Caribbean Dollar | |
| 960 | n/a | SDR (Special Drawing Right)fund | |
| 952 | 0 | CFA Franc BCEAO | |
| 953 | 0 | CFP Franc | |
| 959 | n/a | Gold (one troy ounce) | |
| 961 | n/a | Silver (one troy ounce) | |
| 962 | n/a | Platinum (one troy ounce) | |
| 964 | n/a | Palladium (one troy ounce) | |
| 955 | n/a | European Composite Unit (EURCO)fund | |
| 956 | n/a | European Monetary Unit (E.M.U.-6)fund | |
| 957 | n/a | European Unit of Account 9 (E.U.A.-9)fund | |
| 958 | n/a | European Unit of Account 17 (E.U.A.-17)fund | |
| 994 | n/a | Sucrefund | |
| 965 | n/a | ADB Unit of Accountfund | |
| 963 | n/a | Reserved for testing | |
| 999 | n/a | No currency involved | |
| 886 | 2 | Yemeni Rial | |
| 710 | 2 | Rand | |
| 967 | 2 | Zambian Kwacha | |
| 924 | 2 | Zimbabwe Gold |
The ones that catch people out
Most currencies use two decimal places. These do not — and every one of them has caused a production incident somewhere.
No minor unit — 13 codes
Zero decimal places — 17 codes
Three decimal places — 7 codes
Four decimal places — 2 codes
Why the exponent matters
Payment systems carry amounts as integers in the currency's smallest unit. ISO 8583 DE 4 is twelve digits with no decimal point; EMV tag 9F02 is six bytes of BCD; virtually every payment API takes an integer. The exponent is what tells you where the decimal point belongs.
Get it wrong and the error is not subtle. Treating JPY as two-decimal makes every amount 100 times too small. Treating KWD as two-decimal makes it 10 times too large. Both are real production incidents that happen regularly, because the default assumption — two decimal places — is right for about 85% of currencies and silently wrong for the rest.
The exceptions worth memorising
Zero decimals: JPY, KRW, VND, CLP, ISK, PYG, UGX, RWF, VUV, XAF, XOF, XPF, BIF, DJF, GNF, KMF. If you handle Japanese or Korean payments, this is the one that will find you.
Three decimals: BHD, IQD, JOD, KWD, LYD, OMR, TND. Gulf and North African dinars. A thousand fils to the dinar.
Four decimals: CLF and UYW, both index units rather than everyday currencies, but they appear in ISO 4217 and will break naive parsers.
Alpha versus numeric codes
ISO 4217 defines both a three-letter code (GBP) and a three-digit numeric code (826). Card
messages overwhelmingly use the numeric form — EMV tag 5F2A and ISO 8583 DE 49 — while APIs
usually take the alpha form. EMV pads the numeric code to four digits in BCD, so GBP appears as
0826. This lookup accepts either form and both paddings.
Fund codes are not currencies
Codes like CLF, MXV, CHE and UYI are accounting units, not things you can charge a cardholder in. If one appears in a transaction you are almost certainly looking at a data error rather than an exotic settlement arrangement.
A caveat on ISO 4217 exponents
The exponent describes the currency's formal minor unit, which occasionally diverges from practice. MGA and MRU are formally two-decimal but their subunit is one fifth rather than one hundredth. Some zero-decimal currencies were historically subdivided and old systems may still carry two decimals for them. When a settlement figure disagrees with the exponent, the scheme's own rules win.
More Reference tools
Country codes
ISO 3166-1 numeric to alpha, because EMV tag 9F1A and DE 19 speak in numbers.
Data converter
Convert between every encoding a payments message uses — including EBCDIC, which mainframe acquirers still speak.
3DS codes
ECI values differ between Visa and Mastercard. Here is the mapping, plus 3DS transStatus.