Партнёрский код 36375 Реклама ККТ-Сервис настроит кассу и маркировку под ключ от 2 000 ₽ Подключить ЕСМ
// REST · JSON · без личного кабинета

Публичное API ЕСП (CashDesk Service)

CashDesk Service — сервис ЕСП, который стоит за личным кабинетом, ЕСМ (Единым сервисом маркировки) и Локальным модулем Честного знака (LMCHZ / Regime). Большая часть его методов закрыта JWT-токеном личного кабинета — это лицензии, кассы, группы ЕСМ, тарифы и т.д. Но у сервиса есть небольшой набор публичных методов, которые можно вызывать без токена. Именно ими живут интеграции, автообновление ЕСМ и страница «Файлы для скачивания» этого сайта. Ниже — все четыре метода с примерами.

Что это за 4 метода и почему их всего 4. В полной спецификации CashDesk Service описано 120+ путей (лицензии, кассы, группы ЕСМ, тарифы, флаги, мониторинг и т.д.) — но почти все они помечены security: jwtAuth и требуют Bearer-токена авторизованного пользователя (личный кабинет / вендорский аккаунт). Без токена такие запросы вернут 401 или 403. На этой странице собраны только методы, у которых в схеме нет секции security вообще — их можно дёргать анонимно, с любого сервера или скрипта.

Как устроено API

Несколько практических вещей, которые стоит знать до первого запроса:

  • Хост. В самой спецификации сервера указаны как относительный путь / — реальный адрес зависит от окружения, в котором вам открыли доступ (обычно его выдают вместе с партнёрским кодом при подключении к ЕСП). В примерах ниже он обозначен как <HOST>.
  • Формат. Три метода из четырёх отвечают JSON. Метод версии сервиса — обычным text/plain, без кавычек и обёртки.
  • Авторизация не нужна. Заголовок Authorization для этих четырёх методов передавать не нужно — сервис не проверяет его для публичных путей.
  • Коды ошибок общие для всего сервиса. Даже у публичных методов в схеме формально описаны ответы 401/403/498 — это унаследовано от общего контракта API-гейтвея ЕСП (тот же самый шлюз обслуживает и закрытые методы). На практике для этих 4 путей вы их не получите, если не передаёте в запросе «сломанный» или чужой заголовок Authorization.

Обзор методов

МетодПутьЧто делает
GET /api/v1/cashdesk/version Возвращает текущую версию сервиса CashDesk — удобно для healthcheck'а и мониторинга.
POST /api/v1/cashdesk/vendors Возвращает справочник вендоров ККТ (АТОЛ, Эвотор, Штрих-М и т.д.) с кодами и иконками.
GET /api/v1/cashdesk/software-updates/lmchz/{platform} Отдаёт актуальную версию и ссылку на дистрибутив Локального модуля Честного знака (Regime) для указанной платформы.
GET /api/v1/cashdesk/software-updates/esm/get Проверяет, есть ли новая версия ЕСМ для конкретной установки — тот же вызов делает автообновление самого ЕСМ.
GET /api/v1/cashdesk/version без авторизации

Версия сервиса

Самый простой метод во всём API: без параметров, без тела запроса — просто отдаёт строку с версией развёрнутого сервиса CashDesk. Используется как «пинг» — если сервис жив и отвечает, вы получите 200 и версию; если нет — таймаут или 5xx на уровне инфраструктуры (это уже вне схемы API).

Пример запроса

curl -s https://<HOST>/api/v1/cashdesk/version

Пример ответа 200 · text/plain

1.4.28

Как использовать: добавьте вызов в свой мониторинг (Zabbix/Prometheus/cron) с проверкой кода ответа 200 и непустого тела — этого достаточно, чтобы отслеживать доступность сервиса ЕСП со стороны вашей интеграции, отдельно от статуса самой кассы.

POST /api/v1/cashdesk/vendors без авторизации

Список вендоров

Возвращает справочник производителей/моделей касс, с которыми умеет работать ЕСП — код (используется во всех остальных методах API как значение поля vendor), человекочитаемое название и ссылку на иконку. Тело запроса не требуется — метод сделан POST в спецификации, но фактически работает как обычный «получить справочник».

Пример запроса

curl -s -X POST https://<HOST>/api/v1/cashdesk/vendors \ -H "Content-Type: application/json"

Пример ответа 200 · application/json

[ { "code": "ATOL", "name": "АТОЛ", "icon": "https://static.ao-esp.ru/icons/atol.svg" }, { "code": "EVOTOR", "name": "Эвотор", "icon": "https://static.ao-esp.ru/icons/evotor.svg" }, { "code": "SHTRIHM", "name": "Штрих-М", "icon": "https://static.ao-esp.ru/icons/shtrihm.svg" } ]

Значения поля code (enum) — расшифровка

Схема отдаёт только технический код; ниже — что каждый код означает на практике.

