Tại sao việc di chuyển này lại quan trọng
SWIFT đang gỡ bỏ các định dạng tin nhắn MT cũ để chuyển sang tiêu chuẩn ISO 20022 phong phú hơn. Đối với các nhóm tài chính và ngân quỹ, điều này có nghĩa là quy trình xử lý bảng sao kê ngân hàng của bạn phải phát triển từ MT940 đến CAMT.053 trước thời hạn cứng nhắc.
Dòng thời gian di chuyển SWIFT
| Ngày | Cột mốc quan trọng | Sự va chạm |
|---|---|---|
| Tháng 11 năm 2025 | Sự cùng tồn tại của MT-to-MX đã kết thúc đối với thanh toán xuyên biên giới | Thông báo PACS hiện chỉ có ISO 20022 |
| Tháng 11 năm 2026 | Địa chỉ có cấu trúc/kết hợp bắt buộc; Đa lệnh MT101 bị từ chối; Quản lý trường hợp giai đoạn 1 | Các định dạng địa chỉ phải tuân thủ; một số tin nhắn MT sẽ bị từ chối |
| Cuối năm 2026 | Việc chọn tham gia bắt đầu nhận CAMT.052/.053/.054 | Các tổ chức tài chính có thể bắt đầu nhận báo cáo ISO gốc |
| Tháng 11 năm 2027 | Tất cả các FI phải nhận CAMT.053 nguyên bản | SWIFT ngừng chuyển đổi định dạng MT sang ISO; hệ thống của bạn phải phân tích CAMT trực tiếp |
| Tháng 11 năm 2028 | MT940/MT942/MT950/MT900/MT910 đã ngừng hoạt động hoàn toàn | Các định dạng câu lệnh kế thừa không còn khả dụng nữa; CAMT.052/.053/.054 là lựa chọn duy nhất |
Những thay đổi nào đối với mã của bạn
Trước: Chỉ MT940
from bankstatementparser import Mt940Parser
parser = Mt940Parser("statement.mt940")
df = parser.parse()
Sau: Cả hai định dạng đều có tính năng Tự động phát hiện
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
cácdetect_statement_format()xác định xem tệp là MT940, CAMT.053, PAIN.001 hay bất kỳ định dạng được hỗ trợ nào khác. cáccreate_parser()hàm trả về trình phân tích cú pháp chính xác. Mã xuôi dòng của bạn hoạt động giống hệt nhau bất kể định dạng nguồn.
CAMT.053 so với MT940: Sự khác biệt chính
| Tính năng | MT940 | CAMT.053 |
|---|---|---|
| Sự phong phú của dữ liệu | Các trường giới hạn | Dữ liệu nhiều hơn 3-5 lần cho mỗi giao dịch |
| Bộ ký tự | Bị giới hạn (bộ ký tự SWIFT) | Unicode đầy đủ |
| Kết cấu | Văn bản phẳng có thẻ | XML với các không gian tên |
| Báo cáo số dư | Chỉ mở/đóng | Nhiều loại số dư |
| Tài liệu tham khảo | Trường tham chiếu đơn | Nhiều loại tài liệu tham khảo |
| Xử lý tiền tệ | Nền tảng | Đa tiền tệ đầy đủ với tỷ giá hối đoái |
Trình phân tích sao kê ngân hàng trợ giúp như thế nào
- API hợp nhất: Phân tích cả MT940 và CAMT.053 giống nhau
parse()phương thức, tạo ra các lược đồ DataFrame giống hệt nhau. - Tự động phát hiện: Không cần biết trước định dạng.
detect_statement_format()nhận diện nó một cách tự động. - Không gian tên bất khả tri: Xử lý mọi biến thể CAMT.053 (001.02, 001.04 hoặc trình bao bọc dành riêng cho ngân hàng) mà không cần cấu hình.
- Truyền phát: Xử lý các tệp CAMT lớn (50 MB+, 50K+ giao dịch) với bộ nhớ giới hạn.
- Thử nghiệm di chuyển: Chạy song song cả hai trình phân tích cú pháp trong cùng một phạm vi ngày để xác minh tính nhất quán của đầu ra trước khi chuyển đổi.
Bắt đầu
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