Last updated

Retrieving reservations using B.XML

Use the B.XML reservations API endpoint to implement a reservations' retrieval system for a property. You can retrieve new, modified or cancelled reservations using a single endpoint.

Understanding reservation response

As a response, the endpoint returns the same schema but with updated information for new, modified or cancelled reservations. The following table outlines the difference in the response schema:

Reservations statusResponse
NewReturns reservations object with new reservation details.
ModifiedReturns reservations object with updated reservation details.
CancelledReturns the same reservations object but with different child objects.
No pending reservationsReturns an empty reservations object.

Retrieving reservations

POST 
https://secure-supply-xml.booking.com/hotels/xml/reservations

Use this endpoint to retrieve new, modified or cancelled property reservations.

To ensure timely delivery of data, call POST reservations once per twenty seconds. We do not recommend higher frequencies because of added overhead to servers and operations. Multiple concurrent calls are likewise not recommended.

Request body parameters

The following table describes the elements you can add in the request body:

Use the parameters sparingly

To process reservations optimally, Booking.com recommends that you use these parameters sparingly and only while retrieving reservations immediately after an unexpected outage. Make sure to remove these parameters after recovering from unexpected events.

ElementDescriptionTypeRequired/OptionalNotes
requestRoot element.objectrequired
idSpecify a reservation ID to retrieve a single reservation.integeroptionalSpecify a reservation ID that is queued for B.XML retrieval. For accurate results, use the hotel_ids parameter and specify the property ID. With this parameter, you may access reservations made more than two weeks in the past.
hotel_id or hotel_idsSpecify the unique property ID(s), separated by comma, to limit results to those hotels. You can specify, for example, 10 property IDs.integeroptionalYou can use hotel_id or hotel_ids interchangeably to specify multiple property IDs. Use only commas to separate individual property IDs. When retrieving reservations for multiple properties using this parameter, if you do not have access to some properties, the API returns a Warning in the response only for those properties while returning reservations for all other properties that you have access to. Use this parameter to restrict the results to a given property.
For example, when servicing an interactive request, you may pass hotel_ids for the partner account and id from an input field. If they do not match, the API returns a 404 status.
last_change[Only applicable when Reservations Recovery API is not implemented] Specify a date, in the format YYYY-MM-DD HH:MM:SS, to retrieve all reservations that were created, modified or cancelled since the specified date. You can request reservations up until 2 weeks in the past.datetimeoptionalUsing this filter, the API returns reservations starting from the oldest reservation. You can limit the returned reservations count by specifying the limit parameter.
Use this parameter only when recovering lost reservations after an unexpected outage. Specifying a future date and time returns 0 reservations.
Using this filter immediately after a daylight-savings time change may return 0 or more reservations depending on whether the clock was set ahead or behind.
Important: Using this filter when the feature: Enable Reservation Recovery API (enable_reservation_recovery_api) is turned on, returns a HTTP 400 error.
limitSpecify a maximum number of reservations to return. Specify a value >=10 and <= 200.integeroptionalThe API may return reservations less than the specified limit based on the available reservations. Specifying a low value here while retrieving reservations during peak season can lead to a growing backlog of unprocessed reservations. This filter can improve latency at the expense of throughput, therefore it adds a risk of a throughput bottleneck.

Request body example

This section contains a request body example that retrieves reservations for the property with ID 8011855 and that were made since 2022-07-01. It limits the query to 10 results.

<request>
    <hotel_id>8011855,8135188</hotel_id>
    <last_change>2022-07-01</last_change>
    <limit>10</limit>
</request>

Response body example

