拿 0420 从左往右拆:0 = ISO 8583:1987 版,4 = 冲正类,2 = 通知(advice),0 = 受理方发起。这样读下来,「1987 版、受理方发出的冲正通知」直接从数字里长出来,四个位置记熟之后根本不用查表。下面把每一位的完整取值列全。
| 取值 | 版本 | 说明 |
|---|---|---|
0 | ISO 8583:1987 | 至今绝大多数卡网络在线联机用的都是它,下文所有 0xxx 都属于这一版。 |
1 | ISO 8583:1993 | 较新的接口和清算格式——Mastercard IPM 文件用的就是 1xxx。 |
2 | ISO 8583:2003 | 生产上极少见到。 |
3–7 | 预留 | 未分配。 |
8 | 国家标准使用 | 预留给各国标准机构。 |
9 | 私有使用 | 机构自定义。 |
| 取值 | 类别 | 管什么 |
|---|---|---|
0 | 预留 | 未分配。 |
1 | 授权(Authorization) | 只批准、只冻结额度——钱还没动。 |
2 | 金融(Financial) | 真正动钱:授权和入账一步完成。 |
3 | 文件操作(File) | 维护对端的文件:黑名单卡表、批量上送。 |
4 | 冲正 / 退单(Reversal / Chargeback) | 把已经发生的事情撤销掉。 |
5 | 对账(Reconciliation) | 轧账:这个切换点两边的总数对不对得上。 |
6 | 管理(Administrative) | 不动钱也不管链路的其它事务。 |
7 | 费用收取(Fee) | 机构之间收费。 |
8 | 网络管理(Network Mgmt) | 链路本身:签到、签退、回声测试、密钥。 |
9 | 预留 | 未分配。 |
| 取值 | 功能 | 行为 |
|---|---|---|
0 | 请求(Request) | 征求许可,对方可以拒绝。 |
1 | 请求响应 | 对请求的应答。 |
2 | 通知(Advice) | 告知既成事实,对方只能确认、不能拒绝。 |
3 | 通知响应 | 对通知的确认。 |
4 | 通告(Notification) | 单向:不求批准,也不定义应答。 |
5 | 通告确认 | 个别实现要求对通告回一条确认。 |
6 | 指令(Instruction) | 1993/2003 版才有。 |
7 | 指令响应 | 1993/2003 版才有。 |
8–9 | 预留 | 未分配。 |
这一位在实务里分量最重:请求可以被拒绝,通知不能。发 x400 还是 x420 不是风格问题——见下文 0400 与 0420 的区别。
| 取值 | 来源 | 说明 |
|---|---|---|
0 | 受理方(Acquirer) | 首次发送。 |
1 | 受理方重发 | 受理方对未获应答报文的重发。 |
2 | 发卡方(Issuer) | 首次发送。 |
3 | 发卡方重发 | 发卡方对未获应答报文的重发。 |
4 | 其他(Other) | 既非受理方也非发卡方的一方,比如转接网络。 |
5 | 其他重发 | 该方的重发。 |
6–9 | 预留 | 未分配。 |
下面每个 MTI 都有自己的锚点(#m0100、#m0420……),名称与本站解析器和 MTI 速查工具一致。响应永远在同一类里配对:0100 的应答是 0110,不会是 0200。
双报文体系「先授权、后清算」,钱在清算时才动,这一类报文只负责冻结或报告冻结。一对完整的 0100/0110,逐字段拆开的版本在报文示例里。
| MTI | 名称 | 什么时候出现 | 配对 |
|---|---|---|---|
0100 | 授权请求 | 实时授权——只冻结,不清算。双报文体系里一笔消费(POS、电商)的第一条报文。 | 0110 |
0101 | 授权请求(重发) | 0100 超时未应答后的重发。只有第 4 位变,DE7、DE11 必须保持原值。 | 0110 |
0110 | 授权请求响应 | 发卡行的裁决:DE39 带回批准或拒绝,DE38 带授权码。 | — |
0120 | 授权通知 | 已经发生的授权——低于限额的脱机批准、代授权(stand-in)事后报给发卡行。既成事实,发卡行不能拒绝。 | 0130 |
0121 | 授权通知(重发) | 0120 没等到 0130 时的重发。 | 0130 |
0130 | 授权通知响应 | 对 0120/0121 的确认。 | — |
单报文体系:授权和入账一步走完,ATM、PIN 借记和不少本地网络是典型。一笔完整的 0200/0210 ATM 取现在报文示例里。
| MTI | 名称 | 什么时候出现 | 配对 |
|---|---|---|---|
0200 | 金融请求 | 授权加请款一步完成——批准即入账。 | 0210 |
0201 | 金融请求(重发) | 0200 未获应答后的重发,规则同 0101。 | 0210 |
0210 | 金融请求响应 | 对 0200 的裁决;批准意味着账已经入了。 | — |
0220 | 金融通知 | 事后补送的已完成交易:脱机交易或代授权后的补送、强制入账、交易完成确认。 | 0230 |
0221 | 金融通知(重发) | 0220 没等到 0230 时的重发。 | 0230 |
0230 | 金融通知响应 | 对 0220/0221 的确认。 | — |
维护链路对端的文件:黑名单卡表、参数表、批量记录上送。
| MTI | 名称 | 什么时候出现 | 配对 |
|---|---|---|---|
0300 | 文件操作请求 | 增、改、删一条记录——比如黑名单卡——并等待对方应答。 | 0310 |
0310 | 文件操作请求响应 | 接受或拒绝 0300。 | — |
0320 | 批文件通知 | 单向推送记录,典型是交易的批量上送;对方只回确认。 | 0330 |
0330 | 批文件通知响应 | 对 0320 的确认。 | — |
把前一条报文做过的事情撤销。带 DE90 指回原交易的 0400 在报文示例里逐字段拆过;超时、重发、孤儿冻结这些失败路径的完整讲法在《冲正、超时与重发》。注意:主流卡组织的退单(chargeback)走清算文件,不走联机 04xx——联机上这一类几乎全是冲正。
| MTI | 名称 | 什么时候出现 | 配对 |
|---|---|---|---|
0400 | 冲正请求 | 请求撤销原交易,先等对方应答再动手。 | 0410 |
0401 | 冲正请求(重发) | 0400 未获应答后的重发。 | 0410 |
0410 | 冲正请求响应 | 对 0400 的裁决——实践中几乎总是回 00。 | — |
0420 | 冲正通知 | 我方已撤,对方必须跟着撤。超时后自动冲正走的就是它。 | 0430 |
0421 | 冲正通知(重发) | 0420 等不到 0430 就一直重发——超时风暴里刷屏的就是这条。 | 0430 |
0430 | 冲正通知响应 | 对 0420/0421 的确认,收到后发送方停止重发。 | — |
切换点轧账:把当日或当班的笔数、金额总计换给对方,两边照同一份数字去结算。
| MTI | 名称 | 什么时候出现 | 配对 |
|---|---|---|---|
0500 | 对账请求 | 发出总计数,请对方确认是否一致。 | 0510 |
0510 | 对账请求响应 | 账平了,或者告诉你差在哪。 | — |
0520 | 对账通知 | 总计数以事实形式告知而非征询;对方只回确认。 | 0530 |
0530 | 对账通知响应 | 对 0520 的确认。 | — |
不动钱、也不管链路的事务性报文:机构之间的文本消息、行政查询,以及各种卡组织自定义用途。
| MTI | 名称 | 什么时候出现 | 配对 |
|---|---|---|---|
0600 | 管理类请求 | 需要对方回答的管理类询问。 | 0610 |
0610 | 管理类请求响应 | 对 0600 的回答。 | — |
0620 | 管理类通知 | 单向告知的管理信息,常见是 DE120 附近字段里的自由文本。 | 0630 |
0630 | 管理类通知响应 | 对 0620 的确认。 | — |
机构之间收费。国际卡组织的费用基本走清算文件而不是授权链路,所以线上很少见到 07xx——但标准的格子里有它,一些本地网络也在用。
| MTI | 名称 | 什么时候出现 | 配对 |
|---|---|---|---|
0700 | 费用收取请求 | 请求记一笔费用并等待应答。 | 0710 |
0710 | 费用收取请求响应 | 对 0700 的应答。 | — |
0720 | 费用收取通知 | 费用以事实形式告知;对方只回确认。 | 0730 |
0730 | 费用收取通知响应 | 对 0720 的确认。 | — |
管链路本身的报文。MTI 只说「这是网络管理」,具体做什么——签到、签退、回声测试、密钥交换——写在 DE70 里。完整展开(包括一条能直接解析的回声测试)见《0800 / 0810 网络管理报文》。
| MTI | 名称 | 什么时候出现 | 配对 |
|---|---|---|---|
0800 | 网络管理请求 | 签到、签退、回显、密钥交换——哪一种由 DE70 决定。 | 0810 |
0810 | 网络管理响应 | 应答 0800;DE39 回 00 表示这次链路操作成功。 | — |
0820 | 网络管理通知 | 单向的网络通知,比如密钥变更告知。 | 0830* |
0830 | 网络管理通知响应 | 对 0820 的确认——只有要求确认的实现里才有。 | — |
ISO 8583:1993 沿用同一套格子,只把第一位换成 1,所以上面的一切都可以平移:1100 的读法与 0100 完全相同。1993 版真正的增量是把功能位 4–7 用了起来——不期待任何应答的「通告」。这也是为什么基于 1993 版的 Mastercard IPM 清算格式里到处是 xx4x。
| MTI | 名称 | 什么时候出现 |
|---|---|---|
1100 / 1110 | 授权请求 / 响应 | 0100/0110 的 1993 版写法;在线跑 8583:1993 的网络在用。 |
1120 / 1130 | 授权通知 / 响应 | 同 0120/0130。 |
1200 / 1210 | 金融请求 / 响应 | 同 0200/0210。 |
1220 / 1230 | 金融通知 / 响应 | 同 0220/0230。 |
1240 | 金融通告 | 金融类 + 功能位 4:不期待应答。Mastercard IPM 清算里承载提交(presentment)的就是它。 |
1420 / 1430 | 冲正通知 / 响应 | 同 0420/0430;请求与重发变体同样按格子平移。 |
1442 | 退单(chargeback) | 照格子直接拆:类 4(冲正 / 退单)、功能 4(通告)、来源 2(发卡方)。出现在清算里,不在联机上。 |
1644 | 管理类通告 | 类 6、功能 4、来源 4(其他)。IPM 用它承载文件头、文件尾等控制记录。 |
1740 | 费用收取通告 | 费用收取类的单向通告,IPM 清算里收费的主力类型。 |
1804 / 1814 | 网络管理请求 / 响应 | 0800/0810 的 1993 版对应;来源位取几,各实现不一。 |
MTI 表最常见的误读,是把 0100 当预授权、把 0200 当消费。不是的。两者的分界在这笔交易走哪种体系:
0100——双报文。授权现在走,财务记录之后随清算走。一条批准的 0100 没动过一分钱——它只是冻结了额度。信用卡 POS 和电商是典型。0200——单报文。授权与财务记录合在一条报文里;0210 批准即入账完成。ATM 和 PIN 借记是典型。一笔交易是不是预授权,看的是 DE3(处理码)和 POS 相关字段,不是 MTI。真正的区别带来的实际后果是:批准的 0100 还需要一条清算记录才能变成钱,批准的 0200 已经是钱——这也是两者冲正时限差别很大的原因。完整流程见《一笔交易的一生》。
两个都是撤销交易,差别在发送方有没有先动手:
0400 冲正请求 | 0420 冲正通知 | |
|---|---|---|
| 语义 | 「我能撤销这笔吗?」——发送方还没动手。 | 「我已经撤了」——发送方本地已经把交易冲掉了。 |
| 能否被拒绝 | 能;发送方必须等到 0410 才能把交易当作已冲正。 | 不能;接收方唯一被定义的回答就是 0430 确认。 |
| 典型触发 | 联机一切正常时的主动撤销、取消。 | 超时或故障:应答没回来,终端不知道那笔到底成没成,先冲掉再告知。 |
| 没等到应答 | 以 0401 重发。 | 落库保存,以 0421 反复重发,直到收到 0430。 |
发错的代价很实在:本地已经撤了却发 0400,一旦被拒你就卡死了——撤销撤不回来。通知这条路存在的意义,正是让「先把撤销做扎实、再去告知对方」成为可能。超时判定、重发节奏、DE90 如何匹配原交易,见《冲正、超时与重发》。
同样的类别加功能,末位不同含义就不同。0420 是受理方发出的冲正通知——日常超时冲正就是它;0422 则是发卡方发出的同一种通知,有些网络在发卡侧撤销交易时用。而奇数取值表示重发:0401 重发 0400,0421 重发 0420。
重发的规则很硬,值得刻在墙上:除第 4 位外什么都不许变。DE7(传输时间)和 DE11(STAN)必须保持原值,因为接收方靠它们去重。重发时「贴心地」换了个新 STAN,那就不是重发,而是一笔全新的交易——大量重复扣款事故就是这么来的。重发得到的应答类型与首发相同:0401 收 0410,0421 收 0430。
网络管理值得单独一篇,因为有意思的部分不在 MTI,而在 DE70(签到 001、签退 002、回声测试 301、密钥交换 101……)、心跳间隔,以及回声不再回来之后会发生什么。这些内容,连同一条能直接贴进解析器的 0800,都在《0800 / 0810 网络管理报文》。
8/9,或格子之外的取值)。当你的对端接口文档和任何一张通用表——包括这张——不一致时,以对端接口文档为准。👉 想交互式地拆 MTI,用 MTI 报文类型速查工具;想看 MTI 在完整报文里的样子、每个字段是什么,从报文示例开始——每条示例都能一键在解析器里打开。