Вы участвуете в тендере. Подготовили документы, рассчитали цену, заполнили заявку. Осталось проверить заказчика: не банкрот ли он, нет ли судебных дел, платит ли по контрактам. И организатора торгов — тоже проверить.
Что делает менеджер? Открывает сайт налоговой — проверяет ИНН. Идёт на сайт арбитражных судов — ищет дела. Заходит в СБИС — смотрит надёжность. Скачивает выписку из ЕГРЮЛ. Проверяет учредителей. Смотрит залоги, лицензии, проверки контролирующих органов. На одного контрагента — 20–30 минут.
А если контрагентов двадцать? А если нужно проверять всех, с кем работает компания, — сотни ИНН из бухгалтерии?
Мы решили: машина может собирать эти данные автоматически. Человек должен принимать решение — работать с контрагентом или нет. А не тратить полдня на сбор информации.
Откуда берутся данные: ВОК API
В России есть система «Всё о компаниях» (ВОК) — часть СБИС. Это агрегатор данных из десятков государственных источников: налоговая, арбитражные суды, Росреестр, ФССП, реестр банкротств и другие.
Один запрос по ИНН — и вы получаете:
- Основные реквизиты — название, адрес, ОКВЭД, статус, директор
- Индекс надёжности — числовая оценка от 0 до 100
- Судебные дела — арбитражные процессы с суммами и статусами
- Госконтракты — история участия в закупках
- Учредители — структура владения
- Банкротство — текущие процедуры, если есть
- Залоги, лицензии, проверки — дополнительные сведения
Кроме JSON-данных, API отдаёт PDF-отчёты: заключение о надёжности, финансовый отчёт, бизнес-справка и выписка из ЕГРЮЛ. Четыре документа на каждого контрагента — готовые к распечатке и подшивке в дело.
Автоматика для тендеров: проверяем заказчика и организатора
В нашей системе управления тендерами каждый тендер имеет статус. Когда тендер переходит в стадию «Расчёт» — значит, менеджер начал готовить предложение. В этот момент ему нужны данные о заказчике и организаторе торгов.
Мы сделали так: фоновая задача запускается каждые 10 минут. Она находит все тендеры в статусе «Расчёт» и выше, у которых ещё нет проверки контрагентов. И запускает проверку автоматически.
Менеджер ничего не делает. Открывает тендер — а данные уже там: индекс надёжности заказчика, судебные дела, финансовое состояние. Зелёный индикатор — всё в порядке. Красный — стоит задуматься.
Если данные загрузились некорректно или нужно обновить — кнопка «Перепроверить» запускает повторную загрузку. Три попытки с интервалом в 60 секунд — на случай временных сбоев API.
30-дневный кэш для экономии квоты API. Данные о контрагенте меняются редко — нет смысла запрашивать одного и того же поставщика каждый день. При повторном запросе в течение 30 дней система отдаёт данные из кэша мгновенно.
Мониторинг по данным 1С: проверяем всех, с кем работаем
Тендеры — это одно. Но у компании есть текущие контрагенты: поставщики, подрядчики, клиенты. Их тоже нужно проверять — это требование налогового законодательства о должной осмотрительности.
Мы подключили данные из 1С. Из кассовых операций (cashflow) система автоматически собирает уникальные ИНН контрагентов. Только юридические лица — 10-значные ИНН.
Ежедневная фоновая задача проходит по этому списку:
- Собирает ИНН из данных 1С
- Фильтрует: убирает тех, кого проверяли менее 30 дней назад
- Пакетом до 30 ИНН за один запуск — чтобы не перегрузить API
- Загружает данные из ВОК: реквизиты, надёжность, суды, финансы
- Скачивает 4 PDF-отчёта на каждого контрагента
- Парсит PDF: извлекает плюсы и минусы из заключения о надёжности
- Сохраняет всё в базу с историей
Результат: дашборд, на котором видны все контрагенты компании с актуальными данными о надёжности. Изменился индекс надёжности — видно в ленте изменений. Появилось судебное дело — сразу заметно.
Парсинг PDF: извлекаем суть из отчётов
ВОК API отдаёт PDF-отчёт о надёжности. Внутри — структурированное заключение: факторы «за» и факторы «против» с числовыми оценками.
Примеры факторов «за»:
- Компания работает более 10 лет (+15 баллов)
- Нет судебных дел в качестве ответчика (+10 баллов)
- Положительная динамика выручки (+8 баллов)
Примеры факторов «против»:
- Задолженность по налогам (−20 баллов)
- Массовый адрес регистрации (−12 баллов)
- Частая смена директоров (−8 баллов)
Мы парсим PDF через pdfplumber и извлекаем эти данные в структурированный формат. На странице контрагента менеджер видит не абстрактное число 77.5, а конкретные причины: почему надёжность именно такая, какие риски, какие плюсы.
Кэширование: экономим квоту, ускоряем ответ
ВОК API — платный. Каждый запрос стоит денег, и у каждой компании есть квота. Запрашивать одного и того же контрагента каждый раз заново — расточительно.
Мы реализовали двухуровневый кэш:
- Кэш поиска — результаты поиска по ИНН/ОГРН/названию хранятся 30 дней. Повторный поиск того же контрагента — мгновенный ответ из базы.
- Кэш данных — полные данные ВОК (JSON + PDF) хранятся 30 дней. Если контрагент уже проверен — данные отдаются из кэша.
При этом всегда есть возможность принудительно обновить данные — кнопка «Обновить» игнорирует кэш и делает свежий запрос к API.
Автоматическая очистка удаляет устаревшие записи. Статистика кэша показывает: сколько запросов обслужено из кэша, сколько — из API, какой процент попаданий.
Интерфейс: три экрана для работы с контрагентами
Дашборд — общая картина: статистика проверок, последние изменения надёжности, недавние проверки. Поисковая строка для быстрой проверки нового контрагента по ИНН или названию.
Список контрагентов — все контрагенты компании с индексами надёжности, датами последней проверки, суммами по кассовым операциям. Фильтрация, сортировка, пагинация.
Карточка контрагента — полная информация: реквизиты, индекс надёжности с расшифровкой (плюсы/минусы), судебные дела, учредители, госконтракты. Кнопки для скачивания PDF-отчётов. История всех проверок с датами.
Обработка ошибок: когда API недоступен
Внешние API ненадёжны. СБИС может быть недоступен, токен авторизации — протухнуть, квота — закончиться. Каждый из этих сценариев обработан.
Автоматическая реавторизация. При получении ответа 401 система автоматически получает новый токен и повторяет запрос. Пользователь не замечает — для него всё работает.
Повторные попытки. Фоновые задачи настроены на 3 попытки с интервалом 60 секунд. Временный сбой API не приводит к потере данных.
Валидация результатов. Функция is_legal_check_passed() проверяет: данные загружены, хотя бы один контрагент имеет статус «success», ответ ВОК содержит полные реквизиты. Только после всех проверок — зелёная галочка.
Автоматическая проверка контрагентов по данным из 10+ государственных источников. Фоновая загрузка данных для тендеров — менеджер открывает карточку, а информация уже там. Ежедневный мониторинг контрагентов из 1С — до 30 проверок в день без участия человека. 4 PDF-отчёта на каждого контрагента: надёжность, финансы, бизнес-справка, выписка ЕГРЮЛ. Парсинг факторов надёжности из PDF — конкретные причины оценки, а не абстрактное число. 30-дневный кэш для экономии квоты API. Три экрана: дашборд, список контрагентов, детальная карточка.
Принципы, на которых мы строили сервис
-
1
Проверка должна быть незаметной
Менеджер не должен нажимать кнопку «Проверить контрагента». Данные загружаются автоматически, когда они нужны — при переходе тендера в стадию расчёта.
-
2
Экономия API-квоты — архитектурное решение
30-дневный кэш, пакетная обработка по 30 ИНН, фильтрация уже проверенных — каждый запрос к внешнему API должен быть оправдан.
-
3
Данные должны быть объяснимы
Индекс надёжности 77.5 ничего не значит без контекста. Парсинг PDF-отчётов даёт конкретику: какие факторы повысили оценку, какие — понизили.
-
4
История важнее текущего состояния
Каждая проверка сохраняется в историю. Можно посмотреть, как менялась надёжность контрагента: когда появились суды, когда изменился директор, когда упала оценка.
Должная осмотрительность — это не бюрократия. Это защита бизнеса от рисков: недобросовестных контрагентов, налоговых претензий, убытков по контрактам.
Мы не заменили юриста и не отменили ручную проверку в сложных случаях. Но типовая проверка — та, что занимала 20–30 минут — теперь происходит автоматически. Человек смотрит на результат и принимает решение.
Сотни контрагентов. Ежедневный мониторинг. Ноль ручной работы.