DE49 carries the numeric code, not the letter code — and the exponent decides how the amount reads. There's a converter below.
| Alpha | Numeric (DE49) | Exponent | Name |
|---|---|---|---|
JPY | 392 | 0 | Japanese Yen |
KRW | 410 | 0 | South Korean Won |
VND | 704 | 0 | Vietnamese Dong |
CLP | 152 | 0 | Chilean Peso |
ISK | 352 | 0 | Icelandic Krona |
PYG | 600 | 0 | Paraguayan Guarani |
RWF | 646 | 0 | Rwandan Franc |
UGX | 800 | 0 | Ugandan Shilling |
XAF | 950 | 0 | Central African CFA Franc |
XOF | 952 | 0 | West African CFA Franc |
XPF | 953 | 0 | CFP Franc |
BIF | 108 | 0 | Burundian Franc |
DJF | 262 | 0 | Djiboutian Franc |
GNF | 324 | 0 | Guinean Franc |
KMF | 174 | 0 | Comorian Franc |
VUV | 548 | 0 | Vanuatu Vatu |
BHD | 048 | 3 | Bahraini Dinar |
IQD | 368 | 3 | Iraqi Dinar |
JOD | 400 | 3 | Jordanian Dinar |
KWD | 414 | 3 | Kuwaiti Dinar |
LYD | 434 | 3 | Libyan Dinar |
OMR | 512 | 3 | Omani Rial |
TND | 788 | 3 | Tunisian Dinar |
USD | 840 | 2 | US Dollar |
EUR | 978 | 2 | Euro |
CNY | 156 | 2 | Chinese Yuan |
GBP | 826 | 2 | Pound Sterling |
HKD | 344 | 2 | Hong Kong Dollar |
MOP | 446 | 2 | Macanese Pataca |
TWD | 901 | 2 | New Taiwan Dollar |
SGD | 702 | 2 | Singapore Dollar |
AUD | 036 | 2 | Australian Dollar |
NZD | 554 | 2 | New Zealand Dollar |
CAD | 124 | 2 | Canadian Dollar |
CHF | 756 | 2 | Swiss Franc |
SEK | 752 | 2 | Swedish Krona |
NOK | 578 | 2 | Norwegian Krone |
DKK | 208 | 2 | Danish Krone |
PLN | 985 | 2 | Polish Zloty |
CZK | 203 | 2 | Czech Koruna |
HUF | 348 | 2 | Hungarian Forint |
RON | 946 | 2 | Romanian Leu |
BGN | 975 | 2 | Bulgarian Lev |
RUB | 643 | 2 | Russian Ruble |
UAH | 980 | 2 | Ukrainian Hryvnia |
TRY | 949 | 2 | Turkish Lira |
ILS | 376 | 2 | Israeli New Shekel |
AED | 784 | 2 | UAE Dirham |
SAR | 682 | 2 | Saudi Riyal |
QAR | 634 | 2 | Qatari Riyal |
EGP | 818 | 2 | Egyptian Pound |
ZAR | 710 | 2 | South African Rand |
NGN | 566 | 2 | Nigerian Naira |
KES | 404 | 2 | Kenyan Shilling |
INR | 356 | 2 | Indian Rupee |
PKR | 586 | 2 | Pakistani Rupee |
BDT | 050 | 2 | Bangladeshi Taka |
LKR | 144 | 2 | Sri Lankan Rupee |
NPR | 524 | 2 | Nepalese Rupee |
THB | 764 | 2 | Thai Baht |
MYR | 458 | 2 | Malaysian Ringgit |
IDR | 360 | 2 | Indonesian Rupiah |
PHP | 608 | 2 | Philippine Peso |
KHR | 116 | 2 | Cambodian Riel |
LAK | 418 | 2 | Lao Kip |
MMK | 104 | 2 | Myanmar Kyat |
MNT | 496 | 2 | Mongolian Tugrik |
KZT | 398 | 2 | Kazakhstani Tenge |
BRL | 986 | 2 | Brazilian Real |
MXN | 484 | 2 | Mexican Peso |
ARS | 032 | 2 | Argentine Peso |
COP | 170 | 2 | Colombian Peso |
PEN | 604 | 2 | Peruvian Sol |
UYU | 858 | 2 | Uruguayan Peso |
ALL | 008 | 2 | Albanian Lek |
DZD | 012 | 2 | Algerian Dinar |
BSD | 044 | 2 | Bahamian Dollar |
AMD | 051 | 2 | Armenian Dram |
BBD | 052 | 2 | Barbadian Dollar |
BMD | 060 | 2 | Bermudian Dollar |
BTN | 064 | 2 | Bhutanese Ngultrum |
BOB | 068 | 2 | Bolivian Boliviano |
BWP | 072 | 2 | Botswana Pula |
BZD | 084 | 2 | Belize Dollar |
SBD | 090 | 2 | Solomon Islands Dollar |
BND | 096 | 2 | Brunei Dollar |
CVE | 132 | 2 | Cape Verdean Escudo |
KYD | 136 | 2 | Cayman Islands Dollar |
CRC | 188 | 2 | Costa Rican Colon |
CUP | 192 | 2 | Cuban Peso |
DOP | 214 | 2 | Dominican Peso |
ETB | 230 | 2 | Ethiopian Birr |
FKP | 238 | 2 | Falkland Islands Pound |
FJD | 242 | 2 | Fijian Dollar |
GMD | 270 | 2 | Gambian Dalasi |
GIP | 292 | 2 | Gibraltar Pound |
GTQ | 320 | 2 | Guatemalan Quetzal |
GYD | 328 | 2 | Guyanese Dollar |
HTG | 332 | 2 | Haitian Gourde |
HNL | 340 | 2 | Honduran Lempira |
IRR | 364 | 2 | Iranian Rial |
JMD | 388 | 2 | Jamaican Dollar |
KPW | 408 | 2 | North Korean Won |
KGS | 417 | 2 | Kyrgyzstani Som |
LBP | 422 | 2 | Lebanese Pound |
LSL | 426 | 2 | Lesotho Loti |
LRD | 430 | 2 | Liberian Dollar |
MWK | 454 | 2 | Malawian Kwacha |
MVR | 462 | 2 | Maldivian Rufiyaa |
MUR | 480 | 2 | Mauritian Rupee |
MDL | 498 | 2 | Moldovan Leu |
MAD | 504 | 2 | Moroccan Dirham |
NAD | 516 | 2 | Namibian Dollar |
AWG | 533 | 2 | Aruban Florin |
NIO | 558 | 2 | Nicaraguan Cordoba |
PAB | 590 | 2 | Panamanian Balboa |
PGK | 598 | 2 | Papua New Guinean Kina |
SHP | 654 | 2 | Saint Helena Pound |
SCR | 690 | 2 | Seychellois Rupee |
SOS | 706 | 2 | Somali Shilling |
SZL | 748 | 2 | Swazi Lilangeni |
SYP | 760 | 2 | Syrian Pound |
TOP | 776 | 2 | Tongan Pa'anga |
TTD | 780 | 2 | Trinidad and Tobago Dollar |
MKD | 807 | 2 | Macedonian Denar |
TZS | 834 | 2 | Tanzanian Shilling |
UZS | 860 | 2 | Uzbekistani Som |
WST | 882 | 2 | Samoan Tala |
YER | 886 | 2 | Yemeni Rial |
SLE | 925 | 2 | Sierra Leonean Leone |
VES | 928 | 2 | Venezuelan Bolivar Soberano |
MRU | 929 | 2 | Mauritanian Ouguiya |
STN | 930 | 2 | Sao Tome and Principe Dobra |
BYN | 933 | 2 | Belarusian Ruble |
TMT | 934 | 2 | Turkmenistani Manat |
GHS | 936 | 2 | Ghanaian Cedi |
SDG | 938 | 2 | Sudanese Pound |
RSD | 941 | 2 | Serbian Dinar |
MZN | 943 | 2 | Mozambican Metical |
AZN | 944 | 2 | Azerbaijani Manat |
XCD | 951 | 2 | East Caribbean Dollar |
ZMW | 967 | 2 | Zambian Kwacha |
SRD | 968 | 2 | Surinamese Dollar |
MGA | 969 | 2 | Malagasy Ariary |
AFN | 971 | 2 | Afghan Afghani |
TJS | 972 | 2 | Tajikistani Somoni |
AOA | 973 | 2 | Angolan Kwanza |
CDF | 976 | 2 | Congolese Franc |
BAM | 977 | 2 | Bosnia and Herzegovina Convertible Mark |
GEL | 981 | 2 | Georgian Lari |
First, DE49 holds the numeric code. The message says 392, not JPY; 840, not USD. Mixing the two up when mapping to an internal system produces wrong-currency bugs that typically surface only at reconciliation.
Second, amounts are integers in the currency's minor unit. DE4 has no decimal point. What 000000012345 means depends entirely on the currency: 123.45 in USD, 12,345 in JPY, 12.345 in KWD.
amount * 100. Send a ¥5,000 purchase that way and the field reads 500000 — with zero decimals that is ¥500,000, a hundred times too much, and it will authorize. The mirror case is just as bad: dividing a Kuwaiti dinar amount by 100 under-charges tenfold. Both failures are silent — no error, no validation trip, just a wrong number that reconciliation catches days later.Keep a currency → exponent table, drive every conversion off it, and never let a literal 100 appear next to an amount. Use the converter above to check your implementation against a known value.
DE5 (settlement amount), DE6 (cardholder billing amount) and the EMV tag 9F02 follow the same convention. On a cross-border transaction those three can each be in a different currency — check DE49, DE50 and DE51 respectively rather than assuming they match.
Amount fields in ISO 8583 carry no decimal point. The number is an integer of minor units, and how many minor units make one unit comes from the currency, not from the message. Assume two decimal places everywhere and you will be wrong in both directions.
Japanese yen has an exponent of 0: 000000001000 in a yen transaction is
1,000 yen, not 10.00. Kuwaiti dinar, Bahraini dinar and Jordanian dinar have an exponent of
3: the same digits are 1.000 dinar. A single hard-coded division by 100 turns a
thousand-yen coffee into a ten-yen one and a one-dinar fare into a thousand-dinar one, and
neither error looks like an error in a log.
Two further traps that the table above cannot show you. The numeric code and the alphabetic code are assigned independently, so you cannot derive one from the other or sort by one and expect the other to follow. And ISO 4217 contains codes no card network supports — including funds codes and metals — so a value being a valid ISO currency code is not the same as it being routable. The arithmetic, with worked examples, is in amounts and minor units.