Managing check-in requests

This section describes all the possible actions related to check-in requests using the Online Check-in API. A check-in request is created after a guest makes a reservation, which becomes usable via the API 48 hours before the check-in date.

Online check-in requests have the following restrictions:

  • Multiple room reservations are not eligible.

Onboarding properties

POST
https://supply-xml.booking.com/online-checkin-api/connections

The POST online-checkin-api/connections endpoint enables you to add one or more properties to the online check-in flow. This means that you must onboard properties via this endpoint to enable them to provide the online check-in service to their guests.

Body parameters

The following table describes what elements you can add as query parameters:

Element Description Type Required/Optional Notes
connections Contains the properties you want to add or remove from the online check-in flow. array of objects required
> property_id Specifies the ID of the property. string required
> status Indicates whether you want to add or remove the property from the online check-in flow. boolean required Possible values: 0 (Remove) and 1 (Add)

Request body example

The following is a request body example:

{
    "connections": [
      {
        "property_id": 6867480,
        "status": 0
      }
    ]
  }

Response body example

The following is a successful response body example:

{
    "data": {
    },
    "warnings": [],
    "errors": [],
    "meta": {
        "ruid": "UmFuZG9tSVYkc2RlIyh9YY8pNP28YnjFYiCLGDctX2VdpaCrD2ekmKJeDlscod1V6ffje/e7RlMOXp1XuxdSdaTwUn7VvORk"
    }
}

Response body parameters

The following table describes the response elements:

Element Description Type Notes
data Contains the response object. object If empty, it means success.

Cannot connect live property without Online check-in API certification

The API returns the following error response when you try to connect property which is a live property and you are not certified to use Online check-in API.
"Error code= BAD_REQUEST" ShortText="1 non-test hotel[s] found. Provider is not certified to use Online check-in API for live properties."....
To resolve the error, you can either connect only test properties, or you'll need a Online Check-in API certification from us to connect to live properties. To obtain this, please contact Connectivity Support team.

Retrieving properties that can use the online check-in API (onboarded properties)

GET
https://supply-xml.booking.com/online-checkin-api/connections

The GET online-checkin-api/connections endpoint enables you to retrieve all of your properties that are onboarded and can use the online check-in flow.

Query parameters

The following table describes what elements you can add as query parameters:

Element Description Type Required/Optional Notes
page Specifies the page you want to retrieve. integer optional You must specify the number of the page you want to retrieve. If you just retrieved page 1, the next page would be 2.
page_size Specifies the amount of results you want to retrieve per page. integer optional The max- as well as the default amount is 100.

Response body example

The following is a successful response body example:

