حالات الاستخدام

تطبيقات واقعية

الخزينة: ترحيل MT940 إلى CAMT.053

تعمل فرق الخزينة حول العالم على الترحيل من MT940 إلى CAMT.053 قبل الموعد النهائي لـ SWIFT في نوفمبر 2027. يتعامل محلل كشوف الحسابات البنكية مع كلا التنسيقين بواجهة API واحدة، مما يجعل الانتقال سلساً.

from bankstatementparser import create_parser, detect_statement_format

# Process both MT940 and CAMT.053 with the same code
for file in daily_statement_files:
    fmt = detect_statement_format(file)
    parser = create_parser(file, fmt)
    df = parser.parse()
    load_to_treasury_system(df)

المطابقة الآلية

حلّل كشوف الحسابات البنكية وطابقها مع السجلات الداخلية تلقائياً. مخرجات DataFrame الموحدة تجعل منطق المطابقة مستقلاً عن التنسيق.

from bankstatementparser import CamtParser, Deduplicator

parser = CamtParser("bank_statement.xml")
bank_txns = parser.parse()

# Deduplicate before reconciliation
dedup = Deduplicator()
result = dedup.deduplicate(dedup.from_dataframe(bank_txns))
clean_txns = result.unique_transactions

# Match against internal records
unmatched = reconcile(clean_txns, internal_ledger)

خطوط أنابيب الامتثال والتدقيق

أنشئ خطوط أنابيب جاهزة للتدقيق مع إخفاء PII ومخرجات حتمية. كل تشغيل ينتج نتائج متطابقة لنفس المدخلات، مما يلبي متطلبات قابلية إعادة الإنتاج التنظيمية.

from bankstatementparser import CamtParser

parser = CamtParser("statement.xml")

# Stream with PII redacted for audit logs
for txn in parser.parse_streaming(redact_pii=True):
    audit_log.write(txn)

# Export full data for secure internal processing
parser.export_csv("archive/statement.csv")

سير عمل SFTP إلى DataFrame

تقدم العديد من البنوك الكشوف عبر SFTP. حلّل مباشرة من البايتات دون الكتابة على القرص.

from bankstatementparser import CamtParser

xml_bytes = sftp_client.read("daily_statement.xml")
parser = CamtParser.from_bytes(xml_bytes, source_name="daily.xml")
df = parser.parse()

التوحيد متعدد البنوك

وحّد الكشوف من بنوك متعددة تستخدم تنسيقات مختلفة في مجموعة بيانات موحدة ومعيارية.

from bankstatementparser import parse_files_parallel

results = parse_files_parallel([
    "hsbc/camt053.xml",
    "barclays/mt940.sta",
    "revolut/transactions.csv",
    "wise/statement.ofx",
])

all_transactions = pd.concat([r.transactions for r in results if r.status == "success"])

المعالجة الدفعية لأرشيفات ZIP

عالج أرشيفات الكشوف المضغوطة بأمان مع حماية مدمجة ضد ZIP bombs.

from bankstatementparser import iter_secure_xml_entries, CamtParser

for entry in iter_secure_xml_entries("monthly_statements.zip"):
    parser = CamtParser.from_bytes(entry.xml_bytes, source_name=entry.source_name)
    df = parser.parse()
    save_to_warehouse(entry.source_name, df)