為什麼這次遷移很重要
SWIFT 正在淘汰傳統的 MT 封包格式,轉而採用更豐富的 ISO 20022 標準。對於財務和財務團隊來說,這意味著您的銀行對帳單處理流程必須在嚴格的截止日期之前從 MT940 發展到 CAMT.053。
SWIFT 遷移時間表
| 日期 | 里程碑 | 影響 |
|---|---|---|
| 2025 年 11 月 | 跨境支付 MT 與 MX 共存結束 | PACS 訊息現在僅限 ISO 20022 |
| 2026 年 11 月 | 結構化/混合位址強制;MT101 多指令被拒絕;個案管理第一階段 | 地址格式必須符合;部分MT訊息會被拒絕 |
| 2026 年末 | 開始選擇接收 CAMT.052/.053/.054 | 金融機構可以開始接收本地 ISO 聲明 |
| 2027 年 11 月 | 所有金融機構必須本地接收 CAMT.053 | SWIFT 停止將 MT 格式轉換為 ISO;您的系統必須直接解析 CAMT |
| 2028 年 11 月 | MT940/MT942/MT950/MT900/MT910全面退役 | 舊的報表格式不再可用; CAMT.052/.053/.054 是唯一的選擇 |
您的程式碼有何變化
之前:僅限 MT940
from bankstatementparser import Mt940Parser
parser = Mt940Parser("statement.mt940")
df = parser.parse()
之後:兩種格式均具有自動偵測功能
from bankstatementparser import create_parser, detect_statement_format
fmt = detect_statement_format("statement.xml") # or .mt940
parser = create_parser("statement.xml", fmt)
df = parser.parse() # Same DataFrame schema regardless of format
這detect_statement_format()函數識別檔案是否為 MT940、CAMT.053、PAIN.001 或任何其他支援的格式。這create_parser()函數傳回正確的解析器。無論來源格式如何,下游程式碼的工作方式都是相同的。
CAMT.053 與 MT940:主要區別
| 特徵 | MT940 | CAMT.053 |
|---|---|---|
| 數據豐富度 | 領域有限 | 每筆交易的數據量增加 3-5 倍 |
| 字元集 | 有限(SWIFT 字元集) | 完整的統一碼 |
| 結構 | 帶有標籤的平面文本 | 帶有命名空間的 XML |
| 餘額報告 | 僅開啟/關閉 | 多種餘額類型 |
| 參考 | 單一參考字段 | 多種參考類型 |
| 貨幣處理 | 基本的 | 完整的多幣種和匯率 |
銀行對帳單解析器如何提供協助
- 統一 API:使用相同的方法解析 MT940 和 CAMT.053
parse()方法,產生相同的 DataFrame 模式。 - 自動偵測:無需事先知道格式。
detect_statement_format()自動識別它。 - 與命名空間無關:無需配置即可處理任何 CAMT.053 變體(001.02、001.04 或銀行特定的包裝器)。
- 串流處理:使用有限記憶體處理大型 CAMT 檔案(50 MB+、50K+ 事務)。
- 遷移測試:在同一日期範圍內並行運行兩個解析器,以在切換之前驗證輸出一致性。
## 入門
pip install bankstatementparser
from bankstatementparser import create_parser, detect_statement_format
# Works with MT940 today, CAMT.053 tomorrow
for file in bank_statement_files:
fmt = detect_statement_format(file)
parser = create_parser(file, fmt)
df = parser.parse()
process(df) # Your code doesn't change