<reservations>
    <reservation>
        <booked_at>2022-07-18T11:15:36+00:00</booked_at>
        <commissionamount>49.44</commissionamount>
        <currencycode>EUR</currencycode>
        <customer>
            <address></address>
            <cc_cvc></cc_cvc>
            <cc_expiration_date></cc_expiration_date>
            <cc_name></cc_name>
            <cc_number></cc_number>
            <cc_type></cc_type>
            <city></city>
            <company></company>
            <countrycode>nl</countrycode>
            <dc_issue_number></dc_issue_number>
            <dc_start_date></dc_start_date>
            <email></email>
            <first_name>Samuel</first_name>
            <last_name>West</last_name>
            <preferred_language>en-gb</preferred_language>
            <remarks></remarks>
            <telephone></telephone>
            <zip></zip>
        </customer>
        <date>2022-07-18</date>
        <hotel_id>8011855</hotel_id>
        <hotel_name>HillTop Hotel</hotel_name>
        <id>3181367489</id>
        <modified_at>2022-07-18T11:15:38+00:00</modified_at>
        <reservation_extra_info>
            <flags>
                <flag name="booker_is_genius" />
            </flags>
        </reservation_extra_info>
        <room>
            <arrival_date>2022-07-20</arrival_date>
            <cancel_penalties>
                <cancel_penalty from="2022-07-18T11:15:36+00:00"
                                policy_code="152">
                    <amount_percent amount="0"
                                    currency_code="EUR" />
                </cancel_penalty>
            </cancel_penalties>
            <commissionamount>24.72</commissionamount>
            <currencycode>EUR</currencycode>
            <departure_date>2022-07-22</departure_date>
            <extra_info>This double room features a bathrobe, hot tub and game console.</extra_info>
            <facilities>Bath, TV, Hot tub, Bathrobe, Free toiletries, DVD player, Fan, Private bathroom, Bath or shower, Carpeted, Laptop safe, Soundproofing, Bidet, Game console, Clothes rack, Toilet paper, Infinity pool, Bottle of water, Chocolate or cookies, Wine glasses, Game console – Wii U, Game console – PS4, Body soap, Shower cap, Feather pillow, Mobile hotspot device</facilities>
            <guest_counts>
                <guest_count count="2"
                             type="adult" />
            </guest_counts>
            <guest_name>Jackson G</guest_name>
            <id>801185502</id>
            <info>Breakfast is included in the room rate.Children and Extra Bed Policy: All children are welcome. There is no capacity for extra beds in the room. The maximum number of total guests in a room is 6. There is no capacity for cots in the room.  Deposit Policy: No prepayment is needed.  Cancellation Policy: The guest can cancel free of charge at any time. </info>
            <max_children>0</max_children>
            <meal_plan>Breakfast is included in the room rate.</meal_plan>
            <name> Double Room</name>
            <occupancy>4</occupancy>
            <price date="2022-07-20"
                   genius_rate="no"
                   rate_id="25279855"
                   rewritten_from_id="0"
                   rewritten_from_name="">86</price>
            <price date="2022-07-21"
                   genius_rate="no"
                   rate_id="25279855"
                   rewritten_from_id="0"
                   rewritten_from_name="">86</price>
            <price_details>
                <guest>
                    <extracomponent amount="16"
                                    currency="EUR"
                                    included="yes"
                                    per_night="no"
                                    per_person="no"
                                    percentage="no"
                                    text="Bed linens fee" />
                    <extracomponent amount="18"
                                    currency="EUR"
                                    included="yes"
                                    per_night="no"
                                    per_person="no"
                                    percentage="no"
                                    text="Gas fee" />
                    <extracomponent amount="26.24"
                                    currency="EUR"
                                    included="yes"
                                    per_night="no"
                                    per_person="no"
                                    percentage="18%"
                                    text="VAT" />
                    <extracomponent amount="5.10"
                                    currency="EUR"
                                    included="yes"
                                    per_night="no"
                                    per_person="no"
                                    percentage="3.5%"
                                    text="City tax" />
                    <total>211.10</total>
                </guest>
                <hotel>
                    <extracomponent amount="16"
                                    currency="EUR"
                                    included="no"
                                    per_night="no"
                                    per_person="no"
                                    percentage="no"
                                    text="Bed linens fee" />
                    <extracomponent amount="18"
                                    currency="EUR"
                                    included="no"
                                    per_night="no"
                                    per_person="no"
                                    percentage="no"
                                    text="Gas fee" />
                    <extracomponent amount="26.24"
                                    currency="EUR"
                                    included="yes"
                                    per_night="no"
                                    per_person="no"
                                    percentage="18%"
                                    text="VAT" />
                    <extracomponent amount="5.10"
                                    currency="EUR"
                                    included="no"
                                    per_night="no"
                                    per_person="no"
                                    percentage="3.5%"
                                    text="City tax" />
                    <total>172</total>
                </hotel>
            </price_details>
            <remarks></remarks>
            <roomreservation_id>3759106792</roomreservation_id>
            <smoking>0</smoking>
            <totalprice>172</totalprice>
        </room>
        <room>
            <arrival_date>2022-07-20</arrival_date>
            <cancel_penalties>
                <cancel_penalty from="2022-07-18T11:15:37+00:00"
                                policy_code="152">
                    <amount_percent amount="0"
                                    currency_code="EUR" />
                </cancel_penalty>
            </cancel_penalties>
            <commissionamount>24.72</commissionamount>
            <currencycode>EUR</currencycode>
            <departure_date>2022-07-22</departure_date>
            <extra_info>This double room features a bathrobe, hot tub and game console.</extra_info>
            <facilities>Bath, TV, Hot tub, Bathrobe, Free toiletries, DVD player, Fan, Private bathroom, Bath or shower, Carpeted, Laptop safe, Soundproofing, Bidet, Game console, Clothes rack, Toilet paper, Infinity pool, Bottle of water, Chocolate or cookies, Wine glasses, Game console – Wii U, Game console – PS4, Body soap, Shower cap, Feather pillow, Mobile hotspot device</facilities>
            <guest_counts>
                <guest_count count="2"
                             type="adult" />
            </guest_counts>
            <guest_name>Morgan Best</guest_name>
            <id>801185502</id>
            <info>Breakfast is included in the room rate.Children and Extra Bed Policy: All children are welcome. There is no capacity for extra beds in the room. The maximum number of total guests in a room is 6. There is no capacity for cots in the room.  Deposit Policy: No prepayment is needed.  Cancellation Policy: The guest can cancel free of charge at any time. </info>
            <max_children>0</max_children>
            <meal_plan>Breakfast is included in the room rate.</meal_plan>
            <name> Double Room</name>
            <occupancy>4</occupancy>
            <price date="2022-07-20"
                   genius_rate="no"
                   rate_id="25279855"
                   rewritten_from_id="0"
                   rewritten_from_name="">86</price>
            <price date="2022-07-21"
                   genius_rate="no"
                   rate_id="25279855"
                   rewritten_from_id="0"
                   rewritten_from_name="">86</price>
            <price_details>
                <guest>
                    <extracomponent amount="16"
                                    currency="EUR"
                                    included="yes"
                                    per_night="no"
                                    per_person="no"
                                    percentage="no"
                                    text="Bed linens fee" />
                    <extracomponent amount="18"
                                    currency="EUR"
                                    included="yes"
                                    per_night="no"
                                    per_person="no"
                                    percentage="no"
                                    text="Gas fee" />
                    <extracomponent amount="26.24"
                                    currency="EUR"
                                    included="yes"
                                    per_night="no"
                                    per_person="no"
                                    percentage="18%"
                                    text="VAT" />
                    <extracomponent amount="5.10"
                                    currency="EUR"
                                    included="yes"
                                    per_night="no"
                                    per_person="no"
                                    percentage="3.5%"
                                    text="City tax" />
                    <total>211.10</total>
                </guest>
                <hotel>
                    <extracomponent amount="16"
                                    currency="EUR"
                                    included="no"
                                    per_night="no"
                                    per_person="no"
                                    percentage="no"
                                    text="Bed linens fee" />
                    <extracomponent amount="18"
                                    currency="EUR"
                                    included="no"
                                    per_night="no"
                                    per_person="no"
                                    percentage="no"
                                    text="Gas fee" />
                    <extracomponent amount="26.24"
                                    currency="EUR"
                                    included="yes"
                                    per_night="no"
                                    per_person="no"
                                    percentage="18%"
                                    text="VAT" />
                    <extracomponent amount="5.10"
                                    currency="EUR"
                                    included="no"
                                    per_night="no"
                                    per_person="no"
                                    percentage="3.5%"
                                    text="City tax" />
                    <total>172</total>
                </hotel>
            </price_details>
            <remarks></remarks>
            <roomreservation_id>3759106815</roomreservation_id>
            <smoking>0</smoking>
            <totalprice>172</totalprice>
        </room>
        <status>new</status>
        <time>13:15:36</time>
        <totalprice>344</totalprice>
    </reservation>
