Ключ и авторизация

Получение API-ключа

Ключ выдаёт заведение в своём кабинете Mison: Интеграции → API-ключи → Добавить.

Ключ — это UUID вида 014bf237-7929-4520-b789-60a3e82b1dea. Он привязан к бренду и, как правило, к одной витрине меню. Храните его на сервере: в код мобильного приложения ключ помещать нельзя.

При выдаче ключа заведение задаёт:

  • витрину меню — какое меню вы увидите в GET /menus;
  • подтип заказа — под каким названием ваши заказы попадут в отчёты заведения;
  • авто-подтверждение — принимать заказ сразу или он ждёт подтверждения оператором.

Обмен ключа на токен

Ключ сам по себе запросы не авторизует. Обменяйте его на access-токен:

curl -X POST https://backend.mison.uz/api/integrations/v1/auth/token \
  -H "Content-Type: application/json" \
  -d '{"api_key":"014bf237-7929-4520-b789-60a3e82b1dea"}'
{
  "access_token": "44595|M4sx2SHynVRIX9CUAS3...",
  "token_type": "Bearer",
  "expires_in": 2592000
}

expires_in — время жизни в секундах, 30 дней. Повторный вызов до истечения срока вернёт тот же токен, поэтому запрашивать его перед каждым запросом бессмысленно — сохраните и переиспользуйте.

Лимит на этот метод — 60 запросов в минуту.

Использование токена

Все остальные методы требуют заголовок:

Authorization: Bearer <access_token>
curl https://backend.mison.uz/api/integrations/v1/points \
  -H "Authorization: Bearer 44595|M4sx2SHynVRIX9CUAS3..."

Обновление токена

Токен живёт 30 дней. Когда он истечёт, любой запрос вернёт 401:

{ "message": "Неверный или просроченный access_token" }

Обработайте 401 так: запросите новый токен тем же api_key и повторите запрос. Отдельного refresh-токена нет — он не нужен, ключ и есть долгоживущий секрет.

Рекомендация

Не ждите 401. Храните дату получения токена и обновляйте его заранее — например, раз в неделю по расписанию.

Отзыв доступа

Заведение может удалить или перевыпустить ключ в кабинете в любой момент. После этого и ключ, и выданные по нему токены перестают работать — запросы начнут получать 401.