Restofy Docs
Reservas del comensal POST

Reservar una mesa

POST /api/diner-reservations/create-reservation

Descripción

Registra la reserva del cliente para una zona, un día y una hora.

Detalles

Recibe el restaurante, la zona, el día, la hora y cuántas personas van. Exige la sesión del cliente: su nombre y su teléfono salen de su cuenta. Revisa que la hora siga libre y que el grupo entre en el rango de la zona. Si la zona pide depósito, queda por confirmar hasta recibirlo y se cancela sola si vence el plazo; si no, queda confirmada al instante.

Permisos requeridos

public

Request

Nombre Tipo Requerido Reglas
slug string Sí
min:1 max:63
areaUuid string Sí
min:36 max:36
date string Sí
min:10 max:10
slotIso datetime Sí —
guestCount int Sí
min_value:1 max_value:255
guestOccasionId int No
min_value:1
notes string No
max:300
chatUuid string No
min:36 max:36
deviceUuid 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
reservationUuid string Identificador de la reserva
status string Estado con el que nace la reserva
advance object Admite vacío Depósito que falta pagar; vacío si la zona no pide
advance.requiredCents int Monto a pagar, en centavos
advance.dueAt datetime Hasta cuándo hay plazo para pagarlo

Ejemplo de request

curl -X POST https://restofy.pro/api/diner-reservations/create-reservation \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <accessToken>" \
  -d '{
    "slug": "string",
    "areaUuid": "string",
    "date": "string",
    "slotIso": "2026-01-01T00:00:00Z",
    "guestCount": 1
}'

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_dinerreservation_2238_1791511161_tenant",
    "areaUuid": "0ca03de1-c385-11f1-a755-a2f78ac020f7",
    "date": "2026-10-09",
    "slotIso": "2026-10-09T17:00:00.000Z",
    "guestCount": 4,
    "notes": "Mesa cerca de la ventana"
}

Response

{
    "success": true,
    "message": "Reserva confirmada",
    "data": {
        "reservationUuid": "0d4214a4-c385-11f1-a755-a2f78ac020f7",
        "status": "confirmed",
        "advance": null
    }
}