</reservations>
        <!-- RUID: [UmFuZG9tSVYkc2RlIyh9YQBqQix6ji/9NJZszNfyLEN341sSHgfn7oOvO1FXnOuIZUzD7QpzEjjgngxow5smUh6QycgeDycxUmzDH40OxEI=] -->

Response body elements

Depending on the number of properties you handle and the number of reservations per each property, the API can return a long response body. To better understand each response element that make up the response body, this section is split into multiple tables.

The response body contains the following high-level root elements:

Reservation details

This table lists the response elements that consolidate details per reservation.

ElementAttributeDescriptionTypeNotes
reservationsRoot element.object
> reservationContains reservation details for each reservationobject
>> booked_atContains the date and time the reservation was generated.datetimeTo view this element, make sure to enable the feature:Timestamp of last update for reservation (res_modify_timestamp).
>> commissionamountContains the commission information for each reservation that the property owes to Booking.com.floatEmpty if the reservation is cancelled.
>> currencycodeSpecifies the currency used for the commission.enumerated stringFollows the ISO 4217 currency code. This is always the same for a property and is set by Booking.com.

Customer details

The following table lists all the details related to the booker. If you enable the feature: Include dummy CC details for bank transfer payout (res_dummy_cc_on_bt), the API returns dummy credit card details in reservation messages when:

  • Guests pay through an alternate payment method.
  • The property's payout method is set to bank transfer.

You can identify that a message has dummy credit card details by looking for <cc_name>NOCCRESERVATION</cc_name>.

Accessing credit card or virtual credit card details via the API

If you don’t receive the credit card or virtual credit card details in the reservation messages, maybe the property has opted in to not receiving them. You can manage your properties’ access to credit card or virtual credit card details on their behalf via the Provider Portal. To learn more, see the Provider Portal self-help guide.

ElementAttributeDescriptionTypeNotes
> customerContains the booker details for the reservation.object
>> addressContains the address details of the booker.string
>> cc_current_balanceSpecifies the virtual credit card's current balance.integerFor more information, see the Payments Clarity Package (vcc_payment_v2).
>> cc_cvcSpecifies the credit card verification code as entered by the booker.integer
>> cc_expiration_dateSpecifies the credit card expiration date as entered by the booker.integer
>> currencycodeSpecifies the currency code.enumerated stringUses the ISO 4217 format. Takes the same currency as that of the virtual credit card's current balance, which was used when booking the reservation.
>> cc_nameSpecifies the credit card holder's name.stringIf the API returns NOCCRESERVATION, then the reservation message contains dummy credit card details.
>> cc_numberSpecifies the credit card number.integer
>> cc_typeSpecifies the credit card type.enumerated string
>> citySpecifies the booker's residing city.string
>> companySpecifies the company where the booker works, or made the reservation for.string
>> countrycodeSpecifies the booker's residing country as a country code (uses ISO 3166 format).string
>> dc_issue_number[Only applicable for Maestro (Switch) debit cards] Specifies the Issue number.integer
>> dc_start_date[Only applicable for Maestro (Switch) debit cards] Specifies the start date.datetime
>> emailSpecifies the email address of the booker.string
>> first_nameSpecifies the first name of the booker.string
>> last_nameSpecifies the last name of the booker.string
>> preferred_languageSpecifies the preferred langugage of the guest in the ISO language code format.stringTo view this element, make sure to enable the feature: Include Preferred language in Customer (res_customer_preferred_lang).
Note: To enable/disable this feature, contact the Booking.com Connectivity Support team.
>> remarksSpecifies any comments added by the booker regarding the reservation at the time of booking.string
>> telephoneSpecifies the booker's telephone number.string
>> zipSpecifies the booker's postal code.string
> dateSpecifies the reservation date.datetime
> hotel_idSpecifies the unique property ID as used by Booking.com where the reservation was made.string
> hotel_nameSpecifies the property name as used by Booking.com where the reservation was made.string
> idSpecifies the reservation ID created by Booking.com for the reservation.integer
> modified_atSpecifies the date and time when the original reservation was modified.objectTo view this element, make sure to enable the feature:Timestamp of last update for reservation (res_modify_timestamp).
> reservation_extra_infoSpecifies more information about the reservation.objectTo view this and its child elements, make sure to enable the feature: Get extra information for reservations (res_extra_info).

