Главная → Документация → Проверка грузовых пропусков на МКАД по номеру машины
Проверка грузовых пропусков на МКАД по номеру машины
Проверка пропуска на МКАД по номеру машины: грузовые пропуска на МКАД, ТТК и Садовое кольцо по госномеру грузовика или по серии и номеру пропуска. Сервис отвечает, есть ли у машины пропуск в Москву, действует ли он сегодня, в какую зону, на какой срок, дневной, ночной или круглосуточный, разовый или постоянный и не аннулирован ли он. Ответ в JSON за 3-10 секунд.
Как проверить пропуск на МКАД по номеру машины
- По госномеру. Передайте номер грузовика:
?plate=В144МЕ178. Придут все пропуска этой машины, действующие первыми. - По номеру пропуска. Серия и номер одной строкой
?pass=ББ0115361или отдельно?passSeries=ББ&passNumber=0115361. Так сверяют пропуск, который показал перевозчик. - Без программирования. В личном кабинете в разделе "Проверка" введите госномер или номер пропуска и получите ответ в читаемом виде.
Что показывает проверка пропуска
- Действует ли пропуск сегодня. Поле
isActiveуже посчитано на текущую дату по Москве с учётом срока и аннулирования. - Зона ограничения. МКАД, ТТК или Садовое кольцо (СК).
- Время действия. Дневной, ночной или круглосуточный пропуск.
- Вид. Разовый или постоянный (годовой).
- Срок и аннулирование. Даты начала и окончания, статус ("Выдан", "Аннулирован") и дата аннулирования.
Кому нужна проверка грузовых пропусков
- Перевозчикам и логистам: можно ли сегодня заезжать за МКАД, ТТК или Садовое кольцо, днём или ночью, и какие пропуска парка скоро закончатся.
- Заказчикам перевозки: заявленный подрядчиком пропуск реально выдан на эту машину и не аннулирован.
- Покупателям грузовика: есть ли у машины действующий пропуск и в какую зону.
- Сервисам и CRM: автоматическая проверка парка по списку номеров через API.
Аутентификация
Токен передаётся заголовком Authorization: Bearer <токен> либо параметром ?token=. Токен один для всех API, он выдаётся в личном кабинете сразу после регистрации.
Эндпоинт
GET https://api.avtovincod.ru/truck-pass
Параметры
| Параметр | Описание | Обязателен |
|---|---|---|
plate | госномер ТС кириллицей или латиницей, регистр и пробелы не важны (синонимы regNumber, gos) | да* |
pass | серия и номер пропуска одной строкой: ББ0115361 или ББ 0115361 | да* |
passSeries | серия пропуска (буквы), вместе с passNumber | да* |
passNumber | номер пропуска (цифры), вместе с passSeries | да* |
period | фильтр: day (дневной), night (ночной), allday (круглосуточный) | нет |
* Нужен госномер или серия и номер пропуска. Если переданы оба, поиск идёт по госномеру. Латинские буквы-двойники (A, B, E, K, M, H, O, P, C, T, Y, X) переводятся в кириллицу.
Пример запроса
curl --max-time 60 -G -H "Authorization: Bearer $TOKEN" \
"https://api.avtovincod.ru/truck-pass" --data-urlencode "plate=В144МЕ178"
curl --max-time 60 -G -H "Authorization: Bearer $TOKEN" \
"https://api.avtovincod.ru/truck-pass" --data-urlencode "pass=ББ0115361" -d "period=night"
Пример ответа: пропуска найдены
{
"success": 1,
"query": { "plate": "В144МЕ178" },
"found": 3,
"active": 1,
"passes": [
{
"passNumber": "БА 0200001", "series": "БА", "number": "0200001",
"regNumber": "В144МЕ178", "zone": "ТТК", "status": "Выдан",
"isActive": true,
"startDate": "2026-01-01", "endDate": "2026-12-31", "cancelDate": null,
"period": "Круглосуточный", "passType": "Постоянный"
},
{
"passNumber": "БА 0200002", "series": "БА", "number": "0200002",
"regNumber": "В144МЕ178", "zone": "МКАД", "status": "Аннулирован",
"isActive": false,
"startDate": "2026-01-01", "endDate": "2026-12-31", "cancelDate": "2026-03-15",
"period": "Ночной", "passType": "Постоянный"
},
{
"passNumber": "ББ 0115361", "series": "ББ", "number": "0115361",
"regNumber": "В144МЕ178", "zone": "МКАД", "status": "Выдан",
"isActive": false,
"startDate": "2025-09-08", "endDate": "2025-09-12", "cancelDate": null,
"period": "Дневной", "passType": "Разовый"
}
]
}
Из трёх пропусков действует один: постоянный круглосуточный в зону ТТК. Второй аннулирован 15.03.2026, третий был разовым и истёк.
Поля ответа
| Поле | Значение |
|---|---|
found | сколько пропусков найдено, 0 значит пропусков нет |
active | сколько из них действует сегодня |
passes[] | пропуска: сначала действующие, затем по дате окончания, новые выше |
passNumber / series / number | серия и номер пропуска целиком и по отдельности |
regNumber | госномер ТС, на который выдан пропуск |
zone | зона ограничения движения: МКАД, ТТК, СК |
status / isActive | статус ("Выдан", "Аннулирован") и действует ли пропуск сегодня по Москве |
startDate / endDate / cancelDate | срок действия и дата аннулирования, ГГГГ-ММ-ДД |
period | "Дневной", "Ночной" или "Круглосуточный" |
passType | "Разовый" или "Постоянный" |
Набор ключей постоянный: если у источника нет значения, приходит null.
Пример ответа: пропусков нет
Проверка выполнена, пропусков на этот номер нет. Ответ успешный и тарифицируется.
{
"success": 1,
"query": { "plate": "О000ОО77" },
"found": 0,
"active": 0,
"passes": []
}
Коды ошибок
| Код | Значение |
|---|---|
NO_TOKEN | токен не передан |
TOKEN_INVALID | токен недействителен или деактивирован |
NOT_ALLOWED | API не подключён вашему токену |
API_DISABLED | API временно отключён |
IP_NOT_ALLOWED | запрос с IP вне вашего белого списка |
INPUT_REQUIRED | не передан ни госномер, ни номер пропуска |
PLATE_INVALID | госномер не похож на номер ТС |
PASS_INVALID | нет серии или номера пропуска |
PERIOD_INVALID | неизвестное значение period: нужно day, night или allday |
QUERY_INVALID | источник отклонил значения запроса, проверьте ввод |
INSUFFICIENT_BALANCE | недостаточно средств на балансе |
RATE_LIMIT | превышен лимит запросов в минуту |
RATE_LIMIT_IP | слишком много запросов с одного IP |
SERVICE_UNAVAILABLE | сервис временно недоступен, повторите позже |
PROVIDER_FAIL | источник не ответил, повторите позже |
Ошибка приходит в виде {"success": 0, "error": "...", "code": "..."} и никогда не тарифицируется. PROVIDER_FAIL приходит с HTTP 200: проверяйте поле success.
Примеры кода: PHP, Python, JavaScript, Go, Java, C#, Ruby, 1С
Примеры готовы к запуску: токен берётся из переменной окружения AVC_TOKEN, а в запросе стоит тестовое значение (plate=T000TT00). По тестовым значениям приходит ответ-образец по схеме метода: бесплатно, без списания и даже при нулевом балансе, с полем "testMode": true. Так интеграцию можно собрать и проверить до первого платного запроса. Все тестовые значения.
curl -s --max-time 60 -G "https://api.avtovincod.ru/truck-pass" \
--data-urlencode "plate=T000TT00" \
-H "Authorization: Bearer $AVC_TOKEN"<?php
$url = 'https://api.avtovincod.ru/truck-pass?' . http_build_query(['plate' => 'T000TT00']);
$ch = curl_init($url);
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 60,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('AVC_TOKEN')]]);
$d = json_decode(curl_exec($ch), true);
echo $d['success'] ? json_encode($d, JSON_UNESCAPED_UNICODE) : $d['code'] . ': ' . $d['error'];import os, requests
r = requests.get("https://api.avtovincod.ru/truck-pass", params={"plate": "T000TT00"},
headers={"Authorization": "Bearer " + os.environ["AVC_TOKEN"]}, timeout=60)
d = r.json()
print(d if d.get("success") else f'{d["code"]}: {d["error"]}')// Node.js 18+, файл .mjs (await на верхнем уровне)
const url = "https://api.avtovincod.ru/truck-pass?" + new URLSearchParams({ plate: "T000TT00" });
const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.AVC_TOKEN}` },
signal: AbortSignal.timeout(60000) });
const d = await res.json();
console.log(d.success ? d : `${d.code}: ${d.error}`);package main
import (
"fmt"
"io"
"net/http"
"net/url"
"os"
"time"
)
func main() {
q := url.Values{}
q.Set("plate", "T000TT00")
req, _ := http.NewRequest("GET", "https://api.avtovincod.ru/truck-pass?"+q.Encode(), nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("AVC_TOKEN"))
resp, err := (&http.Client{Timeout: 60 * time.Second}).Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(resp.StatusCode, string(body))
}// 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 AvtoVinCod {
public static void main(String[] args) throws Exception {
String q = "plate=" + URLEncoder.encode("T000TT00", StandardCharsets.UTF_8);
HttpRequest req = HttpRequest.newBuilder(URI.create("https://api.avtovincod.ru/truck-pass?" + q))
.header("Authorization", "Bearer " + System.getenv("AVC_TOKEN"))
.timeout(Duration.ofSeconds(60)).GET().build();
HttpResponse<String> resp = HttpClient.newHttpClient()
.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.statusCode() + " " + resp.body());
}
}// .NET 6+
using System.Net.Http.Headers;
using var http = new HttpClient { Timeout = TimeSpan.FromSeconds(60) };
http.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("AVC_TOKEN"));
var url = "https://api.avtovincod.ru/truck-pass?" + "plate=" + Uri.EscapeDataString("T000TT00");
var resp = await http.GetAsync(url);
Console.WriteLine((int)resp.StatusCode + " " + await resp.Content.ReadAsStringAsync());require "net/http"
require "json"
uri = URI("https://api.avtovincod.ru/truck-pass")
uri.query = URI.encode_www_form(plate: "T000TT00")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer #{ENV["AVC_TOKEN"]}"
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true, read_timeout: 60) { |h| h.request(req) }
d = JSON.parse(res.body)
puts d["success"] == 1 ? d : "#{d["code"]}: #{d["error"]}"Токен = "ВАШ_ТОКЕН";
Соединение = Новый HTTPСоединение("api.avtovincod.ru", 443, , , , 60, Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос("/truck-pass?" + "plate=" + КодироватьСтроку("T000TT00", СпособКодированияСтроки.КодировкаURL));
Запрос.Заголовки.Вставить("Authorization", "Bearer " + Токен);
Ответ = Соединение.Получить(Запрос);
Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку("UTF-8"));
Данные = ПрочитатьJSON(Чтение);
Чтение.Закрыть();
Если Данные.success = 1 Тогда
Сообщить("Проверка выполнена");
Иначе
Сообщить(Данные.code + ": " + Данные.error);
КонецЕсли;Бесплатных тестовых периодов и долгих согласований нет: пополните баланс в личном кабинете и сразу проверяйте реальные машины. Токен выдаётся при регистрации, деньги списываются только по правилам метода (раздел "Тарификация"). Нужен доступ из ИИ-ассистента: MCP-сервер.
Примеры ответов: успешный, ошибка, источник недоступен
Успешный запрос
GET https://api.avtovincod.ru/truck-pass?plate=А123ВС777
Authorization: Bearer ВАШ_ТОКЕН
HTTP 200, success: 1. Списание по тарифу метода, сумма и остаток в блоке billing (цифры в примере условные).
{
"success": 1,
"query": {
"plate": "А123ВС777"
},
"found": 2,
"active": 1,
"passes": [
{
"passNumber": "БА 0123456",
"series": "ТТ",
"number": "0000000",
"regNumber": "А123ВС777",
"zone": "МКАД",
"status": "Выдан",
"isActive": true,
"startDate": "2026-01-01",
"endDate": "2026-12-31",
"cancelDate": null,
"period": "Круглосуточный",
"passType": "Постоянный"
},
...
],
"billing": {
"charged": 3,
"currency": "RUB",
"billed": true,
"balance": 997,
"requestId": 1234567
}
}
Бесплатная проба без списания: https://api.avtovincod.ru/truck-pass?plate=Т000ТТ00 вернёт ответ-образец по этой же схеме с полем testMode: true и charged: 0.
Неуспешный запрос
GET https://api.avtovincod.ru/truck-pass?plate=А12
Authorization: Bearer ВАШ_ТОКЕН
Ошибка в параметрах: HTTP 400, код PLATE_INVALID, текст ошибки можно показать пользователю. Бесплатно.
{
"success": 0,
"error": "Неверный госномер. Пример: В144МЕ178.",
"code": "PLATE_INVALID"
}
Источник недоступен
GET https://api.avtovincod.ru/truck-pass?plate=А123ВС777
Authorization: Bearer ВАШ_ТОКЕН
Источник не выполнил проверку: HTTP 200, PROVIDER_FAIL. Бесплатно, повторите запрос позже. Блока billing нет: запрос не списан.
{
"success": 0,
"error": "Проверка не выполнена",
"code": "PROVIDER_FAIL"
}
Тарификация
Списание один раз за выполненную проверку (success: 1), в том числе если пропусков нет (found: 0): отсутствие пропуска тоже результат. Ошибки и PROVIDER_FAIL бесплатны. Цена и подключение метода в личном кабинете.
В ответ добавляется блок billing: сколько списано за этот запрос (charged, в рублях), платный ли он (billed), остаток баланса после запроса (balance) и номер в истории запросов (requestId). Те же данные в заголовках X-Charged, X-Balance, X-Request-Id. Нет блока - запрос не списан. Подробнее о блоке billing.
Уже подключены? Ничего менять не нужно.
- Прежние поля ответа, коды ошибок, HTTP-статусы и правила списания остались как были. Интеграции, настроенные раньше, работают без изменений.
- Новое только одно: в конец JSON добавлен блок
billing, а в ответ пришли заголовкиX-Charged,X-Balance,X-Request-Id. Использовать их не обязательно. - Если ваш код строго проверяет состав полей ответа (например, схема с запретом лишних полей), разрешите поле
billing.
MCP-сервер для ИИ-ассистентов
Подключите проверки к ИИ-ассистенту: Claude, Cursor, VS Code и другим клиентам с поддержкой MCP (Model Context Protocol). Ассистент сам вызывает нужный метод по вашему токену, и проверку можно запросить обычными словами: "проверь залог и ограничения по VIN", "есть ли штрафы по СТС". Удобно менеджерам автосалона, лизинга и страховой без программиста, а разработчику помогает быстро собрать прототип интеграции.
- Адрес сервера:
https://api.avtovincod.ru/mcp, авторизация тем же токеном (Authorization: Bearer ВАШ_ТОКЕН). - Этот метод в MCP - инструмент
truck_pass; всего инструментов 45. - Цены и списания как у API, в результате тоже есть блок
billing. Тестовые значения работают бесплатно. - Инструкция по подключению: avtovincod.ru/docs/mcp/
Для генераторов клиентов и ИИ-агентов: OpenAPI-спецификация метода (YAML). Все методы сразу: /openapi.yaml.
Смежные проверки
- Проверка ТС в РНИС: передаёт ли грузовик навигационные данные, без которых пропуск могут аннулировать.
- Разрешения КТГ для крупногабаритов: спецразрешение на тяжеловесный и негабаритный груз.
- VIN по госномеру: VIN, кузов и СТС грузовика.
- Полисы ОСАГО: действующий полис машины.
Частые вопросы
Как проверить грузовой пропуск на МКАД по номеру машины?
Отправьте GET-запрос https://api.avtovincod.ru/truck-pass?plate=ГОСНОМЕР с токеном или введите номер в консоли проверки в личном кабинете. В ответе все пропуска машины: зона, срок, дневной или ночной, статус и поле isActive, действует ли пропуск сегодня.
Можно ли проверить пропуск по серии и номеру?
Да: ?pass=ББ0115361 или отдельно ?passSeries=ББ&passNumber=0115361. Так удобно сверить пропуск, который показал перевозчик.
Как узнать, что пропуск аннулирован?
У аннулированного пропуска поле status равно "Аннулирован", заполнена дата cancelDate, а isActive равно false.
Проверяются ли пропуска на ТТК и Садовое кольцо?
Да. Поле zone показывает зону ограничения: МКАД, ТТК или СК (Садовое кольцо).
Как отличить дневной пропуск от ночного?
Поле period: "Дневной", "Ночной" или "Круглосуточный". Отфильтровать ответ можно параметром period=day, night или allday.
Платная ли проверка, если пропусков нет?
Да: выполненная проверка тарифицируется и при found: 0, отсутствие пропуска тоже результат. Ошибки ввода и сбои источника бесплатны. Цена в личном кабинете.
Проверить без программиста
В личном кабинете есть консоль проверки: введите номер и получите ответ в читаемом виде, без кода.