Guide

ISO 4217 Currency Codes — The Complete List with Examples

March 20, 2026 12 min read CountryDataAPI Team

Complete reference for all ISO 4217 currency codes used in international finance. Learn what they mean, how to use them in APIs, and download the full list of 180+ active currencies.

Whenever you process payments, display prices, or build a multi-currency application, you'll run into ISO 4217 — the international standard that defines a three-letter code for every currency in the world. This guide explains what ISO 4217 is, how the codes are structured, why they matter, and how to fetch a programmatic, always-updated list via the Country Data API.

What is ISO 4217?

ISO 4217 is the international standard published by the International Organization for Standardization (ISO) that defines codes for currencies. The standard was first published in 1978 and is maintained by the ISO Technical Committee 68 (TC 68), the same body that handles financial services standards. It's the universal language used by banks, payment processors, exchanges, and any system that needs to refer to a currency unambiguously.

Without ISO 4217 you'd run into immediate confusion: a "dollar" could mean US dollars, Canadian dollars, Australian dollars, Hong Kong dollars, Singapore dollars, or any of a dozen others. The "peso" is used by Mexico, Argentina, Chile, Colombia, the Philippines, Cuba, the Dominican Republic and Uruguay — each completely separate currencies. ISO 4217 solves this with three letters that uniquely identify every active currency on the planet.

How ISO 4217 Codes Are Structured

Every ISO 4217 code is exactly three uppercase letters. The first two letters typically come from the ISO 3166-1 alpha-2 country code (the same letters used for top-level domains like .us or .de), and the third letter is usually the first letter of the currency name.

