Bank Statement Parser — це бібліотека Python з відкритим кодом, яка аналізує банківські виписки із семи форматів (CAMT.053, PAIN.001, CSV, OFX, QFX, MT940 та PDF) у структуровані pandas DataFrames. Уся обробка виконується локально — детермінований результат, автоматичне приховування персональних даних та опціональний гібридний PDF pipeline, який за потреби використовує локальні LLM.
Розпочніть за лічені секунди
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
Одна бібліотека, сім форматів
Аналізуйте CAMT.053, PAIN.001, CSV, OFX, QFX, MT940 та PDF у структуровані pandas DataFrames за допомогою єдиного API. Не потрібно встановлювати окремі пакети для кожного формату.
| Функція | Bank Statement Parser | Одноформатні OSS (mt940, ofxparse) | SaaS (Ocrolus, Parseur) |
|---|---|---|---|
| Підтримувані формати | 7, єдиний API | По 1 кожний | Багато (через OCR) |
| Підтримка PDF | Гібридний pipeline (детерміністичний + LLM + vision) | Ні | Так (хмарний OCR) |
| Конфіденційність даних | 100% локально (LLM працюють локально через Ollama) | 100% локально | Дані надсилаються назовні |
| Вартість | Безкоштовно, Apache 2.0 | Безкоштовно | $49–$1 000+/міс |
| Перевірка балансу | Золоте правило (початок + надходження − списання = кінець) | Ні | По-різному |
| Приховування персональних даних | Вбудоване, увімкнене за замовчуванням | Ні | По-різному |
| Streaming | Обмежена пам'ять | Ні | N/A |
| REST API | Вбудований мікросервіс FastAPI | Ні | Так |
| Дедуплікація | Ідемпотентні hash транзакцій | Ні | Частково |
| Експорт у бухгалтерію | hledger + beancount | Ні | Ні |
Гібридний PDF Pipeline
Bank Statement Parser v0.0.5+ містить тришляховий гібридний pipeline для PDF банківських виписок:
- Шлях A (Детерміністичний): Структуровані PDF-таблиці аналізуються напряму — безкоштовно, найшвидше, без LLM.
- Шлях B (Текстовий LLM): Цифрові PDF зі складною структурою обробляються локальним LLM (LiteLLM/Ollama).
- Шлях C (Vision LLM): Скановані або фотокопійовані виписки обробляються мультимодальними моделями.
Кожне витягування перевіряється Золотим правилом: opening balance + credits − debits == closing balance.
Створено для міграції на ISO 20022
SWIFT встановив чіткі терміни: усі фінансові установи мають приймати CAMT.053 до листопада 2027 року, а MT940/MT942/MT950 буде повністю припинено до листопада 2028 року. Bank Statement Parser працює як із застарілим MT940, так і з сучасними форматами ISO 20022 (CAMT.053, PAIN.001) через єдиний API. Ваш pipeline аналізу працюватиме під час переходу і після нього.
Продуктивність
- 27 000+ транзакцій/секунду для аналізу CAMT.053
- 52 000+ транзакцій/секунду для аналізу PAIN.001
- < 2 мс час до першого результату
- Стала пам'ять від 1K до 50K+ транзакцій завдяки streaming
- 718 тестів зі 100% покриттям гілок у Python 3.10–3.14
Чому Bank Statement Parser?
- Гібридне витягування з PDF:
smart_ingest()обробляє цифрові та скановані PDF з автоматичним маршрутизуванням і перевіркою балансу. - Автовизначення формату:
detect_statement_format()розпізнає файли автоматично, аcreate_parser()повертає потрібний парсер. - Приватність насамперед: Приховування персональних даних увімкнене за замовчуванням. LLM працюють локально через Ollama — жодні дані не залишають вашу машину.
- REST API: Розгортайте як мікросервіс FastAPI з ендпоінтами
/ingestта/health. - Збагачення: Категоризація транзакцій за допомогою LLM із підключними схемами (за замовчуванням — 13 категорій Plaid).
- Експорт у бухгалтерію: Експорт у формати hledger та beancount для plaintext-accounting.
- Масове сканування:
scan_and_ingest()обробляє дерева каталогів з автоматичною крос-файловою дедуплікацією. - Мультивалютність:
verify_balance_multi_currency()виконує перевірку Золотим правилом для кожної групи валют. - Готовність до продакшену: Безпечне завантаження ZIP, валідація вхідних даних, захист від обходу шляхів та інтерактивний режим перевірки.
- Гнучкий вивід: Експорт у CSV, JSON, Excel, Polars, hledger або beancount.
- Паралельна обробка: Аналізуйте кілька файлів одночасно за допомогою
parse_files_parallel().
Створено для продакшену
Bank Statement Parser розроблений для команд казначейства, розробників фінтех-рішень та спеціалістів з комплаєнсу, які обробляють конфіденційні фінансові дані. Бібліотека використовується в pipeline міграції MT940-на-CAMT, автоматизованих системах звірки, завантаженні PDF-виписок та робочих процесах регуляторного аудиту у фінансових установах.
- 718 тестів зі 100% покриттям гілок у Python 3.10–3.14
- Залежності із SHA-256 hash-блокуванням та CycloneDX SBOM для кожного релізу
- Детермінований результат — ідентичний вхід дає побайтово однаковий результат щоразу
- Ліцензія Apache 2.0 — вільне використання в комерційних та внутрішніх системах
Оцінюєте альтернативи? Дивіться порівняння Bank Statement Parser ❯ | Ознайомтеся з реальними сценаріями використання ❯
Розпочати ❯ | Переглянути на GitHub ❯ | Переглянути на PyPI ❯