☰ Меню · Заказы
Справочник API

Заказы

Корзины, которые гости отправляют из QR-меню за столом.

Объект заказа

numberinteger
Короткий номер, чтобы назвать его вслух и напечатать на кухонном тикете.
statusstring
new, accepted, preparing, ready, served, completed, rejected, cancelled.
tablestring или null
Из ссылки стола ?table= или введён гостем.
notestring или null
Комментарий гостя.
subtotal, currency, item_count
Рассчитываются нами по меню на момент заказа.
items[]array
item_id, external_id (ваш артикул), name, quantity, unit_price, total, options[] со своими external_id и price_delta.
external_idstring или null
Ваш id заказа, задаётся при принятии.
guest_languagestring
Язык меню, которым пользовался гость.
JSON
{
  "object": "order",
  "id": "0c69a81c-0fbc-4333-b26c-789566b9bea4",
  "number": 10,
  "status": "new",
  "table": "7",
  "note": "No onions, please",
  "currency": "MDL",
  "subtotal": 14000,
  "item_count": 2,
  "items": [
    {
      "item_id": "a48343bd-9f6e-424a-b003-fe790617f4d6",
      "external_id": "2040",
      "name": "Zeamă",
      "quantity": 2,
      "unit_price": 7000,
      "total": 14000,
      "options": []
    }
  ],
  "external_id": null,
  "reject_reason": null,
  "guest_language": "en",
  "source": "qr_menu",
  "livemode": true,
  "created_at": "2026-10-06T18:14:48.233+00:00",
  "accepted_at": null,
  "completed_at": null,
  "updated_at": "2026-10-06T18:14:48.233+00:00"
}
GET/v1/orders
Право: orders:read

Сначала новые. Фильтр по статусу: ?status=new (параметр можно повторять или перечислять значения через запятую). Поддерживает пагинацию.

curl
curl "https://loyaltyfy.io/api/v1/orders?status=new" \
  -H "Authorization: Bearer sk_test_..."
GET/v1/orders/{order}
Право: orders:read

Один заказ.

POST/v1/orders/{order}/accept
Право: orders:write

Переводит заказ из new в accepted. Передайте свой id заказа в external_id, он должен быть уникальным в пределах заведения.

curl
curl -X POST https://loyaltyfy.io/api/v1/orders/0c69a81c-0fbc-4333-b26c-789566b9bea4/accept \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{ "external_id": "POS-ORDER-55821" }'
POST/v1/orders/{order}/reject
Право: orders:write

Отклоняет заказ в статусе new. reason необязателен и сохраняется в заказе.

curl
curl -X POST https://loyaltyfy.io/api/v1/orders/0c69a81c-0fbc-4333-b26c-789566b9bea4/reject \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{ "reason": "Kitchen closes at 22:00" }'
PATCH/v1/orders/{order}
Право: orders:write

Задаёт status (только вперёд, шаги можно пропускать; любой открытый заказ можно перевести в cancelled с указанием reason). Повторная отправка текущего статуса ничего не меняет. Отправляет order.updated с previous_status.

curl
curl -X PATCH https://loyaltyfy.io/api/v1/orders/0c69a81c-0fbc-4333-b26c-789566b9bea4 \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{ "status": "ready" }'
Вопросы по интеграции: api@loyaltyfy.io. Отвечаем в течение одного рабочего дня.