What ISO 4217 defines
ISO 4217 is the international standard for identifying currencies. SIX, based in Switzerland, is its official maintenance agency: it keeps the lists on behalf of ISO and publishes them free of charge. The current list, called list one, gives each currency three pieces of data:
- An alphabetic code of three capital letters, such as USD for the US dollar and EUR for the euro.
- A numeric code of three digits, such as 840 for the dollar and 978 for the euro. Leading zeros count: the Australian dollar is 036.
- A minor unit, the number of decimal places used for amounts in that currency.
The list changes when currencies do. From January 1, 2026, SIX listed the Bulgarian lev (BGN, 975) as a historic currency and added the euro for Bulgaria. The table below uses list one as published on September 17, 2026.
25 common currencies
The symbol column is the English symbol from the Unicode Common Locale Data Repository (CLDR), a public data set of formatting rules for each language. The narrow symbol is the short form used when the currency is clear from context.
| Currency | Code | No. | Dec. | Symbol | Narrow |
|---|---|---|---|---|---|
| US dollar | USD | 840 | 2 | $ | $ |
| Euro | EUR | 978 | 2 | € | € |
| Pound sterling | GBP | 826 | 2 | £ | £ |
| Yen | JPY | 392 | 0 | ¥ | ¥ |
| Swiss franc | CHF | 756 | 2 | CHF | Fr. |
| Canadian dollar | CAD | 124 | 2 | CA$ | $ |
| Australian dollar | AUD | 036 | 2 | A$ | $ |
| New Zealand dollar | NZD | 554 | 2 | NZ$ | $ |
| Yuan renminbi | CNY | 156 | 2 | CN¥ | ¥ |
| Hong Kong dollar | HKD | 344 | 2 | HK$ | $ |
| Singapore dollar | SGD | 702 | 2 | SGD | $ |
| Indian rupee | INR | 356 | 2 | ₹ | ₹ |
| Mexican peso | MXN | 484 | 2 | MX$ | $ |
| Brazilian real | BRL | 986 | 2 | R$ | R$ |
| Rand | ZAR | 710 | 2 | ZAR | R |
| Swedish krona | SEK | 752 | 2 | SEK | kr |
| Norwegian krone | NOK | 578 | 2 | NOK | kr |
| Danish krone | DKK | 208 | 2 | DKK | kr |
| Iceland krona | ISK | 352 | 0 | ISK | kr |
| Zloty | PLN | 985 | 2 | PLN | zł |
| Czech koruna | CZK | 203 | 2 | CZK | Kč |
| Turkish lira | TRY | 949 | 2 | TRY | ₺ |
| Won | KRW | 410 | 0 | ₩ | ₩ |
| Baht | THB | 764 | 2 | THB | ฿ |
| Kuwaiti dinar | KWD | 414 | 3 | KWD | KWD |
Where CLDR has no distinct English symbol, the symbol is simply the code: CHF, SEK and KWD are written as the code in English text. The currency converter uses the same codes to identify each currency.
Decimal places: the minor unit
The minor unit tells you how many digits follow the decimal point. In this table, 3 use 0 decimals, 21 use 2 decimals, 1 uses 3 decimals. The same amount written to each:
| Decimals | Currencies | Written | Smallest step |
|---|---|---|---|
| 0 | JPY, ISK, KRW | 1,235 | 1 |
| 2 | USD, EUR, GBP, CHF, CAD, AUD, NZD, CNY, HKD, SGD, INR, MXN, BRL, ZAR, SEK, NOK, DKK, PLN, CZK, TRY, THB | 1,234.57 | 0.01 |
| 3 | KWD | 1,234.568 | 0.001 |
An invoice in yen or won rounds to the whole unit; one in Kuwaiti dinars carries three decimals. Software that assumes two decimals for every currency gets both wrong.
Codes that are not national currencies
List one also has codes starting with X for things that are not a country's money. Their minor unit is listed as not applicable.
| Code | No. | Meaning |
|---|---|---|
| XAU | 959 | Gold |
| XAG | 961 | Silver |
| XDR | 960 | IMF special drawing right |
| XTS | 963 | Reserved for testing |
| XXX | 999 | No currency involved |
XTS and XXX are useful in software: one for test data, one for a transaction with no currency at all.
Symbols shared by several currencies
Codes are unique; symbols are not. Grouping the narrow symbols in the table above:
- $ is used for USD, CAD, AUD, NZD, HKD, SGD, MXN.
- ¥ is used for JPY, CNY.
- kr is used for SEK, NOK, DKK, ISK.
The fuller English symbols separate some of them: CA$, A$, NZ$, HK$ and MX$ for the dollars and peso, CN¥ for the yuan. The four kr currencies have no such variant in English and fall back to the code. The rule for anything that crosses a border, such as an invoice, a contract or a price list, is simple: write the code. "250 kr" could be in four currencies; "SEK 250" can only be one. The number to words tool spells out an amount when a document needs it in words as well.
Where the symbol goes
Placement follows the language, not the currency. The CLDR currency pattern for English is ¤#,##0.00, with the symbol (¤) before the number, a comma between thousands and a point before the decimals. The German pattern is #,##0.00 ¤, with the symbol after the number and a space, and the separators swap: a period between thousands and a comma before the decimals.
| Pattern | Euro amount | Dollar amount |
|---|---|---|
| English | €1,234.50 | $1,234.50 |
| German | 1.234,50 € | 1.234,50 $ |
Both rows show the same amounts. When you read a foreign price, check the separators before the symbol: 1.234 is a thousand and more in German notation and just over one in English.
Codes next to numbers
CLDR also covers the case where the currency is written in letters. Its English data inserts a space between the currency and a digit whenever the currency sign is not a symbol character. A dollar amount is written $1,234.50 with no gap, while the same pattern with a code gives SEK 1,234.50 or CHF 1,234.50, with a space. That is how a Swedish or Swiss price looks on an English-language statement. For accounting, the English pattern is ¤#,##0.00;(¤#,##0.00): the part after the semicolon is for negative amounts, so a refund of 250 dollars shows as ($250.00).
Code or symbol: which to write
Use the symbol when only one currency is in play and the reader knows which one: a menu in a US restaurant, a price tag in a London shop, a receipt in yen. Use the code as soon as currencies mix or the reader is somewhere else:
- Invoices and quotes to clients abroad. "Total: 4,800.00" with a $ in front is ambiguous between the US, Canadian and Australian dollar. "USD 4,800.00" is not.
- Travel budgets. A trip through Sweden, Norway and Denmark involves three different kr. Writing SEK, NOK and DKK keeps them apart, and keeps you from adding them up as if they were one currency.
- Spreadsheets. Put the code in its own column next to the amount. Totals then make sense only within one code, and a conversion step is visible instead of hidden.
- Converted amounts. Keep the code on both sides: "EUR 500 = USD 558.60 at the ECB rate of October 30, 2026" says what was converted, into what, and at which rate.
The decimals follow the code, not the symbol. A price in JPY has none, a price in KWD has three, and rounding to two places in either case changes the amount.
Typing the symbols in HTML
A page saved as UTF-8 can contain the characters directly. Where you cannot type them, HTML has named references for a few and numeric references for all. The numeric reference is the character's Unicode code point in hexadecimal:
| Sign | Named | Numeric |
|---|---|---|
| $ | $ | $ |
| € | € | € |
| £ | £ | £ |
| ¥ | ¥ | ¥ |
| ¢ | ¢ | ¢ |
| ₹ | none | ₹ |
| ₩ | none | ₩ |
The HTML entity converter turns any symbol into its reference and back. Rates and markups for each currency pair are covered in the guide to the mid-market exchange rate.
Frequently asked questions
What is ISO 4217?
It is the international standard for currency codes. Each currency gets a three-letter alphabetic code such as USD or EUR, a three-digit numeric code such as 840 or 978, and a minor unit, the number of decimal places used for amounts. SIX maintains the list on behalf of ISO and publishes it free of charge.
Why does the yen have no decimals?
The ISO 4217 list gives the yen a minor unit of 0, so amounts in JPY are written in whole yen. The won and the Iceland krona are also 0. The Kuwaiti and Bahraini dinars use 3 decimals, so an amount in KWD has three digits after the point.
Which currencies use the $ sign?
Many. In the English CLDR data the narrow symbol $ is used for the US, Canadian, Australian, New Zealand, Hong Kong, Singapore and Taiwan dollars and the Mexican and Chilean pesos, among others. The fuller symbols such as CA$ and A$ tell them apart. When the currency is not obvious from context, write the code.
Does the symbol go before or after the amount?
It depends on the language, not the currency. The CLDR pattern for English puts the symbol before the number, as in €1,234.50, while the German pattern puts it after with a space, as in 1.234,50 €. Both are the same euro amount.
How do I type the euro sign in HTML?
Write the named reference € or the numeric reference € in the page source. Both display €. The pound is £ and the yen ¥. Saving the page as UTF-8 also lets you type the character directly.
Sources
- SIX: ISO 4217 currency codes (official maintenance agency on behalf of ISO; list one with alphabetic code, numeric code and minor unit; euro added for Bulgaria and BGN made historic from January 1, 2026)
- SIX: ISO 4217 list one, XML (codes, numeric codes and minor units in the table; X codes for gold, silver, SDR, testing and no currency; published 2026-09-17)
- Unicode CLDR: English currency data, cldr-json (symbol and narrow symbol for each currency in the table)
- Unicode CLDR: English number formats (currency pattern ¤#,##0.00, decimal point and comma grouping)
- Unicode CLDR: German number formats (currency pattern #,##0.00 ¤, decimal comma and period grouping)
- WHATWG HTML Standard: Named character references ($, €, £, ¥, ¢ and their code points)
General information based on the sources above, not tax, legal or financial advice.