Перейти к содержанию
Romanovich.К проектам
Кейс · 06 · 2026

Receipt Scanner.

Десктоп-утилита, которая каждый месяц сверяет фото чеков с банковской выпиской на 14 страниц.

Клиент
Бухгалтерия EU-компании
Роль
Один разработчик, под ключ
Стек
Python · Apple Vision · Claude · pdfplumber · pydantic
Год
2026

Задача.

EU-компания ведёт операционную деятельность в Словакии и Венгрии. Каждый месяц бухгалтер сверяет 30-50 фото чеков с 14-страничной выпиской Fio banka. Это около 150 операций в EUR, часть чеков в HUF и CZK.

На пачку уходило 4-6 часов в месяц. Мелкие чеки терялись. К концу квартала приходилось звонить клиенту и просить документы, которые никто уже не помнил.

Подход.

Я начал с форка open-source линкера, заточенного под Gemini и американские чеки. Оставил то что работает. Переписал остальное.

Парсинг выписки перевёл с vision-модели на pdfplumber плюс text-only Claude. Apple Vision гоняет OCR локально на macOS для простых чеков. Claude vision подключается только когда локальный движок не уверен.

4-6 ч → 2-3 минработа в месяц
$0.10-0.15за прогон сверки
70-85%чеков без облака
2 проходаточный + fuzzy matcher

Решения, о которых стоит сказать.

Десктоп-интерфейс.

Drop-zone слева под чеки, справа под выписку. Боковая панель с API-ключом, путём к отчёту, моделью и окном дат. Внизу прогресс-бар и кнопка «Открыть Excel». customtkinter поверх tkinter, светлая тема, без терминала.

Что получилось.

  • Ежемесячная сверка ушла с 4-6 часов на 2-3 минуты.
  • Hybrid OCR оставляет 70-85% чеков бесплатными и оффлайн.
  • Повторный прогон по тем же файлам стоит ноль за счёт SHA256-кэша.
  • Пропавшие чеки находятся сразу, а не к концу квартала.

Куда дальше.

Если объём вырастет до 100+ чеков в день, готовы три рубильника: Anthropic Batch API со скидкой 50% на input, Gemini Flash через litellm одной строкой в конфиге, prompt-кэш на system-prompt. Архитектура берёт все три без переписывания.