Bank Statement Parser gerçek dünyadaki finansal iş akışlarını yönetir: PDF banka ekstresi alımı, MT940'tan CAMT'ye geçiş, bakiye doğrulamalı otomatik mutabakat, uyumluluk pipeline'ları, düz metin muhasebe dışa aktarımı, REST API dağıtımları, toplu tarama ve çoklu banka konsolidasyonu.
PDF Banka Ekstresi Alımı
Sonuç: Dijital ve taranmış PDF banka ekstrelerini otomatik bakiye doğrulamasıyla ayrıştırın — bulut API'si yok, hiçbir veri makinenizden çıkmaz.
Hibrit PDF pipeline her PDF'yi en uygun çıkarım yolundan geçirir ve her sonucu doğrular.
from bankstatementparser.hybrid import smart_ingest
result = smart_ingest("statement.pdf")
print(result.source_method) # "deterministic" | "llm" | "vision"
print(result.verification.status) # VERIFIED | DISCREPANCY | FAILED
# Review discrepancies interactively
# bankstatementparser --type review --input result.json
Toplu Ekstre İşleme
Sonuç: Klasör ağaçlarını (yüzlerce PDF, XML, CSV) tek bir çağrıda otomatik çapraz dosya tekilleştirmesiyle tarayın.
from bankstatementparser.hybrid import scan_and_ingest
batch = scan_and_ingest("statements/2026/", pattern="**/*.pdf")
print(f"Files: {len(batch.results)}, Unique txns: {batch.unique_count}")
Hazine: MT940'tan CAMT.053'e Geçiş
Sonuç: SWIFT geçiş penceresi (Kasım 2025-Kasım 2028) boyunca tek bir API çağrısı hem MT940'ı hem de CAMT.053'ü işler. Ayrı ayrıştırma pipeline'larına gerek kalmaz.
Dünya çapındaki hazine ekipleri, Kasım 2027 SWIFT son tarihinden önce MT940'tan CAMT.053'e geçiş yapıyor. Bank Statement Parser her iki formatı da tek bir API ile işleyerek geçişi sorunsuz kılar.
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)
Bakiye Doğrulamalı Otomatik Mutabakat
Sonuç: Altın Kural doğrulaması ve tekilleştirmeli formattan bağımsız DataFrames, hataları ve kopyaları defterinize ulaşmadan yakalar.
Banka ekstrelerini ayrıştırın, bakiyeleri doğrulayın ve dahili kayıtlarla otomatik eşleştirin.
from bankstatementparser import CamtParser, Deduplicator
from bankstatementparser.hybrid import verify_balance_multi_currency
parser = CamtParser("bank_statement.xml")
bank_txns = parser.parse()
# Verify balances per currency
verification = verify_balance_multi_currency(bank_txns)
for ccy, result in verification.items():
assert result.status == "VERIFIED", f"{ccy} balance mismatch!"
# 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)
Düz Metin Muhasebe (hledger / beancount)
Sonuç: PDF banka ekstrelerini otomatik alın ve sınıflandırılmış işlemleri hledger veya beancount defter formatına aktarın.
from bankstatementparser.hybrid import smart_ingest
from bankstatementparser.enrichment import Categorizer
from bankstatementparser.export import to_hledger
result = smart_ingest("statement.pdf")
categorizer = Categorizer()
enriched = categorizer.categorize_batch(result.transactions)
journal = to_hledger(enriched, account="Assets:Bank:Checking")
REST API Dağıtımı
Sonuç: Bank Statement Parser'ı HTTP üzerinden ekstre dosyaları kabul eden ve yapılandırılmış JSON döndüren bir mikro hizmet olarak dağıtın.
# Start the API server
bankstatementparser-api --port 8000
# Ingest a statement
curl -X POST http://localhost:8000/ingest \
-F "file=@statement.pdf"
Uyumluluk ve Denetim Pipeline'ları
Sonuç: Deterministik çıktı, otomatik PII redaksiyonu ve Altın Kural doğrulaması, düzenleyici tekrarlanabilirlik gereksinimlerini karşılayan denetime hazır günlükler üretir.
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'den DataFrame'e İş Akışları
Sonuç: Sıfır disk G/Ç ile doğrudan baytlardan ayrıştırın. SFTP ve API odaklı banka bağlantı iş akışlarına doğal olarak uyum sağlar.
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()
Çoklu Banka Konsolidasyonu
Sonuç: HSBC (CAMT), Barclays (MT940), Revolut (CSV), Wise (OFX) ve Chase (PDF) genelinde paralel ayrıştırma tek bir normalleştirilmiş veri kümesi üretir.
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 Arşivleriyle Toplu İşleme
Sonuç: Yerleşik ZIP bomba koruması (100:1 oran sınırı, 10 MB giriş üst sınırı, şifreli giriş reddi) aylık ekstre arşivlerini güvenle işlemenizi sağlar.
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)
Alternatiflerle karşılaştırın ❯ | ISO 20022 geçişinizi planlayın ❯ | Başlayın ❯