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
}
}