ISO 8583 Parser
免费 · 完整速查 · 8 分钟 · 最后更新 2026-08-11

ISO 4217 货币代码对照表:数字码、字母码与小数位

ISO 8583 报文里的货币域 — DE49DE50DE51 — 放的都是 3 位数字码,不是字母码:报文写 764 而不是 THB,写 840 而不是 USD。下表按数字码排序收录 150 个币种,每行给出数字码、字母码、名称和小数位 — 最后这一列决定金额域里隐含的小数点在哪,和代码本身一样重要。

完整对照表,按数字码排序

表按数字码排序,因为报文里拿到的就是数字:DE49 里是 764,你要查的是 764 是什么(泰铢,2 位小数)。每一行都可以用 #c + 数字码直接定位,比如 #c764。一个好记的规律:数字码沿用 ISO 3166 国家数字代码(840 = 美国、392 = 日本),超国家货币则集中在 9xx 段(978 欧元、952 西非法郎)。

快速跳转:764 THB · 840 USD · 978 EUR · 392 JPY · 156 CNY · 826 GBP · 702 SGD · 414 KWD

数字码(DE49)字母码货币小数位
008ALL阿尔巴尼亚列克2
012DZD阿尔及利亚第纳尔2
032ARS阿根廷比索2
036AUD澳元2
044BSD巴哈马元2
048BHD巴林第纳尔3
050BDT孟加拉塔卡2
051AMD亚美尼亚德拉姆2
052BBD巴巴多斯元2
060BMD百慕大元2
064BTN不丹努尔特鲁姆2
068BOB玻利维亚诺2
072BWP博茨瓦纳普拉2
084BZD伯利兹元2
090SBD所罗门群岛元2
096BND文莱元2
104MMK缅甸元2
108BIF布隆迪法郎0
116KHR柬埔寨瑞尔2
124CAD加元2
132CVE佛得角埃斯库多2
136KYD开曼群岛元2
144LKR斯里兰卡卢比2
152CLP智利比索0
156CNY人民币2
170COP哥伦比亚比索2
174KMF科摩罗法郎0
188CRC哥斯达黎加科朗2
192CUP古巴比索2
203CZK捷克克朗2
208DKK丹麦克朗2
214DOP多米尼加比索2
230ETB埃塞俄比亚比尔2
238FKP福克兰群岛镑2
242FJD斐济元2
262DJF吉布提法郎0
270GMD冈比亚达拉西2
292GIP直布罗陀镑2
320GTQ危地马拉格查尔2
324GNF几内亚法郎0
328GYD圭亚那元2
332HTG海地古德2
340HNL洪都拉斯伦皮拉2
344HKD港元2
348HUF匈牙利福林2
352ISK冰岛克朗0
356INR印度卢比2
360IDR印尼盾2
364IRR伊朗里亚尔2
368IQD伊拉克第纳尔3
376ILS以色列新谢克尔2
388JMD牙买加元2
392JPY日元0
398KZT哈萨克坚戈2
400JOD约旦第纳尔3
404KES肯尼亚先令2
408KPW朝鲜元2
410KRW韩元0
414KWD科威特第纳尔3
417KGS吉尔吉斯斯坦索姆2
418LAK老挝基普2
422LBP黎巴嫩镑2
426LSL莱索托洛蒂2
430LRD利比里亚元2
434LYD利比亚第纳尔3
446MOP澳门元2
454MWK马拉维克瓦查2
458MYR马来西亚林吉特2
462MVR马尔代夫拉菲亚2
480MUR毛里求斯卢比2
484MXN墨西哥比索2
496MNT蒙古图格里克2
498MDL摩尔多瓦列伊2
504MAD摩洛哥迪拉姆2
512OMR阿曼里亚尔3
516NAD纳米比亚元2
524NPR尼泊尔卢比2
533AWG阿鲁巴弗罗林2
548VUV瓦努阿图瓦图0
554NZD新西兰元2
558NIO尼加拉瓜科多巴2
566NGN尼日利亚奈拉2
578NOK挪威克朗2
586PKR巴基斯坦卢比2
590PAB巴拿马巴波亚2
598PGK巴布亚新几内亚基那2
600PYG巴拉圭瓜拉尼0
604PEN秘鲁索尔2
608PHP菲律宾比索2
634QAR卡塔尔里亚尔2
643RUB俄罗斯卢布2
646RWF卢旺达法郎0
654SHP圣赫勒拿镑2
682SAR沙特里亚尔2
690SCR塞舌尔卢比2
702SGD新加坡元2
704VND越南盾0
706SOS索马里先令2
710ZAR南非兰特2
748SZL斯威士兰里兰吉尼2
752SEK瑞典克朗2
756CHF瑞士法郎2
760SYP叙利亚镑2
764THB泰铢2
776TOP汤加潘加2
780TTD特立尼达和多巴哥元2
784AED阿联酋迪拉姆2
788TND突尼斯第纳尔3
800UGX乌干达先令0
807MKD北马其顿代纳尔2
818EGP埃及镑2
826GBP英镑2
834TZS坦桑尼亚先令2
840USD美元2
858UYU乌拉圭比索2
860UZS乌兹别克斯坦苏姆2
882WST萨摩亚塔拉2
886YER也门里亚尔2
901TWD新台币2
925SLE塞拉利昂利昂2
928VES委内瑞拉玻利瓦尔2
929MRU毛里塔尼亚乌吉亚2
930STN圣多美和普林西比多布拉2
933BYN白俄罗斯卢布2
934TMT土库曼斯坦马纳特2
936GHS加纳塞地2
938SDG苏丹镑2
941RSD塞尔维亚第纳尔2
943MZN莫桑比克梅蒂卡尔2
944AZN阿塞拜疆马纳特2
946RON罗马尼亚列伊2
949TRY土耳其里拉2
950XAF中非法郎0
951XCD东加勒比元2
952XOF西非法郎0
953XPF太平洋法郎0
967ZMW赞比亚克瓦查2
968SRD苏里南元2
969MGA马达加斯加阿里亚里2
971AFN阿富汗尼2
972TJS塔吉克斯坦索莫尼2
973AOA安哥拉宽扎2
975BGN保加利亚列弗2
976CDF刚果法郎2
977BAM波黑可兑换马克2
978EUR欧元2
980UAH乌克兰格里夫纳2
981GEL格鲁吉亚拉里2
985PLN波兰兹罗提2
986BRL巴西雷亚尔2

