Configuring check-in forms¶
These endpoints, which are part of the Online check-in API, enable you to modify and configure the online check-in form depending on your or the property's needs.
Default configuration¶
Booking.com uses a default configuration based on the property's country, which is as close as possible to the local regulations. However, these can change over time and Booking.com cannot always act fast on those changes. Therefore, this endpoint enables you to adjust to changes when they arise.
Keep in mind that after you modified or updated a property's check-in form configuration, it becomes the new default and the system now follows that configuration to generate check-in forms. It is not possible to set the system to follow the original default configuration again after modification.
Retrieving current configuration¶
GET
https://supply-xml.booking.com/online-checkin-api/properties/{property_id}/checkin-form-config
Calling the GET /online-checkin-api/properties/{property_id}/checkin-form-config
endpoint enables you to retrieve the current configuration for a property's check-in form.
Path parameters¶
Element | Description | Type | Required/Optional | Notes |
---|---|---|---|---|
property_id |
Specifies the ID of the property you want to retrieve check-in form configuration for. | string | required |
Query parameters¶
The following table describes what elements you can add as query parameters:
Element | Description | Type | Required/Optional | Notes |
---|---|---|---|---|
lang |
Specifies the language . | integer | optional | To consult the possible values, see Booking.com language codes. |
Response body example¶
The following is a successful (partial) response body example:
{
"warnings": [],
"data": {
"guest_birth_city": {
"label": "City of birth",
"main_guest": {
"enabled": false,
"hide_for_domestic": false,
"required_for_domestic": false,
"required_above_age": null,
"required_for_international": false,
"hide_below_age": null,
"hide_for_international": false
},
"configurable": true,
"additional_guests": {
"required_for_domestic": false,
"required_above_age": null,
"required_for_international": false,
"hide_for_international": false,
"hide_below_age": null,
"enabled": false,
"hide_for_domestic": false
}
},
"guest_nationality": {
"configurable": true,
"main_guest": {
"required_for_domestic": true,
"required_above_age": null,
"required_for_international": true,
"hide_for_international": false,
"hide_below_age": null,
"enabled": true,
"hide_for_domestic": false
},
"label": "Nationality",
"additional_guests": {
"enabled": true,
"hide_for_domestic": false,
"required_above_age": null,
"required_for_domestic": true,
"hide_for_international": false,
"hide_below_age": null,
"required_for_international": true
}
},
...
},
"errors": [],
"meta": {
"ruid": "UmFuZG9tSVYkc2RlIyh9YQ52CqNLo6rkh5vFUmEF3Y/qcS6SCZgyISnZRdoq9T6fIv+4hirjx9ytz6RTYbEbhuIvVN+YWAlQ"
}
}
Response body elements¶
The following table describes the response elements:
Element | Description | Type | Notes |
---|---|---|---|
data |
Contains all the fields you can configure. | object | |
> {{field}} |
Placeholder for all the possible fields as shown in the supported fields list. | object | |
>> configurable |
Indicates whether you can configure the form field. | Boolean | |
>> label |
Specifies the label of the field | string | |
>> main_guest |
Contains the configuration settings for the main guest. | object | |
>>> enabled |
Indicates whether the field is visible to the guest | Boolean | |
>>> required_for_domestic |
Indicates whether the field is required for domestic guests. | Boolean | |
>>> required_for_international |
Indicates whether the field is required for international guests. | Boolean | |
>>> required_above_age |
Specifies from what age the field is required for guests. | number | |
>>> hide_for_domestic |
Indicates whether the field is hidden for domestic guests. | Boolean | |
>>> hide_for_international |
Indicates whether the field is hidden for international guests. | Boolean | |
>>> hide_below_age |
Specifies until what age the field is hidden for a guest. | number | |
>> additional_guests |
Contains the configuration settings for the additional guests | object |
Updating configuration¶
PUT
https://supply-xml.booking.com/online-checkin-api/properties/{property_id}/checkin-form-config
Calling the PUT /online-checkin-api/properties/{property_id}/checkin-form-config
endpoint enables you to modify or update the form configuration per property. Note that when there is a conflict between field rules, the required rules are always prioritized.
Configuration dependencies¶
Some of the fields have dependencies on others:
-
The
required_for_domestic
andrequired_for_international
fields have hardcoded dependencies on the fieldguest_nationality
. When using these fields, make sure theguest_nationality
field is enabled. Domestic and international are defined as follows:- A guest is domestic when the
guest_nationality
is equal to the property's country - A guest is international when the
guest_nationality
differs from the property's country
- A guest is domestic when the
-
The
required_above_age
andhide_below_age
field use theguest_birthdate
field to determine the guest's age. When using these options make sure theguest_birthdate
field is enabled.
Path parameters¶
Element | Description | Type | Required/Optional | Notes |
---|---|---|---|---|
property_id |
Specifies the ID of the property you want to retrieve check-in form configuration for. | string | required |
Query parameters¶
The following table describes what elements you can add as query parameters:
Element | Description | Type | Required/Optional | Notes |
---|---|---|---|---|
lang |
Specifies the language . | integer | optional | To consult the possible values, see Booking.com language codes. |
Request body elements¶
The following table describes the request elements.
Element | Description | Type | Notes |
---|---|---|---|
{{field}} |
Placeholder for all the possible fields as shown in the supported fields list. | object | |
> configurable |
Indicates whether you can configure the form field. | Boolean | |
> label |
Specifies the label of the field | string | |
> main_guest |
Contains the configuration settings for the main guest. | object | |
>> enabled |
Indicates whether the field is visible to the guest | Boolean | |
>> required_for_domestic |
Indicates whether the field is required for domestic guests. | Boolean | |
>> required_for_international |
Indicates whether the field is required for international guests. | Boolean | |
>> required_above_age |
Specifies from what age the field is required for guests. | number | |
>> hide_for_domestic |
Indicates whether the field is hidden for domestic guests. | Boolean | |
>> hide_for_international |
Indicates whether the field is hidden for international guests. | Boolean | |
>> hide_below_age |
Specifies until what age the field is hidden for a guest. | number | |
> additional_guests |
Contains the configuration settings for the additional guests | object |
Request example: Minimal request¶
In this example you disable only a field for additional guests:
{
"document_type": {
"additional_guests": {
"enabled": false
}
}
}
Request example: Extended¶
In this example you update multiple fields at the same time:
{
"guest_lastname": {
"main_guest": {
"enabled": true,
"required_for_domestic": true,
"required_for_international": true,
"hide_for_domestic": false,
"hide_for_international": false
},
"additional_guests": {
"enabled": true,
"required_for_domestic": true,
"required_for_international": true,
"hide_for_domestic": false,
"hide_for_international": false
}
},
"guest_birth_country": {
"additional_guests": {
"enabled": true,
"required_for_domestic": true,
"required_for_international": true,
"hide_below_age": 18
}
},
"document_type": {
"main_guest": {
"hide_for_domestic": true,
"hide_below_age": 14
}
}
}
Response example¶
{
"guest_lastname": {
"main_guest": {
"enabled": true,
"required_for_domestic": true,
"required_for_international": true,
"hide_for_domestic": false,
"hide_for_international": false,
"required_above_age": 18
},
"additional_guests": {
"enabled": true,
"required_for_domestic": true,
"required_for_international": true,
"hide_for_domestic": false,
"hide_for_international": false
}
},
"guest_birth_country": {
"main_guest": {
"enabled": true,
"required_for_domestic": true,
"required_for_international": true,
"hide_for_domestic": false,
"hide_for_international": false
},
"additional_guests": {
"enabled": true,
"required_for_domestic": true,
"required_for_international": true,
"hide_for_domestic": false,
"hide_for_international": false,
"hide_below_age": 18
}
},
"document_type": {
"main_guest": {
"enabled": true,
"required_for_domestic": false,
"required_for_international": false,
"hide_for_domestic": false,
"hide_for_international": false,
"hide_below_age": 14
},
"additional_guests": {
"enabled": false,
"required_for_domestic": false,
"required_for_international": false,
"hide_for_domestic": false,
"hide_for_international": false
}
}
Response body elements¶
The following table describes the response elements:
Element | Description | Type | Notes |
---|---|---|---|
data |
Contains all the fields you can configure. | object | |
> {{field}} |
Placeholder for all the possible fields as shown in the supported fields list. | object | |
>> configurable |
Indicates whether you can configure the form field. | Boolean | |
>> label |
Specifies the label of the field | string | |
>> main_guest |
Contains the configuration settings for the main guest. | object | |
>>> enabled |
Indicates whether the field is visible to the guest | Boolean | |
>>> required_for_domestic |
Indicates whether the field is required for domestic guests. | Boolean | |
>>> required_for_international |
Indicates whether the field is required for international guests. | Boolean | |
>>> required_above_age |
Specifies from what age the field is required for guests. | number | |
>>> hide_for_domestic |
Indicates whether the field is hidden for domestic guests. | Boolean | |
>>> hide_for_international |
Indicates whether the field is hidden for international guests. | Boolean | |
>>> hide_below_age |
Specifies until what age the field is hidden for a guest. | number | |
>> additional_guests |
Contains the configuration settings for the additional guests | object |
Supported field IDs¶
You can find a list of all supported field IDs in the order they are shown to guests:
Field identifier | Notes |
---|---|
guest_firstname | |
guest_lastname | |
guest_second_lastname | |
guest_nationality | You must enable this field if you want to make use of the required_for_domestic , required_for_international , hide_for_domestic and hide_for_international fields. |
guest_gender | |
guest_birth_country | |
guest_birth_city | |
guest_birthdate | You must enable this field if you want to make use of the required_above_age and hide_below_age fields. |
address_line1 | |
address_zipcode | |
address_city | |
address_country | |
document_type | |
document_identifier | |
document_issuer_authority | |
document_issue_country | |
document_issue_city | |
document_issue_date | |
document_expiration_date | |
guest_signature | |
consent | The consent field shows one or more documents to the guest, which they must read and accept before finalizing the check-in process. Currently supported documents are House Rules, Terms of use and Privacy policy. |
Not possible to collect email adress or phone number
You cannot collect email addresses and phone numbers via the form, those are taken from the reservation and are sent as guest_email
and guest_phone
during the regular check-in flow.