退款是一笔新的、独立的交易:DE3 处理码的交易类型位取 20(退货 / 退款),它有自己的报文、自己的金额、自己的清算记录,走的方向和消费相反。
冲正是撤销一条已经发出去的报文(0400/0420)。DE90(原始数据元素)是一个定长 42 位的块,装着原报文的 MTI、STAN、传输时间和机构号——冲正报文自己就写明了它撤的是哪一条。拒付是另一条链,由发卡行发起,在 Mastercard 侧是 1442。
退款报文里没有这样的字段,它在报文层面只是又一笔普通交易。把它落回原消费,靠的是某个两笔都带、且取值相同的字段。
| 键 | 谁生成 | 规则保证什么 | 什么情况下对不上 |
|---|---|---|---|
| DE38 授权码 |
发卡行,在授权应答里下发 | an 6。Mastercard 公开规则要求:经其网络授权的交易,First Presentment/1240 的 DE38 要填与对应 0110 应答中 DE38 相同的值 |
只有 6 位字母数字,由各家发卡行自己生成,用过一段时间还会再用,规则没有给出跨发卡行、跨时间的唯一性保证;有些退款不经过授权、直接提交清算,这种退款根本没有授权码,也就无从比对 |
| DE37 检索参考号 RRN |
收单方赋值 | an 12。用于跨系统追踪同一笔交易,在请求、应答、冲正之间保持一致 |
编号规则由各收单方自定,跨机构不保证唯一;退款是新交易,会拿到自己的 RRN,与原消费的那个不同 |
| DE31 收单参考数据 ARD/ARN |
收单方 | 清算侧的追踪号,出现争议、需要调取交易凭证时靠它找到这笔交易 | 退款有自己的 ARD;另外要注意,同样是 DE31,在授权报文里它是「清算处理费」,和清算文件里的收单参考数据完全是两回事——同一个域号,两边不能套用 |
| TID Visa Transaction Identifier |
Visa 生成,在授权应答里返回 | Visa 允许商户把原消费的 TID 放进退款的授权请求;Visa 在应答里返回同一个 TID,商户以同值提交结算 | 要靠商户或支付服务商在发起退款时主动带上;没带,两笔就对不上。只有 Visa 有这个字段 |
| TLID Mastercard Transaction Link Identifier |
Mastercard 生成,随授权应答下发 | 22 位字母数字。同一笔交易的各个生命周期事件共享同一个值——授权、请款、退款、拒付 | 这个机制比较新,各家收单机构和支付服务商在 2026 年前后才陆续用上;在那之前的老数据里没有这个字段。只有 Mastercard 有 |
DE38 与 DE37 在授权和清算两边都是同一个域号、同样的含义,直接读即可。STAN 与 RRN 的区别那页讲了 RRN 为什么比 STAN 更适合跨系统追踪,以及 STAN 会绕回来这件事。
Visa 的 TID 是 15 位,在 BASE II/CTF 文件里落在 TCR5 的第 4–19 位,不在 TCR0。消费(TC05)和退货(TC06)各自都带这一位——两条记录的 TCR5 是否取到同一个值,决定了这条链有没有接上。
Mastercard 的 TLID 在授权侧由 0110/0210 应答下发,在清算侧放进 First Presentment/1240 的 DE105。DE105 在 1987 标准里是预留给 ISO 的位置、不赋予含义,卡组挪用了它——DE105 的实例在字段速查页,跨报文族的字段搬迁则见 Mastercard 授权与清算报文。