跳到内容

pacs 消息详解 pacs 消息详解

A detailed technical reference for the ISO 20022 pacs message family. It covers how messages work together in a complete payment lifecycle, the XML structure, settlement methods, reason codes, party identification, remittance information, and end-to-end tracking.

支付生命周期 支付生命周期

完整的 pacs 支付生命周期包含六个阶段和多种报文类型协同工作。

阶段 1 — 发起。 支付从客户-银行域(pain.001)发起。付款方银行接收指令并将其转化为银行间域。

阶段 2 — 银行间指令。 付款方代理创建 pacs.008 并发送给链条中的下一个代理。在串行流中,pacs.008 逐跳通过中间代理传递。在备付流中,pacs.008 从付款方代理直接发送到收款方代理,而独立的 pacs.009 通过代理行链条承载融资环节。

阶段 3 — 状态报告。 在每一跳,接收代理可以返回 pacs.002 确认接受(ACCP/ACSP/ACSC)、拒绝(RJCT)或待处理状态(PDNG)。在 CBPR+ 中,所有支付状态通信均强制使用 pacs.002。

阶段 4 — 结算。 结算通过清算系统(CLRG)、代理行账户(INDA/INGA)或备付款(COVE)进行。银行间结算日期和金额决定了何时以及结算多少。

阶段 5 — 收款人入账。 收款方代理将资金入账给收款人,并可发送客户通知。

阶段 6 — 异常处理。 如果结算后收款人无法入账,pacs.004 沿链条返回资金。如果发起方发现错误或欺诈,pacs.007 沿链条正向传递。如果状态不明,pacs.028 向下一代理查询,答复通过 pacs.002 返回。

串行方式流 串行方式流

text
Debtor Agent --(pacs.008)--> Intermediary Agent
Intermediary Agent --(pacs.002)--> Debtor Agent [status]
Intermediary Agent --(pacs.008)--> Creditor Agent
Creditor Agent --(pacs.002)--> Intermediary Agent [status]
Creditor Agent --> Creditor [credit notification]

备付方式流 备付方式流

text
Debtor Agent --(pacs.008)--> Creditor Agent [direct, with customer data]
Debtor Agent --(pacs.009)--> Cover Bank --(pacs.009)--> Creditor Agent [funding leg]

pacs.008 的 XML 结构 pacs.008 的 XML 结构

pacs.008 包含两个主要构建块:Group Header(GrpHdr)和贷记转账交易信息(CdtTrfTxInf)。

Group Header(GrpHdr) Group Header(GrpHdr)

Group Header 在每条报文中恰好出现一次,包含:

  • MsgId — 由发送代理分配的唯一报文标识。最大 35 个字符,每个发送方必须唯一。
  • CreDtTm — ISO 8601 格式的创建时间戳。
  • NbOfTxs — 报文中包含的单笔交易数量。
  • SttlmInf — 结算信息,包括结算方式(SttlmMtd)以及可选的清算系统和结算账户。
  • IntrBkSttlmDt — 银行间结算日期。
  • PmtTpInf — 支付类型信息,包括优先级、服务级别、本地工具和类别目的。

贷记转账交易信息(CdtTrfTxInf) 贷记转账交易信息(CdtTrfTxInf)

每笔交易包含:

  • PmtId — 支付标识:InstrId、EndToEndId、TxId 和 UETR。
  • IntrBkSttlmAmt — 带币种代码的银行间结算金额。
  • InstdAmt — 原始指令金额(可能因外汇而与结算金额不同)。
  • ChrgBr — 费用承担代码(DEBT、CRED、SHAR 或 SLEV)。
  • Dbtr / DbtrAcct / DbtrAgt — 付款方姓名、地址、标识、账户和代理。
  • Cdtr / CdtrAcct / CdtrAgt — 收款方姓名、地址、标识、账户和代理。
  • IntrmyAgt1 / 2 / 3 — 链条中最多三个中间代理。
  • RmtInf — 汇款信息,非结构化(自由文本)或结构化(单据参考、金额、日期)。
  • Purp — 结构化目的代码。
  • RgltryRptg — 监管报告详情。

支付标识 支付标识

pacs 报文使用多个标识,在支付链中承担不同角色。

支付标识及其角色
标识设定方在链条中是否变化?
MsgId每个发送代理是 — 每条报文重新生成
InstrId每个指令代理是 — 每一跳可能更新
EndToEndId发起方(付款方)否 — 不得修改
TxId第一个指令代理否 — 不得修改
UETR付款方代理否 — 全程追踪

结算方式 结算方式

SttlmMtd 元素定义银行间结算如何进行。

  • CLRG — 通过清算系统结算,如 TARGET2、EURO1 或 CHIPS。境内和区域清算最为常见。
  • INDA — 在被指令代理的账簿上结算。付款方代理在下一个代理处持有 nostro 账户。双边代理行典型方式。
  • INGA — 在指令代理的账簿上结算。被指令代理在发送代理处持有 nostro 账户。不如 INDA 常见。
  • COVE — 通过独立的备付款结算。pacs.009 承载融资环节,pacs.008 直接承载客户数据。用于跨境代理行业务。

费用承担代码 费用承担代码

