ISO 4217は、1978年に国際標準化機構(ISO)が発行した国際規格で、各種の通貨を表すコードについて規定している。一般に通貨コードと呼ばれる。

規格のタイトルはCodes for the representation of currencies and funds（通貨と債券の表現のためのコード）である。

概要
ISO 4217は、以下の3つの表から構成される。
 Table A.1 – Current currency & funds code list（現行の通貨・債券コードの一覧）
 Table A.2 – Current funds codes（現行の債券コード）
 Table A.3 – List of codes for historic denominations of currencies & funds（歴史的な通貨・債券のデノミネーションのコード一覧）

表、履歴、および現在進行中の議論は、ISOとに代わってが管理している。

ISO 4217コードは、世界中の銀行やビジネスで使用されている。多くの国では、一般的な通貨のコードは非常によく知られており、新聞や銀行等で表示される為替レートは、翻訳された通貨名や曖昧な通貨記号の代わりに、ISO 4217コードのみを使用している。ISO 4217コードは、航空券や国際列車の切符に使用されており、価格についての曖昧さを取り除くために使用されている。

コードの形式 
最初の2文字はISO 3166-1 alpha-2で定義された国名コードであり、残りの1文字は通貨名の頭文字である。例えば日本円の通貨名コードは、日本の国別コードが「JP」で、円（yen）の頭文字が「Y」であることから「JPY」である。この仕組みにより、ドルやフランあるいはポンドなど、多くの国で同じ名前の通貨が使われていても、別のコードを割り当てることができる。

なお、コードの3文字目が通貨名の頭文字ではない場合もある。これには以下のいずれかの理由が考えられる。
全く新しい通貨のコードは、覚えやすいことが重要であると考えられている。例えば、ユーロには「EUR」というコードが割り当てられている。このコードを新設したISO 4217の修正94では、『コード要素「EU」は、ISO 3166メンテナンス機関によって ISO 4217内での使用のために予約されており、「R」が追加された場合には、覚えやすいコードとして使用できるようになっている』と書かれている。ここでは「R」は「euro」という単語の3番目の文字に由来している。
その通貨は、デノミネーションにより、同じ名前の別の通貨に置き換わっている。名前が同じであるため頭文字が同じになってしまうが、別の通貨であるため、3文字目に別の文字を割り当てて別のコードにする必要がある。場合によっては、3番目の文字がその国の言語で「新しい」を意味する単語の頭文字になっていることもある。これは、切り下げられた古い通貨と区別するためで、そのようにして割り当てられたコードがかなり長期に渡って使われ、すでに「新しい」ものではなくなってしまうこともあり得る（例えば、メキシコ・ペソのコードMXNは1993年から使われている）。通貨の名前が前身の通貨と同じである場合のもう一つの解決策は、前記のような覚えやすいコードを割り当てることである。例えば、ロシア・ルーブルは切り下げ後、RURからRUBに変更されたが、Bは「ruble」というラテン文字表記の3文字目から来ている。

X通貨 
ISO 4217では、国家単位で発行される通貨のためのコードだけでなく、超国家的な通貨、手続き上の通貨などに同じ形式のコードを割り当てている。これらのコードは、1文字目が"X"になっている。

貴金属である金(XAU)、銀(XAG)、パラジウム(XPD)、白金(XPT)のコードは、各金属の元素記号の前に「X」を付けたものである。これらの「通貨単位」は、指定された金属の1トロイオンスとして建てられている。
 XTS は、テスト用に予約されている。
 XXX は、通貨を使わない取引を示す。
 国際金融で使用される特定の金融商品を示すコードもあり、例えば、XDR は国際通貨基金が発行する特別引出権のコードである。
 XUA はアフリカ開発銀行の計算単位のコードとして割り当てられている。
 複数の国で同一の通貨が使われている場合、例えば東カリブ・ドル(XCD)、CFPフラン(XPF)、CFAフラン(XOFおよびXAF)などに対しても同様に"X"で始まるコードが割り当てられている。ユーロの前身である欧州通貨単位(ECU)には XEU というコードがあった。
 一般に仮想通貨にはISO 4217のコードは割り当てられていないが、米州ボリバル同盟(ALBA)によって計画されている仮想通貨域内統一決済システム(SUCRE)には、XSU のコードが割り当てられている。
 欧州の債券市場単位として XBA ～ XBD の4つのコードが割り当てられている。

これらの目的のために"X"が使用されるのは、ISO 3166-1では"X"で始まる国コードが割り当てられないことになっているためである。

ISO 3166-1の予約コードリストに欧州連合を示すEUが含まれていることにより、ユーロは超国家通貨であるにもかかわらず、X で始まるコードではなくEURが割り当てられている。

補助通貨単位の取り扱い 
ISO 4217の規格には、通貨単位と補助通貨単位との関係を表現するための仕組みが規定されている。この仕組みは、通貨の「指数」（exponent）と呼ばれるもので、10に対する冪指数を表している。例えば、USD（アメリカ合衆国ドル）は、その補助通貨単位であるセントの100倍なので、USDの指数は2である（102=100）。通常、補助通貨単位は主要な通貨単位の100分の1であることが多いが、10分の1であったり1000分の1であったりすることもある。モーリタニアの通貨体系は十進法ではなく、ウギアは5コウムである。通貨の中には、補助通貨単位を使用しないものもあり、その場合は指数が0になる。JPY（日本円）には補助通貨単位の銭があり、名目上は1円の100分の1の価値を持っているにもかかわらず、実際にはほとんど使用されないことから、JPYの指数は0となっている。