Room details

The following table provides all the details related to the room.

ElementAttributeDescriptionTypeNotes
> roomContains the booked room details including stay dates, guest information and room facilities.object
>> arrival_dateSpecifies the guest's arrival date.datetime
>> cancel_penaltiesContains the cancellation policy details.objectTo view this and its child elements, make sure to enable the feature: Add cancellation policy (res_cancel_policies).
>> commissionamountSpecifies the total commission amount due for this room for all nights combined.floatThe unit of currency is set by Booking.com under currencycode.
>> currencycodeSpecifies the currency used for the prices in the reservation.enumerated stringFollows the ISO 4217 currency code. This is always the same for a property and is set by Booking.com.
>> departure_dateSpecifies the guest's departure date.datetime
>> extra_infoSpecifies the extra room information as currently known for the booked room.string
>> facilitiesSpecifies the room facilities as displayed on the website at the time the reservation was made.stringNote that we show the information in the preferred language of the property's primary point of contact. If you have implemented the Content API, then you can set the language under ContactInfos ... >... Language for the ContactProfileType as general via the OTA_HotelDescriptiveContentNotif endpoint.
>> guest_countsContains the number of adults and children included while searching for a reservation.objectTo view this and its child elements, make sure to enable the feature: Include room-level guest count (guestcount_per_room).
>> guest_nameSpecifies the guest name(s) for the room.string
>> idSpecifies the room type ID as used by Booking.com.integer
>> infoSpecifies the room information as available on the website at the time of reservation.stringNote that we show the information in the preferred language of the property's primary point of contact. If you have implemented the Content API, then you can set the language under ContactInfos ... >... Language for the ContactProfileType as general via the OTA_HotelDescriptiveContentNotif endpoint.
>> max_childrenSpecifies the maximum number of children who can stay in the booked room for free.stringThis is a static setting defined per room. Guests cannot specify a value for the max_children attribute during the booking process. The maximum age of the children can be found in the policy of the property. The property can request this setting through the Booking.com account managers or check in the Booking.com Extranet.
>> meal_planSpecifies the mealplan (for example: breakfast, lunch or dinner) information that is applicable for the booked room.stringNote that we show the information in the preferred language of the property's primary point of contact. If you have implemented the Content API, then you can set the language under ContactInfos ... >... Language for the ContactProfileType as general via the OTA_HotelDescriptiveContentNotif endpoint.
>> nameSpecifies the room name as available on the website.stringNote that the room name might differ from the room name in the roomrates request, depending on the policy and/or rate type. Therefore, Booking.com recommends to map rooms based only on room ID and rate ID. We show the information in the preferred language of the property's primary point of contact. If you have implemented the Content API, then you can set the language under ContactInfos ... >... Language for the ContactProfileType as general via the OTA_HotelDescriptiveContentNotif endpoint.
>> occupancyContains the maximum occupancy for each room reservation. If the room has rate-level restrictions then this is the maximum occupancy for that rate.integerTo see this element, make sure to enable the feature: Include room-level occupancy (include_room_level_occupancy).
>> numberofguestsSpecifies the number of adult guests for this room as submitted by the guest on Booking.com. If the reservation uses a room rate that is not occupancy-based pricing, then it is the number of guests that the booker selected.integerIf the feature: Include room-level guest count (guestcount_per_room). or Include room-level guest counts (old) (childcount_per_room) is enabled, then this information is hidden.
>> priceSpecifies the price per night and rate category ID as known at the moment of reservation.integerTo view all the attributes under the price element, make sure to enable the feature: Get extra information for reservations (res_extra_info).
dateSpecifies the stay date for which the price is valid.date
genius_rateSpecifies whether the roomrate applied to the booking is a specially discounted genius rate.booleanA reservation with the genius_rate set to no can show a genius discounted price, only if a genius discount has been added at the room level. For more information on how to set room-level genius rate discount, see the Opportunities tab in the Extranet.
rate_idSpecifies the rate category ID as known at the moment of reservation.integerIf the room is booked with a rate that is rewritten from a parent rate, the API specifies the rate ID of the parent rate.
rewritten_from_idSpecifies the rate ID of the booked rate of the room when the booked rate is rewritten from a parent rate.integer
rewritten_from_nameSpecifies the name of the booked rate of the room when the booked rate is rewritten from a parent rate.string
>>> price_detailsSpecifies how VAT and city tax are calculated.objectFor more information, see the Include price details (include_price_details) or Payments Clarity Package (vcc_payment_v2) features.
>> remarksstring
>> roomreservation_idSpecifies the room reservation ID as used by Booking.com to identify the booked room within the reservation. If a guest books multiple rooms, then a unique roomreservation_id is generated for each room.integerEmpty if the reservation is cancelled.
>> smokingSpecifies whether smoking is allowed in the room.booleanPossible values are:
- 0: Smoking is not allowed
- 1: Smoking is allowed
>> total_priceSpecifies the total price for the room for all nights combined. This shows the sum of all prices known at the time of reservation.integerNote that there may be some excluded charges from this price. The unit of currency is always the same for a property and is set by Booking.com.
>> addonsContains any additional services added to the reservation.object
>>> addonContains individual additional service added to the reservation.object
>>>> nameSpecifies the additional service's name.stringFor example, Breakfast.
>>>> nightsSpecifies the number of nights the guest has booked for the service.integer
>>>> personsSpecifies the number of persons the addon is booked for.integer
>>>> price_modeSpecifies an integer identifying the price mode.enumerated integerFor a full list of supported price modes, see Available price modes.
>>>> price_per_unitSpecifies the price per unit for this addon.integer
>>>> total_priceSpecifies the total calculated price for this addon.integer
>>>> typeSpecifies the addon type ID.enumerated integerFor a full list of supported addons and their corresponding IDs, see Addon Types.

