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

Партнёрский код 36375

API ЕСП для интеграторов

Разбор публичной части REST API сервиса CashDesk (ЕСП) — того же API, который стоит за api.ao-esp.ru. Здесь только методы, рассчитанные на внешних вендоров кассового ПО и интеграторов: проверка лицензии ЕСМ, каталог дистрибутивов и документации, справочник ПМСР, FAQ. Внутренние административные методы личного кабинета (биллинг, раскатка обновлений, управление лицензиями) в эту документацию намеренно не включены.

Важно. Это неофициальное описание, собранное на основе технической спецификации (Swagger/OpenAPI) сервиса. Мы не являемся владельцами API — актуальность полей, доступность конкретных методов для вашей учётной записи и правила доступа уточняйте у ЕСП. Часть методов может требовать отдельного согласования или партнёрского статуса.

Общие сведения

ПараметрЗначение
Базовый адресhttps://api.ao-esp.ru
Префикс методов из этого раздела/api/v1/cashdesk/...
Формат данныхJSON, Content-Type: application/json
АвторизацияAuthorization: Bearer <JWT> — токен личного кабинета ЕСП
Swagger UIapi.ao-esp.ru/api/v1/cashdesk/swagger-ui/index.html

Авторизация

Почти все методы (кроме получения списка вендоров) закрыты схемой jwtAuth — это тот же Bearer-токен, который выдаётся при входе в личный кабинет ЕСП (lk.ao-esp.ru). Отдельного статичного API-ключа для внешних систем в этой версии спецификации не описано: чтобы дергать методы программно, нужна действующая сессия — токен получают через форму логина ЛК и обновляют по мере истечения. Если вам нужен постоянный сервисный доступ без интерактивного логина, уточните у ЕСП порядок выдачи технической учётной записи.

Формат ошибок

При ошибке (HTTP 400) тело ответа — объект RestErrorInfo:

{ "errorCode": "строковый код ошибки — можно использовать в своей логике", "errorMessage": "человекочитаемое описание ошибки" }

Отдельное внимание — нестандартным кодам авторизации, специфичным для этого API:

КодЧто значит
401Токен недействителен и обновить его уже нельзя — нужно заново авторизовать пользователя (повторный логин).
403Не хватает прав на метод, либо не прошла валидация токена.
498Токен истёк, но ещё может быть обновлён — нужно выполнить REFRESH и повторить запрос.

1. Вендоры ККТ и проверка лицензии ЕСМ

Эта группа методов решает конкретную задачу: кассовое ПО стороннего вендора (драйвер, POS-система) хочет программно узнать, куплена ли на конкретной кассе лицензия ТС ПИоТ/ЕСМ — не отправляя пользователя в личный кабинет. Идентифицировать кассу можно тремя способами: по паре «ИНН + заводской номер ККТ», по паре «ИНН + РНМ», либо просто по номеру фискального накопителя.

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

Получение списка вендоров. Справочный метод: возвращает список кодов вендоров ККТ, которые знает система (используются в других методах в поле vendor), человекочитаемое название и ссылку на иконку. Удобно, чтобы не хардкодить список у себя и подтягивать актуальные названия/иконки.

Известные коды вендоров (enum)

ATOLEVOTOREVOTOR_ECOM CSISHTRIHMPILOT POSCENTERMSPOSDREAMKAS COMPROXYSERVICE_PLUSISKRA MITSUUNKNOWN

Пример ответа (200)

[ { "code": "ATOL", "name": "АТОЛ", "icon": "https://api.ao-esp.ru/.../atol.svg" }, { "code": "SHTRIHM", "name": "Штрих-М", "icon": "https://api.ao-esp.ru/.../shtrihm.svg" }, { "code": "EVOTOR", "name": "Эвотор", "icon": "https://api.ao-esp.ru/.../evotor.svg" } ]
POST /api/v1/cashdesk/vendors/license/check Bearer JWT

Проверка лицензии на ЕСМ для одной кассы. Ключевой метод для вендоров: по идентификаторам кассы возвращает, активна ли сейчас подписка ТС ПИоТ и до какого числа. Заполните один из вариантов идентификации: либо inn + znid, либо inn + rnm, либо просто fnid.

Тело запроса — VendorCheckLicenseRequest

