ISO 8583 Parser
免费 · 参考 · 约 6 分钟 · 最后更新 2026-09-02

TLID 与 Visa TID:两家卡组怎么串起一笔交易的一生

一笔卡交易在系统里不是一条记录:授权、预授权完成、冲正、部分或全额退款、争议,各自是独立的报文。把它们串成同一笔交易,Mastercard 用 TLID,Visa 用 Transaction Identifier。两者的位置、生成方、以及在退款报文里是否一定出现,都不一样,这个差别决定了退款匹配能不能做成确定性的。
本页目录: Mastercard 的 TLID · DE105 三个子元素的分工 · Visa 的 Transaction Identifier · 两者的差别 · 拿它们能做什么 · 三个容易踩的地方

Mastercard 的 TLID

TLID 的规范名是 Transaction-Link-Identifier,行业里也叫 Transaction Life-Cycle ID、交易生命周期 ID,指的是同一个东西。规范名只有前一个,写接口文档和代码注释时用它。

内容
报文位置DE 105 的子元素 SE 001
长度与类型固定 22 位 ANS 字符
谁生成Mastercard,在授权应答(0110)里下发
谁携带收单方,把它放进 First Presentment/1240 清算报文
覆盖范围消费、预授权完成、撤销、部分与全额退款、拒付

DE 105 本身是 composite 结构,由若干「SE 番号(3 位)+ 长度(3 位)+ 数据」拼接而成。解析时按这个三段式往下切,SE 001 只是其中一个子元素。

DE105 三个子元素的分工

同一个 DE 105 里有三个与生命周期相关的子元素,上送责任不同:

子元素谁上送作用
SE 001收单方TLID 本身。标准生命周期交易送这一个即可
SE 002收单方经济关联的 TLID。用于退款这类「独立成笔、但与另一笔存在经济关系」的交易
SE 003Mastercard生命周期校验结果。卡组校验或修正 SE 001 之后,用它把处理结果告知收单方

SE 003 由卡组回填,收单方不上送。看到它出现在收到的报文里,说明卡组对送上去的 SE 001 做过校验或修改。

Visa 的 Transaction Identifier

Visa 侧对应的标识是 Transaction Identifier,通常缩写为 TID。由 VisaNet 在授权时生成并在应答中返回,清算报文里沿用同一个值,用途与 TLID 相同:把同一笔交易的后续报文关联回原始授权。

差别出在退款。BASE II 对 Credit Voucher 的规定是可以携带原交易的 Transaction Identifier,措辞是 may 而不是 must。收单方不送也合规,这时候退款报文里带的是收单方自己新申请的标识,与原消费对不上。

这与 DE 7 的时区是同一类情况:Visa 在若干字段上给收单方选择权,Mastercard 给的是硬要求。接 Visa 通道时,凡是规范写 may 的地方都不能按「一定有」来设计。

两者的差别

Mastercard TLIDVisa TID
生成方MastercardVisaNet
下发时机授权应答授权应答
报文位置DE 105 SE 001清算与授权报文中的 Transaction Identifier 字段
长度22 位 ANS数字串,长度以卡组文档为准
退款是否携带原值规范要求携带规范写 may,由收单方决定

拿它们能做什么

  1. 退款匹配原消费。有 TLID 的通道上,退款与原消费的关联是确定性的,不需要靠金额加时间去猜。Visa 通道上能拿到原 TID 的那部分同样确定,拿不到的部分要退回其他匹配键,见退款怎么匹配原交易
  2. 把授权与清算对起来。授权侧和清算侧是两套报文体系,字段编排不同,见 Mastercard 授权与清算的差异。生命周期标识是少数在两侧都存在、且值不变的东西
  3. 争议处理时还原上下文。拒付到达时,用它把这笔交易此前的授权、完成、部分退款全部找出来

三个容易踩的地方

  1. 把 Visa 侧当成一定有。按「退款必带原 TID」写死匹配逻辑,遇到不送的收单方会整批匹配不上。设计时要有降级路径
  2. 把行业别名当规范名。Transaction Life-Cycle ID 是口语叫法,规范里只有 Transaction-Link-Identifier。对着规范查字段时用后者
  3. 在 DE 105 里按固定偏移取值。DE 105 是 composite,子元素的出现与顺序不固定,按「SE 番号 + 长度」逐段解析,不要按位置截取

延伸阅读