TL;DR: SWIFT จะเลิกใช้ MT940 ภายในเดือนพฤศจิกายน 2028 ตัวแยกวิเคราะห์ใบแจ้งยอดธนาคาร จัดการทั้ง MT940 และ CAMT.053 ด้วย API เดียว ดังนั้นไปป์ไลน์การแยกวิเคราะห์ของคุณจึงทำงานระหว่างการเปลี่ยนแปลงและหลังจากนั้น
เหตุใดการย้ายถิ่นฐานนี้จึงมีความสำคัญ
SWIFT กำลังเลิกใช้รูปแบบข้อความ MT แบบเดิมเพื่อสนับสนุนมาตรฐาน ISO 20022 ที่สมบูรณ์ยิ่งขึ้น สำหรับทีมคลังและการเงิน หมายความว่าไปป์ไลน์การประมวลผลใบแจ้งยอดบัญชีธนาคารของคุณจะต้องพัฒนาจาก MT940 เป็น CAMT.053 ก่อนถึงกำหนดเวลาที่แน่นอน
เส้นเวลาการย้าย SWIFT
| วันที่ | เหตุการณ์สำคัญ | ผลกระทบ |
|---|---|---|
| พฤศจิกายน 2025 | การอยู่ร่วมกันระหว่าง MT-to-MX สิ้นสุดลงสำหรับการชำระเงินข้ามพรมแดน | ขณะนี้ข้อความ PACS เปลี่ยนเป็น ISO 20022 เท่านั้น |
| พฤศจิกายน 2026 | ที่อยู่แบบมีโครงสร้าง/แบบผสม จำเป็นต้องมี คำสั่งหลายคำสั่ง MT101 ถูกปฏิเสธ; การจัดการคดีระยะที่ 1 | รูปแบบที่อยู่ต้องเป็นไปตาม ข้อความ MT บางข้อความจะถูกปฏิเสธ |
| ปลายปี 2026 | การเลือกเริ่มต้นการรับ CAMT.052/.053/.054 | สถาบันการเงินสามารถเริ่มรับใบแจ้งยอด ISO ดั้งเดิมได้ |
| พฤศจิกายน 2570 | FI ทั้งหมดจะต้องได้รับ CAMT.053 โดยกำเนิด | SWIFT หยุดการแปลงรูปแบบ MT เป็น ISO ระบบของคุณต้องแยกวิเคราะห์ CAMT โดยตรง |
| พฤศจิกายน 2571 | 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()ฟังก์ชั่นส่งคืน parser ที่ถูกต้อง รหัสดาวน์สตรีมของคุณทำงานเหมือนกันโดยไม่คำนึงถึงรูปแบบต้นฉบับ
CAMT.053 กับ MT940: ความแตกต่างที่สำคัญ
| คุณสมบัติ | MT940 | บมจ.053 |
|---|---|---|
| ความสมบูรณ์ของข้อมูล | เขตข้อมูลที่จำกัด | ข้อมูลมากกว่า 3-5 เท่าต่อธุรกรรม |
| ชุดตัวละคร | จำกัด (ชุดอักขระ SWIFT) | ยูนิโค้ดแบบเต็ม |
| โครงสร้าง | ข้อความเรียบๆพร้อมแท็ก | XML พร้อมเนมสเปซ |
| การรายงานยอดคงเหลือ | เปิด/ปิดเท่านั้น | ยอดคงเหลือหลายประเภท |
| อ้างอิง | ช่องอ้างอิงเดียว | การอ้างอิงหลายประเภท |
| การจัดการสกุลเงิน | ขั้นพื้นฐาน | หลากหลายสกุลเงินเต็มรูปแบบพร้อมอัตราแลกเปลี่ยน |
ตัวแยกวิเคราะห์ใบแจ้งยอดธนาคารช่วยได้อย่างไร
- Unified API: แยกวิเคราะห์ทั้ง MT940 และ CAMT.053 ในลักษณะเดียวกัน
parse()วิธีการสร้าง DataFrame schema ที่เหมือนกัน - การตรวจจับอัตโนมัติ: ไม่จำเป็นต้องทราบรูปแบบล่วงหน้า
detect_statement_format()ระบุโดยอัตโนมัติ - ไม่เชื่อเรื่องเนมสเปซ: จัดการตัวแปร CAMT.053 ใดๆ (001.02, 001.04 หรือ Wrapper เฉพาะธนาคาร) โดยไม่มีการกำหนดค่า
- การสตรีม: ประมวลผลไฟล์ CAMT ขนาดใหญ่ (50 MB+, ธุรกรรม 50K+) ด้วยหน่วยความจำแบบจำกัด
- การทดสอบการย้ายข้อมูล: เรียกใช้ parsers ทั้งสองแบบเคียงข้างกันในช่วงวันที่เดียวกันเพื่อตรวจสอบความสอดคล้องของเอาต์พุตก่อนที่จะสลับ
เริ่มต้นใช้งาน
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