银行卡卡号(主账号)。
变长最多 19 位,开头两位是长度、不是卡号本身。前 6 到 8 位是 BIN/IIN,卡组织靠它把报文路由给对应发卡行;最后一位是 Luhn 校验位。日志里最常被掩码的就是这个域——PCI DSS 4.0 的口径是最多显示 BIN 加后四位,而 BIN 从 2017 年起可以是 8 位,不再写死「前六位」。显示遮蔽(4.0 的 3.4.1)和存储不可读(3.5.1)是两条不同要求。
样例4000001234567899测试号段卡号(LLVAR,前缀 16),Luhn 校验通过
DE 3处理码 Processing CodeFIX · 6 · n 标识交易性质,前2位为交易类型(00消费/01取现…)。
六位数字分三组读:这笔是什么交易、从哪个账户出钱、进哪个账户。常见类型 00 消费、01 取现、09 消费带取现、20 退货、30 余额查询;账户那两组用 00 未指定、10 储蓄、20 支票、30 信用。所以 003000 是信用账户消费,011000 是储蓄账户取现。各卡组织会在 ISO 那份清单之外加自己的类型码,遇到没见过的组合先查所在卡组织的规范,别直接判为非法。
样例000000普通消费、默认账户——任意值都能用 DE3 速查拆开看
本次交易金额,以最小货币单位(如分)表示、右对齐补零、无小数点;实际金额按币种小数位换算。
十二位数字、左边补零,用币种的最小单位表示且没有小数点——000000001000 在两位小数的币种里是 10.00。小数位数由 DE49 决定,不看它就会差 100 倍:同样这个 1000,在日元里就是 1000 日元——日元的小数位指数是 0,DE4 填的是整数日元;美元、欧元、新加坡元指数是 2,填的是分。每次都按 DE49 推出除数,不要默认两位。
样例0000000050005000 个最小货币单位;配合 DE49=840(USD,2 位小数)→ 50.00 美元
DE 6持卡人扣账金额FIX · 12 · n 按持卡人账单币种计的金额。
DE 7传输日期时间 MMDDhhmmssFIX · 10 · n 报文传输时间(GMT)月日时分秒。
十位数字 MMDDhhmmss,不带年份——跨 1 月 1 日的报文要靠上下文补年。时区不由 ISO 8583 规定、由卡组规定:Mastercard 要求 UTC,Visa 允许用 GMT。它记的是发送方什么时候发出,不是持卡人什么时候交易,所以拿它跟本地时间戳直接比、不做时区换算,会比出一堆看着像数据错误其实不是的日期不一致。1987 版里受理方的本地时间和日期在 DE12、DE13;1993 版起 DE12 变成十二位 YYMMDDhhmmss、DE13 含义完全改掉,用之前先确认是哪一版。
样例0810093021MMDDhhmmss,GMT:8 月 10 日 09:30:21
DE 11系统跟踪号 STANFIX · 6 · n 系统跟踪号:当天唯一标识一笔交易,用于对账/查找/冲正配对。
六位数字,由报文发起方生成,只在一天之内唯一——Mastercard 的口径是一个 UTC 日。六位一共 999,999 个值,所以确实会被重用;唯一性要按「发起方 + 当日」理解,绝不是全局唯一。所以配对冲正或重发必须 DE11 加上 DE7 和 DE32 一起用,单靠 DE11 不行。真正设计成跨系统、跨时间唯一的是 DE37。
样例000123请求和 0110 响应就靠它配对
DE 12本地交易时间 hhmmssFIX · 6 · n 受理方当地时间 时分秒。
1987 版里是六位 hhmmss、受理方当地时间,商户的业务日期和限额频次规则都按它算。它跟 DE7 可能差好几个小时,所以按 DE7 出的报表和按 DE12 出的报表,对一笔深夜交易该算哪天,本来就会给出不同答案。对账用哪一个要定死并写清楚。1993 版起这个域改成十二位 YYMMDDhhmmss 并改名,按一版写的解析器读另一版会从这里开始错。
样例093021受理方当地 hhmmss
DE 13本地交易日期 MMDDFIX · 4 · n 受理方当地日期 月日。
样例0810受理方当地 MMDD
DE 14卡有效期 YYMMFIX · 4 · n 卡片到期年月。
四位 YYMM,年在前,跟卡面印的 MM/YY 正好相反——这是这个域最常见的错法。发卡行会校验它,卡过期就回 DE39 = 54。令牌化交易和已存凭证交易里它经常不出现,真实有效期由卡组织保管、令牌自己另有有效期,所以 DE14 缺失不一定是问题。
样例2812YYMM:2028 年 12 月——与二磁道里的有效期一致
DE 15清算日期 MMDDFIX · 4 · n 进入清算批次的日期。
DE 18商户类型 MCCFIX · 4 · n 商户类别码 MCC,标识行业(如5814快餐)。
四位数字,说的是这个商户卖什么,不是这笔买了什么。受理方在商户入网时分配,之后很少改。它决定交换费率,也决定大部分卡产品的使用限制——所以商户类别码配错,表现出来是莫名其妙的拒绝或者费率不对,而不是报错。取现相关的类目别搞混:6010 是柜面人工取现、6011 是 ATM 取现,这两个是**取现**不是「类现金」;**类现金(quasi-cash)对应的是 6050、6051**。7995 是赌博类目,卡组用别的手段把它按接近类现金处理(Mastercard 走 DE48 TCC = U)。另外在 IPM 清算这类 1993 版规范里,MCC 在 DE26 而不是 DE18。
样例5411超市 / 杂货店
DE 19受理机构国家码FIX · 3 · n 受理(收单)机构所在国家。
DE 20PAN扩展国家码FIX · 3 · n 卡号对应国家。
DE 21转发机构国家码FIX · 3 · n 转发机构所在国家。
DE 22POS输入方式 Entry ModeFIX · 3 · n POS 输入方式:刷磁条/插芯片/挥卡/手输。
1987 版是三位:前两位说卡数据是怎么读进来的,第三位说终端能不能接受密码。01 手工输入、02 磁条、05 芯片、07 非接芯片、90 磁条且整轨未改、91 非接磁条。它承载的责任划分和技术信息一样重要——芯片卡被当磁条读,正是风控规则和拒付理由码要找的情况。1993 版起这个域变成十二个字符(an-12)、拆成十二个子域,真正的读取方式挪到子域 7;2003 版沿用这个定义。解析前先确认你这条链路跑的是哪一版——本站的 IPM 工具按十二位处理,因为 IPM 清算是 1993 版的。
样例90290 = 完整读磁;2 = 终端不能输 PIN——见 DE22 速查
同一卡号下多卡的序号。
样例001该卡号下的第一张卡
DE 24功能码/NIIFIX · 3 · n 网络内标识/功能码。
POS 条件码:有卡/无卡/邮购电话等交易环境。
样例00正常有卡交易
DE 26POS PIN输入能力FIX · 2 · n POS 是否能输 PIN。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
DE 30交易处理费FIX · 9 · x+n 这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
DE 31清算处理费FIX · 9 · x+n 这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
DE 32受理机构标识码LL · 11 · n 受理(收单)机构编号。
标识发出这笔请求的受理机构,也就是给商户签约的那家机构,不是商户(DE42)也不是终端(DE41)。最长 11 位、变长,由卡组织分配,通常就是受理机构自己的 BIN。清算是按它算对手方的,所以路由和交换费都看它。有第三方转发报文时,那个中间方出现在 DE33,不在这里。
样例424242ATM 所属机构(LLVAR,前缀 06)——冲正的 DE90 里会再次出现
DE 33转发机构标识码LL · 11 · n 转发机构编号。
把这条报文送进网络的那家机构——可能就是受理方本身,也可能是它前面的网关、处理机构或国家转接中心。**它不是「只有夹了中间方才出现」**:Mastercard 在 0800/0810 网络管理报文里把它定为必填,值就是发送方自己。它唯一不表示的含义是「给商户签约的那家机构」——那是 DE32。
DE 35磁道2 Track 2LL · 37 · z 磁条第2磁道(卡号+有效期+服务码)。
样例4000001234567899=2812101123450000卡号 = 有效期(2812)+ 服务码(101)+ 自定义数据;LLVAR,前缀 33
DE 36磁道3 Track 3LLL · 104 · z 磁条第3磁道。
DE 37检索参考号 RRNFIX · 12 · an 检索参考号 RRN:跨系统追踪同一笔交易,退款/查询常用。
十二个字符,由受理方生成,要求在这笔交易的整个生命周期里保持不变:授权、清算记录、冲正、后续拒付,带的都是同一个值。Visa 侧它是规范点名的「同一笔交易内跨报文匹配」的键,并且 48 小时内不得复用,所以拿授权文件对清算文件时它是实际可用的关联键。**Mastercard 的生命周期键不在这儿**——在 DE63 子域 2(Banknet 参考号 + 日期),别以为单靠 DE37 就能关联 Mastercard 的报文。
样例622209000123常见拼法(并非标准强制):儒略日 6222(2026 年第 222 天)+ 小时 09 + STAN
DE 38授权标识响应码FIX · 6 · an 发卡行批准返回的授权码。
六个字符,只有交易被批准时发卡行才返回——如果 DE39 = 00 却没有它,本身就是个该报警的缺陷。把这个值当不透明字符串看:它没有内部结构,也不保证跨发卡行唯一。单靠它把后来的退款匹配回原交易很弱:用卡号加终端号能匹配上的笔数,远多于用授权码加商户号。
样例654321发卡行分配的授权码
DE 39响应码 Response CodeFIX · 2 · an 交易结果:00成功,其余为拒绝原因。
两个字符。00 是成功,其余都是原因,但真正通用的只有少数几个——05 不予承兑、51 余额不足、54 卡已过期、55 密码不正确、61 超出取现金额限额(超出笔数限额是 65)、91 发卡行不可用。很多取值是卡组织或发卡行自定义的,其中 05 尤其是发卡行不想说明理由时的兜口码。决定下一步之前先把「拒绝」和「失败」分开:91 值得重试,54 永远不值得。
样例00批准——其余取值都是拒绝原因,见 DE39 查询
DE 41终端标识 Terminal IDFIX · 8 · ans 受理终端(POS/ATM)编号。
八个字符,标识具体那台终端或那个通道,只在该商户内部唯一、不是全局唯一——两个不同商户都可以用 00000001。需要一个自身唯一的终端标识时,要跟 DE42 一起用。它也是把退款匹配回原消费时,比授权码可靠得多的那两个域之一。
样例TERM0001占位终端号
DE 42商户标识 Merchant IDFIX · 15 · ans 受理商户编号。
十五个字符,标识商户门店,由受理方分配,在该商户名下各终端之间保持一致。跟 DE41 合起来能定位到交易究竟发生在哪里;持卡人发起争议时针对的也是这个值——所以商户号过期或者被多家共用,是「这笔账我不认识」这类投诉的常见来源。
样例TESTMERCH000001占位商户号,定长 15 位
DE 43商户名称/地址FIX · 40 · ans 商户名称、城市、国家。
四十个字符、按位置解析。ISO 8583 只规定总宽度四十,**内部怎么切由各卡组定义,而且各家不同**:Visa 授权是 1–25 名称、26–38 城市、39–40 国家码(**州在另一个域 DE59,DE43 里没有州**);Mastercard 授权是名称 22 + 一个规范强制的空格 + 城市 13 + 又一个强制空格 + 国家码 3。Mastercard 的 IPM 清算布局又不一样,那边才有街道、邮编、州/省这些子域。持卡人账单上打印的就是它,所以这里截断或者错位,是「这笔账我不认识」争议最大的来源。按你所在卡组规范给的偏移量切,**绝不要按空格切**——遇到第一个名字里带空格的商户就错。
DE 44附加响应数据LL · 25 · an 附加响应数据。
DE 45磁道1 Track 1LL · 76 · an 磁条第1磁道。
DE 46附加数据-ISOLLL · 999 · an 这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
DE 47附加数据-国家LLL · 999 · an 这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
DE 48附加数据-私有LLL · 999 · an 私有附加数据,各卡组自定义(可能子域/TLV)。
交易金额币种(ISO4217数字码,决定小数位)。
三位数字,ISO 4217 数字码——840 美元、978 欧元、392 日元、702 新加坡元。**ISO 8583:1987 对这个域的定义其实是「字母或数字」三位**,银联的联机规范至今也标成 an3;但各大卡组一律要求三位数字码,所以实际见到的都是数字。它真正的作用是确定 DE4 有几位小数,所以必须先读它,金额才有意义。它只描述 DE4:清算币种在 DE50,持卡人记账币种在 DE51,跨境交易时三者可以都不一样。
样例840美元——DE4 的小数点就是它给的
DE 52PIN数据 PIN BlockFIX · 16 · b 加密后的 PIN(密码)块。
六十四位、正好八个字节,装的是加密后的密码块,不是密码本身。没有密钥和块格式,这八个字节没有任何含义。**装得进八字节的是 ISO 9564-1 的 format 0**(把账号异或进去)、**1**(随机填充、不含卡号)、**2**(卡内离线校验)、**3**(format 0 加随机填充)。**format 4 是 AES、十六字节,根本装不进 DE52**——Mastercard 把它放在 DE110 并且此时 DE52 不出现,两者互斥。同一个密码用两种格式算出来的块不一样,对不上时表现为密码校验失败类响应(55,也可能是 86),而不是解析报错。这个域绝对不能记日志、不能打印、不能存。
样例9A8B7C6D5E4F32108 字节加密 PIN 块,写成 16 个十六进制字符——合成值,解不出任何真密码
DE 53安全控制信息FIX · 16 · n 安全控制信息。
DE 54附加金额 Additional AmountsLLL · 120 · an 附加金额(如可用余额/小费)。
样例1002840C000000098500可用余额 985.00 美元(LLLVAR,前缀 020)
DE 55IC卡数据/EMVLLL · 999 · b 芯片卡 EMV 交易数据(TLV):含应用密文 ARQC、终端验证结果 TVR、发卡行数据等。
芯片数据,BER-TLV 格式,所以这个域是个容器,里面每个标签都要各自解一遍:9F26 是发卡行要验的应用密文 ARQC,95 是终端验证结果,9F27 是卡自己做的判断,9F10 是发卡行应用数据,9F36 是能暴露复制卡的计数器。标签顺序不固定;三位 LLLVAR 前缀结构上允许 999 字节,但我们查过的卡组规范一律把这个域封到 255。所以按固定偏移量写的解析器能一直用,直到某台终端换了顺序那天。芯片交易被拒又看不出原因时,答案在 95 和 9F10。
样例82023C00950500000480009A032608109C01005F2A0208409F02060000000025009F100706010A03A000009F1A0208409F2608A1B2C3D4E5F607189F2701809F3303E0F8C89F34030200009F3602003C9F37041A2B3C4DBER-TLV,下表逐 tag 拆解。注意 LLL 前缀是 174——数的是十六进制字符而不是字节(见编码约定)
DE 56预留 ISOLLL · 999 · ans 预留(ISO)。
DE 57预留国家LLL · 999 · ans 这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
DE 58预留国家LLL · 999 · ans 这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
DE 59预留国家LLL · 999 · ans 这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
DE 60预留私有LLL · 999 · ans 私有域,常放批次/POS/系统信息。
DE 61预留私有LLL · 999 · ans 私有域(按卡组定义)。
DE 62预留私有LLL · 999 · ans 私有域,各卡组自定义。
DE 63预留私有LLL · 999 · ans 私有域/网络数据。
DE 64报文鉴别码 MACFIX · 16 · b 报文鉴别码 MAC:校验报文完整、防篡改。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
DE 68接收机构国家码FIX · 3 · n 这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
DE 69清算机构国家码FIX · 3 · n 这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
DE 70网络管理信息码 NMICFIX · 3 · n 网络管理信息码(签到/签退/换密钥等)。
样例301回声测试;001 = 签到,002 = 签退,101 = 换密钥
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
DE 73动作日期 YYMMDDFIX · 6 · n 这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
DE 75贷记冲正笔数FIX · 10 · n 这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
DE 77借记冲正笔数FIX · 10 · n 这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
DE 79转账冲正笔数FIX · 10 · n 这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
DE 87贷记冲正金额FIX · 16 · n 这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
DE 89借记冲正金额FIX · 16 · n 这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
DE 90原始数据元素FIX · 42 · n 原始交易关键字段(冲正/退货时引用)。
样例02000001240810093045000004242420000000000042 位数字、五个紧排子域——下表逐段拆开
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
DE 97净清算金额FIX · 17 · x+n 这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
DE 98收款人 PayeeFIX · 25 · ans 这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
DE 99清算机构标识码LL · 11 · n 这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
这一条还没写通俗说明——上面的名称、格式和长度就是它的定义。
没有匹配的数据域