Личный кабинет

Главная → Блог → Как автоматически проверять ограничения и запрет регистрационных действий по VIN через API

Ограничения и розыск

Как автоматически проверять ограничения и запрет регистрационных действий по VIN через API

· Редакция AvtoVinCod · 9 мин чтения

Как автоматически проверять ограничения и запрет регистрационных действий по VIN через API

Ограничения ГИБДД автоматически проверяются запросом GET /score?vin= (для авто без VIN: /score-body?body=). В ответе JSON: запреты на регистрационные действия с типом, основанием, регионом и исполнительным производством, а также признак розыска. Если есть только госномер, сначала получите VIN методом /gos2vin. Для списка машин используйте цикл по API, массовую проверку автомобилей в кабинете (до 100 авто за раз) или мониторинг автомобилей с уведомлениями об изменениях.

Почему ручная проверка на сайте ГИБДД не подходит бизнесу

Для одной машины сайт ГИБДД годится. Для потока уже нет. Капча на каждый запрос, один автомобиль за раз, результат живёт на экране и никуда не сохраняется. Нет API, нет истории проверок, нет возможности спустя месяц показать, что именно вы видели в день приёма автомобиля.

Вторая проблема - стабильность. Сайт периодически не отвечает, а иногда не находит VIN, хотя машина точно существует. Менеджер в этот момент стоит с клиентом, и проверка превращается в "давайте завтра".

Машинный ответ решает это приземлённо: единый формат JSON, который можно положить в CRM, учётную систему или карточку объявления, повторить запрос по расписанию и сохранить результат с датой. Менеджер видит готовый статус, а не ковыряется в капче. Подробнее о том, как устроен доступ к реестрам, есть в обзоре API данных ГИБДД и в материале про интеграцию API ГИБДД в бизнес.

Что возвращает метод /score

Метод /score: ограничения и розыск отдаёт в одном ответе несколько блоков:

Ключевое служебное поле - found. Значение 1 означает, что данные по VIN есть. Значение 0 - VIN не найден в базе ГИБДД. Это не "ограничений нет", а "проверять нечего": такую машину нужно отправить на ручной разбор, а не считать чистой.

Три понятия легко перепутать, поэтому разведём их по данным ответа. Запрет на регистрационные действия - это запись с типом, основанием и ссылкой на исполнительное производство: машину нельзя поставить на учёт или снять с него на нового владельца. Розыск - отдельный признак, он говорит о другом: автомобиль разыскивается. Залог к ГИБДД вообще не относится: он живёт в реестре ФНП, о нём ниже. Для решения "брать или не брать" любой из первых двух признаков - стоп до выяснения.

Если нужна не только картина ограничений, но и полная хронология регистрации с характеристиками, ПТС и СТС, для этого есть отдельный метод истории регистрации. А /score уже включает периоды владения, так что для скрининга его обычно хватает.

Запрос и ответ на тестовом VIN

Начните с тестовых значений: они бесплатны, но токен нужен. Тестовый VIN - X7TEST00000000001.

curl -H "Authorization: Bearer ВАШ_ТОКЕН" \
 "https://api.avtovincod.ru/score?vin=X7TEST00000000001"

Ответ приходит образцом по схеме метода, с полем "testMode": true. Структура укрупнённо выглядит так (названия вложенных полей сверяйте с документацией, здесь схема показана для ориентира):

{
 "success": 1,
 "found": 1,
 "testMode": true,
 "restrictions": [ { "type": "...", "basis": "...", "region": "...", ... } ],
 "wanted": ...,
 "owners": [ ... ]
}

Что читать в первую очередь. success: проверка выполнена или нет. found: есть ли машина в базе. Затем массив запретов: если он непустой, у каждой записи смотрим тип и основание, регион (откуда наложено) и исполнительное производство (по нему можно выяснить, что за долг стоит за запретом). Дальше признак розыска. Логика ветвления в коде простая: любой запрет или розыск - отказ или эскалация, found 0 - ручная проверка.

Для автомобилей без VIN, например японских, которые идут по номеру кузова, запрос другой:

curl -H "Authorization: Bearer ВАШ_ТОКЕН" \
 "https://api.avtovincod.ru/score-body?body=TEST-0000001"

В боевых ответах, записанных в историю запросов, есть блок billing (charged, currency, billed, balance, requestId) и заголовки X-Charged, X-Balance, X-Request-Id. Если блока нет, запрос не списан. Удобно логировать X-Request-Id рядом с результатом: при спорной ситуации по нему легко найти конкретную проверку.

Проверка по госномеру: связка gos2vin и score

На практике клиент часто приносит или присылает только номер. Тогда цепочка из двух запросов: сначала получить VIN по госномеру, потом /score.

GET /gos2vin?plate=Т000ТТ00
GET /score?vin=<VIN из ответа>

