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

Главная → Документация → Долги у приставов

Исполнительные производства: долги у судебных приставов

Проверка долгов у судебных приставов по номеру исполнительного производства, ИНН организации или ФИО с датой рождения. В ответе за что долг (штраф ГИБДД, налог, кредит, алименты), сумма, взыскатель, отдел приставов, действует производство или окончено и почему. Главное применение для автомобиля - узнать причину запрета на регистрационные действия одним запросом. Персональные данные в ответе скрыты звёздочками.

Хост api.avtovincod.ruМетод GET /enforcementОтвет до 35 сСписание если источник ответил

Где применить

1. Причина запрета на машине

Проверка ограничений (/score) показывает, что на машине запрет на регистрационные действия, но не говорит, за что. У запрета от приставов есть номер исполнительного производства - поле enforcement_number:

// ответ /score?vin=... (ограничения)
"restrictions": [
  {
    "restriction_name": "Запрет на регистрационные действия",
    "organization_name": "МОСП по ВАШ по г. Тольятти ГУФССП по Самарской области",
    "reasons": "Документ: 100000000/0000 от 29.10.2024, И*****а А**а С*******а, ИП: 23456/24/77002-ИП от 15.07.2024",
    "enforcement_number": "23456/24/77002-ИП",
    "enforcement_date": "2024-07-15"
  }
]

Этот номер передаётся сюда: GET /enforcement?number=23456/24/77002-ИП. В ответе видно, что запрет из-за штрафа ГИБДД на 500 ₽ и исполнительского сбора 1000 ₽, долг можно оплатить онлайн, и после оплаты запрет снимут. Это совсем другая история, чем кредит на 800 тысяч: покупатель, выкуп и автосалон сразу понимают, можно ли брать машину и сколько стоит снять запрет.

Пример целиком: все запреты машины и их причины.

import os, requests

API = "https://api.avtovincod.ru"
H = {"Authorization": "Bearer " + os.environ["AVC_TOKEN"]}

score = requests.get(API + "/score", params={"vin": "X7TEST00000000001"}, headers=H, timeout=150).json()
for r in score.get("restrictions", []):
    num = r.get("enforcement_number")
    if not num:
        continue                      # запрет не от приставов (суд, таможня, ГИБДД) - номера нет
    e = requests.get(API + "/enforcement", params={"number": num}, headers=H, timeout=45).json()
    for p in e.get("proceedings", []):
        why = ", ".join(f'{d["kindName"]} {d["amount"]} ₽' for d in p["debts"])
        state = "действует" if p["status"] == "active" else "окончено: " + (p["closeReasonText"] or "")
        print(r["restriction_name"], num, "-", why, "-", state)

В личном кабинете то же самое без программиста: в проверке ограничений у такого запрета есть ссылка "Узнать причину и сумму долга".

2. Проверка продавца перед покупкой

Крупный действующий долг у продавца - риск, что на машину позже наложат запрет или арест, в том числе уже после сделки, если машина ещё числится за ним. Поиск по ФИО и дате рождения (лучше с согласия продавца) показывает, есть ли такие долги:

GET /enforcement?lastName=Иванов&firstName=Иван&middleName=Иванович&birthDate=01.02.1985

3. Контрагент-организация

Лизинг, дилер, перевозчик, арендатор автопарка: ?inn=0000000000 покажет действующие производства организации и общий долг по видам (summary.activeDebtByKind): налоги, штрафы ГИБДД, кредиты.

4. Следить, сняли ли долг

После оплаты повторяйте запрос по номеру производства раз в несколько дней: когда оно окончится, придёт status: "closed" и closeReasonText: "Долг погашен". Тогда и запрет на машине снимают.

Аутентификация

Токен передаётся заголовком Authorization: Bearer <токен> либо параметром ?token=. Токен один для всех API, он выдаётся в личном кабинете сразу после регистрации.

Эндпоинт

GET https://api.avtovincod.ru/enforcement
GET https://api.avtovincod.ru/enforcement/regions   (коды регионов, бесплатно)

Параметры

Один способ поиска: номер, ИНН, название или ФИО. Если передано несколько, используется первый по этому порядку. Параметры можно передать в адресе (GET) или телом формы (POST, application/x-www-form-urlencoded); для поиска человека лучше POST - ФИО и дата рождения не попадут в журналы веб-серверов по пути. Таймаут на своей стороне - не меньше 40 секунд.

