ISO 4217 currency codes: full list, structure, and meaning

Last reviewed on May 1, 2026.

Every FX quote, payment instruction, and currency conversion tool you have ever used relies on the same identifier: a three-letter currency code. USD, EUR, JPY, GBP. The codes are part of an international standard called ISO 4217, maintained by the International Organization for Standardization. They exist because country names and currency names are ambiguous — "the dollar" alone can mean at least a dozen different currencies — and because banking and trading systems need a fixed, unambiguous label per currency.

This guide explains how the codes are built, why each letter is what it is, what the less obvious quirks (like XAU and XDR) mean, and how to spot a code that looks unusual. If you came here for the codes themselves, the full ISO 4217 currency code list further down gives the three-letter code, the three-digit numeric code, and the number of decimal places for every currency covered on this site.

What ISO 4217 actually is

ISO 4217 is the international standard that assigns three identifiers to each official currency:

  1. A three-letter alphabetic code — the form most people see (USD, EUR, JPY).
  2. A three-digit numeric code — used in machine-to-machine systems (840 for USD, 978 for EUR, 392 for JPY).
  3. A minor unit exponent — how many decimal places the currency uses for amounts (2 for USD, 0 for JPY, 3 for KWD).

Banks, payment networks, and FX systems use those three pieces of information to format an amount unambiguously and to exchange instructions across borders. The alphabetic code is what shows up on this site and on every other consumer FX tool.

How the three-letter code is built

For most national currencies, the rule is intuitive: the first two letters are the ISO 3166 country code, and the third letter is the first letter of the currency name.

CodeCountry (ISO 3166)Currency name
USDUS — United StatesDollar
GBPGB — United KingdomPound
JPYJP — JapanYen
CHFCH — Switzerland (Confoederatio Helvetica)Franc
CADCA — CanadaDollar
AUDAU — AustraliaDollar
BRLBR — BrazilReal
INRIN — IndiaRupee
KRWKR — South KoreaWon

Once you see the rule, most codes parse instantly. ZAR is South Africa's Rand — ZA from the country code (Zuid-Afrika in Dutch, the historical source of the country code), R from "Rand". MXN is Mexico's "nuevo peso" — MX from the country, N from "nuevo" rather than "peso", because the currency was redenominated and a new code was needed.

The euro is the obvious exception

EUR does not follow the country-plus-initial rule. The euro is a multi-country currency, so there is no single ISO 3166 country code to draw from. The standard simply assigns EUR for "EURo" instead. The numeric code is 978.

A handful of other currencies are similar. The East Caribbean Dollar is XCD, where the leading X marks it as a multi-country or supranational currency rather than the currency of a specific country.

Codes that start with "X"

Codes beginning with X are reserved for currencies and assets that are not tied to a specific country. They are easy to recognise and worth understanding because they appear in financial contexts even though most consumers will never transact in them:

If you see an X-code in a context where you expected a national currency, it is usually metals or a multi-country instrument, not an error.

Why redenominations create new codes

When a country replaces its currency — usually after a long stretch of high inflation — the new currency normally needs a new ISO code, even if the everyday name barely changes. ISO 4217 reissues the alphabetic code so that historical records do not collide with current ones. Past examples include Mexican peso codes changing during a redenomination and several Latin American currencies receiving new codes as governments reset the unit. From a consumer perspective, what matters is that the code your bank uses today is the one you should look up on a conversion site — older codes still appear in archived data but no longer represent live currency.

Minor units: why JPY has no decimals and KWD has three

Most currencies divide into 100 minor units (a dollar is 100 cents, a euro is 100 cents, a pound is 100 pence). ISO 4217 expresses this as an exponent of 2 — meaning two decimal places when an amount is written out. Some currencies are different:

This matters for payment systems, accounting, and any conversion that needs to round correctly. On consumer-facing tools, including this site, rates are usually shown to four decimal places regardless, but converted amounts respect the conventional precision of the currency on the receiving end.

Codes vs symbols: not the same thing

The three-letter code is universal: USD always means United States Dollar. The currency symbol, by contrast, is ambiguous. The dollar sign $ is used for at least a dozen currencies (US, Canadian, Australian, Singapore, Hong Kong, Mexican, and more). The yuan and yen share ¥ even though they are entirely different currencies. The peso symbol is used across many Latin American currencies. When precision matters — invoicing, contracts, reporting — use the ISO code, not the symbol. When friendliness matters and the context is unambiguous, the symbol is fine.

Practical tip: if a price abroad is shown as "$1,200" and the country is not the United States, look for an ISO code or context to know which dollar. Many merchants in dollar-using countries write "USD" or "CAD" specifically to avoid the ambiguity.