ПолеТипОписание
innstringИНН организации
znidstringЗаводской номер ККТ
rnmstringРегистрационный номер ККТ в ФНС
fnidstringНомер фискального накопителя

Запрос

{ "inn": "7712345678", "znid": "00106203345219" }

Ответ (200) — VendorLicenseInformation

{ "licenseActive": true, "licenseActiveTill": "2026-12-31 23:59:59" }

licenseActiveTill в формате yyyy-MM-dd HH:mm:ss; будет null, если licenseActive: false.

POST /api/v1/cashdesk/vendors/license/check_batch Bearer JWT

Пакетная проверка лицензий. То же самое, но сразу для списка касс — удобно, если у вендора тысячи устройств и гонять по одному запросу на кассу нерационально. В теле — массив таких же объектов, что и в одиночной проверке.

Запрос — массив VendorCheckLicenseRequest

[ { "inn": "7712345678", "znid": "00106203345219" }, { "inn": "7712345678", "rnm": "0000123456007890" } ]

Ответ (200) — массив VendorBatchLicenseInformation

[ { "request": { "inn": "7712345678", "znid": "00106203345219" }, "license": { "licenseActive": true, "licenseActiveTill": "2026-12-31 23:59:59" } }, { "request": { "inn": "7712345678", "rnm": "0000123456007890" }, "license": { "licenseActive": false, "licenseActiveTill": null } } ]

Поле request в каждом элементе ответа — это тот же объект, что был передан в запросе (для сопоставления, какой ответ к какой кассе относится), а license — сам результат проверки.

2. Каталог ПО, дистрибутивы и совместимость

Методы этой группы отвечают на вопрос «а где скачать нужный дистрибутив/документацию под конкретного вендора и ОС» и «какое кассовое ПО вообще поддерживается». По сути это программный доступ к тому же самому каталогу, что показан на странице «Файлы для скачивания».

GET /api/v1/cashdesk/software/otherdocs Bearer JWT

