Чому ця міграція важлива
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 | Усі FI повинні отримати 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
Thedetect_statement_format()функція визначає, чи файл має формат MT940, CAMT.053, PAIN.001 чи будь-який інший підтримуваний формат. Thecreate_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 МБ+, 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