Other details

The following table lists the rest of the reservation details.

ElementAttributeDescriptionTypeNotes
> statusSpecifies the reservation status.enumerated stringPossible values are:
- new
- modified
- cancelled
> timeSpecifies the time at which the reservation was made in HH:MM:SS format.time
> total_cancellation_fee[Only for cancelled reservations] Specifies the total amount of cancellation fees a guest has to pay because the cancellation was out of the cancellation policy.integerThis value is computed as all cancelled rooms * all cancelled nights combined.
> total_priceSpecifies the total amount of room sales for this reservation.integerThis value is computed as all rooms * all nights combined. Note that there may be some excluded charges from this price. 0 if the reservation is cancelled.
>>> totalSpecifies the total amount of extra charges that will be applied. Note that this price doesn't include excluded (included = "no") extra charges.integer
RUIDSpecifies the unique request ID which is an encoded string.objectYou can share this ID with the Booking.com Connectivity Support team when you run into an issue. This can help in understanding what went wrong.

Additional response elements

The following table describes the additional response elements:

Include room-level occupancy

Includes room-level adult count in XML reservations.

With this feature activated, you can see the number of adults booked for the roomrate.

ElementAttributeDescriptionTypeNotes
> roomContains the booked room details including stay dates, guest information and room facilities.object
>> occupancyContains the maximum occupancy for each room reservation. If the room has rate-level restrictions then this is the maximum occupancy for that rate.integer

Include reservation-level guest count

When you enable the feature: Include reservation-level guest count (childcount), the API includes the guest count at the reservation level and not under individual room level.

Disable room-level guest count

Before enabling this feature, make sure to disable the feature: Include room-level guest count. If both the features are enabled, the API shows only the room-level guest counts.

ElementAttributeDescriptionTypeNotes
> reservationContains reservation details for each reservationobject
> guest_countsContains the number of adults and children included while searching for a reservation.object
>> guest_countContains the number of adults and ages of individual children included while searching for a reservation.integer
countSpecifies the number of guests of a specified type and their age.integer
typeSpecifies whether the guest falls under the following types, depending on their age:
- adult
- child
string
ageIf the guest type is child, then this specifies the age of the child.integer

Include room-level guest count

When you enable the feature: Include room-level guest count (guestcount_per_room), the API removes the <numberofguests> element in /hotels/xml/reservations and /hotels/xml/reservationssummary and replaces it with <guest_counts> in the response. Enabling this feature displays room-level guest counts.

ElementAttributeDescriptionTypeNotes
> roomContains the booked room details including stay dates, guest information and room facilities.object
> guest_countsContains the number of adults and children included while searching for a reservation.object
>> guest_countContains the number of adults and ages of individual children included while searching for a reservation.integer
countSpecifies the number of guests of a specified type and their age.integer
typeSpecifies whether the guest falls under the following types, depending on their age:
- adult
- child
string
ageIf the guest type is child, then this specifies the age of the child.integer

Include price details

When the Include price details (include_price_details) feature is enabled, the API includes the VAT and city taxes details in the response.

Properties can configure the setup of taxes and charges in the Booking.com Extranet. They can specify how VAT and city tax are calculated and can configure up to 5 extra charges.

ElementAttributeDescriptionTypeNotes
> price_detailsContains price details.object
>> guestContains the total amount paid by the guest and the details of the extra charges that were either included or excluded from the total amount.object
>>> extracomponentContains the details of the extra charges that were either included or excluded from the total amount paid by the guest.object
textSpecifies the description of the extra charge added by the property using the Booking.com Extranet.string
amountSpecifies the extra charge amount.integer
currencySpecifies the currency code for the charge amount.enumerated stringFollows the ISO 4217 currency code. The value is always the same for a property and is set by Booking.com.
includedSpecifies whether this extra charge is included/excluded in the total amount.booleanYes, denotes that the extra amount is included in the total amount.
per_nightIndicates whether this extra charge is applied per night.boolean
per_personIndicates whether this extra charge is applied per person.boolean
percentageThe percentage of the extra charge applied to the total amount.string
>>> totalSpecifies the total amount paid by the guest.integer
>> hotelContains the total amount owed to the property and the details of the extra charges that were either included or excluded from the total amount.object
>>> extracomponentContains the details of the extra charges that were either included or excluded from the total amount (that is owed to the property).object
textSpecifies the description of the extra charge added by the property using the Booking.com Extranet.string
amountSpecifies the extra charge amount.integer
currencySpecifies the currency code for the charge amount.enumerated stringFollows the ISO 4217 currency code. The value is always the same for a property and is set by Booking.com.
includedSpecifies whether this extra charge is included/excluded in the total amount.booleanYes, denotes that the extra amount is included in the total amount.
per_nightIndicates whether this extra charge is applied per night.boolean
per_personIndicates whether this extra charge is applied per personboolean
percentageThe percentage of the extra charge applied to the total amount.string
>>> totalSpecifies the total amount owed to the property.integer

Include payment charges

When you enable the feature: ReservationsAPI Payment Charges (res_payment_charges), for reservations that are paid through the PayByBooking method, you can get the payment charges in the response.

ElementAttributeDescriptionTypeNotes
reservationsRoot element.object
> reservationContains reservation details for each reservationobject
>> paymentchargeContains the payment chargesinteger

Include virtual credit card details

