Диагностическая инструкция для администратора и поставщика интеграции. Проверки выполняйте последовательно, меняя один параметр за раз. Названия экранов и доступные функции зависят от версии iiko и внешнего приложения; перед изменениями сверяйте их с официальной документацией. Здесь изложен авторский порядок поиска причины, а не гарантированное исправление любого похожего сообщения.
Как проявляется проблема
- Заказ есть на сайте, но не появляется на кассе.
- В ответе указано TerminalGroupIdNotDetermined.
Что проверить сначала
- Неверное имя поля или тип значения в запросе.
- Терминал не соответствует организации.
- Автоматический выбор не находит подходящую точку.
Три точки наблюдения
Полная формулировка из статьи
Сравните структуру запроса с актуальной схемой метода, который использует ваше приложение. Проверьте единственное и множественное число названий полей, вложенность и тип UUID. В известном вопросе Habr ошибка была связана с terminalGroupIds вместо terminalGroupId; этот пример полезен как ориентир, но не заменяет проверку вашей версии API. Получите актуальный список доступных терминальных групп штатным способом интеграции. Найдите группу по ресторану и назначению, а не только по похожему названию. Зафиксируйте её принадлежность выбранной организации. Если приложение позволяет выбрать группу вручную, убедитесь, что сохранён именно UUID, а не отображаемый номер или текст. Для доставки проверьте принцип выбора ресторана. Если маршрутизация зависит от адреса и зоны, сравните результат расчёта доступной точки с organizationId и terminalGroupId в созданном заказе. Нельзя брать организацию из сохранённых настроек, а терминал — из результата для другого филиала. Такая комбинация требует исправления логики интеграции.

Маршрут диагностики
Маршрут проверок
Полная формулировка из статьи
Шаг 1. Откройте полный обезличенный ответ именно на создание заказа. Сохраните correlationId, текст ошибки, время и UUID организации. Не ограничивайтесь уведомлением «заказ отправлен»: оно может означать только выполнение HTTP-запроса. Сначала установите, что вернул сервис, и лишь затем решайте, нужен ли повтор. Шаг 2. Сравните структуру запроса с актуальной схемой метода, который использует ваше приложение. Проверьте единственное и множественное число названий полей, вложенность и тип UUID. В известном вопросе Habr ошибка была связана с terminalGroupIds вместо terminalGroupId; этот пример полезен как ориентир, но не заменяет проверку вашей версии API. Шаг 4. Для доставки проверьте принцип выбора ресторана. Если маршрутизация зависит от адреса и зоны, сравните результат расчёта доступной точки с organizationId и terminalGroupId в созданном заказе. Нельзя брать организацию из сохранённых настроек, а терминал — из результата для другого филиала. Такая комбинация требует исправления логики интеграции. Шаг 6. После исправления проверьте конечное появление заказа на нужной кассе и отсутствие его копий в других точках. Сопоставьте UUID и состав, а не только короткий номер. Если первоначальная попытка могла быть принята, перед повтором уточните её статус, чтобы проверка не создала второе приготовление.
Скриншоты и фрагменты документации

Редакционная визуализация фрагмента OpenAPI, не скриншот интерфейса iikoCloud API — официальный справочник OpenAPI. Нажмите на изображение, чтобы открыть отдельно. Сверяйте источник с версией и настройками своей системы.

Редакционная визуализация фрагмента OpenAPI, не скриншот интерфейса iikoCloud API — официальный справочник OpenAPI. Нажмите на изображение, чтобы открыть отдельно. Сверяйте источник с версией и настройками своей системы.

Редакционная визуализация фрагмента OpenAPI, не скриншот интерфейса iikoCloud API — официальный справочник OpenAPI. Нажмите на изображение, чтобы открыть отдельно. Сверяйте источник с версией и настройками своей системы.
Пошаговое решение
Отмечайте выполненные проверки. Отметки действуют до перезагрузки страницы.

Иллюстрация рабочего процесса; сгенерированное фото, не интерфейс iiko. 
Иллюстрация рабочего процесса; сгенерированное фото, не интерфейс iiko.
Развилка результата
Полная формулировка из статьи
Критерий результата: Контрольный заказ создан на ожидаемой точке, исполнитель видит его на кассе, а сохранённые UUID организации и группы соответствуют друг другу. Для автоматического выбора дополнительно проверьте адреса по обе стороны границы зоны доставки. Передача специалисту: Если минимальный контрольный запрос остаётся неуспешным, передайте поставщику интеграции версию приложения, время, адрес метода и обезличенный ответ. Укажите, что уже проверено и какой результат ожидался. Секреты передавайте только предусмотренным защищённым способом; в обычное обращение достаточно идентификатора корреляции и описания сценария.
Как понять, что проблема решена
Контрольный заказ создан на ожидаемой точке, исполнитель видит его на кассе, а сохранённые UUID организации и группы соответствуют друг другу. Для автоматического выбора дополнительно проверьте адреса по обе стороны границы зоны доставки.
Как снизить риск повторения
После изменения терминалов и зон повторяйте тест маршрутизации. Сохраняйте идентификаторы отдельно от названий. В журнале интеграции показывайте точку назначения и результат создания, чтобы администратор мог понять сбой без догадок.
Если проблема осталась
Если минимальный контрольный запрос остаётся неуспешным, передайте поставщику интеграции версию приложения, время, адрес метода и обезличенный ответ. Укажите, что уже проверено и какой результат ожидался. Секреты передавайте только предусмотренным защищённым способом; в обычное обращение достаточно идентификатора корреляции и описания сценария.
Что передать в поддержку
Скопируйте шаблон и заполните его без паролей, API-ключей, данных карт и сведений о гостях.
Проблема: Терминальная группа не определена в iiko: как проверить отправку заказа Версия и компонент iiko: Ресторан / рабочее место: Время сбоя и часовой пояс: Точный текст сообщения: Что ожидалось / что произошло: Какие проверки выполнены: Результат каждой проверки: Идентификатор операции (если допустимо):
Где помогает Menu 360
Menu 360 интегрируется с iiko и позволяет предлагать гостям дополнения к выбранным блюдам. До запуска автоматических продаж и допродаж убедитесь, что основное блюдо и добавка доходят до нужной кассы одним корректным составом. Начать можно с простой связки «бургер + картофель», проверив её на конкретной терминальной группе ресторана.
Вопросы и ответы
terminalGroupId или terminalGroupIds — какое поле правильное?
В запросах создания доставки и заказа в зале используется singular terminalGroupId. Но у других методов есть массивы с похожим названием. Проверяйте схему конкретного endpoint: глобальная замена всех множественных полей на единственное число испортит корректные запросы справочников и проверки доступности.
Нужно ли всегда задавать терминальную группу?
Для создания заказа в зале она обязательна; в схеме создания доставки поле допускает отсутствие, но тогда выбор должен сработать по правилам маршрутизации. Если автоматическое определение не получается, сначала выясните ожидаемую точку и совместимость организации с группой, а затем исправляйте логику отправки.
Источники и применимость
Официальная документация служит основой проверки возможностей iiko. Последовательность диагностики и контрольные примеры разработаны редакцией Menu 360; это не подтверждение ошибки именно в вашей конфигурации.
Обсуждения похожих ситуаций
Вопросы пользователей подтверждают наличие похожих ситуаций. Советы в обсуждениях могут относиться к старым версиям или другому модулю.
- Обсуждение: Терминальная группа не определена в iiko: как проверить отправку заказа
Вопрос содержит реальный ответ TerminalGroupIdNotDetermined и указание на различие terminalGroupIds и terminalGroupId.