Коротко: SWIFT припинить MT940 до листопада 2028 року. Bank Statement Parser обробляє і MT940, і CAMT.053 через єдиний API, тому ваш pipeline аналізу працюватиме під час переходу та після нього.
Чому ця міграція важлива
SWIFT припиняє підтримку застарілих форматів повідомлень MT на користь розширеного стандарту ISO 20022. Для казначейських та фінансових команд це означає, що ваші pipeline обробки банківських виписок повинні перейти з MT940 на CAMT.053 до жорстких дедлайнів.
Графік міграції SWIFT
| Дата | Етап | Вплив |
|---|---|---|
| Листопад 2025 | Припинено співіснування MT-MX для транскордонних платежів | Повідомлення PACS тепер тільки ISO 20022 |
| Листопад 2026 | Обов’язкові структуровані/гібридні адреси; MT101 з кількома інструкціями відхиляється; Фаза 1 Case Management | Формати адрес мають відповідати; деякі MT-повідомлення будуть відхилені |
| Кінець 2026 | Початок opt-in для отримання 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: ключові відмінності
| Характеристика | MT940 | CAMT.053 |
|---|---|---|
| Насиченість даними | Обмежені поля | У 3–5 разів більше даних на транзакцію |
| Набір символів | Обмежений (набір символів SWIFT) | Повний Unicode |
| Структура | Плоский текст з тегами | XML з просторами імен |
| Звітність за балансом | Тільки початковий/кінцевий | Кілька типів балансу |
| Посилання | Одне поле посилання | Кілька типів посилань |
| Обробка валют | Базова | Повна мультивалютність з обмінними курсами |
Як допомагає Bank Statement Parser
- Єдиний API: Аналізуйте MT940, CAMT.053 та PDF-виписки в одному робочому процесі зі стабільним DataFrame-виводом.
- Автовизначення: Не потрібно знати формат заздалегідь.
detect_statement_format()визначає його автоматично. - Гібридний PDF pipeline: Банки, що надають тільки PDF-виписки під час переходу, обслуговуються через
smart_ingest()з автоматичною перевіркою балансу. - Незалежність від просторів імен: Обробляє будь-який варіант CAMT.053 (001.02, 001.04 або банківські обгортки) без конфігурації.
- Мультивалютна перевірка:
verify_balance_multi_currency()виконує Золоте правило для кожної групи валют — важливо для мультивалютних CAMT-виписок. - Streaming: Обробка великих CAMT-файлів (50 МБ+, 50K+ транзакцій) з обмеженою пам’яттю.
- Експорт у бухгалтерію: Експорт напряму у формат hledger або beancount для казначейського обліку.
- Тестування міграції: Запустіть обидва парсери паралельно на однаковий період, щоб перевірити узгодженість результатів перед переключенням.
Початок роботи
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
Для PDF-виписок від банків, що ще не пропонують структурований CAMT-експорт:
from bankstatementparser.hybrid import smart_ingest
result = smart_ingest("statement.pdf")
assert result.verification.status == "VERIFIED"
Порівняйте з альтернативами ❯ | Перегляньте реальні сценарії використання ❯