When the Payments Clarity Package (vcc_payment_v2) feature is enabled, the API response includes the following child elements under reservation.customer.

  • cc_current_balance
  • cc_activation_date
  • vcc_expiration_date
  • Withheld tax details: [Only for reservations on a property that is located in a region where Booking.com is obligated to withhold and remit taxes on behalf of the property] Specifies the total amount that Booking.com has withheld as tax for the reservation. You can identify this information where the extracomponent > text contains: Indirect Tax (Withheld Tax)

The response also adds the price_details element under the reservation.room.

ElementAttributeDescriptionTypeNotes
reservationsRoot element.object
> reservationContains reservation details for each reservationobject
>> customerContains the booker details for the reservation.object
>>> cc_current_balanceSpecifies the virtual credit card's current balance.integer
>>> cc_activation_dateSpecifies the virtual credit card's activation date.datetime
>>> vcc_expiration_dateSpecifies the virtual credit card's expiration date.datetime
>> roomContains the booked room details including stay dates, guest information and room facilities.object
>>> price_detailsobject
>>>> guestContains the total amount paid by the guest and the details of the extra charges that were either included or excluded from the total amount.object
>>>>> extracomponentContains the details of the extra charges that were either included or excluded from the total amount paid by the guest.objectTypically, the charges listed under guest are also listed under hotel.
- Handling fee waivers: If the property waives a specific charge, then the extra charge is excluded (included=no) from guest > total amount and also excluded (included=no) from hotel > total amount.
- Handling tax amount: Where Booking.com handles tax amount and submits them directly to the tax authority on behalf of the property, then the extra charge is included (included=yes) in the guest > total but excluded (included=no) from the hotel > total amount.
- In few cases where Booking.com sponsors the extra charge, then the extra component would show as included=no under the guest > total amount, but included=yes under the hotel > total amount.
- If the guest has to pay a fee/charge and if the property has to be paid the extra amount, then the extra component would show as included=yes under the guest > total amount, and included=yes under the hotel > total amount.
textSpecifies the description of the extra charge as entered from the Booking.com Extranet by the property.
amountSpecifies the extra charge amount.integer
currencySpecifies the currency code for the charge amount.enumerated stringFollows the ISO 4217 currency code. The value is always the same for a property and is set by Booking.com.
includedSpecifies whether this extra charge is included in the total amount.booleanYes, denotes that the extra amount is included in the total amount.
per_nightIndicates whether this extra charge is applied per night.boolean
per_personIndicates whether this extra charge is applied per personboolean
percentageThe percentage of the extra charge applied to the total amount.
>>>>> totalSpecifies the total amount paid by the guest.integer
>>>> hotelContains the total amount owed to the property and the details of the extra charges that were either included or excluded from the total amount.object
>>>>> extracomponentContains the details of the extra charges that were either included or excluded from the total amount (that is owed to the property).objectTypically, the charges listed under guest are also listed under hotel.
- Handling fee waivers: If the property waives a specific charge, then the extra charge is excluded (included=no) from guest > total amount and also excluded (included=no) from hotel > total amount.
- Handling tax amount: Where Booking.com handles tax amount and submits them directly to the tax authority on behalf of the property, then the extra charge is included (included=yes) in the guest > total but excluded (included=no) from the hotel > total amount.
- In few cases where Booking.com sponsors the extra charge, then the extra component would show as included=no under the guest > total amount, but included=yes under the hotel > total amount.
- If the guest has to pay a fee/charge and if the property has to be paid the extra amount, then the extra component would show as included=yes under the guest > total amount, and included=yes under the hotel > total amount.
textSpecifies the description of the extra charge as entered from the Booking.com Extranet by the property.
amountSpecifies the extra charge amount.integer
currencySpecifies the currency code for the charge amount.enumerated stringFollows the ISO 4217 currency code. The value is always the same for a property and is set by Booking.com.
includedSpecifies whether this extra charge is included in the total amount.booleanYes, denotes that the extra amount is included in the total amount.
per_nightIndicates whether this extra charge is applied per night.boolean
per_personIndicates whether this extra charge is applied per personboolean
percentageThe percentage of the extra charge applied to the total amount.
>>>>> totalSpecifies the total amount owed to the property.integer

Include timestamp of last update

When you enable the feature: Timestamp of last update for reservation (res_modify_timestamp), the API displays the timestamp of:

  • The original reservation, and,
  • The modifications made to the existing reservation.
ElementAttributeDescriptionTypeNotes
reservationsRoot element.object
> reservationContains reservation details for each reservation.object
>> modified_atSpecifies the date and time when the original reservation was modified.datetime
>> booked_atSpecifies the date and time when the reservation was made.datetime

Include extra information

When you enable the feature: Get extra information for reservations (res_extra_info), the API adds the following information to the reservation messages.

  • Specifies whether the booker is travelling on business, including company name & tax.
  • Highlights the Genius status of the guest and if they qualify for any available freebies, such as a welcome drink or a late check-out.
  • Specifies the payment options such as bank transfer or virtual credit card.
  • Specifies more details about the price, such as whether the roomrate applied to the booking is a specially discounted genius rate.
The reservation can have two different currency codes

The first one is the property's default currency. It is the value in <currencycode>. The second one is the currency of the Booking virtual credit card. This is applicable only when the payment_type is payment_on_Booking.com and the payout_type is Virtual credit card. The property can choose to receive the virtual credit card with a different currency instead of the default currency by using the Extranet.

