Parser банківських виписок — це бібліотека Python з відкритим кодом, яка аналізує банківські виписки з шести форматів у структуровані pandas DataFrames. Уся обробка відбувається локально – відсутність мережевих викликів, детермінований вихід і автоматичне редагування ідентифікаційної інформації.
Для кого це?
- Команди казначейства переходять з MT940 на CAMT.053, яким під час переходу потрібен парсер, який обробляє як старі, так і нові формати.
- Розробники фінтехів, які створюють конвеєри узгодження, звітності або обліку, яким потрібна єдина залежність замість зшивання mt940 + ofxparse + спеціальної логіки CSV.
- Команди відповідності, яким за замовчуванням потрібна редакція ідентифікаційної інформації та детермінований вихід, готовий до аудиту, який ніколи не надсилає дані зовнішнім службам.
- Будь-хто, хто відмовляється надсилати конфіденційні фінансові дані до стороннього SaaS, коли локальний інструмент із відкритим кодом може виконати цю роботу.
Підтримувані формати
| Формат | Стандартний | Типи файлів | Клас аналізатора |
|---|---|---|---|
| CAMT.053 | ISO 20022 Заява від банку до клієнта | .xml |
CamtParser |
| БІЛЬ.001 | ISO 20022 Ініціювання переказу кредитів | .xml |
Pain001Parser |
| CSV | Загальний банківський експорт | .csv |
CsvStatementParser |
| OFX | Відкрита фінансова біржа | .ofx |
OfxParser |
| QFX | Quicken Financial Exchange | .qfx |
QfxParser |
| MT940 | Стандарт SWIFT | .mt940, .sta |
Mt940Parser |
Усі формати створюють нормалізовані pandas DataFrames із узгодженими назвами стовпців, що робить подальшу обробку незалежною від формату.
Ключові можливості
- Автоматичне визначення формату:
detect_statement_format()визначає формат;create_parser()створює правильний аналізатор. - Потоковий аналіз: обробляйте великі файли (50 МБ+, 50K+ транзакцій) з обмеженою пам’яттю за допомогою
parse_streaming(). - Паралельна обробка: аналіз кількох файлів одночасно
parse_files_parallel()за допомогою ProcessPoolExecutor. - Дедуплікація: виявляйте точні дублікати та ймовірні збіги за допомогою зрозумілих балів достовірності.
- Аналіз пам'яті:
from_string()іfrom_bytes()для робочих процесів SFTP і API без дискового введення-виведення. - Безпечна обробка ZIP:
iter_secure_xml_entries()з обмеженнями коефіцієнта стиснення, обмеженням розміру запису та відхиленням зашифрованого запису. - Експорт: CSV, JSON, Excel (
.xlsx) і додаткові фрейми даних Polars.
Безпека та конфіденційність
- Редакція ідентифікаційної інформації: імена, IBAN та адреси маскуються за замовчуванням у вихідних даних CLI. Підключитися за допомогою
--show-pii. - Захист XXE: використання аналізу XML
resolve_entities=False,no_network=True,load_dtd=False. - ZIP Bomb Protection: обмеження на ступінь стиснення (за замовчуванням 100:1), максимальний розмір запису (10 МБ), відхилення зашифрованого запису.
- Path Traversal Prevention: небезпечний список блокувань шаблонів і розділення символічних посилань.
- Безпека ланцюга поставок: хеш-блоковані залежності SHA-256, CycloneDX SBOM, атестація походження збірки.
Продуктивність
| Метрика | Значення |
|---|---|
| Пропускна здатність CAMT.053 | 27 000+ передачі/с |
| Пропускна здатність PAIN.001 | 52 000+ передачі/с |
| Затримка кожної транзакції (CAMT) | 37 мікросекунд |
| Затримка кожної транзакції (PAIN.001) | 19 мікросекунд |
| Час до першого результату | < 2 мс |
| Масштабування пам'яті (1K-50K tx) | Постійний (потоковий) |
| Тестове покриття | 100% покриття відділення |
| Тести | 467 у 29 тестових файлах |
Почніть будувати
Початок роботи зі встановлення та приклади ❯
«Сховище GitHub»