ISO 4217是由国际标准化组织制定的国际标准，用以表示货币或资金名称。其标准共分为三个表：
 表A1：货币和资金代码表
 表A2：向维护机构注册的资金代码列表
 表A3：曾使用的货币和资金代码列表

这些列表由瑞士SIX银行同业结算公司代表ISO和瑞士标准化协会负责维护。

ISO 4217代码在全球的银行和企业中均会使用。在许多的国家和地区，报纸和银行在发布汇率时都会直接使用ISO代码，而非将货币名称进行翻译或者使用货币符号。ISO 4217代码也会在机票和国际专列上用以表示价格。

在中文地区，中华人民共和国国家标准GB/T 12406-1996《表示货币和资金的代码》与ISO 4217:1990等同采用，而后修订的GB/T 12406-2008则与ISO 4217:2001等同采用；中華民國國家標準CNS 12873《貨幣及基金代碼之表示法》与ISO 4217相對應。

历史沿革 
1973年，国际标准化组织金融服务技术委员会，决定为在商业、贸易和银行业务中使用的货币和资金代码制定标准。在1978年2月的第17届大会上，联合国与联合国欧洲经济委员会的专家组一致决定，在国际贸易中使用ISO 4217国际标准中的三位字母代码。

随着时间的推移，不断有新的货币产生，也不断有旧的货币废除。这种变化通常是因为由新的政府成立、国家之间签订新的共同货币协议、以及现有货币出现严重通货膨胀。因此，这一标准中的货币代码在不断地更新。ISO 4217维护机构（MA）瑞士SIX银行同业结算公司负责对列表中的代码进行维护。

编码规则 
ISO 4217代码由三位字母组成。其中，前两位字母是由ISO 3166-1规定的国家地区代码（同时也在互联网的国家和地区顶级域名中使用），第三位字母通常是货币名的首字母。例如，人民币的货币代码CNY由代表中国的代码“CN”和人民币元（Yuan）的首字母Y组成，美元的货币代码USD由代表美国的代码“US”和美元（Dollar）的首字母D组成。这样可以解决同一个货币单位，如元（Dollar）、法郎（Franc）和镑（Pound），在许多国家同时使用、但币值不等的情况。

有些货币遇到严重的通货膨胀以致币值过低时，会重定面值。重定面值时，有时更换货币单位，但遇到不换单位的案例时，ISO 4217货币代码仍会更换，例如，俄罗斯卢布代码曾自RUR改成RUB，而1 RUB = 1000 RUR。

以X开头的货币代码 
ISO 4217中同样给出了一些特殊代码，包括在多国流通的“超国家”货币代码、程序代码和一些准货币的代码：

 贵金属代码金（XAU）、银（XAG）、钯（XPD）和铂（XPT）由其元素符号外加前缀“X”构成。这些“货币单位”以金衡盎司作为基本单元。
 代码XTS是为测试而特别保留的代码。
 代码XXX用来表示不涉及货币的交易，即以物易物。
 还有一些代码用以表示在国际金融中使用的货币工具，例如XDR代表国际货币基金组织的特别提款权。
 大多数的超国家货币，例如东加勒比元（XCD）、太平洋法郎（XPF）、中非法郎（XAF）和西非法郎（XOF）。欧元的前身欧洲货币单位（ECU）使用代码XEU。

在这些代码中使用X开头的原因是，ISO 3166标准中不存在以X开头的国家地区代码。因此，在ISO 4217中可以避免其代码与某个未来国家的货币代码发生冲突。

由于ISO 3166-1中包括例外保留代码EU（代表欧洲联盟），因此在欧元启用后，其代码并非以X开头，而是EUR。

货币的辅助单位 
ISO 4217标准给出了一种粗略的机制，用于表示某一货币的主辅币关系。这种机制被称为辅助单位，是主辅币比率的以10为底的对数。例如，1 USD（美元）等于100美分，因此USD的辅助单位为2。JPY（日元）的辅助单位为0，因为其辅币单位分已经不再使用。在一般情况下，辅币的价值都是主币的百分之一，但有时也可能是千分之一（例如巴林第纳尔，辅助单位为3），或者不是10的倍数。毛里塔尼亚的货币单位不是十进制，而是规定1乌吉亚等于5考姆斯，而马达加斯加规定1阿里亚里等于5。在货币没有辅币、或辅币因为面值过小而完全不流通时，规定其辅助单位为0。

