Первый заказ за 5 минут

Пять запросов от ключа до заказа на кассе. Подставьте свой api_key и выполняйте по порядку.

1. Получите токен

curl -X POST https://backend.mison.uz/api/integrations/v1/auth/token \
  -H "Content-Type: application/json" \
  -d '{"api_key":"ВАШ_КЛЮЧ"}'

Сохраните access_token — дальше он в каждом запросе.

2. Узнайте точки

curl https://backend.mison.uz/api/integrations/v1/points \
  -H "Authorization: Bearer $TOKEN"
{
  "points": [
    {
      "id": "f40d9ea6-bb66-4d8a-9185-219916b68224",
      "name": "Mison TEST",
      "address": null,
      "phone": "998993999966",
      "latitude": "39.622158230795",
      "longitude": "66.954307133951"
    }
  ]
}

id — это и есть point_id для всех остальных запросов.

3. Загрузите меню

Сначала список витрин:

curl https://backend.mison.uz/api/integrations/v1/menus \
  -H "Authorization: Bearer $TOKEN"
{ "menus": [{ "id": 2, "name": "Мобильное приложение", "description": null }] }

Затем саму витрину — по её id и точке:

curl "https://backend.mison.uz/api/integrations/v1/menus/2?point_id=$POINT_ID" \
  -H "Authorization: Bearer $TOKEN"

В ответе — categories и products с ценами, картинками и модификаторами. Запомните product_id любого товара, у которого is_available: true.

4. Возьмите тип оплаты и подтип заказа

curl "https://backend.mison.uz/api/integrations/v1/payment-types?point_id=$POINT_ID" \
  -H "Authorization: Bearer $TOKEN"
{ "payment_types": [{ "id": 59, "name": "Наличка", "category_id": 1 }] }

Подтип заказа можно не передавать — возьмётся тот, что настроен для вашего ключа.

5. Проверьте сумму и отправьте заказ

Расчёт без создания заказа:

curl -X POST https://backend.mison.uz/api/integrations/v1/orders/calculate \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "point_id": "f40d9ea6-bb66-4d8a-9185-219916b68224",
    "items": [{ "product_id": 777, "quantity": 2 }]
  }'
{
  "items": [
    { "product_id": 777, "name": "Fanta 1 l", "quantity": 2, "price": 12000, "total": 24000, "is_modifier": false }
  ],
  "total_amount": 24000
}

Теперь сам заказ:

curl -X POST https://backend.mison.uz/api/integrations/v1/orders \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "point_id": "f40d9ea6-bb66-4d8a-9185-219916b68224",
    "order_type_id": 3,
    "payment_type_id": 59,
    "external_id": "my-app-order-1",
    "comment": "Не звонить в домофон",
    "persons": 2,
    "client": { "name": "Азиз", "phone": "998901112233" },
    "address": {
      "street": "Амира Темура 15",
      "apartment": "42",
      "floor": "4",
      "entrance": "2",
      "latitude": 41.311,
      "longitude": 69.279
    },
    "items": [{ "product_id": 777, "quantity": 2, "comment": "без льда" }]
  }'
{
  "order_id": 11537716,
  "external_id": "my-app-order-1",
  "status": "CREATED",
  "status_name": "Создан",
  "total_amount": 24000,
  "items": [ ... ]
}

Готово — заказ на кассе точки.

6. Следите за статусом

curl https://backend.mison.uz/api/integrations/v1/orders/11537716 \
  -H "Authorization: Bearer $TOKEN"

Опрашивайте раз в 30 секунд, пока заказ не дойдёт до CLOSED или DELETED. Список статусов — в разделе Заказы.

Что дальше

  • Справочники — типы заказов, подтипы, причины отмены, доступность точки
  • Меню — модификаторы, стоп-лист, кеширование
  • Заказы — зал и самовывоз, предзаказы, отмена
  • Ошибки — коды ответов и что с ними делать