Bank Statement Parser, yedi formattaki (CAMT.053, PAIN.001, CSV, OFX, QFX, MT940 ve PDF) banka ekstrelerini yapılandırılmış pandas DataFrames'e dönüştüren açık kaynaklı bir Python kitaplığıdır. Tüm işlemler yerel olarak çalışır — deterministik çıktı, otomatik PII redaksiyonu ve gerektiğinde yerel LLM'ler üzerinden yönlendirme yapan isteğe bağlı hibrit PDF pipeline.
Saniyeler İçinde Başlayın
pip install bankstatementparser
from bankstatementparser import create_parser, detect_statement_format
fmt = detect_statement_format("statement.xml")
parser = create_parser("statement.xml", fmt)
df = parser.parse() # pandas DataFrame, ready to use
# Parse PDFs with the hybrid pipeline (v0.0.5+)
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
Tek Kitaplık, Yedi Format
CAMT.053, PAIN.001, CSV, OFX, QFX, MT940 ve PDF formatlarını tek bir birleşik API ile yapılandırılmış pandas DataFrames'e dönüştürün. Her format için ayrı paket kurmanıza gerek yok.
| Özellik | Bank Statement Parser | Tek formatlı OSS (mt940, ofxparse) | SaaS (Ocrolus, Parseur) |
|---|---|---|---|
| Desteklenen formatlar | 7, birleşik API | Her biri 1 | Birçok (OCR ile) |
| PDF desteği | Hibrit pipeline (deterministik + LLM + görüntü) | Hayır | Evet (bulut OCR) |
| Veri gizliliği | %100 yerel (LLM'ler Ollama ile yerel çalışır) | %100 yerel | Veriler dışarı gönderilir |
| Maliyet | Ücretsiz, Apache 2.0 | Ücretsiz | 49$-1.000$+/ay |
| Bakiye doğrulama | Altın Kural (açılış + alacak − borç = kapanış) | Hayır | Değişir |
| PII redaksiyonu | Yerleşik, varsayılan olarak açık | Hayır | Değişir |
| Streaming | Sınırlı bellek | Hayır | Yok |
| REST API | Yerleşik FastAPI mikro hizmeti | Hayır | Evet |
| Tekilleştirme | Idempotent işlem hash'leri | Hayır | Kısmen |
| Defter dışa aktarımı | hledger + beancount | Hayır | Hayır |
Hibrit PDF Pipeline
Bank Statement Parser v0.0.5+ sürümü, PDF banka ekstreleri için üç yollu hibrit pipeline içerir:
- Yol A (Deterministik): Yapılandırılmış PDF tabloları doğrudan ayrıştırılır — ücretsiz, en hızlı, LLM gerektirmez.
- Yol B (Metin-LLM): Karmaşık düzene sahip dijital PDF'ler yerel LLM (LiteLLM/Ollama) ile çıkarılır.
- Yol C (Görüntü-LLM): Taranan veya fotokopi edilmiş ekstreler çok modlu görüntü modelleriyle işlenir.
Her çıkarım Altın Kural ile doğrulanır: opening balance + credits − debits == closing balance.
ISO 20022 Geçişi için Tasarlandı
SWIFT kesin son tarihler belirledi: tüm finans kuruluşları Kasım 2027'ye kadar CAMT.053 alabilmelidir ve MT940/MT942/MT950 Kasım 2028'de tamamen kullanımdan kalkacaktır. Bank Statement Parser, hem eski MT940 hem de modern ISO 20022 formatlarını (CAMT.053, PAIN.001) tek bir API'de yönetir. Böylece ayrıştırma pipeline'ınız geçiş sürecinde ve sonrasında çalışmaya devam eder.
Performans
- CAMT.053 ayrıştırma için saniyede 27.000+ işlem
- PAIN.001 ayrıştırma için saniyede 52.000+ işlem
- < 2 ms ilk sonuca ulaşma süresi
- Streaming ile 1K'dan 50K+ işleme kadar sabit bellek
- Python 3.10'dan 3.14'e kadar %100 dal kapsamıyla 718 test
Neden Bank Statement Parser?
- Hibrit PDF Çıkarımı:
smart_ingest()dijital ve taranmış PDF'leri otomatik yönlendirme ve bakiye doğrulama ile işler. - Otomatik Format Algılama:
detect_statement_format()dosyaları otomatik olarak tanır vecreate_parser()doğru ayrıştırıcıyı döndürür. - Önce Gizlilik: PII redaksiyonu varsayılan olarak açıktır. LLM'ler Ollama üzerinden yerel çalışır — hiçbir veri makinenizden çıkmaz.
- REST API:
/ingestve/healthuç noktalarıyla FastAPI mikro hizmeti olarak dağıtın. - Zenginleştirme: Takılabilir şemalarla (varsayılan Plaid 13 kategori) LLM destekli işlem sınıflandırması.
- Defter Dışa Aktarımı: Düz metin muhasebe iş akışları için hledger ve beancount formatlarına aktarın.
- Toplu Tarama:
scan_and_ingest()dosya ağaçlarını otomatik çapraz dosya tekilleştirmesiyle işler. - Çoklu Para Birimi:
verify_balance_multi_currency()para birimi gruplarına göre Altın Kural doğrulaması çalıştırır. - Üretime Hazır: Güvenli ZIP alımı, girdi doğrulama, yol geçişi önleme ve etkileşimli inceleme modu.
- Esnek Çıktı: CSV, JSON, Excel, Polars, hledger veya beancount formatlarına aktarın.
- Paralel İşleme:
parse_files_parallel()ile birden fazla dosyayı eş zamanlı ayrıştırın.
Üretim İçin Tasarlandı
Bank Statement Parser; hassas finansal verileri işleyen hazine ekipleri, fintech geliştiricileri ve uyum görevlileri için tasarlanmıştır. Kitaplık; MT940'tan CAMT'ye geçiş hatlarında, otomatik mutabakat sistemlerinde, PDF ekstre alımında ve finans kuruluşlarındaki düzenleyici denetim iş akışlarında kullanılır.
- Python 3.10'dan 3.14'e kadar %100 dal kapsamıyla 718 test
- Her sürüm için CycloneDX SBOM ile SHA-256 hash kilitli bağımlılıklar
- Deterministik çıktı — aynı girdi her çalıştırmada bayt düzeyinde aynı sonucu üretir
- Apache 2.0 lisanslı — ticari ve dahili sistemlerde serbestçe kullanın
Alternatifleri mi değerlendiriyorsunuz? Bank Statement Parser karşılaştırmasını görün ❯ | Gerçek dünya kullanım örneklerini keşfedin ❯
Başlayın ❯ | GitHub'da görüntüleyin ❯ | PyPI'de görüntüleyin ❯