pain.001 是企业向其银行发送、用于发起一笔或多笔贷记转账的 ISO 20022 报文。其全称为 Customer Credit Transfer Initiation(客户贷记转账发起):"pain" 表示支付发起报文系列,.001 是报文编号,后缀(如 pain.001.001.09)表示版本。它采用 XML 格式,依据官方模式(XSD)进行验证,并取代各银行自定义的 CSV 格式和 SWIFT MT101 文本报文。
一分钟了解 pain.001#
- 由谁发送:企业(付款人,或代表其行事的代理方)将其发送给自己的银行(付款人代理行)。
- 包含什么:一个或多个贷记转账批次,每个批次包含一个付款人账户、一个指定执行日期以及任意数量的收款人付款。
- 返回什么:银行以 pain.002(客户支付状态报告)作答,使用 ISO 原因代码接受或拒绝整个文件或单笔交易。
- 之后发生什么:一旦受理,银行会将每条指令转换为 pacs.008 等银行间报文,企业不会看到这些报文。
- 使用场景:遵循 EPC 规则手册的 SEPA 贷记转账、在 Swift 上遵循 CBPR+ 的跨境支付(
pain.001.001.09)以及众多国内支付体系。Pain001 的示例语料库覆盖 17 个市场的 42 个场景。
pain.001 报文的结构#
所有版本在 <CstmrCdtTrfInitn> 元素内都采用相同的三层骨架。
| 层级 | 元素 | 包含内容 |
|---|---|---|
| 1 | <GrpHdr> 组头 | 报文 ID、创建时间戳、交易笔数(NbOfTxs)、控制总额(CtrlSum)、发起方 |
| 2 | <PmtInf> 支付信息 | 一个批次:支付方式、指定执行日期、付款人、付款人账户及代理行、费用承担方 |
| 3 | <CdtTrfTxInf> 贷记转账交易 | 一笔付款:端到端参考号、金额与币种、收款人、收款人账户及代理行、汇款信息 |
一个文件可以包含多个 <PmtInf> 批次,每个批次可包含多笔 <CdtTrfTxInf> 付款。NbOfTxs 和 CtrlSum 同时出现在文件级和批次级,必须与其统计的付款相符,这是银行退回文件最常见的原因之一。
完整的 pain.001 示例#
这是一笔 pain.001.001.09 格式的 SEPA 贷记转账,原样取自 Pain001 的示例语料库。它可通过官方 ISO 20022 XSD 验证。其中的当事方、IBAN 和 BIC 均为虚构。
OML-SCT-20260921
2026-09-21T12:00:00
1
2200.00
Officine Meccaniche Lombarde SpA
20123
Milano
IT
Via Torino 15
SCT-20260921-IT-01
TRF
false
1
2200.00
SEPA
2026-09-22
Officine Meccaniche Lombarde SpA
20123
Milano
IT
Via Torino 15
IT48T78971134594OGDKY5VXE41
TLAOIT60
SLEV
OML-2026-0921-01
2200.00
MHXHITI0
Fonderia Bresciana Srl
25121
Brescia
IT
IT23J14887404856NF3794IGWXN
Fattura 117/2026
在浏览器演示中试用您自己的数据:它从 CSV 生成 pain.001 文件并依据官方模式进行验证,数据不会离开您的设备。
pain.001 的版本#
当报文模型发生变化时,ISO 会发布新版本。各银行和支付体系只接受特定版本,因此您发送的版本应以银行渠道文档中指定的为准。
| 版本 | 说明 |
|---|---|
| pain.001.001.03 | 长期以来 SEPA 和 CGI 的主力版本;使用 <BIC> 标识银行 |
| .04, .05, .06, .07, .08 | 特定渠道使用的维护版本 |
| pain.001.001.09 | CBPR+ 为 Swift 选定的 2019 年版本;使用 <BICFI> 标识银行,并支持携带 LEI 和 UETR |
| .10, .11, .12 | 2019 年之后的改进版本 |
| pain.001.001.13 | ISO 于 2026 年 3 月 19 日发布;新增可选的唯一交易标识符(UnqTxIdr) |
兼容性矩阵列出了 Pain001 可生成、验证及相互迁移的版本。
pain.001 与相关报文的比较#
| 报文 | 方向 | 用途 |
|---|---|---|
| pain.001 | 企业发往其银行 | 发起贷记转账(向外付款) |
| pain.002 | 银行发往企业 | 报告 pain.001 或 pain.008 的状态:已接受、部分接受或已拒绝,并附原因代码 |
| pain.008 | 企业发往其银行 | 发起直接借记(依据授权收款) |
| pacs.008 | 银行之间 | pain.001 指令转换而成的银行间贷记转账 |
| MT101 | 企业或银行,经由 Swift | 被 pain.001 取代的传统文本报文 "Request for Transfer"。Swift 于 2026 年 8 月推迟了银行间 MT101 中转的停用(Swift);参见从 MT101 到 pain.001 |
术语表以通俗语言解释了其余的 ISO 20022 术语。
银行为何退回 pain.001 文件#
文件即使是格式正确的 XML,仍可能被退回。检查按层级逐层进行:
- 模式:文件必须通过其版本对应的官方 XSD 验证。
- 数据质量:IBAN 通过校验位检查,BIC 格式正确,日期和金额有效,
NbOfTxs和CtrlSum与付款相符。 - 支付体系规则:SEPA、CBPR+ 及国内支付体系会附加各自的约束,例如允许的字符集或结构化邮政地址。
- 您银行的配置与渠道:每家银行都会在支付体系之上发布自己的使用指南。
Pain001 在文件送达银行之前检查前三层,并明确说明第四层需由银行确认。
如何创建 pain.001 文件#
- 通过电子表格:从 Excel 到 pain.001 可将 Excel 或 CSV 付款清单转换为经过验证的文件。
- 在浏览器中:演示在本地生成并验证文件,无需上传。
- 通过代码或命令行:安装开源的 pain001 库并运行:
技术参考涵盖所有选项,常见问题解答了财资、运营和工程团队最常提出的问题。
资料来源#
- ISO 20022 报文定义及存档:iso20022.org
- SEPA 贷记转账规则手册:European Payments Council
- CBPR+ 与 MT101 中转:Swift