ПараметрОписание
numberномер исполнительного производства: 12345/24/77001-ИП (суффикс -ИП можно не писать, сводное - -СД)
innИНН организации, 10 цифр
companyназвание организации (от 3 знаков); можно с address и region
lastName, firstName, middleName, birthDateчеловек: фамилия, имя, отчество (если есть) и дата рождения ДД.ММ.ГГГГ или ГГГГ-ММ-ДД
regionкод региона для поиска по названию и по ФИО (список - GET /enforcement/regions, бесплатно); без него - по всей России

Ответ

{
  "success": 1,
  "found": 1,
  "total": 1,
  "searchedBy": { "type": "number", "value": "23456/24/77002-ИП" },
  "summary": {
    "active": 1,
    "closed": 0,
    "activeDebt": 1500,
    "activeDebtByKind": { "traffic_fine": 500, "enforcement_fee": 1000 }
  },
  "proceedings": [
    {
      "number": "23456/24/77002-ИП",
      "openedAt": "2024-07-15",
      "consolidatedNumber": null,
      "status": "active",
      "closedAt": null,
      "closeReason": null,
      "closeReasonText": null,
      "debtor": {
        "kind": "person",
        "name": "И*****а А**а С*******а",
        "birthDate": "**.**.****",
        "address": "Самарская обл., г. Тольятти, ***"
      },
      "document": {
        "kind": "Постановление по делу об административном правонарушении",
        "number": "18810163240000000000",
        "date": "2024-05-02",
        "issuedBy": "ЦАФАП ГИБДД ГУ МВД России по Самарской области",
        "creditorInn": "0000000000",
        "details": "Постановление по делу об административном правонарушении № 18810163240000000000 от 02.05.2024"
      },
      "debts": [
        { "title": "Штраф ГИБДД", "amount": 500, "kind": "traffic_fine", "kindName": "Штраф ГИБДД" },
        { "title": "Исполнительский сбор", "amount": 1000, "kind": "enforcement_fee", "kindName": "Исполнительский сбор" }
      ],
      "debtTotal": 1500,
      "bailiffs": {
        "department": "МОСП по ВАШ по г. Тольятти ГУФССП по Самарской области",
        "address": "445008, Самарская обл., г. Тольятти, ул. Громовой, д. 24",
        "officer": "П*****а О***а И******а",
        "phones": ["+7 (8482) 00-00-00"]
      },
      "payOnline": true
    }
  ],
  "billing": { "charged": 5, "currency": "RUB", "billed": true, "balance": 995, "requestId": 1234567 }
}

Поля ответа

ПолеЗначение
found / totalсколько производств в ответе и сколько всего нашлось
searchedByкак искали: number, inn, company или person (для человека значение скрыто звёздочками)
summaryactive и closed - сколько действует и окончено, activeDebt - долг по действующим, ₽, activeDebtByKind - он же по видам
proceedings[].number / openedAtномер производства и дата возбуждения; consolidatedNumber - номер сводного производства, если есть
status / closedAtactive - действует, closed - окончено или прекращено, дата окончания
closeReason / closeReasonTextоснование окончания по закону (ст. 46 ч. 1 п. 4) и то же понятными словами
debts[]предмет взыскания: title, amount (₽), kind и kindName - вид долга (таблица ниже); debtTotal - сумма по производству
documentисполнительный документ: вид, номер, дата, кто выдал (issuedBy), ИНН взыскателя (creditorInn), описание
debtorkind: person или organization; имя, дата рождения и адрес человека скрыты (см. ниже)
bailiffsотдел приставов: название, адрес, пристав (ФИО скрыто), телефоны отдела
payOnlinetrue: долг можно оплатить онлайн

Виды долга (kind)

kindЧто это
traffic_fineШтраф ГИБДД
enforcement_feeИсполнительский сбор (7% от долга, не меньше 1000 ₽ для граждан)
taxНалоги и взносы
loanКредит или заём
utilitiesЖКХ и связь
alimonyАлименты
state_dutyГоспошлина и судебные расходы
damagesВозмещение ущерба
fineДругой штраф
wageЗарплата
otherДругое

Вид определяется по названию предмета взыскания и по органу, выдавшему документ. Исходное название всегда есть в title.

Почему окончено (closeReasonText)

closeReasoncloseReasonText
ст. 47 ч. 1 п. 1Долг погашен
ст. 46 ч. 1 п. 1Взыскатель отозвал документ
ст. 46 ч. 1 п. 3Не найдены должник или его имущество
ст. 46 ч. 1 п. 4У должника нет имущества для взыскания
ст. 43Производство прекращено

Для остальных оснований closeReasonText равен null, основание по закону - в closeReason.

Персональные данные скрыты

Тестовые значения

Бесплатно, без источника: ?number=00000/00/00000-ИП (человек, штраф ГИБДД и исполнительский сбор) и ?inn=0000000000 (организация, действующее и оконченное производство). Тестовый ответ проверки ограничений по VIN X7TEST00000000001 содержит тот же номер 00000/00/00000-ИП: цепочку из примера выше можно отладить целиком бесплатно.

Коды ошибок

КодЗначение
INPUT_REQUIREDне передан ни один параметр поиска
NUMBER_INVALIDномер производства не в виде 12345/24/77001-ИП
INN_INVALIDИНН не 10 цифр или неверная контрольная цифра; ИНН из 12 цифр (человек) не принимается - ищите по ФИО
COMPANY_INVALIDназвание короче 3 или длиннее 200 знаков
PERSON_INVALIDнет фамилии или имени, или в них не буквы
BIRTHDATE_INVALIDдата рождения не в формате или невозможная
REGION_INVALIDregion не числом
NO_TOKEN / TOKEN_INVALIDнет токена или он недействителен (HTTP 401)
NOT_ALLOWED / API_DISABLEDметод не подключён или отключён (HTTP 403)
INSUFFICIENT_BALANCEнедостаточно средств (HTTP 402)
RATE_LIMITпревышен лимит запросов в минуту (HTTP 429)
SOURCE_UNAVAILABLEисточник не ответил, повторите позже; не тарифицируется
QUERY_REJECTEDисточник не принял данные для поиска; не тарифицируется

Ошибка приходит в виде {"success": 0, "error": "...", "code": "..."} и не тарифицируется.

Примеры кода: PHP, Python, JavaScript, Go, Java, C#, Ruby, 1С

Примеры готовы к запуску: токен из переменной окружения AVC_TOKEN. Стоит тестовый номер 00000/00/00000-ИП: ответ бесплатный. Подставьте свой номер для настоящего поиска.

curl -s --max-time 45 -G "https://api.avtovincod.ru/enforcement" \
  -H "Authorization: Bearer $AVC_TOKEN" \
  --data-urlencode "number=00000/00/00000-ИП"
<?php
$q = http_build_query(['number' => '00000/00/00000-ИП']);
$ch = curl_init('https://api.avtovincod.ru/enforcement?' . $q);
curl_setopt_array($ch, [
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . getenv('AVC_TOKEN')],
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 45,
]);
$r = json_decode(curl_exec($ch), true);
if (!empty($r['success'])) {
    foreach ($r['proceedings'] as $p) {
        echo $p['number'], ': ', $p['status'] === 'active' ? 'действует' : 'окончено', ', ', $p['debtTotal'], " ₽\n";
        foreach ($p['debts'] as $d) echo '  ', $d['kindName'], ' ', $d['amount'], " ₽\n";
    }
} else {
    echo $r['error'] ?? 'ошибка', PHP_EOL;
}
import os, requests

r = requests.get("https://api.avtovincod.ru/enforcement", params={"number": "00000/00/00000-ИП"},
                 headers={"Authorization": "Bearer " + os.environ["AVC_TOKEN"]}, timeout=45).json()
if r.get("success"):
    print("действующих:", r["summary"]["active"], "долг:", r["summary"]["activeDebt"], "₽")
    for p in r["proceedings"]:
        print(p["number"], p["status"], [(d["kindName"], d["amount"]) for d in p["debts"]])
else:
    print(r.get("error"))
// Node.js 18+
const url = new URL("https://api.avtovincod.ru/enforcement");
url.searchParams.set("number", "00000/00/00000-ИП");
const res = await fetch(url, {
  headers: { Authorization: "Bearer " + process.env.AVC_TOKEN },
  signal: AbortSignal.timeout(45000),
});
const r = await res.json();
if (r.success) {
  for (const p of r.proceedings) console.log(p.number, p.status, p.debtTotal, p.debts.map(d => d.kindName));
} else {
  console.log(r.error);
}
package main

import (
	"encoding/json"
	"fmt"
	"net/http"
	"net/url"
	"os"
	"time"
)

func main() {
	q := url.Values{"number": {"00000/00/00000-ИП"}}
	req, _ := http.NewRequest("GET", "https://api.avtovincod.ru/enforcement?"+q.Encode(), nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("AVC_TOKEN"))
	res, err := (&http.Client{Timeout: 45 * time.Second}).Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	var r struct {
		Success     int `json:"success"`
		Proceedings []struct {
			Number    string  `json:"number"`
			Status    string  `json:"status"`
			DebtTotal float64 `json:"debtTotal"`
		} `json:"proceedings"`
	}
	json.NewDecoder(res.Body).Decode(&r)
	for _, p := range r.Proceedings {
		fmt.Println(p.Number, p.Status, p.DebtTotal)
	}
}
// Java 11+
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.*;
import java.nio.charset.StandardCharsets;
import java.time.Duration;

public class Main {
    public static void main(String[] args) throws Exception {
        String q = URLEncoder.encode("00000/00/00000-ИП", StandardCharsets.UTF_8);
        HttpRequest req = HttpRequest.newBuilder(URI.create("https://api.avtovincod.ru/enforcement?number=" + q))
            .header("Authorization", "Bearer " + System.getenv("AVC_TOKEN"))
            .timeout(Duration.ofSeconds(45)).GET().build();
        HttpResponse<String> res = HttpClient.newHttpClient().send(req, HttpResponse.BodyHandlers.ofString());
        System.out.println(res.body());
    }
}
using System.Net.Http.Headers;

using var http = new HttpClient { Timeout = TimeSpan.FromSeconds(45) };
http.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("AVC_TOKEN"));
var number = Uri.EscapeDataString("00000/00/00000-ИП");
var json = await http.GetStringAsync("https://api.avtovincod.ru/enforcement?number=" + number);
Console.WriteLine(json);
require "net/http"
require "json"

uri = URI("https://api.avtovincod.ru/enforcement")
uri.query = URI.encode_www_form(number: "00000/00/00000-ИП")
req = Net::HTTP::Get.new(uri, "Authorization" => "Bearer #{ENV['AVC_TOKEN']}")
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true, read_timeout: 45) { |h| h.request(req) }
r = JSON.parse(res.body)
r["proceedings"]&.each { |p| puts "#{p['number']} #{p['status']} #{p['debtTotal']}" }
Токен = "ВАШ_ТОКЕН";
Соединение = Новый HTTPСоединение("api.avtovincod.ru", , , , , 45, Новый ЗащищенноеСоединениеOpenSSL);
Номер = КодироватьСтроку("00000/00/00000-ИП", СпособКодированияСтроки.КодировкаURL);
Запрос = Новый HTTPЗапрос("/enforcement?number=" + Номер);
Запрос.Заголовки.Вставить("Authorization", "Bearer " + Токен);
Ответ = Соединение.Получить(Запрос);
Сообщить(Ответ.ПолучитьТелоКакСтроку("UTF-8"));

Бесплатных тестовых периодов и долгих согласований нет: пополните баланс в личном кабинете и сразу ищите по реальным данным.

Тарификация

Списание - когда источник ответил, даже если производств не нашлось: "долгов нет" это тоже ответ. Источник не ответил, неверный номер, ИНН или дата - бесплатно. Актуальная цена - в личном кабинете.

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

MCP-сервер для ИИ-ассистентов

Метод есть в MCP-сервере как инструмент enforcement_lookup (номер производства или ИНН). Ассистент может сам связать его с проверкой ограничений: "почему на машине запрет и сколько нужно заплатить". Как подключить MCP-сервер.

Смежные методы

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

Как узнать, за что запрет на регистрационные действия на машине?

В ответе проверки ограничений (метод /score) у запрета есть номер исполнительного производства, поле enforcement_number, например 12345/24/77001-ИП. Передайте его в /enforcement?number=: придёт вид долга (штраф ГИБДД, налог, кредит, алименты), сумма, взыскатель и отдел приставов. В личном кабинете у такого ограничения есть ссылка "Узнать причину и сумму долга".

Снимут ли запрет, если оплатить долг?

Запрет по исполнительному производству снимает пристав после погашения долга и исполнительского сбора; на это может уйти несколько дней. Повторный запрос по тому же номеру покажет status: "closed" и closeReasonText "Долг погашен". Если долгов несколько, запрет снимают по каждому производству отдельно.

Можно ли проверить долги продавца машины?

Да, по фамилии, имени, отчеству и дате рождения (параметры lastName, firstName, middleName, birthDate), лучше с согласия продавца. Крупный действующий долг - риск, что на машину позже наложат запрет или арест. В ответе ФИО, дата рождения и адрес скрыты звёздочками.

Можно ли проверить организацию?

Да, по ИНН (10 цифр) или по названию с необязательным регионом. Для организаций название и адрес не скрываются: это не персональные данные.

Когда списываются деньги?

Когда источник ответил - даже если производств не нашлось: "долгов нет" это тоже ответ. Если источник не ответил или запрос неверный (номер, ИНН, дата), деньги не списываются.

Насколько свежие данные?

Ответ берётся из банка исполнительных производств в момент запроса. Оплата долга попадает туда не сразу: после оплаты производство может числиться действующим ещё несколько дней.

Попробовать без программиста

В личном кабинете откройте "Исполнительные производства": номер производства, ИНН или ФИО. У ограничений в проверке машины есть ссылка "Узнать причину и сумму долга".

Открыть кабинет