iikoCloud API: Подключиться и найти свои рестораны

Сценарий из mcp-everything. Актуально на 2026-10-24.

Первый шаг любой интеграции: токен, организации и терминальные группы, куда будут уходить заказы.

  1. Создай приложение на портале разработчика public-api.iikoweb.ru — получишь appId и clientSecret (показывается один раз). В iikoWeb → «Интеграции» → «API-ключи» сгенерируй apiKey: он определяет, к каким организациям будет доступ.
  2. Получи токен: POST /api/v2/access_token с apiKey, appId и clientSecret. Токен живёт час, refresh-токена нет — запрашивай новый заранее, например каждые 50 минут, и передавай в заголовке Authorization: Bearer .
  3. Получи организации: POST /api/1/organizations (пустой organizationIds — все доступные). returnAdditionalInfo = true добавит адрес и версию RMS.
  4. Получи терминальные группы доставки: POST /api/1/terminal_groups с organizationIds. Их ID понадобятся при создании заказа.
TOKEN=$(curl -s -X POST https://api-ru.iiko.services/api/v2/access_token \
  -H 'Content-Type: application/json' \
  -d '{"apiKey": "<apiKey>", "appId": "<appId>", "clientSecret": "<clientSecret>"}' | jq -r .token)

curl -s -X POST https://api-ru.iiko.services/api/1/organizations \
  -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
  -d '{"organizationIds": [], "returnAdditionalInfo": true}'

curl -s -X POST https://api-ru.iiko.services/api/1/terminal_groups \
  -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
  -d '{"organizationIds": ["<organizationId>"]}'

Базовые URL

Авторизация

Тип: Bearer-токен

Токен (JWT) действует 1 час; refresh-токена нет — запрашивайте новый до истечения срока. Старый метод POST /api/1/access_token с apiLogin устарел.

Методы сценария

POST /api/v2/access_token — Получение токена

В ответе: correlationId и token.

Параметр Где Тип Обяз. Описание
apiKey body string да API-ключ из iikoWeb; определяет доступные организации
appId body string да ID приложения с портала разработчика (uuid)
clientSecret body string да Секрет приложения с портала разработчика
Timeout header integer нет Таймаут в секундах, по умолчанию 15

POST /api/1/organizations — Организации

Параметр Где Тип Обяз. Описание
organizationIds body array нет ID организаций; по умолчанию — все доступные
returnAdditionalInfo body boolean нет Вернуть доп. информацию (версия RMS, страна, адрес)
includeDisabled body boolean нет Включить отключённые организации
returnExternalData body array нет Ключи внешних данных

POST /api/1/terminal_groups — Группы терминалов доставки

Параметр Где Тип Обяз. Описание
organizationIds body array да ID организаций
includeDisabled body boolean нет Включить отключённые группы
returnExternalData body array нет Ключи внешних данных

Нюансы

Другие сценарии


Если этого недостаточно — официальная документация: https://api-ru.iiko.services/docs Вся интеграция одним документом: https://mcp-everything.ru/integrations/iiko.md