ISO 4217 currency code list

The table below lists every currency covered on currencyconversion.org with its ISO 4217 alphabetic code, its three-digit numeric code, and its minor unit — the number of decimal places the standard says amounts in that currency should carry. Currencies are grouped roughly by region, majors first.

CodeNumericDecimalsCurrency name (ISO 4217)Country / area
USD8402US DollarUnited States
EUR9782EuroEuro area
GBP8262Pound SterlingUnited Kingdom
JPY3920YenJapan
CHF7562Swiss FrancSwitzerland
CAD1242Canadian DollarCanada
AUD0362Australian DollarAustralia
NZD5542New Zealand DollarNew Zealand
CNY1562Yuan RenminbiChina
INR3562Indian RupeeIndia
SGD7022Singapore DollarSingapore
HKD3442Hong Kong DollarHong Kong
THB7642BahtThailand
MYR4582Malaysian RinggitMalaysia
KRW4100WonSouth Korea
PHP6082Philippine PesoPhilippines
IDR3602RupiahIndonesia
TWD9012New Taiwan DollarTaiwan
PKR5862Pakistan RupeePakistan
BDT0502TakaBangladesh
VND7040DongVietnam
AED7842UAE DirhamUnited Arab Emirates
SAR6822Saudi RiyalSaudi Arabia
QAR6342Qatari RialQatar
KWD4143Kuwaiti DinarKuwait
ILS3762New Israeli SheqelIsrael
SEK7522Swedish KronaSweden
NOK5782Norwegian KroneNorway
DKK2082Danish KroneDenmark
PLN9852ZlotyPoland
CZK2032Czech KorunaCzechia
HUF3482ForintHungary
RON9462Romanian LeuRomania
TRY9492Turkish LiraTürkiye
RUB6432Russian RubleRussia
ZAR7102RandSouth Africa
EGP8182Egyptian PoundEgypt
NGN5662NairaNigeria
MXN4842Mexican PesoMexico
BRL9862Brazilian RealBrazil
ARS0322Argentine PesoArgentina
COP1702Colombian PesoColombia

These are the 42 currencies with pair pages on this site, not the complete ISO 4217 register — the full standard also covers currencies this site does not quote, plus the X-codes described above. The list here is kept in step with the pairs we actually publish rates for.

Reading the three-digit numeric code

The numeric code is the machine-readable half of the standard, and it is the one most people meet only when a payment file or an API rejects something. It exists because not every system can rely on Latin characters, and because a fixed-width numeric field is easier to validate. USD is 840, EUR is 978, GBP is 826, JPY is 392. The numbers are, for most currencies, inherited from the ISO 3166 numeric country code — 840 is also the numeric code for the United States — which is why they look arbitrary rather than sequential.

Two practical points. First, numeric codes are zero-padded to three digits: Australia's dollar is 036, not 36, and Bangladesh's taka is 050. Dropping the leading zero is a common cause of failed validation. Second, when a currency is retired and replaced, the numeric code is retired with it and the successor gets a new one, so an old numeric code in an archive does not silently map onto today's currency.

Decimal places (minor units) in practice

The decimals column is not cosmetic. It tells a payment system how to interpret an integer amount: many systems store money in minor units, so 1000 means 10.00 USD but 1,000 JPY. Get the exponent wrong and the amount is out by a factor of 100. Most currencies on this list use 2 decimals. The yen, the won, and the dong use 0 — there is no everyday sub-unit in circulation. The Kuwaiti dinar uses 3, so a dinar divides into 1,000 fils.

Note that the exponent describes how amounts are written, not how precisely an exchange rate is quoted. Rates on this site and elsewhere are usually shown to four to six significant figures regardless of the currency's minor unit, because a rate is a ratio rather than a sum of money.

Codes used on this site

Pair pages are addressed by the lowercase form of the two codes — for example, USD to EUR, GBP to JPY, AUD to CAD, DKK to USD, SAR to USD. The home page lists every code we cover alongside the country or region it belongs to, and the exchange-rate feed behind the site identifies currencies the same way.

Common mistakes

Where to go next

Now that codes parse cleanly, the next step is reading what the rate between two codes actually means — see how exchange rates are quoted. To gauge whether a pair will show a tight or wide spread on real transactions, the major, minor, and exotic pairs guide is the natural follow-up. And to understand why your bank's offered rate diverges from the reference rate shown here, the mid-market vs bank rates guide walks through the gap.

The codes are only half of reading a quote; which currency is being priced is the other half, covered in direct vs indirect exchange rate quotes.