Saltar al contenido principal

Reservas

Gestiona las reservas de tu restaurante.


Listar reservas

GET /developer/api/reservas

Scope: reservas:read

Parámetros de query (opcionales)

ParámetroTipoDescripción
fechastringFiltrar por fecha (YYYY-MM-DD). Ejemplo: 2026-04-15
estadostringFiltrar por estado: pendiente, confirmada, en_curso, finalizada, cancelada
mesa_idstringFiltrar 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)

CampoTipoObligatorioDescripción
fecha_reservastringFecha de la reserva (YYYY-MM-DD)
inicio_reservastringHora de inicio (HH:mm)
nombre_clientestringNombre del cliente
final_reservastringHora de fin (HH:mm)
mesa_idstringID de la mesa. Si no se indica, se asignará automáticamente
telefonostringTeléfono del cliente
emailstringEmail del cliente
num_comensalesnumberNúmero de comensales (por defecto: 1)
notasstringNotas adicionales
customer_idnumberID 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:

CampoTipoDescripción
mesa_idstringCambiar mesa asignada
fecha_reservastringCambiar fecha
inicio_reservastringCambiar hora de inicio
final_reservastringCambiar hora de fin
nombre_clientestringCambiar nombre del cliente
telefonostringCambiar teléfono
emailstringCambiar email
num_comensalesnumberCambiar número de comensales
notasstringCambiar notas
estadostringCambiar estado (pendiente, confirmada, en_curso, finalizada, cancelada)
customer_idnumberVincular 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"
}