TL;DR: SWIFT va retrage MT940 până în noiembrie 2028. Bank Statement Parser gestionează atât MT940, cât și CAMT.053 cu un singur API, astfel încât pipeline-ul de parsare funcționează în timpul tranziției și după aceea.
De ce este importantă această migrație
SWIFT retrage formatele vechi de mesaje MT în favoarea standardului ISO 20022, mai bogat în date. Pentru echipele de trezorerie și finanțe, aceasta înseamnă că pipeline-urile de procesare a extraselor bancare trebuie să evolueze de la MT940 la CAMT.053 înainte de termenele ferme.
Cronologia migrației SWIFT
| Dată | Reper | Impact |
|---|---|---|
| Noiembrie 2025 | Coexistența MT-MX s-a încheiat pentru plățile transfrontaliere | Mesajele PACS sunt acum exclusiv ISO 20022 |
| Noiembrie 2026 | Adresele structurate/hibride obligatorii; MT101 multi-instrucțiune respins; Management cazuri Faza 1 | Formatele de adrese trebuie să se conformeze; unele mesaje MT vor fi respinse |
| Sfârșitul 2026 | Începe perioada de înscriere pentru primirea CAMT.052/.053/.054 | Instituțiile financiare pot începe să primească extrase ISO native |
| Noiembrie 2027 | Toate instituțiile financiare trebuie să primească CAMT.053 nativ | SWIFT oprește conversia formatului MT în ISO; sistemele trebuie să parseze CAMT direct |
| Noiembrie 2028 | MT940/MT942/MT950/MT900/MT910 retrase complet | Formatele vechi de extrase nu mai sunt disponibile; CAMT.052/.053/.054 sunt singura opțiune |
Ce se schimbă în codul dumneavoastră
Înainte: Doar MT940
from bankstatementparser import Mt940Parser
parser = Mt940Parser("statement.mt940")
df = parser.parse()
După: Ambele formate cu detectare automată
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
Funcția detect_statement_format() identifică dacă fișierul este MT940, CAMT.053, PAIN.001 sau orice alt format suportat. Funcția create_parser() returnează parserul corect. Codul ulterior funcționează identic, indiferent de formatul sursă.
CAMT.053 vs MT940: diferențe cheie
| Caracteristică | MT940 | CAMT.053 |
|---|---|---|
| Bogăția datelor | Câmpuri limitate | De 3-5 ori mai multe date per tranzacție |
| Set de caractere | Limitat (set caractere SWIFT) | Unicode complet |
| Structură | Text simplu cu etichete | XML cu namespace-uri |
| Raportare solduri | Doar deschidere/închidere | Mai multe tipuri de solduri |
| Referințe | Un singur câmp de referință | Mai multe tipuri de referințe |
| Gestionare valute | De bază | Multi-valută completă cu rate de schimb |
Cum ajută Bank Statement Parser
- API unificat: Parsați MT940, CAMT.053 și extrase PDF cu același flux de lucru, producând ieșire DataFrame consistentă.
- Detectare automată: Nu este nevoie să cunoașteți formatul în avans.
detect_statement_format()îl identifică automat. - Pipeline hibrid PDF: Băncile care oferă doar extrase PDF în timpul tranziției sunt gestionate de
smart_ingest()cu verificare automată a soldului. - Namespace-agnostic: Gestionează orice variantă CAMT.053 (001.02, 001.04 sau învelișuri specifice băncii) fără configurație.
- Verificare multi-valută:
verify_balance_multi_currency()execută Regula de Aur pe fiecare grup de valută — esențial pentru extrasele CAMT multi-valută. - Streaming: Procesați fișiere CAMT mari (50 MB+, 50K+ tranzacții) cu memorie limitată.
- Export registru: Export direct în format jurnal hledger sau beancount pentru contabilitatea de trezorerie.
- Testare de migrare: Rulați ambele parsere în paralel pe același interval de date pentru a verifica consistența înainte de a comuta.
Primii pași
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
Pentru extrase PDF de la bănci care nu oferă încă exporturi CAMT structurate:
from bankstatementparser.hybrid import smart_ingest
result = smart_ingest("statement.pdf")
assert result.verification.status == "VERIFIED"
Comparați cu alternative ❯ | Vedeți cazuri reale de utilizare ❯