Парсер банковских выписок

Переход SWIFT MT на ISO 20022

TL;DR: SWIFT прекратит поддержку MT940 к ноябрю 2028 года. Анализатор банковских выписок обрабатывает как MT940, так и CAMT.053 с помощью единого API, поэтому ваш конвейер анализа работает во время перехода и после него.

Почему эта миграция важна

SWIFT отказывается от устаревших форматов сообщений MT в пользу более расширенного стандарта ISO 20022. Для отделов казначейства и финансов это означает, что ваши конвейеры обработки банковских выписок должны перейти от MT940 к CAMT.053 до наступления жестких сроков.

График миграции SWIFT

Дата Веха Влияние
Ноябрь 2025 г. Сосуществование MT-MX прекращено для трансграничных платежей Сообщения PACS теперь относятся только к ISO 20022.
Ноябрь 2026 г. Структурированные/гибридные адреса обязательны; Мультиинструкция MT101 отклонена; Управление делами, этап 1 Форматы адресов должны соответствовать; некоторые сообщения MT будут отклонены
Конец 2026 г. Начинается подписка на получение CAMT.052/.053/.054. Финансовые учреждения могут начать получать собственные заявления ISO
Ноябрь 2027 г. Все финансовые учреждения должны получить CAMT.053 изначально. SWIFT прекращает преобразование формата MT в ISO; ваши системы должны анализировать CAMT напрямую
Ноябрь 2028 г. 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: ключевые различия

Особенность МТ940 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

Прочитайте полную документацию

Сравнить с альтернативами ❯ | См. реальные примеры использования ❯