货币编号 
除货币代码之外，ISO 4217同时规定了货币的编号。这个编号也是三位数（不足时以0补齐），一般情况下与ISO 3166-1中规定的国家编号相同。例如，USD（美元）的编号是840，而ISO 3166-1裡美国的国家编号也是840，但原有貨幣停用後改用新貨幣便有機會改為9XX的编号。

ISO 4217代码的位置 
ISO标准没有对代码的使用位置进行规范化，因此它既可以出现在面值数字的前面，也可以出现在后面。不过，在欧盟出版局的英语、爱尔兰语、拉脱维亚语和马耳他语文件中，数字出现在ISO 4217代码的后面：

a sum of EUR 30
而在保加利亚语、克罗地亚语、捷克语、丹麦语、荷兰语、爱沙尼亚语、芬兰语、法语、德语、希腊语、匈牙利语、意大利语、立陶宛语、波兰语、葡萄牙语、罗马尼亚语、斯洛伐克语、斯洛文尼亚语、西班牙语和瑞典语的文件中，ISO 4217代码又出现在了数字的后面：

une somme de 30 EUR
需要注意的是，这种顺序是根据文本语言改变的，并非根据货币本身进行改变。

现行代码 
下表列出了现行的ISO 4217代码：

 说明：

非标准代码

没有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挂钩）
 索马里兰先令（该地区按照法律属于索马里的一部分，汇率不固定）
 德涅斯特河沿岸卢布（该地区按照法律属于摩尔多瓦的一部分）
 图瓦卢元（与澳大利亚元1:1挂钩）
 津巴布韦债券（与美元1:1挂钩）

非官方的货币代码 
下列货币代码在生活中较为常用，但并非ISO代码，其中部分亦不按照ISO 4217规则编码：
 RMB（人民币，中华人民共和国）（為漢語拼音Renminbi之縮寫）
 CNH（人民币（离岸），中华人民共和国香港特别行政区）
 NTD（新臺幣，中华民国）
 GGP（根西岛镑，根西岛）
 JEP（泽西岛镑，泽西岛）
 IMP（曼岛镑，曼岛）
 KID（基里巴斯元，基里巴斯）
 SLS（索马里兰先令，索马里兰）（与ISO-4217的标准冲突，因为SL代表塞拉利昂）
 PRB（德涅斯特河沿岸卢布，德涅斯特河沿岸）（与ISO-4217的标准冲突，因为PR代表波多黎各）
 TVD（图瓦卢元，图瓦卢）
 BTC（比特币，无固定实体）（与ISO-4217的标准冲突，因为BT代表不丹）
 XBT（比特币，无固定实体）
 ZWB（津巴布韦债券，津巴布韋）

除此以外，GBX有时会被用来指代英镑的辅币便士。

过时的货币代码 
大量ISO 4217标准中曾经使用的货币代码在货币更换后不再使用，例如欧元区国家的货币在欧元流通之后。下表列出了曾经使用过的ISO货币代码，以及它们的常用名：

参见 
 流通货币列表
 通货
 SWIFT代码

外部链接 
 ISO 4217字母与数字代码官方列表
 ISO 4217维护机构
 较早期的ISO 4217字母与数字代码列表，包含部分停用代码（PDF文件）
 另一个ISO 4217字母与数字代码列表
 用于处理ISO货币的C++库

 欧元符号与ISO代码与面值数字的位置关系
《中华人民共和国国家标准》GB/T 12406-1996《表示货币和资金的代码》
《中华人民共和国国家标准》GB/T 12406-2008《表示货币和资金的代码》
《中华民国国家标准》CNS 12873《货币及基金代码之表示法》
 中华民国教育部国语推行委员会《国语辞典》附录十八：世界各国及地区货币名称表

参考文献 

货币符号
编码
国际经济
国际贸易
04217
金融制度与规章
货币