ElementAttributeDescriptionTypeNotes
reservationsRoot element.object
> reservationContains reservation details for each reservation.object
>> reservation_extra_infoSpecifies more information about the reservation.object
>>> bookerSpecifies more information about the person who made the booking.object
>>>> affiliationsSpecifies any affiliations that the person who made the booking might have.object
>>>>> affiliationSpecifies the company name and VAT number provided by the booker.object
nameSpecifies the company name with which the booker is affiliated to.string
numberSpecifies the VAT number for the company which the booker is affiliated to.string
numbertypeSpecifies the type. For example, vat.enumerated string
typeSpecifies the affiliation type. For example, company.enumerated string
>>> flagsContains additional details about the booking.object
>>>> flagobject
nameSpecifies details such as whether the booker is a Genius customer, or more about the reservation.enumerated stringCan contain one of the following values:
- booker_is_genius: Indicates whether the Booker is a member of Booking.com's loyalty program called Genius.
- no_cc_reservation: Indicates that the reservation doesn't need a credit card guarantee.
- no_address_reservation: Indicates that the reservation doesn't need to enter their address for the reservation.
- smart_flex_replacement_reservation: Indicates that Booking.com will provide an alternate reservation to the host if the guest cancels the reservation.
- smart_flex_reservation: Indicates that Booking.com will pay the cancellation charge if guests cancel the reservation.
>>> guestsobject
>>>> servicesContains the supported services for the staying guests.object
>>>>> serviceContains details of individual services supported by the property.object
nameSpecifies the service name from a list of available services.stringFor a full list of available services, see Service Names.
>>>>>> textSpecifies the service description.stringFor a full list of available services, see Service Names.
>>> payerContains the reservation payment information.object
>>>> paymentsGroups multiple reservation payment information.object
>>>>> paymentSpecifies individual reservation payment information.object
amountSpecifies the amount Booking.com collected from the guest during the booking process, when the payout_type is BankTransfer. For reservations with Virtual credit card as payout_type, the amount refers to the payout amount to the property.integer
currencySpecifies the currency used for the payment.enumerated stringFollows the ISO 4217 currency code. The value is always the same for a property and is set by Booking.com.
payment_typeSpecifies the payment type.enumerated stringCan contain one of the following values:
- payment_on_Booking.com
payout_typeSpecifies the payout type.enumerated stringCan contain one of the following values:
- BankTransfer
- Virtual credit card
>> roomContains the booked room details including stay dates, guest information and room facilities.object
>>> priceContains more details about the price.number
dateSpecifies the stay date for which the price is valid.date
genius_rateSpecifies whether the roomrate applied to the booking is a specially discounted genius rate.booleanA reservation with the genius_rate set to no can show a genius discounted price, only if a genius discount has been added at the room level. For more information on how to set room-level genius rate discount, see the Opportunities tab in the Extranet.
rate_idSpecifies the rate category ID as known at the moment of reservation.integerIf the room is booked with a rate that is rewritten from a parent rate, the API specifies the rate category ID of the parent rate.
rewritten_from_idSpecifies the rate ID of the booked rate of the room when the booked rate is rewritten from a parent rate.integer
rewritten_from_nameSpecifies the name of the booked rate of the room when the booked rate is rewritten from a parent rate.string

Include cancellation policy

When you enable the feature: Add_cancellation_policy (res_cancel_policies), The API returns the cancellation policy code which defines the cancellation policy in the response.

The API also shows grace period information, if applicable. A grace period is a pre-defined period of time that allows guests to change a booking without being penalised with a fee. For more information, see how to set up grace period functionality.

ElementAttributeDescriptionTypeNotes
reservationsRoot element.object
> reservationContains reservation details for each reservation.object
>> roomContains the booked room details including stay dates, guest information and room facilities.object
>>> cancel_penaltiesContains the cancellation policy details.object
>>>> cancel_penaltyContains policy code, grace period before a penalty is applied (where applicable) and penalty amount details.object
policy_codeSpecifies the policy code applied on the room rate.stringIf grace period policy exception applies, the API specifies another element with policy code grace_period and the deadline of the grace period.
>>>>> amount_percentContains the amount that the property should charge the guest as penalty, if the guest cancels before/after the deadline.object
amountSpecifies the penalty amount.integerWhen grace period policy exception is in place, the value will always be 100, that is, the guest is charged 100% when they cancel the booking after the grace period.
>>>>> deadlineIndicates when the grace period ends.objectApplicable only when the grace period policy exception is in place.
timeIndicates when the grace period ends.datetimeApplicable only when the grace period policy exception is in place.

Include cancellation policy details

When you enable the feature: Add cancellation policy details (res_cancel_policy_details), the API returns the start and end of the cancellation policy period.

The API also shows grace period information, if applicable. A grace period is a pre-defined period of time that allows guests to change a booking without being penalised with a fee. For more information, see how to set up grace period functionality.

Note: You must implement feature Add cancellation policy (res_cancel_policies) first when you implement Add cancellation policy details (res_cancel_policy_details).

ElementAttributeDescriptionTypeNotes
reservationsRoot element.object
> reservationContains reservation details for each reservation.object
>> roomContains the booked room details including stay dates, guest information and room facilities.object
>>> cancel_penaltiesContains the cancellation policy details.object
>>>> cancel_penaltyContains policy code, grace period before a penalty is applied (where applicable) and penalty amount details.object
fromSpecifies the start date when the policy is in effect.datetimeNot applicable for grace period policy exception.
untilSpecifies an end date until which the policy is in effect with the specified penalty amount.datetimeApplicable only when the policy has an end date.
Not applicable for grace period policy exception.
policy_codeSpecifies the policy code applied on the room ratestringIf grace period policy exception applies, the API specifies another element with policy code grace_period and the deadline.
>>>>> amount_percentContains the amount that the property should charge the guest as penalty, if the guest cancels before/after the deadline.objectTypically, if the from and until values are specified, it denotes a period before the deadline.
amountSpecifies the penalty amount.integerWhen grace period policy exception is in place, the value will always be 100, that is, the guest is charged 100% when they cancel the booking after the grace period.
currency_codeSpecifies the currency code for the charge amount.enumerated stringFollows the ISO 4217 currency code. The value is always the same for a property and is set by Booking.com.
Not applicable for grace period policy exception.
>>>>> deadlineIndicates when the grace period policy exception ends.objectApplicable only when the grace period policy exception is in place.
timeIndicates when the grace period policy ends.datetimeApplicable only when the grace period policy exception is in place.

