Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/sdurutr436/stay-sidekick/llms.txt

Use this file to discover all available pages before exploring further.

The Late Check-in Notifications module helps operations teams identify guests who are expected to arrive after the company’s configured cut-off time (hora_corte). Guest data uploaded via XLSX is processed entirely in memory and is never written to the database — in compliance with GDPR principles. Notification templates are stored per-company under the CHECKIN_TARDIO vault category and can be reused across sessions.
All endpoints require Authorization: Bearer <token>. POST requests also require the X-CSRF-Token header.
XLSX files uploaded to /api/notificaciones/checkin-tardio/checkins are parsed in memory and discarded immediately after the response is sent. Guest personal data is never persisted.

GET /api/notificaciones/checkin-tardio/status

Returns the current operational status: whether a PMS is connected, how many check-ins are expected today (or on the given date), the number of active apartments, and the configured late cut-off time. Auth required: Yes | Role: any

Query Parameters

fecha
string
Date to check in YYYY-MM-DD format. Defaults to today if omitted.

Response

ok
boolean
required
true
pms_conectado
boolean
required
Whether a PMS integration is configured for the company.
checkins_hoy
integer
required
Number of check-ins expected on the requested date (sourced from PMS when connected).
apartamentos
integer
required
Number of active apartments in the company’s catalog.
hora_corte
string
required
Late check-in cut-off time in HH:MM format (24h). Check-ins after this time are flagged as late.

Example

curl "https://api.example.com/api/notificaciones/checkin-tardio/status?fecha=2024-08-15" \
  -H "Authorization: Bearer $TOKEN"
{
  "ok": true,
  "pms_conectado": true,
  "checkins_hoy": 7,
  "apartamentos": 24,
  "hora_corte": "20:00"
}

POST /api/notificaciones/checkin-tardio/checkins

Accepts an XLSX file, parses each row against the company’s cut-off time, and returns only the guests whose arrival time is after hora_corte. No data is saved. Auth required: Yes | Role: any
Rate limit: 20 requests / hour
The cut-off time and column configuration used for parsing are read from the company’s notification config (GET /api/perfil/notificaciones-tardio-config). Make sure the XLSX column mapping is configured before uploading.

Request

Multipart form upload:
file
file
required
The .xlsx file containing the day’s check-in list. Must have a .xlsx extension and must not be empty.

Response

ok
boolean
required
true
checkins
array
required
List of guests with a late expected arrival.
warnings
array
Optional. Row-level parsing warnings (e.g., unrecognised time formats, missing columns).

Example

curl -X POST https://api.example.com/api/notificaciones/checkin-tardio/checkins \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CSRF-Token: <csrf>" \
  -F "file=@checkins_hoy.xlsx"
{
  "ok": true,
  "checkins": [
    {"apartamento": "Apto Sol", "hora_llegada": "22:30", "nombre_huesped": "John Smith"},
    {"apartamento": "Apto Luna", "hora_llegada": "21:15", "nombre_huesped": null}
  ],
  "warnings": ["Fila 5: hora de llegada no reconocida, se omitió."]
}

GET /api/notificaciones/checkin-tardio/plantillas

Lists all active notification templates for the CHECKIN_TARDIO category that belong to the authenticated user’s company, ordered by creation date ascending. Auth required: Yes | Role: any

Response

ok
boolean
required
true
plantillas
array
required
Array of template objects.

Example

curl https://api.example.com/api/notificaciones/checkin-tardio/plantillas \
  -H "Authorization: Bearer $TOKEN"
{
  "ok": true,
  "plantillas": [
    {
      "id": "a1b2c3d4-0000-4000-a000-000000000001",
      "nombre": "Aviso llegada tardía ES",
      "contenido": "Hola, tu apartamento está listo. El acceso es mediante clave: {{codigo}}."
    }
  ]
}

POST /api/notificaciones/checkin-tardio/plantillas

Creates a new notification template in the CHECKIN_TARDIO category. The template is created with idioma = "es" and is immediately available for use. Auth required: Yes | Role: any

Request

nombre
string
required
Template display name. Must not be empty.
contenido
string
required
Template body text. Must not be empty. Supports free-form text; placeholder syntax is defined by the front-end convention.

Response

201 Created
ok
boolean
required
true
plantilla
object
required
The newly created template object (id, nombre, contenido).

Example

curl -X POST https://api.example.com/api/notificaciones/checkin-tardio/plantillas \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CSRF-Token: <csrf>" \
  -H "Content-Type: application/json" \
  -d '{
    "nombre": "Llegada tardía EN",
    "contenido": "Hi! Your apartment is ready. Access code: {{codigo}}."
  }'
{
  "ok": true,
  "plantilla": {
    "id": "b2c3d4e5-0000-4000-a000-000000000002",
    "nombre": "Llegada tardía EN",
    "contenido": "Hi! Your apartment is ready. Access code: {{codigo}}."
  }
}
Templates created here are also visible in the Communications Vault under the CHECKIN_TARDIO category filter. You can use the Vault’s AI endpoints to improve or translate them after creation.

PUT /api/notificaciones/checkin-tardio/plantillas/<id>

Updates the display name and body of an existing CHECKIN_TARDIO template. Both nombre and contenido are required. Auth required: Yes | Role: any

Path Parameters

id
string
required
UUID of the template to update.

Request

nombre
string
required
New template display name. Must not be empty.
contenido
string
required
New template body text. Must not be empty.

Response

ok
boolean
required
true
plantilla
object
required
The updated template object (id, nombre, contenido).

Errors

404 Not Found — template not found or belongs to another company.

Example

curl -X PUT https://api.example.com/api/notificaciones/checkin-tardio/plantillas/b2c3d4e5-0000-4000-a000-000000000002 \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CSRF-Token: <csrf>" \
  -H "Content-Type: application/json" \
  -d '{
    "nombre": "Llegada tardía EN (updated)",
    "contenido": "Hi! Your apartment is ready. Entry code: {{codigo}}. Contact us if needed."
  }'
{
  "ok": true,
  "plantilla": {
    "id": "b2c3d4e5-0000-4000-a000-000000000002",
    "nombre": "Llegada tardía EN (updated)",
    "contenido": "Hi! Your apartment is ready. Entry code: {{codigo}}. Contact us if needed."
  }
}

DELETE /api/notificaciones/checkin-tardio/plantillas/<id>

Permanently removes a CHECKIN_TARDIO notification template. This action cannot be undone. Auth required: Yes | Role: any

Path Parameters

id
string
required
UUID of the template to delete.

Response

200 OK{"ok": true} 404 Not Found — template not found or belongs to another company.

Example

curl -X DELETE https://api.example.com/api/notificaciones/checkin-tardio/plantillas/b2c3d4e5-0000-4000-a000-000000000002 \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CSRF-Token: <csrf>"

Build docs developers (and LLMs) love