银行对账单解析器

引导 SWIFT MT 向 ISO 20022 过渡

为什么这次迁移很重要

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
余额报告 仅打开/关闭 多种余额类型
参考 单一参考字段 多种参考类型
货币处理 基本的 完整的多币种和汇率

银行对账单解析器如何提供帮助

## 入门

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

阅读完整文档