Парсер банківських виписок

Програми реального світу

Міністерство фінансів: перехід з 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)

Конвеєри відповідності та аудиту

Створюйте конвеєри, готові до аудиту, із редагуванням ідентифікаційної інформації та детермінованим виходом. Кожен запуск дає ідентичні результати для однакових вхідних даних, задовольняючи нормативні вимоги щодо відтворюваності.

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-to-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.

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)