Стоимость цепочки: 8 ₽ за /gos2vin плюс 20 ₽ за /score, итого 28 ₽ на машину. На потоке в 500 автомобилей в месяц это 14 000 ₽, если для каждого номера удалось получить VIN. Если VIN по номеру не нашёлся, второй запрос вы просто не отправляете и не платите за него. Ветку "VIN не найден" стоит вынести в отдельный статус "проверить вручную": чаще всего причина в опечатке в номере или нестандартном документе. Как строить такую воронку на площадках, разобрано в материале проверка по госномеру для автосалонов и площадок.

Где автоматизация окупается

Автосалон и трейд-ин. Проверка запускается в момент заведения автомобиля в системе, пока клиент ещё в салоне. Запрет обнаружен до оценки, а не после того, как на машину потрачено время оценщика.

Выкуп. Отсев по запретам и розыску делается до выезда на осмотр. Звонок по объявлению, VIN от продавца, 20 ₽ - и вы не едете в другой конец города за машиной, которую всё равно нельзя переоформить.

Лизинг и страховые. Проверка перед заключением договора: предмет лизинга или страхования не должен оказаться под запретом. Результат сохраняется в досье клиента вместе с X-Request-Id.

Маркетплейсы и доски объявлений. Метка у объявления: "ограничения не найдены на дату такую-то" либо скрытая пометка для модерации. Проверка запускается один раз при публикации, затем повторяется по расписанию.

Автопарки. Контроль купленных и переданных машин: перед приёмкой на баланс и перед передачей в аренду или на другое юрлицо. Для длинного парка удобнее фоновый мониторинг, о нём дальше.

Как построить пайплайн в коде

Схема короткая: ввод VIN, проверка формата, запрос /score, решение. Решение трёхуровневое: допустить (found 1, запретов и розыска нет), отправить на ручную проверку (found 0 или сбой источника), отказать (есть запрет или розыск).

Формат VIN проверьте до запроса: 17 символов, без букв I, O, Q. Так вы не получите 400 на пустом месте.

Теперь ошибки. Ответ об ошибке выглядит как {"success":0,"error":"текст","code":"КОД"}. Коды: 400 - неверный формат параметра, 401 - проблема с токеном, 402 - не хватает баланса, 403 - доступ или IP, 429 - лимиты, 503 - источник недоступен. Сбой источника не тарифицируется, поэтому ретрай на 503 безопасен: делайте две-три попытки с растущей паузой, затем помечайте машину "повторить позже". На 429 тоже ждите и повторяйте, а 402 должен поднимать тревогу у ответственного за баланс.

О тарификации. success: 1 означает выполненную проверку, и она тарифицируется. success: 0 - проверка не выполнена или данных нет, это бесплатно. Нюанс именно для реестровых проверок и /score: списание происходит при выполненной проверке, даже если записей нет и found: 0. То есть "чистая" машина стоит те же 20 ₽.

Пример цикла на Python:

import time
import requests

TOKEN = "ВАШ_ТОКЕН"
HEADERS = {"Authorization": f"Bearer {TOKEN}"}

def check(vin, retries=3):
 for i in range(retries):
 r = requests.get(
 "https://api.avtovincod.ru/score",
 params={"vin": vin}, headers=HEADERS, timeout=60)
 data = r.json()
 if r.status_code == 503:
 time.sleep(2 ** i)
 continue
 return data
 return {"success": 0, "code": "503"}

def decide(data):
 if data.get("success") != 1:
 return "manual"
 if data.get("found") == 0:
 return "manual"
 if data.get("restrictions") or data.get("wanted"):
 return "reject"
 return "ok"

for vin in ["X7TEST00000000001"]:
 print(vin, decide(check(vin)))

Имена полей restrictions и wanted здесь условные: перед выкладкой в прод сверьте их со схемой в документации метода, примеры кода там уже подставлены с тестовыми значениями.

Чем дополнить проверку

Запрет в ГИБДД и залог - разные истории с разными источниками. Запрет накладывают по исполнительному производству, залог фиксируется в реестре уведомлений ФНП. Машина может быть чистой по ГИБДД и при этом в залоге у банка. Поэтому проверка залога в реестре ФНП (GET /pledge?vin=, 2,4 ₽) добавляется почти всегда: за копейки закрывается соседний риск.

Дополнительные сигналы риска: проверка лизинга (2,2 ₽) покажет договоры лизинга с лизингополучателем и датами, а метод /lawsuits (3 ₽) - арбитражные дела, где упоминается автомобиль: споры о собственности, лизинг, банкротство.

Минимальный набор перед сделкой: /score (20 ₽) и /pledge (2,4 ₽), итого 22,4 ₽. Если сделка крупная или это лизинг, добавляйте /lizing и /lawsuits. Остальные проверки (ОСАГО, пробег, ДТП) решают другие задачи, их разбор лучше смотреть в профильных статьях блога, чтобы не дублировать здесь.

Без кода и в фоне: массовая проверка и мониторинг

