ISO 20022 移行ガイド

SWIFT MT から ISO 20022 への移行をナビゲートする

TL;DR: SWIFT は 2028 年 11 月までに MT940 を廃止します。Bank Statement Parser は MT940 と CAMT.053 の両方を単一の API で処理するため、解析パイプラインは移行中もその後も機能します。

この移行が重要な理由

SWIFT は、より充実した ISO 20022 標準を支持して、レガシーの MT メッセージ形式を廃止します。財務チームにとって、これは銀行取引明細書処理パイプラインを期限までに MT940 から CAMT.053 へ進化させる必要があることを意味します。

SWIFT 移行タイムライン

日付 マイルストーン 影響
2025 年 11 月 クロスボーダー決済における MT-MX 共存が終了 PACS メッセージは ISO 20022 のみに
2026 年 11 月 構造化/ハイブリッドアドレスが必須。MT101 複数命令が拒否。ケースマネジメントフェーズ 1 アドレス形式の準拠が必要。一部の MT メッセージが拒否される
2026 年後半 CAMT.052/.053/.054 受信のオプトイン開始 金融機関がネイティブ ISO 明細書の受信を開始可能
2027 年 11 月 すべての FI が 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 vs MT940: 主な違い

特徴 MT940 CAMT.053
データの豊富さ 限られたフィールド トランザクションあたり 3〜5 倍のデータ
文字セット 制限あり(SWIFT 文字セット) 完全な Unicode
構造 タグ付きフラットテキスト 名前空間付き XML
残高レポート 期首/期末のみ 複数の残高タイプ
参照情報 単一の参照フィールド 複数の参照タイプ
通貨の取り扱い 基本的 為替レートを含む完全なマルチ通貨

Bank Statement Parser がどのように役立つか

はじめる

pip install bankstatementparser
from bankstatementparser import create_parser, detect_statement_format

# Works with MT940 today, CAMT.053 tomorrow, PDF anytime
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

構造化 CAMT エクスポートをまだ提供していない銀行の PDF 明細書の場合:

from bankstatementparser.hybrid import smart_ingest

result = smart_ingest("statement.pdf")
assert result.verification.status == "VERIFIED"

完全なドキュメントを読む

代替案と比較 ❯ | 実際のユースケースを参照 ❯