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 and required_for_international fields have hardcoded dependencies on the field guest_nationality. When using these fields, make sure the guest_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
  • The required_above_age and hide_below_age field use the guest_birthdate field to determine the guest's age. When using these options make sure the guest_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.