КодВендор / что это
ATOLАТОЛ — фискальные регистраторы и смарт-терминалы, самый распространённый драйвер на этом сайте (ДТО).
EVOTORЭвотор — Android-смарт-терминалы со встроенной кассой.
EVOTOR_ECOMЭвотор для интернет-эквайринга / облачных продаж (отдельный код от «железных» терминалов).
CSICSI — облачная/сервисная касса (провайдер фискализации без физического ФР у клиента).
SHTRIHMШтрих-М — фискальные регистраторы, драйвер POSCenter.
PILOTПилот — фискальные регистраторы и POS-оборудование.
POSCENTERPOSCenter — отдельный код для касс/драйвера POSCenter вне линейки Штрих-М.
MSPOSMSPOS — линейка касс MSPOS (в т.ч. «Касатка»).
DREAMKASДримкас — смарт-терминалы и ФР.
COMPROXYComproxy — облачный ФР-прокси для интеграций без своей кассы.
SERVICE_PLUSСервис Плюс — региональный производитель/интегратор ККТ.
ISKRAИскра — фискальные регистраторы.
MITSUMitsu — фискальные регистраторы.
UNKNOWNВендор не определён / не входит в основной список — служебное значение по умолчанию.

Как использовать: если вы строите форму подключения кассы в своём кабинете — подтягивайте этот список динамически вместо того, чтобы хардкодить вендоров у себя: ЕСП добавляет новые коды по мере подключения новых производителей, а иконки сразу дают готовый UI без своей графики.

GET /api/v1/cashdesk/software-updates/lmchz/{platform} без авторизации

Обновление LMCHZ (Локальный модуль Честного знака / Regime)

LMCHZ — это тот же компонент, который на странице «Файлы для скачивания» называется Regime: локальный модуль Честного знака, обязательный для маркировки, ставится один раз на кассовый ПК рядом с ЕСМ. Метод отдаёт версию и прямую ссылку на установочный файл для конкретной платформы — это ровно то, что использует автообновление Regime.

Параметр пути

ПараметрГдеОбязателенОписание
platform path да Платформа, для которой нужна версия. Одно из значений enum ниже.

Допустимые значения platform

ЗначениеПлатформа
WIN_7_10_11_64Windows 7 / 10 / 11, 64-bit
WIN_10_11_32Windows 10 / 11, 32-bit
UBUNTU_22_04_ARM64Ubuntu 22.04, ARM64
UBUNTU_22_04_AMD64Ubuntu 22.04, AMD64 (x86_64)
DEBIAN_11_ARM64Debian 11, ARM64
DEBIAN_11_AMD64Debian 11, AMD64 (x86_64)
DOCKER_UBUNTU_22_04_ARM64Docker-образ на базе Ubuntu 22.04, ARM64
DOCKER_UBUNTU_22_04_AMD64Docker-образ на базе Ubuntu 22.04, AMD64

Пример запроса

curl -s https://<HOST>/api/v1/cashdesk/software-updates/lmchz/WIN_7_10_11_64

Пример ответа 200 · application/json

{ "version": "1.2.1", "downloadUri": "https://static.ao-esp.ru/downloads/lmchz/1.2.1/regime-1.2.1-340.msi" }

Это официальный пример из самой схемы API — версия там указана как 1.2.1, но на момент подготовки этой страницы на сайте актуальна Regime 2.5.1-2 (32/64-bit) — смотрите раздел «Regime» на странице файлов для скачивания. Это нормально: номер в примере из спецификации не обязан совпадать с версией на конкретном сервере — доверяйте ответу API, а не документации, если они расходятся.

Если для платформы ещё не публиковалась ни одна версия, сервис отвечает 404, но с тем же самым телом схемы LmchzVersionDto (обычно с пустыми полями) — проверяйте именно HTTP-статус, а не наличие полей в теле.

Как использовать: если вы поставляете Regime в составе собственного дистрибутива — дёргайте этот метод перед установкой/обновлением клиента, чтобы не тащить с собой устаревший установщик и не хранить зеркало файлов у себя.

GET /api/v1/cashdesk/software-updates/esm/get без авторизации

Проверка обновления ЕСМ

Это тот самый эндпоинт, который дёргает установленный на кассовом ПК ЕСМ, когда проверяет, не вышла ли новая версия. Вы можете вызывать его сами — например, чтобы заранее знать, что клиентам скоро потребуется обновление, или чтобы встроить проверку в собственный агент/скрипт установки.

Параметры запроса (query, объект req)

ПолеОбязательноОписание
esmIdнетUID конкретной установки ЕСМ. Если не передан — сервис просто вернёт актуальную версию без привязки к конкретному клиенту.
versionнетВерсия ЕСМ, установленная сейчас у клиента (например, 1.6.3.0) — по ней сервис решает, нужно ли обновление.
osдаОперационная система/платформа клиента. Единственное строго обязательное поле — без него запрос вернёт 400.

Допустимые значения os

