☰ Meniu · Comenzi
Referință API

Comenzi

Coșuri trimise de oaspeți din meniul QR, de la masă.

Obiectul order

numberinteger
Număr scurt, de strigat cu voce tare și de tipărit pe bonul pentru bucătărie.
statusstring
new, accepted, preparing, ready, served, completed, rejected, cancelled.
tablestring sau null
Din linkul mesei ?table= sau introdus de oaspete.
notestring sau null
Comentariul oaspetelui.
subtotal, currency, item_count
Calculate de noi din meniu, la momentul comenzii.
items[]array
item_id, external_id (SKU-ul tău), name, quantity, unit_price, total, options[] cu propriile external_id și price_delta.
external_idstring sau null
Id-ul tău de comandă, setat la acceptare.
guest_languagestring
Limba meniului folosită de oaspete.
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
Permisiune: orders:read

Cele mai noi primele. Filtrează după ?status=new (repetă parametrul sau separă valorile prin virgulă). Cu paginare.

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

O comandă.

POST/v1/orders/{order}/accept
Permisiune: orders:write

Trece o comandă din new în accepted. Trimite id-ul tău de comandă în external_id; trebuie să fie unic per local.

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
Permisiune: orders:write

Respinge o comandă new. reason este opțional și se păstrează în comandă.

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}
Permisiune: orders:write

Setează status (doar înainte, pașii pot fi săriți; orice comandă deschisă poate deveni cancelled, cu un reason). Retrimiterea statusului curent nu are niciun efect. Trimite order.updated cu 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" }'
Întrebări despre integrare: api@loyaltyfy.io. Răspundem în cel mult o zi lucrătoare.