For example:

  • USDUnited States + Dollar
  • GBPGreat Britain + Pound
  • JPYJaPan + Yen
  • CHF — Confederatio Helvetica (Switzerland's Latin name) + Franc
  • CNYChiNa + Yuan

There are exceptions. The Euro is EUR (not country-specific because it spans multiple ISO 3166 codes). Cryptocurrencies and metals also have ISO 4217 codes that don't follow the country-letter pattern: XAU for gold, XAG for silver, XBT historically used for bitcoin (though most exchanges prefer BTC).

Numeric Codes

In addition to the three-letter alphabetic code, ISO 4217 also assigns a three-digit numeric code to each currency. These numeric codes are useful in environments where letters are unreliable (legacy banking systems, EDI files). For example, USD is 840, EUR is 978, GBP is 826, and JPY is 392. Most modern APIs and applications use the alphabetic code because it's human-readable.

The Most Common Currencies and Their Codes

Here is a quick reference for the most-used currencies in international commerce:

CodeCurrencyUsed by (examples)Symbol
USDUS DollarUnited States, Ecuador, El Salvador, Panama, East Timor$
EUREuro20 EU member states (Germany, France, Spain, Italy, etc.)
JPYJapanese YenJapan¥
GBPBritish PoundUnited Kingdom£
CNYChinese YuanChina¥
AUDAustralian DollarAustralia, Kiribati, Nauru, TuvaluA$
CADCanadian DollarCanadaC$
CHFSwiss FrancSwitzerland, LiechtensteinCHF
HKDHong Kong DollarHong KongHK$
SGDSingapore DollarSingaporeS$
SEKSwedish KronaSwedenkr
KRWSouth Korean WonSouth Korea
NOKNorwegian KroneNorwaykr
NZDNew Zealand DollarNew Zealand, Cook Islands, NiueNZ$
INRIndian RupeeIndia, Bhutan
MXNMexican PesoMexico$
BRLBrazilian RealBrazilR$
RUBRussian RubleRussia
ZARSouth African RandSouth Africa, Lesotho, Namibia, EswatiniR
TRYTurkish LiraTurkey, Northern Cyprus

Why You Need an API for Currency Codes

You might be tempted to hard-code a list of currencies in your application. Don't. Currency codes change more often than you'd think:

  • New currencies are added. South Sudan introduced SSP in 2011. The Bolivar was redenominated several times in Venezuela: VEBVEF (2008) → VES (2018).
  • Currencies are retired. The Lithuanian litas (LTL) was retired in 2015 when Lithuania adopted the Euro. The same happened with the Latvian lats (LVL) in 2014.
  • Some countries officially use multiple codes. Cuba has both CUP (Cuban peso) and previously CUC (convertible peso, retired in 2021).

An always-updated source eliminates the risk of stale data costing you transactions or compliance issues.

Fetching ISO 4217 Codes via REST API

Country Data API exposes currency information through the /v1/countries endpoint. Each country object includes its currency code, currency name and currency symbol, so you can build a complete currency dropdown with one request:

GET https://api.countrydataapi.com/v1/countries
Authorization: Bearer YOUR_API_KEY

The response includes objects like:

{
  "name": "Germany",
  "iso2": "DE",
  "iso3": "DEU",
  "currency": "EUR",
  "currency_name": "Euro",
  "currency_symbol": "€"
}

If you only need countries that use a specific currency (for example, all countries that use the Euro), use the countries by currency endpoint:

GET https://api.countrydataapi.com/v1/countries/by-currency?currency=EUR
Authorization: Bearer YOUR_API_KEY

This is particularly useful if you're building a payment gateway, a currency converter, or a tax calculation engine that needs to enumerate jurisdictions by currency.

Building a Currency Dropdown — JavaScript Example

Here's how to build a deduplicated, alphabetized currency selector in plain JavaScript using the API:

async function loadCurrencies() {
  const res = await fetch('https://api.countrydataapi.com/v1/countries', {
    headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
  });
  const countries = await res.json();

  // Deduplicate by currency code
  const seen = new Set();
  const currencies = countries
    .filter(c => {
      if (seen.has(c.currency)) return false;
      seen.add(c.currency);
      return true;
    })
    .map(c => ({
      code: c.currency,
      name: c.currency_name,
      symbol: c.currency_symbol
    }))
    .sort((a, b) => a.code.localeCompare(b.code));

  const select = document.getElementById('currency-select');
  for (const cur of currencies) {
    const opt = document.createElement('option');
    opt.value = cur.code;
    opt.textContent = `${cur.code} — ${cur.name} (${cur.symbol})`;
    select.appendChild(opt);
  }
}

Common Pitfalls

Don't assume a country uses one currency. Switzerland accepts both CHF and EUR in many places. Cuba had two parallel currencies until 2021. Several Pacific Island states use the AUD, USD or NZD with no native currency.

Don't display the symbol without context. The "$" symbol is used by USD, CAD, AUD, MXN, ARS and many others. Always pair the symbol with the ISO code in financial contexts.

Don't use lowercase or 4-letter codes. ISO 4217 codes are always exactly three uppercase letters. Sending usd or USDOLLAR to a payment gateway will get you rejected.

Be careful with cryptocurrency codes. Bitcoin is commonly written as BTC, but ISO 4217 historically uses XBT in the metals/special category. Most exchanges use BTC. Cryptocurrencies are not formally part of the ISO 4217 standard for fiat currencies.

FAQ

How many ISO 4217 codes are there? There are about 180 active currency codes for fiat currencies, plus a handful of special codes for precious metals and historical currencies.

Are cryptocurrency codes part of ISO 4217? Not formally. ISO 4217 is for sovereign currencies and a few special items like gold (XAU), silver (XAG), platinum (XPT) and palladium (XPD). Cryptocurrencies are not officially registered.

What's the difference between alphabetic and numeric ISO 4217 codes? The alphabetic code (e.g., USD) is human-readable and used in most APIs and applications. The numeric code (e.g., 840) is used in legacy systems and EDI formats. Both refer to the same currency.

How often does the ISO 4217 list change? Several times a year, although changes are typically minor. New currencies are introduced when new countries form or existing ones redenominate. Old currencies are deprecated when countries adopt a different currency (often the Euro).

Get Started

To start fetching currency data via the API, create a free account and get your API key in seconds. Plans start at $9.99/month with 10,000 monthly requests, scaling to enterprise volumes. Then check out the countries by currency endpoint documentation for full request and response details.

Related Guides