Include promotion ID

When you enable the feature: Include promotion ID (include_promotion_id), the API response includes the promotion ID along with the reservation room price information.

ElementAttributeDescriptionTypeNotes
reservationsRoot element.object
> reservationContains reservation details for each reservation.object
>> roomContains the booked room details including stay dates, guest information and room facilities.object
>>> priceContains more details about the price.numberTo view rate rewrite information, make sure to enable the feature: Get extra information for reservations (res_extra_info).
promotion_idSpecifies the promotion ID if the rate was calculated based on a promotion.string

Include room-level guest counts (old)

When you enable the feature: Include room-level guest counts (old) (childcount_per_room), the API returns the number of adults and children (with their ages) per room reservation.

ElementAttributeDescriptionTypeNotes
> roomContains the booked room details including stay dates, guest information and room facilities.object
>> guest_countsContains the number of adults and children (with their ages) per room reservation.object
>>> guest_countContains the number of adults and ages of individual children included while searching for a reservation.object
countSpecifies the number of guests of a specified type and their age.integer
typeSpecifies whether the guest falls under the following types, depending on their age:
- adult
- child
string
ageIf the guest type is child, then this specifies the age of the child.integer

Include dummy CC details for bank transfer payout

Enable this feature only if the property's payout method is set to bank transfer (BT).

If you enable the feature: Include dummy CC details for bank transfer payout (res_dummy_cc_on_bt), the API returns dummy credit card details in reservation messages when guests pay through an alternate payment method.

ElementAttributeDescriptionTypeNotes
reservationContains more details on the reservation.objectThis includes comments, reservation ID, and details of the individual who made the reservation.
> customerContains the booker details for the reservation.object
>> cc_typeSpecifies dummy credit card issuer details.enumerated string
>> cc_numberSpecifies dummy credit card number.string
>> cc_cvcSpecifies dummy credit card CVC code.string
>> cc_expiration_dateSpecifies dummy credit card expiration date.datetime
>>> cc_nameSpecifies NOCCRESERVATION as the credit card holder's name.objectApplicable only for reservations paid through an alternate payment method.

Service names

The following table lists all the services code names and their associated descriptions. Based on the code in the response, you can identify the available services supported by the property for a specific reservation.

Code NameDescription
GF_1Early check in
GF_2Free airport shuttle
GF_3Free drink upon arrival
Gf_4Free bike rental
GF_5Give Genius guests 2 extra hours to check out
GF_6Free breakfast
GF_7Free parking on availability
GF_8Free Wifi

Service type ID

The following table lists all the services and their associated IDs. Based on the ID(s) in the response, you can identify the services or add-ons supported by the property for a reservation.

Service Type IDService Name
1Late Check-out
2Early Check-in
3Late Check-in
4Champagne
5Wine
6Flowers
7Attraction
8Airport Shuttle
9Parking
10Massage
11Facial
12Body
13Christmas
14New Year
15Celebration Package
16Ski Pass

Available price modes

The following table lists all the price modes and their corresponding IDs. Based on the ID in the response, you can identify the price mode that was used to calculate the room price for a reservation.

IDPrice mode
0Not applicable
1Per stay
2Per person per stay
3Per night
4Per person per night
5Percentage
6Per person per night restricted

Addon types

The following table lists all the addons and their respective IDs.

IDName
1Breakfast
2Continental breakfast
3American breakfast
4Buffet breakfast
5Full english breakfast
6Lunch
7Dinner
8Half board
9Full board
11Breakfast for Children
12Continental breakfast for Children
13American breakfast for Children
14Buffet breakfast for Children
15Full english breakfast for Children
16Lunch for Children
17Dinner for Children
18Half board for Children
19Full board for Children
20WiFi
21Internet
22Parking space
23Extrabed
24Babycot

Include Value adds details

Enable the feature: Include bundle details (include_bundle_details) to receive value adds details in the reservations response.

ElementAttributeDescriptionTypeNotes
>>> value_added_servicesSpecifies the details for the value-added services.object
nameSpecifies a name for the value-add collection.string
>>>> value_added_service`Specifies details for each of the value-added services.object
service_idSpecifies the Booking.com value-add service ID.enumerated integerFor a list of supported services, their IDs and corresponding names, see Supported value-added services.
amountSpecifies the value adds worth for display purposes.integerShows the benefit of the service/value add.
currency_codeSpecifies the currency code of the specified amount.integerDefault: Uses property's currency code.
percentageSpecifies the percentage discount.numberAny value greater than 0 and less than 100.
hourSpecifies the maximum check-in time when service ID is 3003.integer
minuteSpecifies the maximum massage duration per adult per stay when service ID is 4003.integer
<value_added_services name="fancy package">
     <value_added_service  service_id="2001" amount="50" currency_code="USD"/>
     <value_added_service  service_id="1001" />
</value_added_services>

Quick Actions

→ For troubleshooting information, see Troubleshooting and list of error codes.