TL;DR: SWIFT akan menghentikan MT940 pada November 2028. Bank Statement Parser menangani MT940 dan CAMT.053 dengan satu API, sehingga pipeline parsing Anda berfungsi selama transisi dan setelahnya.
Mengapa Migrasi Ini Penting
SWIFT menghentikan format pesan MT lama demi standar ISO 20022 yang lebih kaya. Untuk tim perbendaharaan dan keuangan, ini berarti pipeline pemrosesan laporan bank Anda harus berevolusi dari MT940 ke CAMT.053 sebelum tenggat waktu final.
Garis Waktu Migrasi SWIFT
| Tanggal | Tonggak Pencapaian | Dampak |
|---|---|---|
| November 2025 | Koeksistensi MT-ke-MX berakhir untuk pembayaran lintas batas | Pesan PACS sekarang hanya ISO 20022 |
| November 2026 | Alamat terstruktur/hibrida wajib; multi-instruksi MT101 ditolak; Manajemen Kasus Fase 1 | Format alamat harus patuh; beberapa pesan MT akan ditolak |
| Akhir 2026 | Opt-in dimulai untuk menerima CAMT.052/.053/.054 | Lembaga keuangan dapat mulai menerima laporan ISO native |
| November 2027 | Semua FI harus menerima CAMT.053 secara native | SWIFT berhenti mengonversi format MT ke ISO; sistem Anda harus mengurai CAMT langsung |
| November 2028 | MT940/MT942/MT950/MT900/MT910 pensiun sepenuhnya | Format laporan lama tidak lagi tersedia; CAMT.052/.053/.054 satu-satunya pilihan |
Apa yang Berubah pada Kode Anda
Sebelumnya: Hanya MT940
from bankstatementparser import Mt940Parser
parser = Mt940Parser("statement.mt940")
df = parser.parse()
Setelah: Kedua Format dengan Deteksi Otomatis
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
Fungsi detect_statement_format() mengidentifikasi apakah file tersebut MT940, CAMT.053, PAIN.001, atau format lain yang didukung. Fungsi create_parser() mengembalikan parser yang tepat. Kode hilir Anda berfungsi identik tanpa memandang format sumber.
CAMT.053 vs MT940: Perbedaan Utama
| Fitur | MT940 | CAMT.053 |
|---|---|---|
| Kekayaan data | Field terbatas | 3-5x lebih banyak data per transaksi |
| Set karakter | Terbatas (charset SWIFT) | Unicode penuh |
| Struktur | Teks datar dengan tag | XML dengan namespace |
| Pelaporan saldo | Pembukaan/penutupan saja | Berbagai jenis saldo |
| Referensi | Satu field referensi | Berbagai jenis referensi |
| Penanganan mata uang | Dasar | Multi-mata uang penuh dengan nilai tukar |
Bagaimana Bank Statement Parser Membantu
- API Terpadu: Parsing MT940, CAMT.053, dan laporan PDF dengan alur kerja yang sama, menghasilkan output DataFrame konsisten.
- Deteksi otomatis: Tidak perlu mengetahui format terlebih dahulu.
detect_statement_format()mengidentifikasinya secara otomatis. - Pipeline PDF hibrida: Bank yang hanya menyediakan laporan PDF selama transisi ditangani oleh
smart_ingest()dengan verifikasi saldo otomatis. - Namespace-agnostic: Menangani varian CAMT.053 apa pun (001.02, 001.04, atau wrapper khusus bank) tanpa konfigurasi.
- Verifikasi multi-mata uang:
verify_balance_multi_currency()menjalankan Golden Rule per kelompok mata uang — penting untuk laporan CAMT multi-mata uang. - Streaming: Proses file CAMT besar (50 MB+, 50K+ transaksi) dengan memori terbatas.
- Ekspor ledger: Ekspor langsung ke format jurnal hledger atau beancount untuk akuntansi treasury.
- Pengujian migrasi: Jalankan kedua parser berdampingan pada rentang tanggal yang sama untuk memverifikasi konsistensi output sebelum beralih.
Memulai
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
Untuk laporan PDF dari bank yang belum menawarkan ekspor CAMT terstruktur:
from bankstatementparser.hybrid import smart_ingest
result = smart_ingest("statement.pdf")
assert result.verification.status == "VERIFIED"
Bandingkan dengan alternatif ❯ | Lihat kasus penggunaan nyata ❯