ChrgBr 元素指定谁承担支付费用。

  • DEBT — 付款方承担所有费用(MT103 等同:OUR)。收款方收到全额。
  • CRED — 收款方承担所有费用(MT103 等同:BEN)。费用从转账金额中扣除。
  • SHAR — 费用共担(MT103 等同:SHA)。各方支付各自代理的费用。跨境支付最为常见。
  • SLEV — 费用遵循服务级别。SEPA 强制要求。不从转账金额中扣除。

MT103 到 pacs.008 字段映射 MT103 到 pacs.008 字段映射

MT103 到 pacs.008 的主要字段映射
MT103 字段MT103 名称pacs.008 XML 路径
20发送方参考GrpHdr/MsgId or PmtId/InstrId
23B银行操作代码PmtTpInf/SvcLvl
32A起息日/金额IntrBkSttlmDt + IntrBkSttlmAmt
33B指令金额InstdAmt
50a汇款人Dbtr + DbtrAcct
52a汇款行DbtrAgt
57a账户行CdtrAgt
59a收款人Cdtr + CdtrAcct
70汇款信息RmtInf/Ustrd or RmtInf/Strd
71A费用明细ChrgBr (BEN→CRED, OUR→DEBT, SHA→SHAR)
72发送方至接收方信息InstrForCdtrAgt / InstrForNxtAgt
N/AUETR (Block 3, field 121)PmtId/UETR

状态码和原因代码 状态码和原因代码

pacs.002 状态码 pacs.002 状态码

pacs.002 中的交易状态码
代码含义
ACCP已接受 — 前置检查通过
ACSP已接受 — 结算进行中
ACSC已接受 — 结算完成
RCVD已接收 — 尚未处理
PDNG待处理 — 需进一步处理
RJCT已拒绝 — 附原因代码

常见拒绝和退回原因代码 常见拒绝和退回原因代码

常用拒绝和退回原因代码
代码名称说明
AC01账号错误账号无效或不存在
AC04账户已关闭账户已关闭
AC06账户已冻结账户已冻结,无法交易
AM04余额不足付款方账户余额不足
AM05重复检测到重复支付
BE04收款方地址缺失收款方地址缺失或不完整
CUST客户要求客户要求退回或拒绝
DUPL重复支付发现重复支付
FOCR根据撤销请求根据撤销请求
FR01欺诈疑似欺诈
RC01BIC 错误BIC 不正确或未知
RR03收款方姓名/地址缺失收款方姓名或地址数据缺失
TM01截止时间已超过截止时间

邮政地址格式 邮政地址格式

结构化地址 结构化地址

xml
<PstlAdr>
  <StrtNm>High Street</StrtNm>
  <BldgNb>42</BldgNb>
  <PstCd>EC2V 8BX</PstCd>
  <TwnNm>London</TwnNm>
  <Ctry>GB</Ctry>
</PstlAdr>

非结构化地址(2026 年 11 月后 CBPR+ 不再接受) 非结构化地址(2026 年 11 月后 CBPR+ 不再接受)

xml
<PstlAdr>
  <AdrLine>42 High Street</AdrLine>
  <AdrLine>London EC2V 8BX</AdrLine>
  <Ctry>GB</Ctry>
</PstlAdr>

关键约束:StrtNm 最大 70 个字符(CBPR+),TwnNm 最大 35 个字符(CBPR+),Ctry 为 ISO 3166-1 alpha-2,AdrLine 每行最大 70 个字符且最多 7 行。

参与方标识 参与方标识

pacs.008 中的参与方支持多种标识方式:

  • BIC — 依据 ISO 9362 的业务标识代码。8 或 11 个字符(BBBBCCLL 或 BBBBCCLLBBB)。用于代理的 FinInstnId/BICFI 和参与方的 OrgId/AnyBIC。
  • LEI — 依据 ISO 17442 的法人实体标识。20 位字母数字字符。出现在参与方的 OrgId/LEI 和代理的 FinInstnId/LEI 中。
  • IBAN — 依据 ISO 13616 的国际银行账号。用于 DbtrAcct/Id/IBAN 和 CdtrAcct/Id/IBAN。
  • 组织标识 — 其他基于方案的标识(税号、DUNS、客户号),通过 OrgId/Othr 附带方案名称代码。
  • 个人标识 — 用于自然人:出生日期和地点、护照(CCPT)、身份证(NIDN)或驾照(DRLC),通过 PrvtId。

汇款信息 汇款信息

pacs.008 中的汇款数据使用 RmtInf 元素,有两种形式:

非结构化 — 每次最多 140 个字符的自由文本。简单但限制自动对账。

结构化 — 带有类型代码、编号、日期和金额的单据参考。常见单据类型:CINV(商业发票)、CREN(贷记通知单)、SOAC(对账单)。通过 CdtrRefInf 支持 ISO 11649 收款方参考(RF + 校验位 + 参考号)。实现自动发票匹配和多发票支付。

UETR 和 gpi 追踪 UETR 和 gpi 追踪

UETR(Unique End-to-End Transaction Reference)是由付款方代理生成的 UUID v4。它出现在 pacs.008、pacs.009、pacs.002、pacs.004、pacs.007 和 pacs.028 的 PmtId/UETR 中。在整个支付链中必须保持不变。

SWIFT gpi 利用 UETR 通过云端 Tracker 数据库追踪支付。每个代理确认接收和处理状态,实现端到端可视化。gpi 跨境支付的 SLA 目标是当天将资金入账至收款人账户。

参考资料 参考资料

最后更新: