Главная → Документация → Долги у приставов
Исполнительные производства: долги у судебных приставов
Проверка долгов у судебных приставов по номеру исполнительного производства, ИНН организации или ФИО с датой рождения. В ответе за что долг (штраф ГИБДД, налог, кредит, алименты), сумма, взыскатель, отдел приставов, действует производство или окончено и почему. Главное применение для автомобиля - узнать причину запрета на регистрационные действия одним запросом. Персональные данные в ответе скрыты звёздочками.
Где применить
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 (для человека значение скрыто звёздочками) |
summary | active и closed - сколько действует и окончено, activeDebt - долг по действующим, ₽, activeDebtByKind - он же по видам |
proceedings[].number / openedAt | номер производства и дата возбуждения; consolidatedNumber - номер сводного производства, если есть |
status / closedAt | active - действует, closed - окончено или прекращено, дата окончания |
closeReason / closeReasonText | основание окончания по закону (ст. 46 ч. 1 п. 4) и то же понятными словами |
debts[] | предмет взыскания: title, amount (₽), kind и kindName - вид долга (таблица ниже); debtTotal - сумма по производству |
document | исполнительный документ: вид, номер, дата, кто выдал (issuedBy), ИНН взыскателя (creditorInn), описание |
debtor | kind: person или organization; имя, дата рождения и адрес человека скрыты (см. ниже) |
bailiffs | отдел приставов: название, адрес, пристав (ФИО скрыто), телефоны отдела |
payOnline | true: долг можно оплатить онлайн |
Виды долга (kind)
| kind | Что это |
|---|---|
traffic_fine | Штраф ГИБДД |
enforcement_fee | Исполнительский сбор (7% от долга, не меньше 1000 ₽ для граждан) |
tax | Налоги и взносы |
loan | Кредит или заём |
utilities | ЖКХ и связь |
alimony | Алименты |
state_duty | Госпошлина и судебные расходы |
damages | Возмещение ущерба |
fine | Другой штраф |
wage | Зарплата |
other | Другое |
Вид определяется по названию предмета взыскания и по органу, выдавшему документ. Исходное название всегда есть в title.
Почему окончено (closeReasonText)
| closeReason | closeReasonText |
|---|---|
ст. 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_INVALID | region не числом |
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 цифр) или по названию с необязательным регионом. Для организаций название и адрес не скрываются: это не персональные данные.
Когда списываются деньги?
Когда источник ответил - даже если производств не нашлось: "долгов нет" это тоже ответ. Если источник не ответил или запрос неверный (номер, ИНН, дата), деньги не списываются.
Насколько свежие данные?
Ответ берётся из банка исполнительных производств в момент запроса. Оплата долга попадает туда не сразу: после оплаты производство может числиться действующим ещё несколько дней.
Попробовать без программиста
В личном кабинете откройте "Исполнительные производства": номер производства, ИНН или ФИО. У ограничений в проверке машины есть ссылка "Узнать причину и сумму долга".