Check-ins

El recurso central de la API: un check-in por reserva, identificado siempre por tu reservationId.

El objeto check-in

Objeto
{
  "reservationId": "R-2026-0412",
  "listingId": "38291",
  "confirmationCode": "HMXK4L",
  "source": "direct",
  "checkInDate": "2026-08-14",
  "checkOutDate": "2026-08-18",
  "arrivalTime": "16:00",
  "departureTime": "11:00",
  "numGuestsExpected": 4,
  "numGuestsConfirmed": null,
  "status": "in_progress",
  "url": "https://checkinsas…/c/aGb3xKf9…",
  "contract": { "signed": false, "signedAt": null },
  "createdAt": "2026-07-19T10:12:00.000Z",
  "updatedAt": "2026-07-19T11:40:00.000Z"
}
Estados (status)
CampoTipoDescripción
pendingestadoCreado; ningún huésped registrado aún.
in_progressestadoAl menos un huésped registrado.
completedestadoTodos los huéspedes registrados.
signedestadoContrato firmado por todo el grupo.
submittedestadoParte de viajeros enviado a SES (lote asignado).
confirmedestadoSES confirmó todas las comunicaciones.
errorestadoRequiere intervención — ver errorReason.
cancelledestadoReserva cancelada.

Crear un check-in

POST/checkins
Body
CampoTipoDescripción
reservationIdrequeridostringId de la reserva en tu sistema. Es el identificador público del check-in.
listingIdrequeridostringId del listing — debe existir una propiedad con ese listingId.
confirmationCoderequeridostringCódigo de confirmación que ve el huésped.
checkInDaterequeridoAAAA-MM-DDFecha de llegada.
checkOutDaterequeridoAAAA-MM-DDFecha de salida.
numGuestsrequeridointeger 1-50Nº de huéspedes esperado (el grupo puede ajustarlo).
arrivalTimehh:mmHora de entrada (por defecto 16:00).
departureTimehh:mmHora de salida (por defecto 11:00).
sourcestringCanal de la reserva: airbnb, booking, direct…
leadGuestobjeto{ name, email, phone } del huésped principal, para prellenar su registro.
curl
curl -X POST https://api.kinapi.es/api/v1/checkins \
  -H "ocp-apim-subscription-key: TU_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "reservationId": "R-2026-0412",
    "listingId": "38291",
    "confirmationCode": "HMXK4L",
    "checkInDate": "2026-08-14",
    "checkOutDate": "2026-08-18",
    "numGuests": 4
  }'

Idempotente: si el check-in ya existe, responde 200 con el existente (campo created: false) y la misma URL. Reintenta con libertad.

Listar check-ins

GET/checkins
Query
CampoTipoDescripción
fromAAAA-MM-DDLlegada desde (inclusive).
toAAAA-MM-DDLlegada hasta (inclusive).
statusstringFiltra por estado (ver tabla de estados).
listingIdstringSolo check-ins de ese listing.
limitinteger 1-200Tamaño de página (por defecto 50).
offsetintegerDesplazamiento de paginación.
curl
curl "https://api.kinapi.es/api/v1/checkins?from=2026-08-01&to=2026-08-31&status=confirmed" \
  -H "ocp-apim-subscription-key: TU_API_KEY"
200 OK
{
  "results": [ { …check-in… }, … ],
  "hasMore": false
}

Consultar un check-in

GET/checkins/{reservationId}

Devuelve el check-in con el array guests incluido (mismo formato que el recurso Huéspedes).

curl
curl https://api.kinapi.es/api/v1/checkins/R-2026-0412 \
  -H "ocp-apim-subscription-key: TU_API_KEY"

Actualizar un check-in

PATCH/checkins/{reservationId}
Body (todos opcionales)
CampoTipoDescripción
checkInDateAAAA-MM-DDNueva fecha de llegada.
checkOutDateAAAA-MM-DDNueva fecha de salida.
arrivalTimehh:mmNueva hora de entrada.
departureTimehh:mmNueva hora de salida.
numGuestsinteger 1-50Nuevo nº de huéspedes esperado.
curl
curl -X PATCH https://api.kinapi.es/api/v1/checkins/R-2026-0412 \
  -H "ocp-apim-subscription-key: TU_API_KEY" \
  -H "content-type: application/json" \
  -d '{ "checkOutDate": "2026-08-19" }'

Cancelar un check-in

DELETE/checkins/{reservationId}

Marca el check-in como cancelled: el enlace del huésped deja de aceptar registros y la reserva sale del envío a SES. No borra los datos ya registrados (auditoría).

curl
curl -X DELETE https://api.kinapi.es/api/v1/checkins/R-2026-0412 \
  -H "ocp-apim-subscription-key: TU_API_KEY"