Reservas
Gestiona las reservas de tu restaurante.
Listar reservas
GET /developer/api/reservas
Scope: reservas:read
Parámetros de query (opcionales)
| Parámetro | Tipo | Descripción |
|---|---|---|
fecha | string | Filtrar por fecha (YYYY-MM-DD). Ejemplo: 2026-04-15 |
estado | string | Filtrar por estado: pendiente, confirmada, en_curso, finalizada, cancelada |
mesa_id | string | Filtrar por ID de mesa |
Ejemplo de petición
curl "https://mi-restaurante.siteat.app/developer/api/reservas?fecha=2026-04-15&estado=confirmada" \
-H "Authorization: Bearer sk_live_..."
Respuesta (200)
{
"success": true,
"data": [
{
"id": "a1b2c3d4-...",
"tenant_id": 42,
"mesa_id": "e5f6g7h8-...",
"fecha_reserva": "2026-04-15",
"inicio_reserva": "14:00",
"final_reserva": "15:30",
"nombre_cliente": "María García",
"telefono": "+34612345678",
"email": "maria@ejemplo.com",
"num_comensales": 4,
"notas": "Cumpleaños, mesa cerca de ventana",
"estado": "confirmada",
"customer_id": 15,
"codigo_reserva": "AB12",
"created_at": "2026-04-14T10:30:00Z"
}
]
}
Crear reserva
POST /developer/api/reservas
Scope: reservas:write
Cuerpo de la petición (JSON)
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
fecha_reserva | string | ✅ | Fecha de la reserva (YYYY-MM-DD) |
inicio_reserva | string | ✅ | Hora de inicio (HH:mm) |
nombre_cliente | string | ✅ | Nombre del cliente |
final_reserva | string | — | Hora de fin (HH:mm) |
mesa_id | string | — | ID de la mesa. Si no se indica, se asignará automáticamente |
telefono | string | — | Teléfono del cliente |
email | string | — | Email del cliente |
num_comensales | number | — | Número de comensales (por defecto: 1) |
notas | string | — | Notas adicionales |
customer_id | number | — | ID del cliente en el CRM (si ya existe) |
Ejemplo de petición
curl -X POST "https://mi-restaurante.siteat.app/developer/api/reservas" \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"fecha_reserva": "2026-04-20",
"inicio_reserva": "21:00",
"final_reserva": "22:30",
"nombre_cliente": "Carlos López",
"telefono": "+34612345678",
"num_comensales": 2,
"notas": "Alergia a frutos secos"
}'
Respuesta (201)
{
"success": true,
"data": {
"id": "nuevo-uuid-...",
"tenant_id": 42,
"fecha_reserva": "2026-04-20",
"inicio_reserva": "21:00",
"final_reserva": "22:30",
"nombre_cliente": "Carlos López",
"telefono": "+34612345678",
"num_comensales": 2,
"notas": "Alergia a frutos secos",
"estado": "pendiente",
"codigo_reserva": "CL34",
"created_at": "2026-04-15T12:00:00Z"
}
}
Obtener una reserva
GET /developer/api/reservas/{id}
Scope: reservas:read
Respuesta (200)
{
"success": true,
"data": {
"id": "a1b2c3d4-...",
"fecha_reserva": "2026-04-20",
"inicio_reserva": "21:00",
"nombre_cliente": "Carlos López",
"estado": "confirmada",
"..."
}
}
Error (404)
{
"success": false,
"error": "Reserva no encontrado",
"code": "NOT_FOUND"
}
Editar una reserva
PUT /developer/api/reservas/{id}
Scope: reservas:write
Solo envía los campos que quieras modificar:
| Campo | Tipo | Descripción |
|---|---|---|
mesa_id | string | Cambiar mesa asignada |
fecha_reserva | string | Cambiar fecha |
inicio_reserva | string | Cambiar hora de inicio |
final_reserva | string | Cambiar hora de fin |
nombre_cliente | string | Cambiar nombre del cliente |
telefono | string | Cambiar teléfono |
email | string | Cambiar email |
num_comensales | number | Cambiar número de comensales |
notas | string | Cambiar notas |
estado | string | Cambiar estado (pendiente, confirmada, en_curso, finalizada, cancelada) |
customer_id | number | Vincular con un cliente del CRM |
Ejemplo
curl -X PUT "https://mi-restaurante.siteat.app/developer/api/reservas/a1b2c3d4-..." \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"estado": "confirmada",
"num_comensales": 3
}'
Respuesta (200)
Devuelve la reserva actualizada con la misma estructura que el endpoint de obtener reserva.
Eliminar una reserva
DELETE /developer/api/reservas/{id}
Scope: reservas:write
Respuesta (200)
{
"success": true,
"data": null,
"message": "Reserva eliminada correctamente"
}