通貨番号 
国別コードを規定するISO 3166において、各国に3桁の番号が割り当てられているのと同様に、ISO 4217でもそれぞれの通貨に対して3桁の番号が割り当てられている。この番号は通常、ISO 3166-1の数字コードと同じである。例えば、USD（アメリカ合衆国ドル）の通貨番号は840だが、これはアメリカ合衆国という国に割り当てられた番号と同じである。

通貨コードの記載位置 
ISO規格においては、通貨コードの使用における間隔、接頭辞、接尾辞のいずれも規定していない。

欧州連合出版局は、英語、アイルランド語、ラトビア語、マルタ語の文章では、次に示すように、通貨コードの後にハードスペースと金額を付けることと規定している。
a sum of EUR 30
ブルガリア語、クロアチア語、チェコ語、デンマーク語、オランダ語、エストニア語、フィンランド語、フランス語、ドイツ語、ギリシャ語、ハンガリー語、イタリア語、リトアニア語、ポーランド語、ポルトガル語、ルーマニア語、スロバキア語、スロベニア語、スペイン語、スウェーデン語では順序が逆になり、金額、ハードスペース、通貨コードの順になる。
une somme de 30 EUR

上述のように、順序は通貨ではなく言語によって変わる。

歴史 
1973年、ISO技術委員会68は、貿易、商業、銀行業務のあらゆる用途で使用する、通貨や債券を表現するためのコードを開発することを決定した。国際連合欧州経済委員会(UNECE)の専門家グループは第17回会合（1978年2月）で、国際規格ISO 4217の3文字アルファベットコードが国際貿易での使用に適していることに合意した。

時間の経過とともに、新しい通貨が生まれ、古い通貨が廃止されていく。このような変化は、通常、新しい国の成立、通貨の共有や通貨同盟に関する国同士の条約、過度のインフレによる既存通貨のデノミネーションなどに起因している。そのため、コードの一覧は随時更新しなければならない。コードの一覧の維持管理は、ISO 4217の維持管理機関(MA)であるSIXインターバンク・クリアリングが担当している。

有効なコード 
以下は、2018年8月29日現在のISO 4217の公式通貨名の有効なコードの一覧である。以下の表で使用されている表現は、規格では「コード」はアルファベットコード（alphabetic code）、「数値」は数値コード（numeric code）、「E」は分量単位（minor unit）、「通貨」は実体（entity）と表現されているものに対応する。

ISO 4217に規定のない通貨

ISO 4217通貨コードのない通貨 
有効な通貨のうち、以下のようなものはISO 4217コードを持っていない。
独立して管理されているが、他の通貨と同一額面で発行されている（レートが1:1で固定されている）マイナーな通貨
記念紙幣・硬貨にのみ使用されている通貨
未承認、または一部の国からのみ承認されている国の通貨

 （イギリス・ポンドと1:1に固定）
 （ニュージーランド・ドルと1:1に固定）
 フェロー・クローネ（デンマーク・クローネと1:1に固定）
 ガーンジー・ポンド（イギリス・ポンドと1:1に固定）
 マンクス・ポンド（イギリス・ポンドと1:1に固定）
 ジャージー・ポンド（イギリス・ポンドと1:1に固定）
 キリバス・ドル（オーストラリア・ドルと1:1に固定）
 （ユーロと1:0.24に固定。マルタ騎士団発行の通貨）
 （西サハラのサハラ・アラブ民主共和国が発行する通貨。非公式に"EHP"が使用されるが、これはISOに規定されるコードではない）
 ソマリランド・シリング（法的にはソマリアの一部。レートは固定されていない）
 沿ドニエストル・ルーブル（法的にはモルドバの一部）
 ツバル・ドル（オーストラリア・ドルと1:1に固定）
 （アメリカ合衆国ドルと1:1に固定）
 RTGSドル

非公式の通貨コード 
ISO 4217に正式に規定されていない以下の通貨コードが使用されている。

以下は、過去に使われていた非公式の通貨コードである。

補助貨幣単位
補助貨幣単位は、株式の取引やエネルギーなどの資産の価格設定によく使用されるが、ISO 4217では補助貨幣単位のコードは割り当てられていない。補助貨幣単位を表現する非公式のコードとして、以下の2つの方法が広く使われている。
通貨のISO 4217コードの3文字目を大文字の"X"に置き換える。例として、イギリス・ポンド(GBP)に対するペニーのGBX、アメリカ合衆国ドル(USD)に対するセントのUSX、ユーロ(EUR)に対するセントのEUXなどがある。
通貨のISO 4217コードの3文字目を、補助貨幣単位の頭文字の小文字に置き換える。上記に挙げた例の場合、GBPのペニーはGBp、USDのセントはUSc、EURのセントはEUcとなる。
このほか、補助貨幣単位の頭文字の大文字に置き換える方法もある。例えば、南アフリカ・ラント(ZAR)に対するセントのZACなどである。この方法は、例えばポンドのGBPとペニーのGBPのように衝突が起こるため、あまり使われていない。

暗号通貨
暗号通貨の取引所では、ライトコインのLTC、のNMCなど、ISO通貨コードに似たコードが使用されるようになっている。ISO通貨コードのメンテナンス機関であるSIXインターバンク・クリアリングでは、暗号通貨やその他の独立通貨がISO 4217に与える影響や役割について研究を進めている。

廃止されたコード 
過去に廃止された通貨の多くは、他の通貨に置き換えられるまでは、公式のISO 4217通貨コードが割り当てられていた。下の表に、廃止された通貨の廃止前の通貨コードを示す。