Restofy Docs
Pedido del comensal POST

Abrir un pedido

POST /api/orders/create-order

Descripción

Abre un pedido nuevo a partir del link de acceso con el que entró el cliente.

Detalles

Inicia un pedido según el canal de entrega del link, con su primer producto guardado sin enviar. Si el link es de mesa o de habitación, ocupa el lugar, que debe estar libre. Fuera del local exige la sesión del cliente. Cada cliente tiene un solo pedido en curso por tipo de canal en cada restaurante: si ya tiene uno, se devuelve ese y no se le suma nada. Si ese pedido no tenía chat y es del mismo lugar, pasa al chat desde el que pide. Devuelve el pedido, su código corto para que otros clientes se sumen y el acceso con el que ese cliente opera su pedido.

Permisos requeridos

public

Request

Nombre Tipo Requerido Reglas
slug string Sí
min:1 max:63
token string Sí
min:1 max:64
deviceUuid string No
min:36 max:36
guestName string No
max:60
items array No —
items[].productId int Sí
min_value:1
items[].menuId int Sí
min_value:1
items[].name string Sí
max:200
items[].qty int Sí
min_value:1
items[].consumptionMode string No
enum:eat_in,takeaway
items[].note string No
max:500
items[].guestName string No
max:60
items[].productPriceId int No
min_value:1
items[].productPriceOptionId int No
min_value:1
items[].modifiers array No —
items[].modifiers[].modifierGroupId int Sí
min_value:1
items[].modifiers[].modifierId int Sí
min_value:1
items[].modifiers[].quantity int Sí
min_value:1
chatUuid string No
min:36 max:36

Respuesta

Campos que devuelve dentro de data. Nada fuera de esta lista sale en la respuesta.

Campo Tipo Descripción
orderUuid string Identificador del pedido
orderCode string Número del pedido para mostrar
joinCode string Código corto para que otros se sumen al pedido
isExistingOrder bool Si ya tenías un pedido en curso y se devolvió ese
chatUuid string Admite vacío Chat del pedido, si nació desde un chat
orderPass string Pase de pedido, va en el encabezado X-Order-Pass
orderPassExpiresAt datetime Cuándo vence el pase

Ejemplo de request

curl -X POST https://restofy.pro/api/orders/create-order \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <accessToken>" \
  -d '{
    "slug": "string",
    "token": "string"
}'

Los valores son demo: reemplázalos por datos reales del negocio.

Ejemplo de respuesta

Actualizado: 2026-10-09T02:12:12Z
HTTP 200

Request

{
    "slug": "restofy_test_deletechattest_2339_1791511769_tenant",
    "token": "***",
    "deviceUuid": "476ab80f-e921-407d-a7b2-2270a545fd85",
    "guestName": "Laura",
    "items": [
        {
            "productId": 16,
            "menuId": 6,
            "name": "Limonada Natural",
            "qty": 1
        }
    ],
    "chatUuid": "83604f8d-c386-11f1-a755-a2f78ac020f7"
}

Response

{
    "success": true,
    "message": "Operación realizada correctamente",
    "data": {
        "orderUuid": "39172f2a-0da7-4e91-b4ed-7602bab811f3",
        "orderCode": "24J-R23",
        "joinCode": "R23",
        "isExistingOrder": false,
        "chatUuid": "83604f8d-c386-11f1-a755-a2f78ac020f7",
        "orderPass": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0eXBlIjoib3JkZXItcGFzcyIsInRlbmFudEtleSI6InJlc3RvZnlfdGVzdF9kZWxldGVjaGF0dGVzdF8yMzM5XzE3OTE1MTE3NjlfdGVuYW50Iiwib3JkZXJVdWlkIjoiMzkxNzJmMmEtMGRhNy00ZTkxLWI0ZWQtNzYwMmJhYjgxMWYzIiwiZ3Vlc3RVdWlkIjoiNDc2YWI4MGYtZTkyMS00MDdkLWE3YjItMjI3MGE1NDVmZDg1Iiwic2NvcGUiOiJvcmRlciIsImV4cCI6MTc5MTUyNjE5M30.mwySyVK8iBo3-1WSYE7zF1-cAeEmTblk6jiJq5fbZqk",
        "orderPassExpiresAt": "2026-10-09T06:09:53.000Z"
    }
}