Не каждой команде нужен код. Массовая проверка автомобилей работает прямо в кабинете: загружаете Excel или CSV (или вставляете текст) со списком до 100 машин по VIN, госномеру, номеру кузова, выбираете проверки, например ограничения и розыск, залоги, штрафы. Перед запуском система показывает расчёт "не больше", так что бюджет известен заранее. Работа идёт на сервере, о готовности придёт сообщение на почту и в Telegram, на выходе таблица по всем машинам, отчёт по каждой и выгрузка в Excel.

Мониторинг автомобилей решает другую задачу: узнать об изменениях постфактум. Список машин проверяется регулярно по данным реестров (это не GPS), а сообщения приходят только когда что-то изменилось: новый запрет на регистрационные действия, залог, розыск, арест, смена собственника или госномера, новый штраф. Частоту задаёте для каждой проверки: ежедневно, раз в неделю, раз в две недели, раз в месяц или по сроку. Каналы - Telegram, почта и вебхук.

Вебхук присылает POST с JSON. События: monitor.change, monitor.paused, monitor.check_failed, batch.done. Подлинность проверяйте по заголовку X-AVC-Signature: sha256=..., это HMAC от тела запроса с вашим секретом. Не пропускайте эту проверку, иначе любой, кто узнал адрес обработчика, сможет подсунуть ложное событие.

Как выбирать. Разовая проверка в момент сделки - API (или консоль в кабинете). Разовая партия из таблицы - массовая проверка. Парк или портфель машин, за которыми нужно следить, - мониторинг. У мониторинга есть месячный лимит, а при нехватке баланса проверки ставятся на паузу, о чём придёт monitor.paused.

Стоимость и подключение

Один запрос /score стоит 20 ₽. Тысяча машин - 20 000 ₽ при проверке по VIN. Если на входе госномера и у каждого нашёлся VIN, цепочка с /gos2vin даёт 28 000 ₽ на тысячу, а с залогом ФНП добавится ещё 2 400 ₽. Реальные цены всегда можно сверить в prices.json, они обновляются из настроек каталога.

Подключение самостоятельное: регистрация в личном кабинете занимает минуту, токен выдаётся сразу. Пополнение от 100 ₽ банковской картой, для юрлиц есть оплата по счёту с актом и актом сверки в конце месяца. Договор не нужен, бесплатных периодов нет, депозит действует 90 дней. Зато тестовые значения работают бесплатно, так что интеграцию можно отладить целиком, не потратив ни рубля.

Если вы строите ИИ-агента, подключите MCP-сервер: https://api.avtovincod.ru/mcp, авторизация тем же Bearer-токеном. Среди 32 инструментов есть restrictions_wanted для ограничений и розыска, а вызов тарифицируется как обычный запрос к методу.

Частые вопросы

Можно ли проверить ограничения ГИБДД по госномеру через API?

Напрямую /score работает по VIN или номеру кузова. По госномеру сначала вызовите /gos2vin?plate= (8 ₽), получите VIN и передайте его в /score?vin= (20 ₽). Вся цепочка обходится в 28 ₽ на машину.

Чем запрет регистрационных действий отличается от залога и розыска?

Запрет на регистрационные действия и розыск приходят из данных ГИБДД в ответе /score: запрет с типом, основанием, регионом и исполнительным производством, розыск отдельным признаком. Залог относится к реестру ФНП и проверяется методом /pledge. Источники разные, поэтому машина может быть чистой по одному и проблемной по другому.

Что означает found: 0 в ответе /score и платный ли такой запрос?

found: 0 значит, что VIN не найден в базе ГИБДД. Это не подтверждение отсутствия ограничений, такую машину нужно проверить вручную. Реестровая проверка /score тарифицируется при выполнении, даже если записей нет, то есть запрос с found: 0 тоже списывается по базовой цене.

Как проверить сразу много автомобилей без программирования?

Используйте массовую проверку в личном кабинете: загрузите Excel или CSV либо вставьте текст со списком до 100 машин, выберите проверки и посмотрите расчёт "не больше" до запуска. Результат придёт таблицей и Excel, а уведомление о готовности на почту и в Telegram.

Как узнавать о появлении запрета на машине из парка постфактум?

Подключите мониторинг автомобилей. Он регулярно проверяет список по реестрам и присылает сообщения только об изменениях: новый запрет, залог, розыск, смена собственника или госномера. Каналы: Telegram, почта и вебхук monitor.change с подписью X-AVC-Signature.

Бесплатно ли можно проверить запрет регистрационных действий?

Реальные проверки платные, от 20 ₽ за запрос /score. Бесплатно работают только тестовые значения (VIN X7TEST00000000001, госномер Т000ТТ00): ответ образцом со "testMode": true, токен при этом нужен. Бесплатно и неуспешные запросы с success: 0.

Что делать, если источник временно недоступен?

Вернётся ошибка 503, она не тарифицируется. Повторите запрос с растущей паузой две-три раза, а если не помогло, пометьте машину "повторить позже" и не принимайте решение по ней вслепую.

Проверка автомобилей через API

Без договора и долгих согласований: пополните баланс от 100 ₽ и проверяйте реальные машины. Тестовые значения бесплатно, документация с примерами на популярных языках.

Получить токен   Документация API

Читайте также