Лёгкий офлайн-конвертер банковских выписок Яндекс Банка (YABANK, Яндекс Пэй) из PDF в XLSX (Excel), CSV или JSON. Поддерживаются оба вида выписок: по вкладу («Сейв») и по карте (банковский счёт) — вид определяется автоматически. Все данные обрабатываются локально — банковская выписка никуда не отправляется.
Offline converter for Yandex Bank (Russia) PDF account statements into Excel (XLSX), CSV or JSON. Supports both statement kinds — savings («Сейв» deposit) and card account. 100% local processing: no uploads, no analytics, no telemetry — your banking data never leaves your computer.
Если вы искали: «конвертер выписки Яндекс Банка», «выписка Яндекс Пэй в Excel», «выписка по вкладу Сейв PDF в таблицу», «выписка Яндекс Банка по карте в Excel», «парсер PDF-выписки банка» — это оно.
- читает «Выписку по договору» Яндекс Банка (PDF), сам различая вклад и карту;
- вклад: описание, дата операции, сумма в валюте договора;
- карта: описание (склеивается из нескольких строк), дата и время операции (время в PDF стоит отдельной строкой «в 11:33»), дата обработки, номер карты, суммы в валюте операции и договора;
- сортирует от старых к новым; списания — отрицательные, поступления — положительные;
- сверяет суммы с итогами банка («Входящий/Исходящий остаток»,
«Итого списаний/зачислений» у вклада, «Всего расходных/приходных операций»
у карты); при расхождении файл создаётся с пометкой
_VERIFICATION_FAILED; - сохраняет результат в XLSX (по умолчанию), CSV (разделитель на выбор) или JSON.
Нужен только установленный Python 3.10+ (в Windows при установке отметьте «Add Python to PATH»). Дальше:
- Windows — двойной щелчок по
start_windows.bat; - Linux/Mac — запустите
./start_linux_mac.sh.
Первый запуск сам установит зависимости (около минуты), затем автоматически откроется браузер со страницей конвертера: перетащите PDF → «Конвертировать» → «Скачать результат».
Через uv (рекомендуется):
uv syncЛибо классически:
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt# XLSX по умолчанию, результат рядом с исходником: statement_converted.xlsx
python converter.py statement.pdf
# явное имя результата; формат определяется расширением (.xlsx/.csv/.json)
python converter.py statement.pdf result.csv
# CSV с другим разделителем
python converter.py statement.pdf result.csv --delimiter ","(при использовании uv — uv run python converter.py ...)
python converter.py --web # браузер откроется автоматически
python converter.py --web --no-browser --port 9000Страница доступна на http://127.0.0.1:8739/ — перетащите PDF, выберите формат, нажмите «Конвертировать» и скачайте результат.
Архитектура: браузер не может запускать локальный Python напрямую, поэтому используется крошечный web-сервер стандартной библиотеки (вариант A из SPEC). Он слушает только 127.0.0.1 — снаружи компьютера недоступен.
Выписка обрабатывается локально. Никаких внешних запросов, аналитики, telemetry, CDN — см. PRIVACY.md.
uv run pytestТесты используют синтетические PDF-макеты обоих видов выписки
(tests/fixtures/, генератор tests/fixtures/make_fixtures.py). Реальные
выписки в репозиторий не попадают (data/ в .gitignore); локальные
интеграционные тесты на реальных файлах автоматически пропускаются,
если файлов нет.
- Поддерживается только «Выписка по договору» Яндекс Банка (вклад «Сейв» и банковский счёт).
- В выписке по вкладу у операций нет времени — в результате выводится только дата (ТЗ просит DD.MM.YYYY HH:MM, но времени в данных банка нет).
- Таблицы в PDF без разделительных линий, разбор построчный; длинные описания склеиваются из нескольких строк через пробел.