---
title: "Check in online"
url: "https://portal2.konghotels.cloud/apis/kong-hotels-guest-stay-api-1/versions/b4bfa113-0e33-46cc-8723-38e7ac5e7863/operations/checkIn"
---

> Full API specification: https://portal2.konghotels.cloud/apis/kong-hotels-guest-stay-api-1/versions/b4bfa113-0e33-46cc-8723-38e7ac5e7863.md

# Check in online

`POST` `/stays/{confirmationNumber}/check-in`

Operation ID: `checkIn`

**Write.** Completes online check-in from 72 hours before arrival. The guest is told when their room is ready, and mobile keys can be issued from that point.

## Path parameters

- `confirmationNumber` (string, required) - Confirmation number from the Partner API reservation.

## Header parameters

- `Idempotency-Key` (string, optional) - Optional. Makes the request safe to retry for 24 hours.

## Request body (required)

Content types: `application/json`

## Responses

- `200` - Checked in. Returns the updated stay.
- `401` - Rejected by Kong Gateway: missing or invalid credentials.
- `404` - Not found, or not visible to your consumer.
- `409` - The stay is not in a state that allows this action. Check `actions` on the stay.
- `422` - Validation failed
- `429` - Too many requests.

## OpenAPI definition

```yaml
openapi: 3.1.0
info:
  title: Kong Hotels Guest Stay API
  version: 1.0.0
servers:
  - url: https://stay.konghotels.cloud
    description: Production (Kong Gateway)
paths:
  /stays/{confirmationNumber}/check-in:
    post:
      tags:
        - Check-in & Check-out
      operationId: checkIn
      summary: Check in online
      description: "**Write.** Completes online check-in from 72 hours before arrival.
        The guest is told when their room is ready, and mobile keys can be
        issued from that point."
      parameters:
        - $ref: "#/components/parameters/ConfirmationNumber"
        - $ref: "#/components/parameters/IdempotencyKey"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CheckInRequest"
      responses:
        "200":
          description: Checked in. Returns the updated stay.
          headers:
            X-Request-ID:
              $ref: "#/components/headers/RequestId"
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: "#/components/schemas/Stay"
        "401":
          $ref: "#/components/responses/Unauthorized"
        "404":
          $ref: "#/components/responses/NotFound"
        "409":
          $ref: "#/components/responses/Conflict"
        "422":
          $ref: "#/components/responses/ValidationFailed"
        "429":
          $ref: "#/components/responses/RateLimited"
security:
  - KongKeyAuth: []
components:
  parameters:
    ConfirmationNumber:
      name: confirmationNumber
      in: path
      required: true
      description: Confirmation number from the Partner API reservation.
      schema:
        type: string
        examples:
          - KH4DEMO01
    IdempotencyKey:
      name: Idempotency-Key
      in: header
      description: Optional. Makes the request safe to retry for 24 hours.
      schema:
        type: string
        maxLength: 255
  schemas:
    CheckInRequest:
      type: object
      required:
        - estimated_arrival_time
        - accept_terms
      properties:
        estimated_arrival_time:
          type: string
          pattern: ^\d{2}:\d{2}$
          examples:
            - 16:30
        accept_terms:
          type: boolean
          const: true
          description: Guest accepts the house policies.
        room_preferences:
          type: array
          items:
            type: string
            enum:
              - high_floor
              - low_floor
              - quiet
              - near_elevator
              - accessible
        special_requests:
          type:
            - string
            - "null"
          maxLength: 500
    Stay:
      type: object
      required:
        - confirmation_number
        - property_code
        - status
        - room
      properties:
        confirmation_number:
          type: string
          examples:
            - KH4DEMO01
        property_code:
          type: string
          examples:
            - KTNYC
        status:
          $ref: "#/components/schemas/StayStatus"
        arrival_date:
          type: string
          format: date
        departure_date:
          type: string
          format: date
        room:
          type: object
          required:
            - status
          properties:
            status:
              $ref: "#/components/schemas/RoomStatus"
            number:
              type:
                - string
                - "null"
              examples:
                - "1412"
            floor:
              type:
                - integer
                - "null"
              examples:
                - 14
            estimated_ready_at:
              type:
                - string
                - "null"
              format: date-time
        check_in_time:
          type: string
          description: Property's standard check-in time (local).
          examples:
            - 15:00
        check_out_time:
          type: string
          description: Agreed check-out time (local), including any approved late check-out.
          examples:
            - 11:00
        checked_in_at:
          type:
            - string
            - "null"
          format: date-time
        checked_out_at:
          type:
            - string
            - "null"
          format: date-time
        actions:
          type: object
          description: What the guest can do right now. Use these instead of re-deriving
            the rules.
          properties:
            can_check_in:
              type: boolean
            can_issue_key:
              type: boolean
            can_request_service:
              type: boolean
            can_check_out:
              type: boolean
    StayStatus:
      type: string
      enum:
        - pre_arrival
        - checked_in
        - checked_out
        - no_show
        - cancelled
      description: "`pre_arrival`: booked, not yet checked in. `checked_in`: guest is
        in house. `checked_out`: stay complete."
    RoomStatus:
      type: string
      enum:
        - not_assigned
        - assigned
        - ready
      description: "`ready` means cleaned and inspected; keys can be issued."
    Problem:
      type: object
      description: RFC 9457 problem details. Same shape as the Partner API.
      required:
        - type
        - title
        - status
      properties:
        type:
          type: string
          format: uri
        title:
          type: string
        status:
          type: integer
        detail:
          type: string
        instance:
          type: string
        request_id:
          type: string
      additionalProperties: true
    ValidationProblem:
      allOf:
        - $ref: "#/components/schemas/Problem"
        - type: object
          properties:
            errors:
              type: object
              additionalProperties:
                type: array
                items:
                  type: string
  headers:
    RequestId:
      description: Unique request identifier for support.
      schema:
        type: string
    RetryAfter:
      description: Seconds to wait before retrying.
      schema:
        type: integer
  responses:
    Unauthorized:
      description: "Rejected by Kong Gateway: missing or invalid credentials."
      content:
        application/problem+json:
          schema:
            $ref: "#/components/schemas/Problem"
          example:
            type: https://api.konghotels.cloud/problems/unauthorized
            title: Unauthorized
            status: 401
            detail: Missing or invalid API key.
            request_id: 9a8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d
    NotFound:
      description: Not found, or not visible to your consumer.
      content:
        application/problem+json:
          schema:
            $ref: "#/components/schemas/Problem"
          example:
            type: https://api.konghotels.cloud/problems/not-found
            title: Resource not found
            status: 404
            detail: Stay not found.
            request_id: 9a8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d
    Conflict:
      description: The stay is not in a state that allows this action. Check `actions`
        on the stay.
      content:
        application/problem+json:
          schema:
            $ref: "#/components/schemas/Problem"
          example:
            type: https://api.konghotels.cloud/problems/invalid-stay-state
            title: Action not available
            status: 409
            detail: The stay is not checked in yet.
            request_id: 9a8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d
    ValidationFailed:
      description: Validation failed
      content:
        application/problem+json:
          schema:
            $ref: "#/components/schemas/ValidationProblem"
          example:
            type: https://api.konghotels.cloud/problems/validation-failed
            title: Validation failed
            status: 422
            detail: estimated_arrival_time must match HH:MM.
            request_id: 9a8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d
    RateLimited:
      description: Too many requests.
      headers:
        Retry-After:
          $ref: "#/components/headers/RetryAfter"
      content:
        application/problem+json:
          schema:
            $ref: "#/components/schemas/Problem"
  securitySchemes:
    KongKeyAuth:
      type: apiKey
      in: header
      name: apikey
      description: Your API key, validated by Kong Gateway.
```
