Reservar una mesa
POST /api/site-reservations/create-reservation
Descripción
Registra la reserva de un cliente identificado para una zona, fecha y hora.
Detalles
Recibe el restaurante, la zona, la fecha, la franja horaria y la cantidad de personas. El cliente debe estar identificado con su teléfono verificado; sus datos se toman de esa identidad, no de lo que se envíe en la solicitud. Valida que la franja siga libre y dentro de lo permitido y que el grupo entre en el rango de la zona. Si la zona exige un depósito, la reserva queda pendiente y se confirma al recibirlo, con un plazo de pago vencido el cual se cancela sola.
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í | — |
| dinerToken | string | Sí |
min:1
|
| guestCount | int | Sí |
min_value:1
max_value:255
|
| guestOccasionId | int | No |
min_value:1
|
| notes | string | No |
max:300
|
Ejemplo de request
curl -X POST https://restofy.pro/api/site-reservations/create-reservation \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <accessToken>" \
-H "X-Tenant-Key: <tenantKey>" \
-d '{
"slug": "string",
"areaUuid": "string",
"date": "string",
"slotIso": "2026-01-01T00:00:00Z",
"dinerToken": "string",
"guestCount": 1
}'
Los valores son demo: reemplázalos por datos reales del negocio.
Ejemplo de respuesta
Actualizado: 2026-09-08T16:35:34Z
HTTP 200
Request
{
"slug": "restofy_test_sitereservations_9495_1788885299_tenant",
"areaUuid": "b508f96d-ab4a-11f1-b72d-f2569efa6eee",
"date": "2026-09-09",
"slotIso": "2026-09-09T17:00:00.000Z",
"dinerToken": "***",
"guestCount": 4,
"notes": "Mesa cerca de la ventana"
}
Response
{
"success": true,
"message": "Reserva confirmada",
"data": {
"reservationId": 4,
"reservationUuid": "b60b64e9-ab4a-11f1-b72d-f2569efa6eee",
"status": "confirmed",
"advance": null
}
}