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