要交互检索、顺便换算金额,用货币码与小数位查询工具 — 输代码、数字或名称即时过滤。

小数位:小数点在哪

ISO 8583 的金额域没有小数点DE4 是以最小货币单位计的整数,末尾几位算小数,完全由 DE49 里那个货币的小数位说了算。同一个 12 位值,在不同货币下是三个差别巨大的金额:

DE4 取值DE49小数位实际金额
000000001000840 USD210.00 美元
000000001000392 JPY01,000 日元
000000001000414 KWD31.000 科威特第纳尔
经典的坑是把 金额 × 100 写死 — 因为先测的十来个币种恰好都是 2 位小数。这样发一笔 ¥5,000,报文里就是 500000,而日元 0 位小数,这是 ¥500,000,多了一百倍,而且授权照样能过。反过来,把 3 位小数的第纳尔按 100 除,就少收十倍。两种错都是静默的:不报错、不拦截,只在几天后对账时炸出来。所有换算都应该查「货币 → 小数位」表驱动,金额旁边永远不要出现字面量 100

0 位小数的货币

金额域整个就是最终金额,没有小数部分:

BIF 108(布隆迪法郎)、CLP 152(智利比索)、KMF 174(科摩罗法郎)、DJF 262(吉布提法郎)、GNF 324(几内亚法郎)、ISK 352(冰岛克朗)、JPY 392(日元)、KRW 410(韩元)、VUV 548(瓦努阿图瓦图)、PYG 600(巴拉圭瓜拉尼)、RWF 646(卢旺达法郎)、VND 704(越南盾)、UGX 800(乌干达先令)、XAF 950(中非法郎)、XOF 952(西非法郎)、XPF 953(太平洋法郎)。

3 位小数的货币

末尾位是小数(1 第纳尔 = 1000 菲尔):

BHD 048(巴林第纳尔)、IQD 368(伊拉克第纳尔)、JOD 400(约旦第纳尔)、KWD 414(科威特第纳尔)、LYD 434(利比亚第纳尔)、OMR 512(阿曼里亚尔)、TND 788(突尼斯第纳尔)。

上表其余币种都是常见的 2 位小数。

DE49、DE50、DE51:三个货币域,三种货币

ISO 8583 定义了三个货币码域,各自配一个金额域:

货币域名称配对金额域是谁的货币
DE49交易货币码DE4(交易金额)商户收银台上实际刷的货币
DE50清算货币码DE5(清算金额)网络在银行之间清算用的货币
DE51持卡人记账货币码DE6(持卡人记账金额)持卡人账户被扣的货币

纯境内交易三者相同,DE50/DE51 往往不出现。跨境时三者分道扬镳:新加坡发的卡在曼谷消费,可能是 DE49 = 764(收银台收泰铢)、DE50 = 840(网络按美元清算)、DE51 = 702(持卡人按新元入账)。如果商户提供 DCC(动态货币转换)且持卡人接受,换汇就前移到收银台:DE49 直接变成 702 — 卡的货币,用商户侧汇率。EMV 金额标签 9F02 跟随交易货币,即按 DE49 的小数位读。

实操原则:永远不要假设三者一致。每个金额都用它自己配对的货币域的小数位来读 — DE4 配 DE49、DE5 配 DE50、DE6 配 DE51。把整条报文贴进解析器,它会自动给每个金额套上对应小数位。

代码会变

ISO 4217 是持续维护的标准,不是一张定死的表。货币会改版换码(塞拉利昂 SLL 改版为 SLE 925)、会随换币退役(克罗地亚 HRK 随加入欧元区停用),也会新增。特殊代码 XXX 999 表示「无货币」,测试报文里常见。本表收录的是成文时仍在流通的币种;真正过钱的场景,以你对端的接口规范和当期 ISO 4217 修订为准 — 规范和本表说法不一致时,听规范的。


👉 手上有真实报文?解析器会解出 DE49/DE50/DE51,并按正确小数位格式化每个金额。单个代码想顺手换算金额,用货币码查询工具

接着读