{
    "data": {
        "connections": [
            {
                "property_id": 6796563,
                "status": 1,
                "created_at": "2021-02-23 21:57:25",
                "updated_at": "2021-06-16 12:23:45"
            },
            {
                "property_id": 7344263,
                "status": 1,
                "created_at": "2021-06-01 10:54:04",
                "updated_at": "2021-06-16 12:23:45"
            },
            {
                "property_id": 7344457,
                "status": 1,
                "created_at": "2021-06-01 10:54:04",
                "updated_at": "2021-06-16 12:23:45"
            }
        ],
        "next_page": null
    },
    "warnings": [],
    "errors": [],
    "meta": {
        "ruid": "UmFuZG9tSVYkc2RlIyh9YRQ7gbXAPki2nCInyYXmc+4Hddp+Y/GHKKhwruGUP4DfPiv9Rncl4n+9B1ugY8Ahhbc1xzpgheYb"
    }

Response body parameters

The following table describes the response elements:

Element Description Type Notes
data Contains the response object. object
> connections Contains the list of connected properties. array If empty, it means none of the properties are onboarded to the online check-in flow.
>> status Specifies the status of the connection. string Possible values are: 1 (Added).
>> property_id Specifies the ID of the property. string
>> created_at Specifies the time the check-in request was created. string Follows the ISO 8601 standard in UTC: YYYY-MM-DDThh:mm:ss.mmmZ.
>> updated_at Specifies the time the check-in request was last updated. string Follows the ISO 8601 standard in UTC: YYYY-MM-DDThh:mm:ss.mmmZ.
> next_page Specifies the URL to retrieve the next page of connected properties. string

Using the online check-in API

The check-in request journey starts when a guest's reservation is within 48 hours before the check-in date. Depending on your properties' needs (you can use only one flow per machine account), you can use one of the following two flows:

  • Control flow: The property can decide which guests (reservations) are eligible to do an online check-in. For example, property wants to only enable guests with pre-paid reservations to check in online.
  • Automated flow: The property automates the check-in flow by enabling all guests with a reservation to do an online check-in. If needed, the property can still reject an online check-in.

The automated flow is the default flow. If you want to change to the control flow, contact the Connectivity support team.

Control flow

To understand how to use the control flow, see the following high-level steps:

  1. You must retrieve available check-in requests by querying /checkins or /properties/{property_id}/checkins with status CREATED.

    • Use /checkins to retrieve check-in requests for all your properties.
    • Use /properties/{property_id}/checkins to retrieve check-in requests for a specific property.

    If the property wants to continue the online check-in process, it requires more information from the guest.

  2. To continue you must update the specific check-in request with status DATA_REQUIRED.

    The guest receives an email with prompts for information, such as address, passport info, and other personal information details. (What these legal details are can change depending on the property's country.)

  3. You must retrieve the check-in requests again using status REQUESTED.

    The property can now choose to approve or deny the check-in.

  4. You must update the check-in request with either status SUCCESS to approve the check-in or DENY to cancel.

  5. In case of SUCCESS, you must provide instructions to access the accommodation (unit).

    The guest receives confirmation email with information on how to access accommodation (unit).

Automated flow

Guests can do an online check-in within 48 hours before the check-in date. To understand how to use the automated flow, see the following high-level steps:

  1. You must retrieve the check-in requests again using status REQUESTED.

    The property can now choose to approve or deny the check-in.

  2. You must update the check-in request with either status SUCCESS to approve the check-in or DENY to cancel.

  3. In case of SUCCESS, you must provide instructions to access the accommodation (unit).

    The guest receives confirmation email with information on how to access accommodation (unit).

The preceding steps instruct you how to follow the happy path. To see other possible use cases and which status sequences you can follow, click here.

  • CREATED → DENIED: If you want to reject or no longer continue the check-in request from a guest.
  • CREATED → DENIED → DATA_REQUIRED: If you want to reactivate a check-in request you previously rejected.
  • CREATED → DATA_REQUIRED → REQUESTED → DENIED → SUCCESS: If you want to accept a check-in request you previously rejected. You are then required to add instructions on how to access the accommodation (unit).

Retrieving check-in requests

You can retrieve check-in requests in two ways: For all your properties or per specific property. Both ways follow almost exactly the same format and functionalities. They only differ when it comes to the endpoint and path parameters:

Requests disappear after two days

Two days after the check-in date the requests, regardless of status, disappear. This means you can no longer retireve those via the API.

Statuses

This API uses five statuses, which include both statuses you can retrieve and set. To understand what each status means, does, and what the response looks like, see:

The following diagrams show high-level overviews of the two possible status sequences. Blue refers to statuses that you can only retrieve, while green refers to statuses you can both set and retrieve:

Overview for check-in API statuses starting with status CREATED
Figure 1: Overview for the control flow Overview for check-in API statuses starting with status DATA_REQUIRED
Figure 2: Overview for the automated flow

All properties

GET
https://supply-xml.booking.com/online-checkin-api/checkins

The GET /checkins request enables you to retrieve check-in requests for all your properties. You can filter the results by status. If you do not specify status, you retrieve all check-in requests.

Per property

GET
https://supply-xml.booking.com/online-checkin-api/properties/{property_id}/checkins

The GET /properties/{property_id}/checkins request enables you to retrieve check-in requests for per property. You can filter the results by status and reservation_id. If you do not specify status or reservation_id, you retrieve all check-in requests for the specified property.

Path parameters: Per property

You must only include this parameter if you want to retrieve check-in requests for a specific property.

Element Description Type Required/Optional Notes
property_id Specifies the ID of the property you want to retrieve check-in requests for. string required

Query parameters

The following table describes what elements you can add as query parameters:

Element Description Type Required/Optional Notes
status Specifies the status of the check-in request. string optional Possible values are: CREATED, DATA_REQUIRED, REQUESTED, SUCCESS, and DENIED.
page Specifies the page you want to retrieve. integer optional You must specify the number of the page you want to retrieve. If you just retrieved page 1, the next page would be 2.
page_size Specifies the amount of results you want to retrieve per page. integer optional The max amount is 100, while the default is 50.
updated_since Specifies the point in time from which you want to retrieve check-in requests that have been created or updated since. string optional Follows the ISO 8601 standard in UTC: YYYY-MM-DDThh:mm:ss.mmmZ. Only supported for all properties endpoint.
reservation_id Specifies the Booking reservation ID, which enables you to filter. integer optional Only supported for per property endpoint.

Response body example: CREATED

The following is a successful response body example:

{
    "data": {
        "checkins": [
            {
                "checkout_date": "2021-03-03",
                "checkin_date": "2021-03-02",
                "updated_at": "2021-03-02T12:28:01Z",
                "main_guest": {
                    "last_name": "Doe",
                    "phone": "1234-5678",
                    "email": "johndoe@guest.booking.com",
                    "first_name": "John"
                },
                "expected_arrival_time": "2021-03-02T18:00:00Z",
                "created_at": "2021-03-02T12:28:01Z",
                "status": "CREATED",
                "reservation_id": "2114700015",
                "property_id": 6314570,
                "id": "f61a4afd43f81a50a3f2a008d203a2d7",
                "room_reservation_id": "3097793765"
            }
        ],
        "next_page": "https://supply-xml.booking.com/online-checkin-api/properties/6314570/checkins?page=2&page_size=1"
    },
    "meta": {
        "ruid": "UmFuZG9tSVYkc2RlIyh9YV/rUd3d3dDgYWUZJWVVAC7dFrVXAn+RVs+cXuij49FoehET/yv6Ft1MQtYqCJBlsM1TjRS1"
    },
    "warnings": [],
    "errors": []
}

Response body elements: CREATED

The following table describes the response elements:

Element Description Type Notes
data Contains the response object. object
> checkins Contains the check-in requests. array
>> id Specifies the ID of the check-in request. string You must use this id to retrieve or update a specific check-in request.
>> status Specifies the status of the check-in request. string Possible values are: CREATED, DATA_REQUIRED, REQUESTED, SUCCESS, and DENIED.
>> property_id Specifies the ID of the property. string
>> reservation_id Specifies the ID of the reservation. string
>> room_reservation_id Specifies the ID of the room reservation. string
>> checkin_date Specifies the date that the guest checks in. string Follows the YYYY-MM-DD format.
>> checkout_date Specifies the date that the guest checks out. string Follows the YYYY-MM-DD format.
>> expected_arrival_time Specifies the time when the guest is estimated to arrive. string
>> main_guest Contains information on the main guest. object
>>> first_name Specifies the first name of the main guest. string
>>> last_name Specifies the last name of the main guest. string
>>> email Specifies the email of the main guest. string
>>> phone Specifies the phone number of the main guest. string
>> created_at Specifies the time the check-in request was created. string Follows the ISO 8601 standard in UTC: YYYY-MM-DDThh:mm:ss.mmmZ.
>> updated_at Specifies the time the check-in request was last updated. string Follows the ISO 8601 standard in UTC: YYYY-MM-DDThh:mm:ss.mmmZ.
> next_page Specifies the URL to retrieve the next page of check-in requests. string

Response body example: DATA_REQUIRED

The following is a successful response body example:

{
    "data": {
        "checkin_date": "2021-03-02",
        "property_id": 6314570,
        "updated_at": "2021-03-02T12:28:01Z",
        "main_guest": {
            "email": "johndoe@guest.booking.com",
            "first_name": "John",
            "phone": "1234-5678",
            "last_name": "Doe"
        },
        "id": "f61a4afd43f81a50a3f2a008d203a2d7",
        "expected_arrival_time": "2021-03-02T18:00:00Z",
        "status": "DATA_REQUIRED",
        "room_reservation_id": "3097793765",
        "reservation_id": "2114700015",
        "checkout_date": "2021-03-03",
        "created_at": "2021-03-02T12:28:01Z"
    },
    "warnings": [],
    "meta": {
        "ruid": "UmFuZG9tSVYkc2RlIyh9YY4dfhBVWE2AfpAWGztz+6JH6yh5oeLuuoFtZvd4QmUoserVrLGxZoCeHjz5LjD4Sy0dm7kGuYf9"
    },
    "errors": []
}

Response body elements: DATA_REQUIRED

The following table describes the response elements:

Element Description Type Notes
data Contains the response object. object
> id Specifies the ID of the check-in request. string You must use this id to retrieve or update a specific check-in request.
> status Specifies the status of the check-in request. string Possible values are: CREATED, DATA_REQUIRED, REQUESTED, SUCCESS, and DENIED.
> property_id Specifies the ID of the property. string
> reservation_id Specifies the ID of the reservation. string
> room_reservation_id Specifies the ID of the room reservation. string
> checkin_date Specifies the date that the guest checks in. string Follows the YYYY-MM-DD format.
> checkout_date Specifies the date that the guest checks out. string Follows the YYYY-MM-DD format.
> expected_arrival_time Specifies the time when the guest is estimated to arrive. string
> main_guest Contains information on the main guest. object
>> first_name Specifies the first name of the main guest. string
>> last_name Specifies the last name of the main guest. string
>> email Specifies the email of the main guest. string
>> phone Specifies the phone number of the main guest. string
> created_at Specifies the time the check-in request was created. string Follows the ISO 8601 standard in UTC: YYYY-MM-DDThh:mm:ss.mmmZ.
> updated_at Specifies the time the check-in request was last updated. string Follows the ISO 8601 standard in UTC: YYYY-MM-DDThh:mm:ss.mmmZ.

Response body example: REQUESTED

The following is a successful response body example:

{
    "meta": {
        "ruid": "UmFuZG9tSVYkc2RlIyh9YY4dfhBVWE2A/+m5d2Fqje1cfSuCcjhENO2t+jXA5kTsBIEU6cPjmRn+k6CA+c+1GI+GcIbOK8GT"
    },
    "warnings": [],
    "data": {
        "checkins": [
            {
                "created_at": "2021-03-02T12:28:01Z",
                "additional_guests": [],
                "expected_arrival_time": "2021-03-02T18:00:00Z",
                "checkin_date": "2021-03-02",
                "checkout_date": "2021-03-03",
                "updated_at": "2021-03-02T16:12:19Z",
                "reservation_id": "2114700015",
                "id": "f61a4afd43f81a50a3f2a008d203a2d7",
                "main_guest": {
                    "address": {
                        "country": "zz",
                        "city": "LONDON",
                        "zipcode": "1000AB",
                        "line2": "n.a.",
                        "line1": "Wegisweg, 42"
                    },
                    "signature": "data:image/png;base64,..",
                    "email": "johndoe@guest.booking.com",
                    "phone": "1234-5678",
                    "last_name": "Doe",
                    "documents": [
                        {
                            "expiration_date": "2022-01-01",
                            "identifier": "EN1111111",
                            "type": "passport"
                        }
                    ],
                    "gender": "unknown",
                    "first_name": "John"
                },
                "property_id": 6314570,
                "status": "REQUESTED",
                "room_reservation_id": "3097793765"
            }
        ],
        "next_page": null
    },
    "errors": []

Response body elements: REQUESTED

The following table describes the response elements. Keep in mind that not all elements show up for each request. This depends on the requirements per country.

Element Description Type Notes
data Contains the response object. object
> checkins Contains the check-in requests. array
>> id Specifies the ID of the check-in request. string You must use this id to retrieve or update a specific check-in request.
>> status Specifies the status of the check-in request. string Possible values are> CREATED, DATA_REQUIRED, REQUESTED, SUCCESS, and DENIED.
>> property_id Specifies the ID of the property. string
>> reservation_id Specifies the ID of the reservation. string
>> room_reservation_id Specifies the ID of the room reservation. string
>> checkin_date Specifies the date that the guest checks in. string Follows the YYYY-MM-DD format.
>> checkout_date Specifies the date that the guest checks out. string Follows the YYYY-MM-DD format.
>> expected_arrival_time Specifies the time when the guest is estimated to arrive. string
>> main_guest Contains information on the main guest. object
>>> first_name Specifies the first name of the main guest. string
>>> last_name Specifies the last name of the main guest. string
>>> middle_name Specifies the middle name of the main guest. string
>>> birthdate Specifies the birthdate of the main guest. string Follows the YYYY-MM-DD format.
>>> birth_city Specifies the birth city of the main guest. string
>>> nationality Specifies the nationality of the main guest. string Follows ISO 1366 country codes.
>>> email Specifies the email of the main guest. string
>>> phone Specifies the phone number of the main guest. string
>>> address Contains the address information of the main guest. object
>>>> city Specifies the city in which the main guest lives. string
>>>> zipcode Specifies the zip code of the city in which the main guest lives. string
>>>> country Specifies the country in which the main guest lives. string Follows ISO 1366 country codes.
>>>> line1 Specifies the street in which the main guest lives. string
>>>> line2 Specifies the secondary street information. string
>>> documents Contains the travel document elements. array
>>>> expiration_date Specifies the expiration date of the travel document. string
>>>> identifier Specifies the ID of the travel document. string
>>>> type Specifies the type of the travel document. string Possible values are: drivers_license, national_id, passport, and residence_permit.
>>>> issuer_authority Specifies the authority that issues the travel document. string
>>>> issue_country Specifies the country that issues the travel document. string
>>>> issue_date Specifies the date the travel document was issued. string
>>>> issue_country Specifies the country that issues the travel document. string
>> additional_guests Contains information on guests other than the main guest . array
>> created_at Specifies the time the check-in request was created. string Follows the ISO 8601 standard in UTC: YYYY-MM-DDThh:mm:ss.mmmZ.
>> updated_at Specifies the time the check-in request was last updated. string Follows the ISO 8601 standard in UTC: YYYY-MM-DDThh:mm:ss.mmmZ.

Response body example: SUCCESS

The following is a successful response body example:

{
    "errors": [],
    "warnings": [],
    "data": {
        "main_guest": {
            "last_name": "Doe",
            "gender": "unknown",
            "email": "johndoe@guest.booking.com",
            "signature": "data:image/png;base64,..",
            "first_name": "John",
            "phone": "1234-5678",
            "address": {
                "country": "zz",
                "zipcode": "1000AB",
                "city": "LONDON",
                "line2": "n.a.",
                "line1": "Wegisweg, 42"
            }
        },
        "checkin_date": "2021-03-02",
        "room_access": {
            "additional_instructions": "2nd floor, go straight to the end, then turn left and find your room number.",
            "unit_label": "Room 550",
            "premises_access_pin": "1234567890",
            "unit_access_pin": "12345"
        },
        "status": "SUCCESS",
        "checkout_date": "2021-03-03",
        "updated_at": "2021-03-02T16:12:19Z",
        "reservation_id": "2114700015",
        "created_at": "2021-03-02T12:28:01Z",
        "property_id": 6314570,
        "expected_arrival_time": "2021-03-02T18:00:00Z",
        "room_reservation_id": "3097793765",
        "id": "f61a4afd43f81a50a3f2a008d203a2d7"
    },
    "meta": {
        "ruid": "UmFuZG9tSVYkc2RlIyh9YY4dfhBVWE2AnBP0+kFqiWEyTQrGRGmOP/iAqEchffPNp4sI8W+AWbJq4mu4mucXS/DewRPoSXNG"
    }

Response body elements: SUCCESS

The following table describes the response elements:

Element Description Type Notes
data Contains the response object. object
> checkins Contains the check-in requests. array
>> id Specifies the ID of the check-in request. string You must use this id to retrieve or update a specific check-in request.
>> status Specifies the status of the check-in request. string Possible values are> CREATED, DATA_REQUIRED, REQUESTED, SUCCESS, and DENIED.
>> property_id Specifies the ID of the property. string
>> reservation_id Specifies the ID of the reservation. string
>> room_reservation_id Specifies the ID of the room reservation. string
>> checkin_date Specifies the date that the guest checks in. string Follows the YYYY-MM-DD format.
>> checkout_date Specifies the date that the guest checks out. string Follows the YYYY-MM-DD format.
>> expected_arrival_time Specifies the time when the guest is estimated to arrive. string
>> main_guest Contains information on the main guest. object
>>> first_name Specifies the first name of the main guest. string
>>> last_name Specifies the last name of the main guest. string
>>> middle_name Specifies the middle name of the main guest. string
>>> birthdate Specifies the birthdate of the main guest. string Follows the YYYY-MM-DD format.
>>> birth_city Specifies the birth city of the main guest. string
>>> nationality Specifies the nationality of the main guest. string Follows ISO 1366 country codes.
>>> email Specifies the email of the main guest. string
>>> phone Specifies the phone number of the main guest. string
>>> address Contains the address information of the main guest. object
>>>> city Specifies the city in which the main guest lives. string
>>>> zipcode Specifies the zip code of the city in which the main guest lives. string
>>>> country Specifies the country in which the main guest lives. string Follows ISO 1366 country codes.
>>>> line1 Specifies the street in which the main guest lives. string
>>>> line2 Specifies the secondary street information. string
>>> documents Contains the travel document elements. array
>>>> expiration_date Specifies the expiration date of the travel document. string
>>>> identifier Specifies the ID of the travel document. string
>>>> type Specifies the type of the travel document. string Possible values are: drivers_license, national_id, passport, and residence_permit.
>>>> issuer_authority Specifies the authority that issues the travel document. string
>>>> issue_country Specifies the country that issues the travel document. string
>>>> issue_date Specifies the date the travel document was issued. string
>>>> issue_country Specifies the country that issues the travel document. string
>> additional_guests Contains information on guests other than the main guest . array
>> room_access Contains information on how to access the room. object
>>>> qrcode_content Specifies the QR code to enter the accommodation. string Entering the accommodation can happen in only one of the following ways> qrcode_content, unit_access_pin, unit_lockbox_code, or front_desk_key_pickup.
>>>> premises_access_pin Specifies pin to access the accommodation. string
>>>> front_desk_key_pickup Inidicates whether the guest can pick up the key at the front desk. boolean Entering the accommodation can happen in only one of the following ways> qrcode_content, unit_access_pin, unit_lockbox_code, or front_desk_key_pickup.
>>>> unit_access_pin Specifies pin to access the accommodation unit. string Guests can enter the accommodation in only one of the following ways: qrcode_content, unit_access_pin, unit_lockbox_code, or front_desk_key_pickup.
>>>> unit_lockbox_code Specifies the code for the lockbox that contains the key to the accommodation unit. string Guests can enter the accommodation in only one of the following ways: qrcode_content, unit_access_pin, unit_lockbox_code, or front_desk_key_pickup.
>>>> unit_label Specifies the label of the accommodation unit. string
>>>> additional_instructions Specifies additional instruction regarding entering the accommodation (unit). string
>> created_at Specifies the time the check-in request was created. string Follows the ISO 8601 standard in UTC: YYYY-MM-DDThh:mm:ss.mmmZ.
>> updated_at Specifies the time the check-in request was last updated. string Follows the ISO 8601 standard in UTC: YYYY-MM-DDThh:mm:ss.mmmZ.

Response body example: DENIED

The following is a successful response body example:

{
    "warnings": [],
    "meta": {
        "ruid": "UmFuZG9tSVYkc2RlIyh9YY4dfhBVWE2ASSYaySTlbFSorPRB4qSJHQKB+UKCh1RenD3SMA2580L+rsurcMi0dLs7u6xBZXYr"
    },
    "errors": [],
    "data": {
        "reservation_id": "3338885609",
        "room_access": {},
        "status": "DENIED",
        "checkin_date": "2021-03-02",
        "checkout_date": "2021-03-03",
        "id": "c5135a8be42d276f459993a60a917b8b",
        "created_at": "2021-03-02T12:33:58Z",
        "property_id": 6314570,
        "expected_arrival_time": "2021-03-02T22:00:00Z",
        "main_guest": {
            "first_name": "John",
            "last_name": "Doe",
            "phone": "1234-5678",
            "email": "johndoe@guest.booking.com",
            "signature": "data:image/png;base64,..",
            "gender": "unknown",
            "address": {
                "line2": "n.a.",
                "zipcode": "1000AA",
                "country": "zz",
                "line1": "Awesomestreet",
                "city": "Amsterdam"
            }
        },
        "updated_at": "2021-03-02T16:33:17Z",
        "room_reservation_id": "3097798232"
    }

Response body elements: DENIED

The following table describes the response elements:

Element Description Type Notes
data Contains the response object. object
> checkins Contains the check-in requests. array
>> id Specifies the ID of the check-in request. string You must use this id to retrieve or update a specific check-in request.
>> status Specifies the status of the check-in request. string Possible values are> CREATED, DATA_REQUIRED, REQUESTED, SUCCESS, and DENIED.
>> property_id Specifies the ID of the property. string
>> reservation_id Specifies the ID of the reservation. string
>> room_reservation_id Specifies the ID of the room reservation. string
>> checkin_date Specifies the date that the guest checks in. string Follows the YYYY-MM-DD format.
>> checkout_date Specifies the date that the guest checks out. string Follows the YYYY-MM-DD format.
>> expected_arrival_time Specifies the time when the guest is estimated to arrive. string
>> main_guest Contains information on the main guest. object
>>> first_name Specifies the first name of the main guest. string
>>> last_name Specifies the last name of the main guest. string
>>> middle_name Specifies the middle name of the main guest. string
>>> birthdate Specifies the birthdate of the main guest. string Follows the YYYY-MM-DD format.
>>> birth_city Specifies the birth city of the main guest. string
>>> nationality Specifies the nationality of the main guest. string Follows ISO 1366 country codes.
>>> email Specifies the email of the main guest. string
>>> phone Specifies the phone number of the main guest. string
>>> address Contains the address information of the main guest. object
>>>> city Specifies the city in which the main guest lives. string
>>>> zipcode Specifies the zip code of the city in which the main guest lives. string
>>>> country Specifies the country in which the main guest lives. string Follows ISO 1366 country codes.
>>>> line1 Specifies the street in which the main guest lives. string
>>>> line2 Specifies the secondary street information. string
>>> documents Contains the travel document elements. array
>>>> expiration_date Specifies the expiration date of the travel document. string
>>>> identifier Specifies the ID of the travel document. string
>>>> type Specifies the type of the travel document. string Possible values are: drivers_license, national_id, passport, and residence_permit.
>>>> issuer_authority Specifies the authority that issues the travel document. string
>>>> issue_country Specifies the country that issues the travel document. string
>>>> issue_date Specifies the date the travel document was issued. string
>>>> issue_country Specifies the country that issues the travel document. string
>> additional_guests Contains information on guests other than the main guest . array
>> room_access Contains information on how to access the room. object
>>>> qrcode_content Specifies the QR code to enter the accommodation. string Entering the accommodation can happen in only one of the following ways> qrcode_content, unit_access_pin, unit_lockbox_code, or front_desk_key_pickup.
>>>> premises_access_pin Specifies pin to access the accommodation. string
>>>> front_desk_key_pickup Inidicates whether the guest can pick up the key at the front desk. boolean Guests can enter the accommodation in only one of the following ways: qrcode_content, unit_access_pin, unit_lockbox_code, or front_desk_key_pickup.
>>>> unit_access_pin Specifies pin to access the accommodation unit. string Guests can enter the accommodation in only one of the following ways: qrcode_content, unit_access_pin, unit_lockbox_code, or front_desk_key_pickup.
>>>> unit_lockbox_code Specifies the code for the lockbox that contains the key to the accommodation unit. string Entering the accommodation can happen in only one of the following ways: qrcode_content, unit_access_pin, unit_lockbox_code, or front_desk_key_pickup.
>>>> unit_label Specifies the label of the accommodation unit. string
>>>> additional_instructions Specifies additional instruction regarding entering the accommodation (unit). string
>> created_at Specifies the time the check-in request was created. string Follows the ISO 8601 standard in UTC: YYYY-MM-DDThh:mm:ss.mmmZ.
>> updated_at Specifies the time the check-in request was last updated. string Follows the ISO 8601 standard in UTC: YYYY-MM-DDThh:mm:ss.mmmZ.

Updating a check-in request

PUT
https://supply-xml.booking.com/online-checkin-api/properties/{property_id}/checkins/{check-in_id}

The PUT /properties/{property_id}/checkins/{check-in_id} request enables you to update check-in requests. You can update a check-in request in the following ways:

  • DATA_REQUIRED: Request currently has status CREATED, which means the property has a reservation for which online check-ins are possible. Setting this status triggers an email to be sent to the guest to retrieve the required information (dependent on country) by enabling the guest to check in online.

  • SUCCESS: Request currently has status REQUESTED, which mean the property approves the online check-in and optionally sends information on how to access the accommodation (unit).

  • DENIED: Request currently has status REQUESTED, which means the property denies the online check-in.

Path parameters

The following table describes what elements you must add in the request path:

Element Description Type Required/Optional Notes
property_id Specifies the ID of the property you want to retrieve check-in requests for. string required

Body parameters

The following table describes what elements you can add as query parameters:

Element Description Type Required/Optional Notes
status Specifies the status of the check-in request. string required Possible values are: DATA_REQUIRED, SUCCESS, and DENIED. For DATA_REQUIRED and DENIED you must use only this body parameter.
room_access Contains the accommodation access elements. object required
> qrcode_content Specifies the QR code to enter the accommodation. string required* One of the following four values is required (more than one is not possible): qrcode_content, unit_access_pin, unit_lockbox_code, or front_desk_key_pickup.
> premises_access_pin Specifies pin to access the accommodation. string optional
> front_desk_key_pickup Inidicates whether the guest can pick up the key at the front desk. boolean required* One of the following four values is required (more than one is not possible): qrcode_content, unit_access_pin, unit_lockbox_code, or front_desk_key_pickup.
> unit_access_pin Specifies pin to access the accommodation unit. string required* One of the following four values is required (more than one is not possible): qrcode_content, unit_access_pin, unit_lockbox_code, or front_desk_key_pickup.
> unit_lockbox_code Specifies the code for the lockbox that contains the key to the accommodation unit. string optional One of the following four values is required (more than one is not possible): qrcode_content, unit_access_pin, unit_lockbox_code, or front_desk_key_pickup.
> unit_label Specifies the label of the accommodation unit. string optional
> additional_instructions Specifies additional instruction regarding entering the accommodation (unit). string optional
denial_reason Specifies reason for denying the check-in request. string optional Possible values are: PROPERTY_NOT_ENABLED, TOO_EARLY, TOO_LATE, INSUFFICIENT_DATA, INVALID_ID_DOCUMENT, ALREADY_CHECKED_IN, and OTHER. For OTHER you must specify denial_description.
denial_description Specifies additional details for denying the checkin request. string optional denial_description parameter is optional, but it is required for OTHER denial_reason.

Request body example: DATA_REQUIRED

The following is a successful request body example:

{
    "status": "DATA_REQUIRED"
}

Request body example: SUCCESS

The following is a successful request body example:

{
    "status": "SUCCESS",
    "room_access": {
        "premises_access_pin": "1234567890",
        "unit_access_pin": "12345",
        "unit_label": "Room 550",
        "additional_instructions": "2nd floor, go straight to the end, then turn left and find your room number."
    }
}

Request body example: DENIED

The following are successful request body examples:

{
    "status": "DENIED",
    "denial_reason": "OTHER",
    "denial_description": "Our systems doesnot work today, in-person check-in is therefore required."
}
{
    "status": "DENIED",
    "denial_reason": "INVALID_ID_DOCUMENT",
    "denial_description": "Passport is expired"
}

Response body example: DATA_REQUIRED

The following is a successful response body example:

{
    "warnings": [],
    "data": {
        "expected_arrival_time": null,
        "additional_guests": null,
        "property_id": 6314570,
        "room_reservation_id": "3060335376",
        "room_access": null,
        "id": "5ca8d53a69267a6d383687df840439ab",
        "checkin_date": "2021-01-05",
        "status": "DATA_REQUIRED",
        "checkout_date": "2021-01-06",
        "created_at": "2021-01-05T12:49:00Z",
        "main_guest": null,
        "updated_at": "2021-01-05T12:49:00Z",
        "reservation_id": "2865149165"
    },
    "meta": {
        "ruid": "UmFuZG9tSVYkc2RlIyh9YYrCGLva4KjLpuUdyffqcDcRfAxi9pKPLbrRp5+FvYqtFU4X9l6hYqyL6aaxBT26pXRV5Iemv7+3"
    },
    "errors": []
}

Response body elements: DATA_REQUIRED

The following table describes the response elements:

Element Description Type Notes
data Contains the response object. object
> checkins Contains the check-in requests. array
>> id Specifies the ID of the check-in request. string You must use this id to retrieve or update a specific check-in request.
>> status Specifies the status of the check-in request. string Possible values are: CREATED, DATA_REQUIRED, REQUESTED, SUCCESS, and DENIED.
>> property_id Specifies the ID of the property. string
>> reservation_id Specifies the ID of the reservation. string
>> room_reservation_id Specifies the ID of the room reservation. string
>> checkin_date Specifies the date that the guest checks in. string Follows the YYYY-MM-DD format.
>> checkout_date Specifies the date that the guest checks out. string Follows the YYYY-MM-DD format.
>> expected_arrival_time Specifies the time when the guest is estimated to arrive. string
>> main_guest Contains information on the main guest. object Value is null in status of DATA_REQUIRED.
>> additional_guests Contains information on guests other than the main guest . array Value is null in status of DATA_REQUIRED.
>> room_access Contains information on how to access the room. object Value is null in status of DATA_REQUIRED.
>> created_at Specifies the time the check-in request was created. string Follows the ISO 8601 standard in UTC: YYYY-MM-DDThh:mm:ss.mmmZ.
>> updated_at Specifies the time the check-in request was last updated. string Follows the ISO 8601 standard in UTC: YYYY-MM-DDThh:mm:ss.mmmZ.

Response body example: SUCCESS

The following is a successful response body example:

{
    "meta": {
        "ruid": "UmFuZG9tSVYkc2RlIyh9YYrCGLva4KjLy4IJ0KBuafppRHkaFfW9UoTODRK75igo9NzEXVY6QUg3jTI2HVKP7whIbTJbx1Dk"
    },
    "data": {
        "checkin_date": "2021-01-05",
        "reservation_id": "2865149165",
        "room_reservation_id": "3060335376",
        "property_id": 6314570,
        "status": "SUCCESS",
        "updated_at": "2021-01-05T16:40:42Z",
        "created_at": "2021-01-05T12:49:00Z",
        "id": "5ca8d53a69267a6d383687df840439ab",
        "expected_arrival_time": null,
        "room_access": {
            "premises_access_pin": "1234567890",
            "unit_access_pin": "12345",
            "unit_label": "Room 550",
            "unit_lockbox_code": "1234",
            "additional_instructions": "2nd floor, go straight to the end, then turn left and find your room number.",
            "qrcode_content": null,
            "front_desk_key_pickup": null
        },
        "main_guest": {
            "signature": null,
            "last_name": "Janssens",
            "birth_city": null,
            "birthdate": "1946-07-11",
            "first_name": "Luca",
            "birth_country": null,
            "nationality": "ai",
            "gender": "unknown",
            "middle_name": null,
            "documents": [],
            "address": {
                "line1": "H.J.E. Wenckebachweg, 6 V15",
                "country": "be",
                "city": "Amsterdam",
                "zipcode": "1096AN",
                "line2": "n.a."
            },
            "email": "ljanss.991164@guest.booking.com"
        },
        "checkout_date": "2021-01-06",
        "additional_guests": []
    },
    "warnings": [],
    "errors": []
}

Response body elements: SUCCESS

The following table describes the response elements:

Element Description Type Notes
data Contains the response object. object
> checkins Contains the check-in requests. array
>> id Specifies the ID of the check-in request. string You must use this id to retrieve or update a specific check-in request.
>> status Specifies the status of the check-in request. string Possible values are> CREATED, DATA_REQUIRED, REQUESTED, SUCCESS, and DENIED.
>> property_id Specifies the ID of the property. string
>> reservation_id Specifies the ID of the reservation. string
>> room_reservation_id Specifies the ID of the room reservation. string
>> checkin_date Specifies the date that the guest checks in. string Follows the YYYY-MM-DD format.
>> checkout_date Specifies the date that the guest checks out. string Follows the YYYY-MM-DD format.
>> expected_arrival_time Specifies the time when the guest is estimated to arrive. string
>> main_guest Contains information on the main guest. object
>>> first_name Specifies the first name of the main guest. string
>>> last_name Specifies the last name of the main guest. string
>>> middle_name Specifies the middle name of the main guest. string
>>> signature Specifies the encoded signature of the guest if required. string
>>> birthdate Specifies the birthdate of the main guest. string Follows the YYYY-MM-DD format.
>>> birth_city Specifies the birth city of the main guest. string
>>> nationality Specifies the nationality of the main guest. string Follows ISO 1366 country codes.
>>> email Specifies the email of the main guest. string
>>> phone Specifies the phone number of the main guest. string
>>> address Contains the address information of the main guest. object
>>>> city Specifies the city in which the main guest lives. string
>>>> zipcode Specifies the zip code of the city in which the main guest lives. string
>>>> country Specifies the country in which the main guest lives. string Follows ISO 1366 country codes.
>>>> line1 Specifies the street in which the main guest lives. string
>>>> line2 Specifies the secondary street information. string
>>> documents Contains the travel document elements. array
>>>> expiration_date Specifies the expiration date of the travel document. string
>>>> identifier Specifies the ID of the travel document. string
>>>> type Specifies the type of the travel document. string
>>>> issuer_authority Specifies the authority that issues the travel document. string
>>>> issue_country Specifies the country that issues the travel document. string
>>>> issue_date Specifies the date the travel document was issued. string
>>>> issue_country Specifies the country that issues the travel document. string
>> additional_guests Contains information on guests other than the main guest . array
>> room_access Contains information on how to access the room. object
>>>> qrcode_content Specifies the QR code to enter the accommodation. string Entering the accommodation can happen in only one of the following ways> qrcode_content, unit_access_pin, unit_lockbox_code, or front_desk_key_pickup.
>>>> premises_access_pin Specifies pin to access the accommodation. string
>>>> front_desk_key_pickup Inidicates whether the guest can pick up the key at the front desk. boolean Entering the accommodation can happen in only one of the following ways> qrcode_content, unit_access_pin, unit_lockbox_code, or front_desk_key_pickup.
>>>> unit_access_pin Specifies pin to access the accommodation unit. string Entering the accommodation can happen in only one of the following ways> qrcode_content, unit_access_pin, unit_lockbox_code, or front_desk_key_pickup.
>>>> unit_lockbox_code Specifies the code for the lockbox that contains the key to the accommodation unit. string Entering the accommodation can happen in only one of the following ways> qrcode_content, unit_access_pin, unit_lockbox_code, or front_desk_key_pickup.
>>>> unit_label Specifies the label of the accommodation unit. string
>>>> additional_instructions Specifies additional instruction regarding entering the accommodation (unit). string
>> created_at Specifies the time the check-in request was created. string Follows the ISO 8601 standard in UTC: YYYY-MM-DDThh:mm:ss.mmmZ.
>> updated_at Specifies the time the check-in request was last updated. string Follows the ISO 8601 standard in UTC: YYYY-MM-DDThh:mm:ss.mmmZ.

Response body example: DENIED

The following is a successful response body example:

{
    "data": {
      "id": "5c87144ab85859f449dcffa730c535e6",
      "property_id": 7344457,
      "checkin_date": "2023-03-01",
      "checkout_date": "2023-03-02",
      "room_reservation_id": "2370121818",
      "room_access": {},
      "reservation_id": "2370121818",
      "status": "DENIED",
      "denial_reason": "OTHER",
      "denial_description": "Our systems doesnot work today, in-person check-in is therefore required.",
      "main_guest": {
        "last_name": "Ballen",
        "gender": "unknown",
        "first_name": "Peter",
        "birth_country": "nl",
        "email": "noreply@booking.com"
      },
      "created_at": "2023-02-28T15:22:38Z",
      "updated_at": "2023-02-28T15:24:19Z"
    },
    "warnings": [],
    "errors": [],
    "meta": {
      "ruid": "UmFuZG9tSVYkc2RlIyh9Yd3xljKm++FDDtH9jZ1q9JX2ssWL8dOqzF7mwuaziu3b0Ix9fBXDdelJAbooncF/oJNqfG3ll6O+OJXYb0ZyIj8="
    }

Response body elements: DENIED

The following table describes the response elements:

Element Description Type Notes
data Contains the response object. object
> checkins Contains the check-in requests. array
>> id Specifies the ID of the check-in request. string You must use this id to retrieve or update a specific check-in request.
>> status Specifies the status of the check-in request. string Possible values are> CREATED, DATA_REQUIRED, REQUESTED, SUCCESS, and DENIED.
>> property_id Specifies the ID of the property. string
>> denial_reason Specifies reason for denying the checkin request. string Possible values are> PROPERTY_NOT_ENABLED, TOO_EARLY, TOO_LATE, INSUFFICIENT_DATA, INSUFFICIENT_DATA, INVALID_ID_DOCUMENT, ALREADY_CHECKED_IN, and OTHER.
>> denial_description Specifies additional details for denying the checkin request. string
>> reservation_id Specifies the ID of the reservation. string
>> room_reservation_id Specifies the ID of the room reservation. string
>> checkin_date Specifies the date that the guest checks in. string Follows the YYYY-MM-DD format.
>> checkout_date Specifies the date that the guest checks out. string Follows the YYYY-MM-DD format.
>> expected_arrival_time Specifies the time when the guest is estimated to arrive. string
>> main_guest Contains information on the main guest. object
>>> first_name Specifies the first name of the main guest. string
>>> last_name Specifies the last name of the main guest. string
>>> middle_name Specifies the middle name of the main guest. string
>>> signature Specifies the encoded signature of the guest if required. string
>>> birthdate Specifies the birthdate of the main guest. string Follows the YYYY-MM-DD format.
>>> birth_city Specifies the birth city of the main guest. string
>>> nationality Specifies the nationality of the main guest. string Follows ISO 1366 country codes.
>>> email Specifies the email of the main guest. string
>>> phone Specifies the phone number of the main guest. string
>>> address Contains the address information of the main guest. object
>>>> city Specifies the city in which the main guest lives. string
>>>> zipcode Specifies the zip code of the city in which the main guest lives. string
>>>> country Specifies the country in which the main guest lives. string Follows ISO 1366 country codes.
>>>> line1 Specifies the street in which the main guest lives. string
>>>> line2 Specifies the secondary street information. string
>>> documents Contains the travel document elements. array
>>>> expiration_date Specifies the expiration date of the travel document. string
>>>> identifier Specifies the ID of the travel document. string
>>>> type Specifies the type of the travel document. string
>>>> issuer_authority Specifies the authority that issues the travel document. string
>>>> issue_country Specifies the country that issues the travel document. string
>>>> issue_date Specifies the date the travel document was issued. string
>>>> issue_country Specifies the country that issues the travel document. string
>> additional_guests Contains information on guests other than the main guest . array
>> room_access Contains information on how to access the room. object
>>>> qrcode_content Specifies the QR code to enter the accommodation. string Entering the accommodation can happen in only one of the following ways> qrcode_content, unit_access_pin, unit_lockbox_code, or front_desk_key_pickup.
>>>> premises_access_pin Specifies pin to access the accommodation. string
>>>> front_desk_key_pickup Inidicates whether the guest can pick up the key at the front desk. boolean Entering the accommodation can happen in only one of the following ways> qrcode_content, unit_access_pin, unit_lockbox_code, or front_desk_key_pickup.
>>>> unit_access_pin Specifies pin to access the accommodation unit. string Entering the accommodation can happen in only one of the following ways> qrcode_content, unit_access_pin, unit_lockbox_code, or front_desk_key_pickup.
>>>> unit_lockbox_code Specifies the code for the lockbox that contains the key to the accommodation unit. string Entering the accommodation can happen in only one of the following ways> qrcode_content, unit_access_pin, unit_lockbox_code, or front_desk_key_pickup.
>>>> unit_label Specifies the label of the accommodation unit. string
>>>> additional_instructions Specifies additional instruction regarding entering the accommodation (unit). string
>> created_at Specifies the time the check-in request was created. string Follows the ISO 8601 standard in UTC: YYYY-MM-DDThh:mm:ss.mmmZ.
>> updated_at Specifies the time the check-in request was last updated. string Follows the ISO 8601 standard in UTC> YYYY-MM-DDThh:mm:ss.mmmZ.