ISO 8583 Parser
online lookup

ISO 4217 Currency Codes and Amount Exponents

DE49 carries the numeric code, not the letter code — and the exponent decides how the amount reads. There's a converter below.

150 currencies. Every 0-decimal and 3-decimal one is listed — those are where amount bugs happen.
AlphaNumeric (DE49)ExponentName
JPY3920Japanese Yen
KRW4100South Korean Won
VND7040Vietnamese Dong
CLP1520Chilean Peso
ISK3520Icelandic Krona
PYG6000Paraguayan Guarani
RWF6460Rwandan Franc
UGX8000Ugandan Shilling
XAF9500Central African CFA Franc
XOF9520West African CFA Franc
XPF9530CFP Franc
BIF1080Burundian Franc
DJF2620Djiboutian Franc
GNF3240Guinean Franc
KMF1740Comorian Franc
VUV5480Vanuatu Vatu
BHD0483Bahraini Dinar
IQD3683Iraqi Dinar
JOD4003Jordanian Dinar
KWD4143Kuwaiti Dinar
LYD4343Libyan Dinar
OMR5123Omani Rial
TND7883Tunisian Dinar
USD8402US Dollar
EUR9782Euro
CNY1562Chinese Yuan
GBP8262Pound Sterling
HKD3442Hong Kong Dollar
MOP4462Macanese Pataca
TWD9012New Taiwan Dollar
SGD7022Singapore Dollar
AUD0362Australian Dollar
NZD5542New Zealand Dollar
CAD1242Canadian Dollar
CHF7562Swiss Franc
SEK7522Swedish Krona
NOK5782Norwegian Krone
DKK2082Danish Krone
PLN9852Polish Zloty
CZK2032Czech Koruna
HUF3482Hungarian Forint
RON9462Romanian Leu
BGN9752Bulgarian Lev
RUB6432Russian Ruble
UAH9802Ukrainian Hryvnia
TRY9492Turkish Lira
ILS3762Israeli New Shekel
AED7842UAE Dirham
SAR6822Saudi Riyal
QAR6342Qatari Riyal
EGP8182Egyptian Pound
ZAR7102South African Rand
NGN5662Nigerian Naira
KES4042Kenyan Shilling
INR3562Indian Rupee
PKR5862Pakistani Rupee
BDT0502Bangladeshi Taka
LKR1442Sri Lankan Rupee
NPR5242Nepalese Rupee
THB7642Thai Baht
MYR4582Malaysian Ringgit
IDR3602Indonesian Rupiah
PHP6082Philippine Peso
KHR1162Cambodian Riel
LAK4182Lao Kip
MMK1042Myanmar Kyat
MNT4962Mongolian Tugrik
KZT3982Kazakhstani Tenge
BRL9862Brazilian Real
MXN4842Mexican Peso
ARS0322Argentine Peso
COP1702Colombian Peso
PEN6042Peruvian Sol
UYU8582Uruguayan Peso
ALL0082Albanian Lek
DZD0122Algerian Dinar
BSD0442Bahamian Dollar
AMD0512Armenian Dram
BBD0522Barbadian Dollar
BMD0602Bermudian Dollar
BTN0642Bhutanese Ngultrum
BOB0682Bolivian Boliviano
BWP0722Botswana Pula
BZD0842Belize Dollar
SBD0902Solomon Islands Dollar
BND0962Brunei Dollar
CVE1322Cape Verdean Escudo
KYD1362Cayman Islands Dollar
CRC1882Costa Rican Colon
CUP1922Cuban Peso
DOP2142Dominican Peso
ETB2302Ethiopian Birr
FKP2382Falkland Islands Pound
FJD2422Fijian Dollar
GMD2702Gambian Dalasi
GIP2922Gibraltar Pound
GTQ3202Guatemalan Quetzal
GYD3282Guyanese Dollar
HTG3322Haitian Gourde
HNL3402Honduran Lempira
IRR3642Iranian Rial
JMD3882Jamaican Dollar
KPW4082North Korean Won
KGS4172Kyrgyzstani Som
LBP4222Lebanese Pound
LSL4262Lesotho Loti
LRD4302Liberian Dollar
MWK4542Malawian Kwacha
MVR4622Maldivian Rufiyaa
MUR4802Mauritian Rupee
MDL4982Moldovan Leu
MAD5042Moroccan Dirham
NAD5162Namibian Dollar
AWG5332Aruban Florin
NIO5582Nicaraguan Cordoba
PAB5902Panamanian Balboa
PGK5982Papua New Guinean Kina
SHP6542Saint Helena Pound
SCR6902Seychellois Rupee
SOS7062Somali Shilling
SZL7482Swazi Lilangeni
SYP7602Syrian Pound
TOP7762Tongan Pa'anga
TTD7802Trinidad and Tobago Dollar
MKD8072Macedonian Denar
TZS8342Tanzanian Shilling
UZS8602Uzbekistani Som
WST8822Samoan Tala
YER8862Yemeni Rial
SLE9252Sierra Leonean Leone
VES9282Venezuelan Bolivar Soberano
MRU9292Mauritanian Ouguiya
STN9302Sao Tome and Principe Dobra
BYN9332Belarusian Ruble
TMT9342Turkmenistani Manat
GHS9362Ghanaian Cedi
SDG9382Sudanese Pound
RSD9412Serbian Dinar
MZN9432Mozambican Metical
AZN9442Azerbaijani Manat
XCD9512East Caribbean Dollar
ZMW9672Zambian Kwacha
SRD9682Surinamese Dollar
MGA9692Malagasy Ariary
AFN9712Afghan Afghani
TJS9722Tajikistani Somoni
AOA9732Angolan Kwanza
CDF9762Congolese Franc
BAM9772Bosnia and Herzegovina Convertible Mark
GEL9812Georgian Lari
Actual amount:

Two things people get wrong

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.

The classic money bug: hardcoding 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.

What to do instead

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.

It is not only DE4

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.


The exponent is the part that breaks things

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.

Blocked at work? This table and 13 other tools also come as self-contained HTML files that run from your disk, with no network at all — for the machines that cannot reach this site. Offline edition, US$39 one-time.