finsverka — финансовый контроль селлера
Сервис сверки выплат маркетплейсов: разбор еженедельных отчётов, поиск удержаний, юнит-экономика по SKU, досудебные претензии.
- Сайт
- finsverka.ru
- Год
- 2026
- Роль
- Мой проект: архитектура, разработка и сопровождение — я
Задача
Продавец на маркетплейсе получает еженедельный отчёт на десятки тысяч строк и не может вручную проверить, всё ли ему заплатили.
Нужен сервис, который считает по данным самого продавца, не трогая его деньги: доступ только на чтение по его же API-токену.
Что сделано
- Автоматическая сверка отчётов: сопоставление начислений, удержаний и фактических выплат.
- Юнит-экономика по товару: видно, какие позиции приносят деньги, а какие съедают их комиссиями и логистикой.
- Подготовка досудебных претензий по найденным расхождениям — с опорой на условия оферты площадки.
- Телеграм-бот как первая точка входа: тяжёлые расчёты уходят в фоновую очередь, пользователь не ждёт в чате.
Стек
- Next.js 15 (App Router) — веб-часть
- NestJS на Fastify + TypeORM — бэкенд
- PostgreSQL 16: деньги в NUMERIC, сырые отчёты в JSONB
- Redis + BullMQ — очереди опроса отчётов и расчётов
- grammY — телеграм-бот на вебхуках
- Docker Compose: nginx, фронтенд, бэкенд, база, очередь; VPS Ubuntu 24.04
Измеримое
Замер мой, 4 сентября 2026 г., по публичной главной странице. Цифры бизнеса клиента здесь не показываются: их публикация — вопрос отдельного письменного разрешения, а выдумывать метрики я не буду.
- Lighthouse mobile, производительность
- 95 из 100
- прогон Lighthouse 13 в режиме мобильного устройства по публичному адресу главной
- Вес главной страницы
- 130 КБ
- суммарный объём переданных ресурсов в том же прогоне Lighthouse
- Отрисовка главного блока (LCP)
- 2,4 с
- тот же прогон, эмуляция мобильной сети и процессора
Что из этого работает у клиентов
- Деньги нельзя хранить в числах с плавающей точкой — только точный числовой тип базы; та же дисциплина применяется в калькуляторе этого сайта.
- Долгие операции уходят в очередь, а интерфейс отвечает сразу: пользователь не должен смотреть на крутящийся индикатор.
- Доступ только на чтение и минимум хранимых данных — принцип, который переносится в любой проект с чужими данными.