Áreas de reserva
POST
Crear área de reserva
POST /api/reservation-areas/create-reservation-area
Descripción
Da de alta un área de reserva para agrupar mesas.
Detalles
Crea el área con nombre, descripción opcional y capacidad máxima. Si se marca como reservable desde el menú digital, define además las fechas y horarios permitidos y las reglas de reserva. Puede exigir un depósito para reservar, con su valor, la forma de cobrarlo y el plazo que tiene el cliente para pagarlo. El área nace activa y disponible. Las mesas se asignan al área por separado, después de crearla.
Permisos requeridos
reservations.module
Request
| Nombre | Tipo | Requerido | Reglas |
|---|---|---|---|
| name | string | Sí |
min:1
max:100
|
| description | string | No |
max:1000
|
| capacityMax | int | Sí |
min_value:1
max_value:9999
|
| isOnlineBookable | bool | No | — |
| minAdvanceMinutes | int | No |
min_value:0
max_value:43200
|
| maxAdvanceDays | int | No |
min_value:1
max_value:365
|
| slotCapacity | int | No |
min_value:1
max_value:999
|
| minPartySize | int | No |
min_value:1
max_value:255
|
| maxPartySize | int | No |
min_value:1
max_value:255
|
| requiresAdvance | bool | No | — |
| advanceMode | string | No |
enum:customer_advance,income
|
| advanceChargeType | string | No |
enum:fixed,per_guest
|
| advanceAmountCents | int | No |
min_value:0
max_value:999999999999
|
| advanceHoldMinutes | int | No |
min_value:5
max_value:1440
|
| advanceTerms | string | No |
max:500
|
| schedule | object | Sí | — |
Ejemplo de request
curl -X POST https://restofy.pro/api/reservation-areas/create-reservation-area \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <accessToken>" \
-d '{
"name": "string",
"capacityMax": 1,
"schedule": []
}'
Los valores son demo: reemplázalos por datos reales del negocio.
Ejemplo de respuesta
Actualizado: 2026-10-09T02:12:12Z
HTTP 200
Request
{
"name": "Reservas a26e9e",
"capacityMax": 20,
"isOnlineBookable": 1,
"minAdvanceMinutes": 60,
"maxAdvanceDays": 30,
"slotCapacity": 4,
"minPartySize": 2,
"maxPartySize": 6,
"schedule": {
"dateStart": null,
"dateEnd": null,
"periods": [
{
"dayOfWeek": 1,
"isAllDay": false,
"timeStart": "12:00",
"timeEnd": "15:00"
},
{
"dayOfWeek": 2,
"isAllDay": false,
"timeStart": "12:00",
"timeEnd": "15:00"
},
{
"dayOfWeek": 3,
"isAllDay": false,
"timeStart": "12:00",
"timeEnd": "15:00"
},
{
"dayOfWeek": 4,
"isAllDay": false,
"timeStart": "12:00",
"timeEnd": "15:00"
},
{
"dayOfWeek": 5,
"isAllDay": false,
"timeStart": "12:00",
"timeEnd": "15:00"
},
{
"dayOfWeek": 6,
"isAllDay": false,
"timeStart": "12:00",
"timeEnd": "15:00"
},
{
"dayOfWeek": 7,
"isAllDay": false,
"timeStart": "12:00",
"timeEnd": "15:00"
}
],
"exceptions": []
},
"requiresAdvance": 0,
"advanceMode": "customer_advance",
"advanceChargeType": "fixed",
"advanceAmountCents": 0,
"advanceHoldMinutes": 30
}
Response
{
"success": true,
"message": "Área de reserva creada",
"data": {
"reservationAreaId": "2"
}
}