https://seshospedajes.es/app/api/v1
Integra tu PMS con SES.Hospedajes
Acceso con X-Api-Key. Requiere plan Premium y API habilitada.
🔐 Autenticación
Envía siempre la cabecera X-Api-Key: TU_API_KEY
. Alternativas aceptadas: Api-Key
o query ?api_key=
.
curl -s 'https://seshospedajes.es/app/api/v1/ping' -H 'X-Api-Key: TU_API_KEY'
🔎 Listados y filtros
Todos los listados soportan paginación page
, limit
y filtros:
q
: búsqueda textual (campos útiles por recurso).from
/to
: fechas (YYYY-MM-DD). En huéspedes filtran porfecha_entrada
, en contratos porfecha_contrato
, en precheckins porfecha_envio
.
GET /v1/guests?page=1&limit=50&q=garcia&from=2025-01-01&to=2025-01-31
👤 Huéspedes (CRUD)
GET /v1/guests
Devuelve data
, page
, limit
, total
. Filtros: q
, from
, to
.
POST /v1/guests
Campos obligatorios: nombre
, apellido1
, establecimiento_id
. Idempotencia: uuid
(si la columna existe) o combinación numero_documento
+ fecha_entrada
+ establecimiento_id
.
{
"nombre":"Ana","apellido1":"García","establecimiento_id":12,
"numero_documento":"X1234567","fecha_entrada":"2025-09-27","hora_entrada":"15:00:00"
}
GET /v1/guests/{id}
, PUT /v1/guests/{id}
, DELETE /v1/guests/{id}
Se valida propiedad por usuario mediante el establecimiento.
📄 Contratos (CRUD)
GET /v1/contracts
Filtros: q
(referencia / número_establecimiento), from
/to
sobre fecha_contrato
.
POST /v1/contracts
Obligatorios: establecimiento_id
, referencia
. Idempotencia por uuid
(si existe) o referencia
+usuario.
{
"establecimiento_id":12,"referencia":"RC-2025-0007",
"fecha_contrato":"2025-09-27","fecha_recogida":"2025-09-28","fecha_devolucion":"2025-10-01"
}
GET/PUT/DELETE /v1/contracts/{id}
🏨 Establecimientos (CRUD)
GET /v1/establishments
Filtro q
(nombre, número_establecimiento).
POST /v1/establishments
{ "nombre":"Hotel Atlántico", "numero_establecimiento":"H1234" }
GET/PUT/DELETE /v1/establishments/{id}
✉️ Precheckins (solo lectura)
GET /v1/precheckins
Filtros: q
(nombre_hotel, email_cliente, uuid), from
/to
sobre fecha_envio
.
❗ Errores y validación
HTTP | code | message | Detalle |
---|---|---|---|
401 | auth_missing | Falta API Key. | |
401 | auth_invalid | API Key no válida. | |
403 | plan_required | El plan no permite usar la API. | |
403 | api_disabled | La API no está habilitada para este usuario. | |
405 | method_not_allowed | Método no permitido. | |
422 | validation_error | Datos con formato inválido. | {"fields":{"fecha_entrada":"YYYY-MM-DD","contacto_email":"Email inválido"}} |
404 | not_found | Ruta no encontrada. | |
500 | db_error | Error de base de datos. |
📄 OpenAPI & Postman
Publica tus ficheros en /app/api/docs/
y enlázalos aquí:
📝 Changelog
- Docs separadas del router. Endpoints y ejemplos sincronizados con la API real.
- Incluye filtros
q/from/to
, paginación y reglas de idempotencia. - Botón de tema y snippets cURL/PHP/Node/Python.