☰ Menú · Pedidos
Referencia de la API

Pedidos

Carritos que los clientes envían desde la carta QR en la mesa.

El objeto order

numberinteger
Número corto para decirlo en voz alta e imprimirlo en la comanda de cocina.
statusstring
new, accepted, preparing, ready, served, completed, rejected, cancelled.
tablestring o null
Del enlace de la mesa ?table=, o tecleado por el cliente.
notestring o null
El comentario del cliente.
subtotal, currency, item_count
Calculados por nosotros a partir de la carta en el momento del pedido.
items[]array
item_id, external_id (tu SKU), name, quantity, unit_price, total, options[] con su propio external_id y price_delta.
external_idstring o null
Tu id de pedido, que se asigna al aceptarlo.
guest_languagestring
El idioma de la carta que usó el cliente.
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
Permiso: orders:read

De más reciente a más antiguo. Filtra con ?status=new (repítelo o separa los valores con comas). Con paginación.

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

Un pedido.

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

Pasa un pedido new a accepted. Envía tu propio id de pedido como external_id; debe ser único por 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
Permiso: orders:write

Rechaza un pedido new. reason es opcional y se guarda con el pedido.

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

Define status (solo hacia delante y se pueden saltar pasos; cualquier pedido abierto puede pasar a cancelled con un reason). Enviar de nuevo el estado actual no tiene efecto. Envía order.updated con 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" }'
Dudas sobre una integración: api@loyaltyfy.io. Respondemos en un día hábil.