☰ 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 propioexternal_idyprice_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/ordersPermiso: 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}/acceptPermiso: 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}/rejectPermiso: 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" }'