Публичный API
Аутентификация и права
Ключи, секреты, scopes и безопасное хранение.
Обновлено 20 августа 2026Заголовки каждого запроса
X-API-Key: <api-key>
X-API-Secret: <api-secret>
Accept: application/json
Content-Type: application/json
Для изменяющих запросов добавьте:
X-Idempotency-Key: <уникальный-ключ-операции>
Ключ идемпотентности содержит от 1 до 64 латинских букв, цифр, дефисов или подчёркиваний.
Где хранить секреты
API secret и webhook secret должны находиться только на доверенном backend интеграции или в менеджере секретов. Если секрет попал в браузер, репозиторий, журнал или сообщение, регенерируйте его в MenuLab и обновите конфигурацию интеграции.
API secret используется для запросов к MenuLab. Webhook secret — отдельный секрет для проверки подписи входящих событий. Не подменяйте один другим.
Необходимые scopes
| Операция | Scope |
|---|---|
| Получить меню | menu:read |
| Создать, оплатить или отменить заказ | orders:write |
| Прочитать полный заказ | orders:read |
| Прочитать только состояние заказа | orders:status:read или orders:read |
| Прочитать запрос внешнего возврата | refunds:read |
| Подтвердить внешний возврат | refunds:write |
Пресеты «Сайт», «Мобильное приложение» и «Агрегатор» включают стандартные права заказа и внешнего возврата. Если API отвечает 403 INSUFFICIENT_SCOPE, прочитайте required_scopes в ответе и измените права клиента в CRM.
payments:writeне нужен для подтверждения возврата, выполненного внешней системой. Для этого используетсяrefunds:writeи endpoint/refunds/{refund_request_id}/confirm.
Разделение клиентов
Не используйте один API-клиент для нескольких независимых интеграций. Отдельный клиент упрощает отзыв ключей, аудит, лимиты и маршрутизацию webhook. Возврат может читать и подтверждать только клиент — владелец исходного внешнего платежа.