ЕАИСТО интеграция и API ЕАИСТО-М
Если вы ведёте учёт в программе для ПТО или в личном кабинете WEB-DK и оформляете диагностические карты в ЕАИСТО-М — обычно достаточно расширения EAISTO.helper в браузере. Оно переносит данные карты из вашей учётной системы в ЕАИСТО и возвращает готовую печатную форму обратно в программу ПТО или кабинет WEB-DK.
EAISTO.helper — как работать с ЕАИСТО из WEB-DK и ПТО
EAISTO.helper — бесплатное расширение для браузеров на движке Chromium (Chrome, Chromium GOST, Яндекс Браузер и аналоги). Оно связывает вашу учётную систему с ЕАИСТО-М: переносит данные карты из программы ПТО или кабинета WEB-DK на сайт ЕАИСТО и возвращает готовую карту обратно в учётную программу или кабинет. Отдельную Windows-программу «коннектор» ставить не нужно. Сценарии: если вы впервые на WEB-DK, с фото, с кабинетом или с 1С ПТО. Как это выглядит на экране — в ролике ниже.
Разработчики ЕАИСТО рекомендуют Chromium, но на практике сайт ЕАИСТО-М сегодня стабильно работает и в Яндекс Браузере — многие пункты оформляют карты именно в нём. Helper ставится из Chrome Web Store и в Яндекс Браузере тоже (раздел расширений / установка из магазина Chrome).
Что умеет расширение
- Перенести данные из учёта в ЕАИСТО. Карту готовите в своей программе или в WEB-DK, копируете данные, открываете ЕАИСТО-М и нажимаете Ctrl+Shift+Y — поля на сайте ЕАИСТО заполняются из вашей учётной системы, без ручного набора.
- Вернуть готовую карту в учёт. После регистрации в ЕАИСТО расширение передаёт PDF, номер карты и срок действия обратно в программу ПТО или кабинет WEB-DK — карта в учёте отмечается как оформленная.
- Фото с телефона. Снимки удобно делать в приложении «Фото для техосмотра» — на компьютер их можно передать несколькими способами (облако, почта, локальная сеть и др.). Один из вариантов — WEB-DK.Sync, когда обычный интернет ограничен. Фото участвуют в оформлении вместе с данными из учёта.
Сколько это стоит
Установка и обновление расширения — бесплатно. Платите только за действия, которые реально выполняете при оформлении карты: например, отправка черновика в ЕАИСТО, капча и связанные шаги — сумма списывается с лицевого счёта в личном кабинете WEB-DK (обычно несколько рублей за операцию). Пополнить счёт можно в кабинете, когда понадобится.
Как установить
Рекомендуемый способ — установить из Chrome Web Store (или кнопка «Chrome Web Store» в личном кабинете WEB-DK). Так расширение получает обновления автоматически.
Лучше всегда ставить из магазина: при ручной установке из ZIP автообновления не работают — новую версию нужно скачивать и подключать вручную. ZIP с сайта нужен только если в Chrome Web Store долго появляется обновление, а вам уже нужна свежая сборка.
Ручная установка из ZIP (если маркет ещё не обновился)
- Скачайте архив EAISTO.helper с этого сайта.
- Распакуйте ZIP в любую постоянную папку на компьютере (не удаляйте её после установки).
- Откройте страницу расширений браузера:
- Chrome / Chromium: адрес
chrome://extensions - Яндекс Браузер: адрес
browser://tune→ «Дополнения» или меню → «Дополнения»
- Chrome / Chromium: адрес
- Включите режим разработчика (переключатель вверху справа).
- Нажмите «Загрузить распакованное расширение» и укажите папку, в которой лежит файл
manifest.json. - Готово. Чтобы поставить более новую ручную сборку позже — снова скачайте ZIP, замените файлы в папке и нажмите «Обновить» на карточке расширения.
Когда обновление появится в Chrome Web Store, лучше перейти на установку из магазина и удалить вручную загруженную копию — так снова заработают автообновления.
Для ежедневной работы пункта с WEB-DK и программой ПТО этого достаточно. Если нужна полная автоматизация (госпошлина, подпись, очередь карт без ручной работы на сайте ЕАИСТО) — смотрите раздел про EAISTO Client Agent ниже или напишите нам; старую программу EAISTO.connector больше не поддерживаем.
Частые вопросы
Как сейчас оформлять карты в ЕАИСТО вместе с WEB-DK?
Ведёте карту в своей учётной системе (WEB-DK или программа ПТО), устанавливаете EAISTO.helper, переносите данные в ЕАИСТО-М горячей клавишей, завершаете регистрацию на сайте ЕАИСТО — готовая карта (PDF, номер, срок) возвращается в учёт или кабинет WEB-DK.
Как установить EAISTO.helper вручную, если в магазине ещё старая версия?
Лучше ставить из Chrome Web Store — тогда расширение обновляется само. Если маркет долго публикует обновление, скачайте ZIP с сайта и установите вручную: режим разработчика → «Загрузить распакованное расширение» (подробные шаги — в разделе «Как установить» выше). Когда версия появится в магазине, перейдите на установку из маркета и удалите ручную копию.
Чем расширение отличается от локального агента?
EAISTO.helper — мост в браузере: вы переносите данные из учёта на сайт ЕАИСТО и возвращаете готовую карту обратно. EAISTO Client Agent — программа на компьютере для полной автоматизации без ручной работы на сайте ЕАИСТО: от передачи данных (в том числе о госпошлине и её проверке) до подписи и получения карты. Агент в закрытом бета-тесте: доступ по заявке из личного кабинета. Для повседневной работы большинства пунктов достаточно helper. Старый Windows-коннектор ставить не нужно.
В каком браузере работать с ЕАИСТО?
Официально для ЕАИСТО часто рекомендуют Chromium (в том числе Chromium GOST). На практике сейчас хорошо заходит и Яндекс Браузер — многие эксперты оформляют карты в нём без проблем. EAISTO.helper ставится из Chrome Web Store и в Chrome, и в Яндекс Браузере.
Нужен ли отдельный вход в ЕАИСТО?
Да. Карты по-прежнему регистрируются в системе ЕАИСТО-М под вашим экспертом и сертификатом. WEB-DK и программа ПТО (например 1С:ПТО) хранят учёт пункта; фото делает приложение «Фото для техосмотра»; helper связывает это с сайтом ЕАИСТО.
Куда деваются фото с телефона?
Снимки с геометками делаете в приложении «Фото для техосмотра». На компьютер их можно передать по-разному: Google Диск, Яндекс.Диск, email, USB, Wi‑Fi/FTP, API — в этом и удобство приложения. WEB-DK.Sync — относительно новый способ для ситуаций, когда в регионе режут интернет (белые списки, отключения): фото уходят на ПК по локальной сети или через сервисы WEB-DK, без привычных облаков. Дальше снимки используются при оформлении карты в ЕАИСТО.
За что именно списываются деньги?
Не за установку расширения, а за отдельные шаги работы с ЕАИСТО через сервисы WEB-DK: отправка черновика карты, капча и похожие операции. Каждая операция — небольшая сумма с лицевого счёта; без работы по картам ничего не списывается.
EAISTO Client Agent — полная автоматизация
EAISTO Client Agent — программа на компьютере пункта для полной автоматизации работы с ЕАИСТО-М: от передачи данных карты (в том числе сведений о госпошлине и её проверки) до электронной подписи и получения готовой карты с PDF. Без ручного заполнения сайта ЕАИСТО. Подпись — через КриптоПро на ПК агента. Закрытый бета-тест: скачивание и доступ открываем по заявке — запросите доступ в личном кабинете.
Два режима работы
- API-мост к ЕАИСТО. Стороннее приложение (1С, программа ПТО, ЛК WEB-DK в браузере) вызывает локальный HTTP API агента — агент сам логинится в ЕАИСТО, решает капчу, подписывает и возвращает результат. Ниже — актуальный контракт этого режима.
-
Очередь WEB-DK (portal queue).
Агент сам забирает готовые карты из
https://web-dk.ru/api/v7/dk/, проводит P1 → интервал → P2 → подпись и возвращает номер/PDF в кабинет — без кликов оператора на каждом шаге.
После установки укажите в агенте API-ключ из личного кабинета web-dk.ru и запустите сервис.
Базовый адрес локального API: http://127.0.0.1:8080/api/v7/ (порт можно изменить).
Авторизация — query-параметр access-token (тот же ключ, что в кабинете).
Актуальный префикс — /api/v7/. Кабинет WEB-DK выгружает карту именно так.
Для совместимости со старыми клиентами 1С агент также отвечает на /api/ и
/api5/ecp1c/ (send/sign).
Устаревший параметр accesstoken (без дефиса) может приниматься,
но в новых интеграциях используйте только access-token.
Версию агента смотрите в ответе GET /api/status — в доке номер сборки не фиксируем.
Типовой порядок (API-мост, v7)
- status — проверка, что агент запущен.
- captcha с
autoCaptcha=1иcertThumbprint— перед каждым шагом: вход в ЕАИСТО и решение капчи внутри агента. - create — черновик без фото. Два вызова с одним телом: первый возвращает
next=createиretryAfter,idещё нет; второй создаёт карту и возвращаетid. - photo1 — тоже два вызова. Первый фото не загружает. Второй с
image1отправляет фото, записывает поля карточки и начинает интервал. - gp — проверка госпошлины. Если в ответе
nextравенgp-status, вызовитеPOST /api/v7/gp-statusс тем же id. - Ожидание минимального интервала между фото.
- photo2 — второе фото по id черновика. Если интервал ещё не прошёл, агент отвечает
waitиretryAfter. - sign — подпись через КриптоПро в агенте.
- print — номер карты и PDF, если их ещё нет в ответе
sign.
Фото готовьте в «Фото для техосмотра» —
на ПК любым удобным способом (облако, почта, локальная сеть;
WEB-DK.Sync — если интернет ограничен).
В ЛК WEB-DK «Выгрузить в ЕАИСТО» идёт шагами create (черновик и данные ТС, без фото)
и photo1 (первое фото, затем повторное сохранение карты).
Второе фото можно прикрепить после выгрузки, до конца диагностики. Завершение — шаги photo2 / sign / print.
Кнопка «Завершить в ЕАИСТО» — запасной повтор, если вкладку закрыли в середине.
«Прервать» после подтверждения вызывает POST /api/v7/cancel-active и снимает привязку черновика в кабинете: карту можно выгрузить заново.
Общие query-параметры локального API
access-token— API-ключ из кабинета (обязателен для captcha / create / photo1 / gp / photo2 / sign / print / cancel-active).autoCaptcha=1— агент сам решает капчу; клиенту не нужно показывать картинку и слать код вручную.certThumbprint— отпечаток сертификата эксперта (КриптоПро); агент выбирает нужный сертификат для подписи.iddk— опционально, id карты во внешней системе (в WEB-DK — id диагностической карты); помогает сопоставлять черновик.id— id черновика ЕАИСТО; обязателен начиная сphoto1.
Методы локального API (режим моста)
0. Проверка состояния агента (без авторизации)
http://127.0.0.1:8080/api/status?format=json
Возвращает JSON
version(илиagentVersion) — версия агента- статус сервиса, EAISTO, подписки и обновлений
- метод доступен без
access-token
1. Вход в ЕАИСТО (капча)
http://127.0.0.1:8080/api/v7/captcha?access-token=API_КЛЮЧ&autoCaptcha=1&certThumbprint=ОТПЕЧАТОК
Поведение
- В v7 капчу вызывают перед каждым шагом
create/photo1/gp/photo2/sign/print. - При
autoCaptcha=1агент сам получает и решает капчу; отдельный шаг «ввести код с картинки» клиенту не нужен. - Сертификат эксперта задаётся через
certThumbprint.
2. Шаги выгрузки (create / photo1 / gp / photo2 / sign / print)
http://127.0.0.1:8080/api/v7/{create|photo1|gp|photo2|sign|print}?access-token=API_КЛЮЧ&autoCaptcha=1&certThumbprint=ОТПЕЧАТОК
Тело (application/x-www-form-urlencoded)
- json — payload схемы
eaisto-connector-1.0(см. ниже) - id — id черновика ЕАИСТО; на
createне нужен, на следующих шагах обязателен - image1 — только на
photo1: base64 JPEG первого фото (без префиксаdata:) - image2 — только на
photo2: base64 JPEG второго фото
Не передавайте image1 и image2 в одном запросе.
В ответе смотрите id, next (следующий шаг) и при раннем photo2 — wait / retryAfter.
Прежний объединённый метод POST /api/send остаётся для старых клиентов.
Параметр json (схема eaisto-connector-1.0)
Тот же набор полей карты копирует EAISTO.helper из буфера, когда данные приходят из кабинета WEB-DK, программы «Пункт технического осмотра» на базе 1С:Предприятие 8 или своей CRM.
{
"diagnosticStart": "2026-07-30T14:10:00",
"diagnosticFinish": "2026-07-30T14:45:00",
"toOperator": "краткое имя оператора",
"expert": "Иванов Иван Иванович",
"expertForConnector": "",
"expertTelegramCode": "",
"eaistoId": null,
"ExtSystem": "WEBDK",
"ExtSystemID": "12345",
"card": {
"VehicleCategory2": "M1",
"VehicleCategory": "B",
"Vin": "VIN",
"RegistrationNumber": "А123ВС777",
"Year": "2018",
"Killometrage": "120000",
"EmptyMass": "1200",
"MaxMass": "1800",
"Tyres": "модель шин",
"Fuel": "Petrol",
"BrakingSystem": "Hydraulic",
"diagnosticType": "первичная",
"comment": "",
"transportTypeName": "Легковые автомобили",
"Vehicle": { "Make": "марка", "Model": "модель" },
"RegistrationDocument": {
"DocumentType": "RegTalon",
"Series": "серия",
"Number": "номер",
"Organization": "кем выдан",
"Date": "2020-01-15",
"Foreign": "N"
},
"Tachograph": { "Brand": "", "Model": "", "SerialNumber": "" },
"gbo": {
"hasGasEquipment": false,
"noGasBottle": false,
"gasBottles": []
},
"paymentInfo": {
"paymentId": "УИН госпошлины",
"paymentDate": "2026-07-30",
"preferentialInn": "",
"preferentialKpp": ""
},
"diagnosticResults": [
{
"number": "1",
"failed": false,
"result": "Соответствует"
}
]
}
}
Числовые поля карты (Year, Killometrage, …) передаются строками.
Фото — только в form-полях image1/image2, не внутри card.
На create в ЕАИСТО уходят категория и тип диагностики. Полный JSON карточки нужен на том photo1, который загружает первое фото.
Когда какое поле записывается и как его поправить —
в разделе «Своя программа пункта».
Возвращает JSON (типично)
id— идентификатор черновика в ЕАИСТО. На первомcreateего ещё нет. Дальше передавайте его же.next— следующий вызов:create,photo1,gp,gp-status,photo2,sign,printwait/retryAfter— пауза перед тем же шагом (create, первыйphoto1, раннийphoto2). Это не отказ данных и не новая карта.error: trueиmessage— отказ. HTTP при этом 200. Отдельных кода ошибки ЕАИСТО и имени поля нет. Если вcaptchaпришла картинка base64, повторите тот же шаг.number,validity,pdf— послеsign/print
3. Подписание карты и печатная форма
http://127.0.0.1:8080/api/v7/sign?access-token=API_КЛЮЧ&autoCaptcha=1&certThumbprint=ОТПЕЧАТОК&id=ID_ЧЕРНОВИКА
Поведение
- Перед
signснова вызовитеGET /api/v7/captcha. - При переданных
access-token+certThumbprintагент подписывает digest через КриптоПро сам. - Если в ответе нет PDF —
POST /api/v7/printс тем жеid.
Возвращает JSON
id— идентификатор карты в ЕАИСТОvalidity— срок действияnumber— 15-значный номер в ЕАИСТОpdf— base64 PDF
4. Поиск диагностической карты в ЕАИСТО
http://127.0.0.1:8080/api/search?access-token=API_КЛЮЧ
Параметры (тело запроса или query)
- cardNumber — номер диагностической карты (15 цифр)
- registrationMark — регистрационный номер
- vin — VIN
- bodyNumber — номер кузова
Поиск уже существующей карты для старых клиентов — POST /api5/ecp1c/search.
В ответе id, номер, срок и состояние госпошлины. Это не текущий шаг оформления v7.
5. Получение карты или PDF по номеру / id
http://127.0.0.1:8080/api/get-by-id?access-token=API_КЛЮЧ
Поведение
PDF по id забирает POST /api/v7/print. Старый get-by-id тоже скачивает PDF.
У ещё не подписанного черновика PDF может не появиться: это не значит, что черновика нет.
6. Отмена черновика
http://127.0.0.1:8080/api/v7/cancel-active?access-token=API_КЛЮЧ&autoCaptcha=1&certThumbprint=ОТПЕЧАТОК&id=ID_ЧЕРНОВИКА
Поведение
- Перед вызовом снова
GET /api/v7/captcha. - В кабинете это кнопка «Прервать»: черновик в ЕАИСТО отменяется, карту можно выгрузить заново.
- Подписанную карту отменить нельзя: в
messageбудет «Подписанную диагностическую карту нельзя отменить».
Очередь WEB-DK (portal queue)
Базовый URL: https://web-dk.ru/api/v7/dk/.
Auth: query access-token. Нужна ветка portal_queue
(GET /api/v7/dk/access; не путать с connector_api / галкой Client Agent).
Типовой цикл агента:
GET orders?status=READY— FIFO-очередь готовых карт.POST claim— захват карты (agentId,certThumbprint).GET orderсphotoFormat=base64— получитьptoPayloadдля локального/api/v7/createи следующих шагов.- Локально: captcha → create → photo1 → gp → ожидание интервала → photo2 → sign → print.
POST status— промежуточные статусы (EAISTO_SEND_P1,WAITING_INTERVAL, …).POST complete— номер, PDF, срок; либоPOST releaseпри ошибке.
Карта попадает в READY при заполненных эксперте, фото и УИН госпошлины.
Payload для агента — схема eaisto-connector-1.0 (тот же JSON, что в API-мосте выше).
Полный контракт методов, ошибок и recovery — во внутренней спецификации для разработчиков агента;
интеграторам 1С обычно достаточно локального API-моста.
Своя программа пункта
Локальный API агента на компьютере эксперта — тот же путь, что у программы «Пункт технического осмотра».
Своя CRM вызывает http://127.0.0.1:8080/api/v7/.
Данные автомобиля и снимки из приложения «Фото для техосмотра» читаются с https://web-dk.ru
тем же API-ключом. Очередь и приоритет заданий остаются в CRM.
Агент выполняет один вызов и возвращает ответ. Второй запрос, пришедший раньше, ждёт в очереди, пока закончится текущий. Сменить приоритет ожидающего запроса нельзя.
Черновик, первое фото и правки
На POST /api/v7/create агент сам собирает черновик ЕАИСТО.
Из JSON на этом шаге берётся категория VehicleCategory2 (если поля нет, подставляется M1)
и diagnosticType (если поля нет — первичная).
Имя эксперта, номер и адрес пункта агент берёт из сессии сертификата, не из полей expert и toOperator.
VIN, госномер, документы, пробег, массы и diagnosticResults в запрос создания карты не отправляются.
Пустые значения на create ЕАИСТО не проверяет: отдельного отказа «не хватает VIN» на этом шаге нет.
create — два вызова с одним и тем же телом.
Первый возвращает next=create и retryAfter (обычно 3–8 секунд), id ещё нет: карту агент в этот момент не создаёт.
После паузы второй create создаёт карту и возвращает id, next=photo1 и следующую паузу (обычно 20–40 секунд).
{
"formatVersion": "eaisto-connector-1.0",
"eaistoId": "0",
"card": {
"VehicleCategory2": "M1",
"VehicleCategory": "B",
"diagnosticType": "первичная"
}
}
Интервал начинается, когда ЕАИСТО приняла первое фото, и не зависит от того, заполнены ли остальные сведения.
У photo1 тоже два вызова. Первый, сразу после create, фото не грузит: в ответе next=photo1 и retryAfter обычно 70–100 секунд.
Второй вызов с тем же id, полем image1 и JSON карточки загружает фото и записывает поля.
Интервал идёт от этого второго вызова. Для M1 ориентир до второго фото — 30 минут, для N1 — 32.
Точный остаток приходит в тексте ЕАИСТО, если photo2 вызван раньше срока.
Поля записываются на том photo1, который загружает фото.
В ЕАИСТО в этот момент уходят VIN, госномер, категория, марка, модель, год, документ, пробег, массы, шины, топливо, тормоза и непройденные пункты diagnosticResults.
id остаётся тем же. Если к этому моменту поля ещё пустые, в карту уходят пустые значения, и отказ ЕАИСТО придёт уже с этого photo1 или со следующего шага.
Полный JSON, включая пробег, нужен на загружающем photo1.
Отдельного метода «обновить поля» нет. Если после принятого фото нужно исправить карточку, ещё раз вызовите photo1
с тем же id, актуальным JSON и снова с image1 в form-теле.
Фото повторно не отправляется, если оно уже принято: агент перезаписывает поля. Пробег меняется этим повторным photo1.
Интервал при такой правке не обнуляется, cancel-active не нужен.
gpперезаписывает те же поля только когда в JSON есть госпошлина (УПНО или льгота). Пробег этот шаг не меняет. Если госпошлины в JSON нет, поля автомобиляgpне сохраняет. Уже идущую проверку (gpBindState=IN_PROCESS) новымgpне запускайте: дальшеgp-status.gp-statusтолько спрашивает состояние платежа.photo2загружает второе фото и поля автомобиля не переписывает.signподписывает карту, которая уже лежит в ЕАИСТО. Тело JSON на этом шаге агент не читает.printзабирает PDF и номер поid.
Новый create заводит другую карту. id храните у себя.
Пока у эксперта открыт черновик, новый create лучше не вызывать: агент продолжит уже открытый черновик или вернёт конфликт и вторую карту не заведёт.
Смену M1 → N1 текущая версия на том же черновике не проводит. Категория в JSON на photo1 запишется, но тип транспортного средства выбирается один раз при create и при правке не пересчитывается.
Рабочий путь: POST /api/v7/cancel-active с этим id, затем новый create уже с N1.
Первое фото и интервал начинаются заново. VehicleCategory у M1 и N1 один — B. Меняются VehicleCategory2 и заново собранный diagnosticResults: их кладут в JSON нового create и его загружающего photo1.
Подписанную карту отменить нельзя.
В JSON агента эти поля такие:
VehicleCategory2— M1, N1, N2, N3, M2, M3, O1–O4, L.VehicleCategory— A для L, B для M1 и N1, C для N2 и N3, D для M2 и M3, E для O1–O4.Fuel—Petrol,Diesel,PressureGas,LiquefiedGas,PetrolLiquefiedGas,None. Для категории E поле пустое.BrakingSystem—Mechanical,Hydraulic,Pneumatic,Combined.RegistrationDocument.DocumentType—RegTalon(СРТС),PTS,EPTS.diagnosticType—первичнаяилиповторная.
Ошибки проверки
При отказе в ответе error: true, message и id черновика, если он уже известен.
Отдельного кода ошибки ЕАИСТО, имени поля и номера этапа нет. Какой шаг отказал, определяет адрес, который вы вызвали.
HTTP-статус при таком отказе — 200. Если ЕАИСТО прислала собственную фразу, в message будет она.
Проверка пробега выполняется на gp, если в JSON пробег больше нуля. Пример, когда ЕАИСТО не прислала свой текст:
{
"error": true,
"message": "В поле «Пробег ТС (км)» указан меньший пробег, чем в предыдущей диагностической карте данного транспортного средства. Дальнейшее создание ДК невозможно.",
"captcha": "NONE",
"id": "57501241"
}
Ответ wait: true и retryAfter — пауза, не отказ данных.
Раннее второе фото тоже так: в message текст ЕАИСТО про «раньше срока» и «осталось N мин», поля error нет, next остаётся photo2.
Капча посреди шага: error: true и в captcha картинка base64. Повторяется тот же шаг, не новый create.
Правка пробега, VIN, документов и госпошлины после уже принятого photo1 — повторный photo1 с тем же id, исправленным JSON и полем image1.
Первое фото заново не загружается. Другой УПНО или льготу можно передать на gp с тем же id, пока проверка платежа не в состоянии IN_PROCESS.
Пробег через gp не перезаписывается. Смена категории M1 → N1 — через cancel-active и новый create, как выше.
Если не прошёл сам create и id нет, исправленный JSON отправляется новым create.
Фразы, которые формирует сам агент:
| message | Что делать |
|---|---|
Подождите retryAfter секунд перед этим шагом (wait: true) | Подождать retryAfter и вызвать тот же next |
| Не передано фото №1 | Повторить photo1 с image1 |
| Нет image2 для photo2 | Повторить photo2 с image2 |
| Недопустимая дата, время или объём файла, либо в файле нет даты съёмки | Другой JPEG и тот же шаг |
| Координаты места нахождения ТС не соответствуют координатам ПТО | Нужен снимок с места осмотра |
Второе фото раньше срока, осталось N мин (wait: true, next=photo2) | Подождать указанное время, затем photo2 |
| В поле «Пробег ТС (км)» указан меньший пробег | Исправить пробег повторным photo1 |
| Платежи по указанным реквизитам в ГИС ГМП не найдены | Другой УПНО на gp |
| Найденный платёж не может быть использован | Другой УПНО на gp |
| Превышен таймаут ожидания ответа по госпошлине | Повторить gp-status с тем же id |
| Статус платежа: IN_PROCESS | Следующий вызов — gp-status |
| ЕАИСТО отклонила запрос на периметре (HTTP 403) | Черновик жив. Повторить тот же шаг, новый create не вызывать |
| Нет активного черновика, этот id не может быть обновлён | Карта в ЕАИСТО уже не открыта. Если она не подписана — новый create |
| Конфликт черновиков: активный черновик — другой id | Продолжать открытую карту или закрыть её через cancel-active |
| Подписанную диагностическую карту нельзя отменить | cancel-active не вызывать. Дальше print |
Любая другая фраза в message — текст ЕАИСТО как есть. Показывайте её эксперту. Полного перечня всех фраз ЕАИСТО нет.
Сбой ЕАИСТО и своя очередь
Окна «технический сбой» (время сбоя, начало и окончание, данные акта) в локальном API нет. Таких полей в JSON агент не принимает и отдельного метода для них нет. При подписи агент спрашивает у ЕАИСТО, действует ли сейчас такое окно, и этот ответ наружу не отдаёт.
После таймаута или ошибки храните последний успешный id и имя шага, который не завершился.
Когда ЕАИСТО снова отвечает, вызовите captcha и повторите этот шаг с тем же id и актуальным JSON.
Успешные create и загружающий photo1 второй раз не вызывайте: повторный photo1 нужен, только если вы правите поля.
Уже принятое первое фото при повторе не уходит заново.
Если оборвался sign, снова вызовите sign с тем же id. Когда карта уже подписана, агент вернёт успех и next=print, вторую подпись не поставит.
Если оборвался print, снова вызовите print: это загрузка PDF по тому же id.
Отдельный запрос состояния перед повтором не нужен.
Метода «текущий этап оформления» в /api/v7/ нет. Состояние хранит ваша программа: последний успешный id и последний ответ (id, next, error, message).
По id агент не возвращает имя незавершённого шага.
Повтор шага с сохранённым id безопасен: принятое фото не дублируется, уже подписанная карта уходит в print.
POST /api5/ecp1c/search ищет карту по номеру, VIN или госномеру и возвращает id, номер, срок и состояние госпошлины. Это поиск уже существующей карты, не лента этапов.
Несколько заданий с приоритетом агент не хранит. Второй запрос ждёт окончания первого и затем выполняется в порядке прихода.
После перезапуска агента память процесса пустая: сессия эксперта и запомненный id пропадают, черновик в ЕАИСТО остаётся.
Порядок: GET /api/status, затем GET /api/v7/captcha, затем незавершённый шаг с сохранённым id.
Агент не обнуляет черновик в полночь и не задаёт срок в сутках.
Карту можно продолжать тем же id, пока у этого эксперта в ЕАИСТО она числится активным черновиком. Один сертификат — один такой черновик.
Когда активного черновика уже нет, а карта не подписана, тот же id продолжить нельзя. Подписанную карту продолжают через print.
После неполадки ЕАИСТО уже принятые фото остаются на черновике.
Сессия эксперта живёт, пока запущен агент и вход не потерян. После перезапуска её поднимает новый captcha, фото из-за этого не сбрасываются.
sign повторяется тем же методом. Проверка госпошлины в состоянии IN_PROCESS повторяется через gp-status, а не новым gp.
Ранний photo2 — это wait и retryAfter, не потеря черновика.
Госномер, данные автомобиля и фото
Распознавание госномера с фотографии автомобиля работает в приложении «Фото для техосмотра», когда снимок уже загружен на web-dk.ru. В Client Agent нет метода «передайте JPEG — получите номер». Своя CRM забирает готовые снимки:
https://web-dk.ru/api/v7/files/recent?access-token=API_КЛЮЧ&limit=8
В каждой записи есть адрес полного JPEG (imageUrl или GET /api/v7/files/photo/{id}?format=base64).
Поле plate — распознанный госномер, если распознавание для этой учётки уже включено
(открыт Client Agent, стоит программа пункта или расширение EAISTO.helper). Иначе plate пустое.
CRM сама опрашивает recent. Передача по FTP этот метод не вызывает.
Характеристики автомобиля — отдельный запрос автозаполнения, после того как номер уже известен:
https://web-dk.ru/api/v7/vinbase/get?access-token=API_КЛЮЧ®_number=А123ВС77
Тот же адрес принимает POST с JSON. Достаточно одного из полей: vin, reg_number
или документ (doc_type: 0 СРТС, 1 ПТС, 2 ЭПТС, плюс doc_series и doc_number).
Поиск только по документу идёт по нашей базе. По VIN и по госномеру при промахе запрос уходит во внешний источник.
В data.vehicle приходят те поля, которые нашлись: vin, reg_number, kuzov, rama,
make, model, year, ts_category, ts_type, mass, mass_max,
fuel, braking_system, серия, номер, дата и кем выдан документ.
data.source — local или external, data.query_type — VIN, GRZ или DOC,
data.price — списание с баланса. При действующей подписке ИТС на программу пункта автозаполнение — 0 ₽.
Пустое поле значит, что значения нет в ответе. Пробег, марка шин и результаты диагностики в этом ответе не приходят: пробег эксперт вводит сам.
fuel и braking_system здесь текстом («Бензин», «Гидравлический»). В JSON агента их нужно переложить в значения Fuel и BrakingSystem из списка выше.
ts_category кладётся в VehicleCategory2, ts_type — в VehicleCategory.
Практический порядок для одной линии: эксперт снимает автомобиль в «Фото для техосмотра» → программа читает files/recent
и забирает JPEG → по plate вызывает vinbase/get → эксперт сверяет документы и вписывает пробег →
программа собирает полный JSON → create (два вызова, пока не появится id) →
photo1 (первый вызов — пауза, второй — фото и запись всех полей, с этого момента идёт интервал).
Если пробег или VIN появились уже после принятого photo1, их записывает повторный photo1 с тем же id и с image1 в теле.
Доступ
Локальный API агента, автозаполнение и чтение фото вызываются из своей программы тем же API-ключом.
Очередь https://web-dk.ru/api/v7/dk/ — другой режим:
агент сам забирает карты, которые уже хранятся на web-dk.ru. Положить туда задание своей CRM и поменять приоритет нельзя.
Агент в закрытом бета-тесте. Отдельного учебного контура ЕАИСТО для сторонней программы нет: после заявки агент работает с боевой ЕАИСТО под сертификатом эксперта. Запросите доступ в личном кабинете. Контракт шагов, JSON, ошибок, фото и автозаполнения — на этой странице.
Вспомогательные методы
1. Отправляет сообщение в WhatsApp на указанный номер
https://web-dk.ru/api4/wa/send?access-token=
Параметры
- phone — обязательный
- message — обязательный