Прочая документация. Документы, которые не привязаны к конкретной паре «вендор + ПО» и не попали в основной каталог (например, общие инструкции, регламенты, whitepaper'ы).

Ответ (200) — массив SoftwareOthersDocLink

[ { "code": "GENERAL_SETUP", "name": "Общая инструкция по подключению", "groupName": "Общее", "version": "1.2", "downloadUri": "https://.../general-setup.pdf" } ]
GET /api/v1/cashdesk/software/compatibility Bearer JWT

Таблица совместимости ПО. По каждому вендору — список поддерживаемого кассового ПО (тип модели, минимальная версия, список ОС) и отметка comingSoon, если поддержка ожидается, но ещё не готова.

ПараметрВОписание
modequery, необязательный DOWNLOAD_SOFTWARE (по умолчанию) — режим для страницы загрузки, CHECK_COMPATIBILITY — режим для проверки совместимости

Ответ (200) — массив SoftwareCompatibility

[ { "id": 14, "vendor": "ATOL", "comingSoon": false, "modelTypes": ["FR", "SMART_TERMINAL"], "software": [ { "code": "FRONTOL6", "name": "Frontol 6", "modelType": "FR", "icon": "https://.../frontol.svg", "minVersion": "6.0", "os": ["WINDOWS"], "sortOrder": 1, "categoryIds": [3] } ] } ]
POST /api/v1/cashdesk/software/user_requests Bearer JWT

Заявка «не нашёл нужное ПО». Если пользователь (или ваша интеграция от его лица) не находит в каталоге нужную связку вендор/ПО/ОС, этот метод фиксирует заявку на добавление поддержки — параметры передаются строкой в query, без тела запроса.

ПараметрОбязательныйОписание
vendorNameдаНазвание вендора (строкой, как ввёл пользователь)
softwareNameдаНазвание нужного ПО
osнетОперационная система
POST /api/v1/cashdesk/software/user_requests?vendorName=Iskra&softwareName=iRECA&os=WINDOWS

3. Справочник ПМСР (программно-механические средства регистрации)

ПМСР — используемый ЕСП термин для кассового оборудования/ПО, которое можно подключать через ТС ПИоТ. Эта группа методов — read-only справочники: категории, элементы справочника и таблица инструкций к ним.

GET /api/v1/cashdesk/software/pmsr/categories Bearer JWT

Категории ПМСР. Возвращаются только те категории, в которых есть хотя бы один доступный элемент — удобно сразу строить фильтр/меню без пустых пунктов.

[ { "id": 1, "name": "Фискальные регистраторы" }, { "id": 3, "name": "Смарт-терминалы" } ]
GET /api/v1/cashdesk/software/pmsr/instructions Bearer JWT

Элементы справочника ПМСР, у которых заполнены внешние инструкции (файл, ссылка на сайт или видео) — то есть те позиции, по которым уже есть готовый мануал для пользователя.

Ответ (200) — массив PmsrDictionaryItem

[ { "code": "ATOL_FR", "name": "АТОЛ (фискальный регистратор)", "icon": "https://.../atol-fr.svg", "enabled": true, "partnerCompetencies": true, "sortOrder": 1, "categoryIds": [1], "instructions": [ { "supportedByModelType": { "FR": ["WINDOWS", "LINUX64"] }, "fileUrl": "https://.../atol-instruction.pdf", "siteUrl": "https://кктрф.рф/ts-piot/atol.php", "videoUrl": null } ], "dateAdded": "2025-11-10T09:00:00" } ]
GET /api/v1/cashdesk/software/pmsr_partner_compatibility Bearer JWT

Элементы ПМСР с флагом «совместимость партнёра». Тот же формат ответа (PmsrDictionaryItem), но отфильтрован по элементам, отмеченным как совместимые в рамках партнёрской программы — обратите внимание на поле partnerCompetencies.

4. Документация и FAQ для интеграторов

Читающие методы каталога документации и базы вопрос-ответ, которые ЕСП показывает интеграторам в личном кабинете. Полезны, если хотите вывести тот же контент на своей стороне (например, во встроенной справке собственного продукта).

GET /api/v1/cashdesk/integrator/documentation Bearer JWT

Список документации для интеграторов. Каждая запись — название, группа, дата загрузки и прямая ссылка на файл. Поле integratorFilter показывает, для кого предназначен документ.

Ответ (200) — массив IntegratorDocInfo

[ { "name": "Спецификация проверки лицензии ЕСМ", "groupName": "API", "integratorFilter": "ONLY_INTEGRATOR", "dateUploaded": "2026-05-14T12:00:00", "downloadUri": "https://.../integrator-license-check.pdf" } ]

Значения integratorFilter: ANY ONLY_INTEGRATOR NOT_INTEGRATOR — определяют, кому документ должен показываться в интерфейсе.

GET /api/v1/cashdesk/integrator/faq Bearer JWT

Список FAQ для интеграторов. Вопрос/ответ плюс несколько флагов фильтрации по типу личного кабинета и режиму (демо/боевой), чтобы показывать пользователю только релевантные пункты.

Ответ (200) — массив IntegratorFaq

[ { "id": 21, "question": "Как проверить, активна ли лицензия ЕСМ на кассе?", "answer": "Используйте метод POST /vendors/license/check с ИНН и заводским номером ККТ...", "cabinetTypes": ["LKK", "LKP"], "integratorFilter": "ONLY_INTEGRATOR", "demoFilter": "ANY", "hidden": false, "sortOrder": 3 } ]

cabinetTypes: LKK (личный кабинет клиента), LKP (личный кабинет партнёра), LKM (личный кабинет менеджера) — в каком личном кабинете вопрос должен отображаться.

Что осталось за скобками

В спецификации ещё около сотни методов с тегом ADMIN | ... — управление пробными и предоплаченными лицензиями, раскатка версий ЕСМ через CI/CD, перенос касс между филиалами, мониторинг по ИНН и т.п. Это внутренняя механика личного кабинета ЕСП, требующая административных прав, и мы намеренно не публикуем её здесь — обратитесь напрямую в ЕСП, если для интеграции нужны возможности за пределами этого списка.

Навигация по теме

ТС ПИоТ, онлайн-кассы и маркировка

Практические инструкции, драйверы, интеграции и ответы на вопросы по работе кассы с ТС ПИоТ.

Коммерческий сайт

ККТ-Сервис · kkt.pro

Кассы, ФН и настройка под маркировку

Каталог онлайн-касс, регистрация, настройка, обслуживание, ФФД 1.2 и помощь с ТС ПИоТ. Актуальная цена открывается в карточке товара на kkt.pro.

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