ЗначениеПлатформа
WINDOWSWindows, общий вариант
WINDOWS_7Windows 7 (устаревшая, отдельный код из-за ограничений драйверов)
LINUX32Linux, 32-bit, общий вариант
LINUX64Linux, 64-bit, общий вариант
UBUNTUUbuntu, общий (до разделения на конкретные .deb/.rpm сборки)
LINUX_TINYTinyCore Linux — облегчённые/встраиваемые кассовые ПК
EVOTORОС смарт-терминалов Эвотор (Android-based)
MSPOSОС касс линейки MSPOS
ANDROIDAndroid — мобильные ККТ и смарт-терминалы
LINUX_RPM_X86_64Linux, RPM-пакет, x86_64
LINUX_RPM_I686Linux, RPM-пакет, i686 (32-bit)
LINUX_DEB_AMD64Linux, DEB-пакет, amd64
LINUX_DEB_ARM64Linux, DEB-пакет, arm64
LINUX_DEB_ARMHFLinux, DEB-пакет, armhf (ARM 32-bit, hard-float)
LINUX_DEB_I386Linux, DEB-пакет, i386
LINUX_RUN_TINYCORE8Автономный .run-инсталлятор для TinyCore 8
LINUX_RUN_UBUNTU22Автономный .run-инсталлятор для Ubuntu 22

Пример запроса

curl -s "https://<HOST>/api/v1/cashdesk/software-updates/esm/get?esmId=7c1b3a2e-91e4-4d3f-9a52-2f6b0c8e1a10&version=1.6.3.0&os=WINDOWS"

Поля ответа ESMUpdateResponse

ПолеТипОписание
statusenumAVAILABLE — есть новее версия; ACTUAL — у клиента уже последняя.
versionstringНомер новой версии (заполнен, если status = AVAILABLE).
versionDatedate-timeДата публикации новой версии.
urlstringПрямая ссылка на установочный файл.
forceUpdatebooleanЕсли true — обновление принудительное (обычно из-за критической правки, ЕСМ не должен давать пользователю отложить установку).
hashstringSHA-256 файла обновления в hex — для проверки целостности скачанного дистрибутива.
sizeint64Размер файла в байтах.

Пример ответа 200 · application/json

{ "status": "AVAILABLE", "version": "1.6.3.2", "versionDate": "2026-06-18T10:00:00Z", "url": "https://static.ao-esp.ru/downloads/esm/1.6.3.2/esm_1.6.3.2-prod-windows-signed-setup.exe", "forceUpdate": false, "hash": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", "size": 84520192 }

Имя файла в примере выше совпадает с актуальной версией ЕСМ 1.6.3.2 на странице «Файлы для скачивания» — то есть это именно та ссылка, которую отдаёт автообновление реальным пользователям ЕСМ прямо сейчас.

Важно для безопасности. Перед запуском скачанного установщика в автоматическом сценарии — сверяйте SHA-256 файла со значением поля hash. Так вы защититесь от повреждённой загрузки или подмены файла на промежуточном узле сети.

Как использовать: если вы разворачиваете ЕСМ через собственный агент или MDM — вызывайте этот метод по расписанию (например, раз в сутки), сверяйте version с установленной и обновляйте автоматически при forceUpdate: true, а в остальных случаях — уведомляйте пользователя и давайте выбор.

Коды ошибок

Единый формат ошибки для всех методов сервиса — объект RestErrorInfo:

{ "errorCode": "STRING_CODE", "errorMessage": "Человекочитаемое описание ошибки" }
HTTP-кодКогда возникает
400Ошибка валидации запроса (например, не передан обязательный os у метода обновления ЕСМ). Тело — RestErrorInfo.
401Токен недействителен и не может быть обновлён. Формально описан в схеме для всех методов сервиса; для этих 4 публичных путей не встречается, если вы не передаёте свой Authorization-заголовок.
403Недостаточно прав, либо ошибка при валидации токена — та же логика, что и для 401.
498Токен просрочен, но подлежит REFRESH — актуально только для методов личного кабинета за jwtAuth, к публичным методам не относится.

Нужен доступ к закрытой части API?

Лицензии, кассы, группы ЕСМ, тарифы и мониторинг доступны через тот же CashDesk Service, но требуют JWT-токена личного кабинета ЕСП. Получить доступ и партнёрский ключ можно в личном кабинете ЕСП или у нашей поддержки — контакты ниже.

Партнёрское предложение — переход на другой сайт

ККТ-Сервис · Зеленоград

Нет времени разбираться? Настроим кассу под ключ

Регистрация ККТ в ИФНС, установка драйверов АТОЛ/Штрих, настройка ТС ПИоТ и подключение маркировки «Честный Знак». Выезд инженера или удалённая настройка — от 2 000 ₽.

+7 (499) 110-25-56 info@kkt.pro

Сервисный центр кассовой техники.
Работаем с 1998 года.

Не получается настроить самостоятельно? Оставьте телефон в панели заказа — два поля, 15 секунд. Перезвоним в рабочее время, партнёрский код уже учтён.
+7 (499) 110-25-56