Migrating to new versions
At Booking.com, we want to continuously improve the Connectivity Partner experience. This means we try to build better products and deprecate the older versions. When Booking.com plans to deprecate a feature or a product, you can no longer use it after the communicated date of deprecation. To help facilitate the potential changes you must make, the migration guide tables on this page aim to help you understand what is deprecated and what its (improved) alternative is.
Migrating to a new promotion ID prefix
The Promotions API, as of March 27, 2024, returns the new prefix TB
instead of the previously used VR
prefix whenever you create or update a promotion. We plan to automatically change the ID of promotions prefixed with VR
to a new ID using the getpromotions
endpoint, effective from January 31st, 2025. After the change, those promotions will get a new ID prefixed with TB
, followed by a unique string.
What we expect from Connectivity Partners
To ensure all your promotions use the new prefix, complete the following actions before January 31st, 2025:
- Retrieve all existing promotions for a property using the
getpromotions
endpoint and note down the promotions with prefixVR
. Make sure to specify thehotel_id
andactive
parameters.
Request example
The following example shows how to retrieve all active promotions including those with prefix VR
of an existing property using the POST /hotels/xml/getpromotions
endpoint.
<request> <hotel_id>12312</hotel_id> <active>1</active> </request>
- For each promotion still using the
VR
prefix, generate a new promotion ID with theTB
prefix. Use thePOST /promotions
endpoint and send only the existing promotion ID in the request body. This will return a new promotion ID with theTB
prefix.
Request example
The following example shows how to update the ID of an existing promotion with a VR
prefix to get a new promotion ID with a TB
prefix using the POST /hotels/xml/promotions
endpoint.
<request> <hotel_id>12312</hotel_id> <promotion id="VR123456789"> </promotion> </request>
Sample response
<promotions> <id>TB437287097257498474</id> </promotions> <!-- RUID: [...] -->
Changes to the Reservations API response
We are rolling out changes to the way the Reservations API calculates and displays the breakdown of the total price for each booking. You can get the changed Reservations API response by enabling the new feature: Payments Clarity Package V2 (payment_clarity_package_v2
) once you have completed testing the feature.
The feature is enabled, after prior confirmation, only for providers who manage properties located in a region where Booking.com is obligated to withhold and remit taxes on behalf of the property.
If you have been using the Include Price Details (include_price_details
) or the existing Payments Clarity Package (vcc_payment_v2
) feature earlier, post enabling the PCP 2.0 feature, you will receive data only from the Payments Clarity Package V2 (payment_clarity_package_v2
) feature.
For more information on how to test the feature per request and without enabling for all properties, see Testing Payments Clarity Package v2. To enable the PCP 2.0 feature, contact the Connectivity Support team.
What is Payments Clarity Package v2?
Payments Clarity Package V2 (PCP 2.0) is a new and improved version of the Payments Clarity Package feature with significant changes to the response elements. This feature is relevant only when used along with the Reservations API.
What are the changes?
The response element changes impact both the OTA and the B.XML Reservations API response. This section summarises the changes for each of the response schema.
Summary of B.XML response change
There are three changes to the B.XML response schema:
- The
yes
|no
values in theextracomponent > included
field now specifies:- Under
<guest>
, whether the guest paid the amount for Payments by Booking reservations. For agency bookings, it indicates whether the amount is included in the total amount the guest will pay to the property. - Under
<hotel>
, whether the amount is included in the payout to the property for Payments by Booking reservations. For agency bookings, it indicates whether the amount is included in the total amount that the property should collect from the guest.
- Under
- The
total
amount is computed based on the above logic and so differs from the existing implementation. - For properties where Booking.com is obligated to withhold taxes, the response includes an additional entry for every tax component that Booking.com has to withhold with the value {{Tax_Name}} (Withheld tax) under
extracomponent > text
.
Summary of OTA response change
There are three changes to the OTA response schema:
- Introduction of
<GuestView>
and<HotelView>
sections to list the booking amount breakup. - The
Inclusive
|Exclusive
values in theType
field now specifies:- Under
<GuestView>
, whether the guest paid the amount for Payments by Booking reservations. For agency bookings, it indicates whether the amount is included in the total amount the guest will pay to the property. - Under
<HotelView>
, whether the amount is included in the payout to the property for Payments by Booking reservations. For agency bookings, it indicates whether the amount is included in the total amount that the property should collect from the guest.
- Under
- The
total
amount is computed based on the above logic and so differs from the existing implementation. - For properties where Booking.com is obligated to withhold taxes, the response includes an additional entry for every tax component that Booking.com has to withhold with the value {{Tax_Name}} (Withheld tax) under
Tax > TaxDescription > Text
.
B.XML response changes at a glance
Payment solution | Response elements Changed | When using the Payments Clarity Package (vcc_payment_v2) | When using the Payments Clarity Package V2 payment_clarity_package_v2 |
---|---|---|---|
VCC Bookings Property where Booking.com is obligated to withhold tax | guest > included | Indicates whether the taxes/fees are included in the room price that Booking.com shows to guests. | Indicates whether Booking.com collected the taxes/fees amount from the guest during the booking process. |
guest > total | Indicates the price amount that Booking.com shows to guests. | Indicates the total amount that Booking.com collected from the guests for the booked room. | |
hotel > included | Indicates whether the taxes/fees are included in the room price of the reservation as specified in the Extranet VAT/tax/charges page. | Indicates whether the taxes/fees amount is included in the payout to the property for the booked room. | |
hotel > total | Indicates the price amount of the reservation. | Indicates the total payout amount to the property for the booked room. | |
VCC balance | Indicates the amount that the properties can charge on the VCC. | - Bookings with withheld tax: The amount that properties can charge on the VCC. Note that this excludes the withheld tax that Booking.com has withheld and will remit on property's behalf. - Bookings without withheld tax: The amount that properties can charge on the VCC. | |
Bank transfer bookings Property where Booking.com is obligated to withhold tax | guest > included | Indicates whether the taxes/fees are included in the room price that Booking.com shows to guests. | Indicates whether Booking.com collected the taxes/fees amount from the guest during the booking process for the booked room. |
guest > total | Indicates the price amount that Booking.com shows to guests. | Indicates the total amount that Booking.com collected from the guests for the booked room. | |
hotel > included | Indicates whether the taxes/fees are included in the room price of the reservation as specified in the Extranet VAT/tax/charges page. | Indicates whether the taxes/fees amount is included in the payout to the property for the booked room. | |
hotel > total | Indicates the price amount of the reservation. | Indicates the total payout amount to the property for the booked room. | |
Agency bookings^ | guest > included | Indicates whether the taxes/fees are included in the room price that Booking.com shows to guests. | Indicates whether the taxes/fees amount is included in the total amount the guest will pay to the property for the booked room. |
guest > total | Indicates the price amount that Booking.com shows to guests. | Indicates the total amount that the guest will pay to the property for the booked room. | |
hotel > included | Indicates whether the taxes/fees are included in the room price of the reservation as specified in the Extranet VAT/tax/charges page. | Indicates whether the taxes/fees amount is included in the total amount that the property should collect from the guest for the booked room. | |
hotel > total | Indicates the price amount of the reservation. | Indicates the total amount the property should collect from the guest. |
^ - hotel
> total
amount is always the same as the guest
> total
amount.
- hotel
> included
value is always the same as the guest
> included
value.
For detailed changes when implementing the Payments Clarity Package V2 (payment_clarity_package_v2
) feature directly, see the B.XML response changes.
OTA response changes at a glance
Payment solution | Response elements Changed | When using the Payments Clarity Package (vcc_payment_v2) | When using the Payments Clarity Package V2 payment_clarity_package_v2 feature |
---|---|---|---|
VCC Bookings Property where Booking.com is obligated to withhold tax | GuestView > Tax > Type Inclusive /Exclusive | Indicates whether the taxes/fees are included in the room price that Booking.com shows to guests. | Indicates whether Booking.com collected the taxes/fees amount from the guest during the booking process. |
GuestView > Total | Indicates the price amount that Booking.com shows to guests. | Indicates the total amount that Booking.com collected from the guests. | |
HotelView > Tax > Type Inclusive /Exclusive | Indicates whether the taxes/fees are included in the room price of the reservation as specified in the Extranet VAT/tax/charges page. | Indicates whether the taxes/fees amount is included in the payout to the property. | |
HotelView > Total | Indicates the price amount of the reservation. | Indicates the total payout amount to the property. | |
VCC balance | Indicates the amount that properties can charge on the VCC. | - Bookings with withheld tax: The amount that properties can charge on the VCC. Note that this excludes the withheld tax that Booking.com has withheld and will remit on property's behalf. - Bookings without withheld tax: The amount that properties can charge on the VCC. | |
Bank transfer bookings Property where Booking.com is obligated to withhold tax | GuestView > Tax > Type Inclusive / Exclusive | Indicates whether the taxes/fees are included in the room price that Booking.com shows to guests. | Indicates whether Booking.com collected the taxes/fees amount from the guest during the booking process. |
GuestView > Total | Indicates the price amount that Booking.com shows to guests. | Indicates the total amount that Booking.com collected from the guests. | |
HotelView > Tax > Type Inclusive /Exclusive | Indicates whether the taxes/fees are included in the room price of the reservation as specified in the Extranet VAT/tax/charges page. | Indicates whether the taxes/fees amount is included in the payout to the property. | |
HotelView > Total | Indicates the price amount of the reservation. | Indicates the total payout amount to the property. | |
Agency bookings^ | GuestView > Tax > Type Inclusive /Exclusive | Indicates whether the taxes/fees are included in the room price that Booking.com shows to guests. | Indicates whether the taxes/fees amount is included in the total amount the guest will pay to the property. |
GuestView > Total | Indicates the price amount that Booking.com shows to guests. | Indicates the total amount the guest will pay to the property. | |
HotelView > Tax > Type Inclusive /Exclusive | Indicates whether the taxes/fees are included in the room price of the reservation as specified in the Extranet VAT/tax/charges page. | Indicates if the taxes/fees amount is included in the total amount that the property should collect from the guest. | |
HotelView > Total | Indicates the price amount of the reservation. | Indicates the total amount the property should collect from the guest. |
^ - HotelView
> Total
amount is always the same as the GuestView
> Total
amount.
- HotelView
> Tax
> Type Inclusive/Exclusive
value is always the same as the GuestView
> Tax
> Type Inclusive/Exclusive
value.
For detailed changes when implementing the Payments Clarity Package V2 (payment_clarity_package_v2
) feature directly, see the OTA response changes.
Implementing Payments Clarity Package v2 directly
The following are the changes when you implement Payments Clarity Package v2 without having used the Payments Clarity Package vcc_payment_v2
or the Include Price Details (include_price_details
) feature.
B.XML response changes
Following are the changes to the B.XML response:
The yes
| no
values in the extracomponent > included
field specifies:
- Under
<guest>
, whether the guest paid the amount - Under
<hotel>
, whether the amount is included in the payout to the property. - The
total
amount is computed based on the above logic and so differs from the existing implementation.
Also for properties where Booking.com is obligated to withhold taxes, the response includes an additional entry for every tax component that Booking.com has to withhold with the value {{Tax_Name}} (withheld tax) under extracomponent > text
.
Updated B.XML response elements
Expand this section to view the change in the B.XML response elements.
Element | Attribute | Description | Type | Notes |
---|---|---|---|---|
> price_details | Contains price details. | object | ||
>> guest | Contains 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 | ||
>>> extracomponent | Contains the details of the extra charges that were either included or excluded from the total amount paid by the guest. | object | Typically, 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. | |
text | Specifies the description of the extra charge as entered from the Booking.com Extranet by the property. | |||
amount | Specifies the extra charge amount. | integer | ||
currency | Specifies the currency code for the charge amount. | enumerated string | Follows the ISO 4217 currency code. The value is always the same for a property and is set by Booking.com. | |
included | Specifies whether this extra charge is included in the total amount. | boolean | Yes, denotes that the extra amount is included in the total amount. | |
per_night | Indicates whether this extra charge is applied per night. | boolean | ||
per_person | Indicates whether this extra charge is applied per person | boolean | ||
percentage | The percentage of the extra charge applied to the total amount. | |||
>>> total | Specifies the total amount paid by the guest. | integer | The amount is computed based on the value in the included field and so differs from the existing implementation. | |
>> hotel | Contains 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 | ||
>>> extracomponent | Contains the details of the extra charges that were either included or excluded from the total amount (that is owed to the property). | object | Typically, 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. | |
text | Specifies the description of the extra charge as entered from the Booking.com Extranet by the property. | |||
amount | Specifies the extra charge amount. | integer | ||
currency | Specifies the currency code for the charge amount. | enumerated string | Follows the ISO 4217 currency code. The value is always the same for a property and is set by Booking.com. | |
included | Specifies whether this extra charge is included in the total amount. | boolean | Yes, denotes that the extra amount is included in the total amount. | |
per_night | Indicates whether this extra charge is applied per night. | boolean | ||
per_person | Indicates whether this extra charge is applied per person | boolean | ||
percentage | The percentage of the extra charge applied to the total amount. | |||
>>> total | Specifies the total amount owed to the property. | integer | The amount is computed based on the value in the included field and so differs from the existing implementation. |
For B.XML response examples, see the B.XML response changes.
OTA response changes
The following are the OTA response changes:
- Introduction of
<GuestView>
and<HotelView>
sections to list the booking amount breakup. - The
Inclusive
|Exclusive
values in theType
field specifies:- Under
<GuestView>
, whether the guest paid the amount. - Under
<HotelView>
, whether the amount is included in the payout to the property.
- Under
- The
Amount > Total
is computed based on the above logic and so differs from the existing implementation.
Also for properties where Booking.com is obligated to withhold taxes, the response includes an additional entry for every tax component that Booking.com has to withhold with the value {{Tax_Name}} (withheld tax) under Tax > TaxDescription > Text
Changed OTA response elements
Expand this section to view the change in the OTA response elements.
Element | Attribute | Description | Type | Notes |
---|---|---|---|---|
RoomStays | Contains the room reservation details. | object | ||
> RoomStay | Contains the room reservation details for each booked room. | object | ||
>> PriceDetails | Contains the guest and property-level price details for the reservation. | object | ||
>>> GuestView | Contains the guest-level price details for the reservation. | object | Typically, the charges listed under GuestView are also listed under HotelView . - Handling fee waivers: If the property waives a specific charge, then the extra charge is excluded ( Tax Type="Exclusive" ) from GuestView > Total amount and also excluded (Tax Type="Exclusive" ) from HotelView > 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 ( Tax Type="Inclusive" ) in the GuestView > Total but excluded (Tax Type="Exclusive" ) from the HotelView > Total amount. - In few cases where Booking.com sponsors the extra charge, then the extra component would show as Tax Type="Exclusive" under the GuestView > Total amount, but Tax Type="Inclusive" under the HotelView > 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 Type=Inclusive under the GuestView > Total amount, and Type=Inclusive under the HotelView > Total amount. | |
>>>> Taxes | Contains tax details. | object | ||
>>>>> Tax | Contains tax details. | object | ||
Amount | Specifies the tax amount. | integer | ||
ChargeFrequency | Specifies the charge frequency. | enumerated integer | For a list of charge frequency code, see charge type codes. | |
Code | Specifies the tax code. | integer | Note 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.][OTA_HotelDescriptiveContentNotif] For a list of fee tax type codes, see Tax type codes. | |
CurrencyCode | Specifies the currency used for pricing the room. | enumerated string | This is always the same for a property and is set by Booking.com. | |
DecimalPlaces | Specifies the number of decimal places to represent the minor unit of a particular currency. | integer | ||
Type | Specifies whether this extra charge is included in the total amount. | enumerated string | Possible values are: - Inclusive : The extra charge was collected from the guest. - Exclusive : The extra charge was not collected from the guest. | |
>>>>>> TaxDescription | Contains the tax description. | object | ||
>>>>>>> Text | Specifies the tax description. | string | ||
>>>> Total | Contains the room price details. | object | ||
Amount | Specifies the total amount collected from the guest. | integer | The amount is computed based on the value in the Type field and so differs from the existing implementation. | |
DecimalPlaces | Specifies the number of decimal places to represent the minor unit of a particular currency. | integer | ||
>>> HotelView | Contains the property-level price details for the reservation. | object | Typically, the charges listed under HotelView are also listed under GuestView . - Handling fee waivers: If the property waives a specific charge, then the extra charge is excluded ( Tax Type="Exclusive" ) from GuestView > Total amount and also excluded (Tax Type="Exclusive" ) from HotelView > 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 ( Tax Type="Inclusive" ) in the GuestView > Total but excluded (Tax Type="Exclusive" ) from the HotelView > Total amount. - In few cases where Booking.com sponsors the extra charge, then the extra component would show as Tax Type="Exclusive" under the GuestView > Total amount, but Tax Type="Inclusive" under the HotelView > 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 Type=Inclusive under the GuestView > Total amount, and Type=Inclusive under the HotelView > Total amount. | |
>>>> Taxes | Contains tax details. | object | ||
>>>>> Tax | Contains individual tax or fee details. | object | ||
Amount | Specifies the tax amount. | integer | ||
ChargeFrequency | Specifies the charge frequency. | enumerated integer | For a list of charge frequency code, see charge type codes. | |
Code | Specifies the tax code. | integer | Note 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.][OTA_HotelDescriptiveContentNotif] For a list of fee tax type codes, see Tax type codes. | |
CurrencyCode | Specifies the currency used for pricing the room. | enumerated string | This is always the same for a property and is set by Booking.com. | |
DecimalPlaces | Specifies the number of decimal places to represent the minor unit of a particular currency. | integer | ||
Type | Specifies whether this extra charge is included in the total amount. | enumerated string | Possible values are: - Inclusive : The extra charge is included in the payout to the property. - Exclusive : The extra charge is excluded from the payout to the property. | |
>>>>>> TaxDescription | Contains the tax description. | object | ||
>>>>>>> Text | Specifies the tax description. | string | ||
>>>> Total | Contains the total room price details. | object | ||
Amount | Specifies the total amount owed to the property. | integer | The amount is computed based on the value in the Type field and so differs from the existing implementation. | |
DecimalPlaces | Specifies the number of decimal places to represent the minor unit of a particular currency. | integer |
For API response examples, see the OTA response changes.
Upgrading Payments Clarity Package to PCP 2.0
The following are the changes when migrating the Payments Clarity Package from v1 to v2:
B.XML response changes
By enabling the Payments Clarity Package V2 feature you can expect the following changed behaviour using the Reservations API:
guest > extracomponent > included: yes/no
: Indicates whether Booking.com collected the specified amount from the guest.hotel > extracomponent > included: yes/no
: Indicates whether Booking.com includes the specified amount in the total as owed to the property.
In addition to the extra fields returned by the existing vcc_payment_v2
feature, the response includes an additional entry for every tax component that Booking.com has to withhold with the value {{Tax_Name}} (withheld tax) under the extracomponent
field. This specifies whether Booking.com has withheld tax for a reservation for properties where Booking.com is obligated to withhold taxes.
If you have been validating whether fees, taxes or charges are included in the price when recalculating the reservation prices (with the Include Price Details (include_price_details
) or the Payments Clarity Package (vcc_payment_v2
) feature turned on), then you must revisit the price calculation as the relevant flags and amounts will change once the new Payments Clarity Package V2 (payment_clarity_package_v2
) feature is enabled. Doing this can avoid showing incorrect reservation prices.
Summary of different combinations of included value
The following table captures the intended behaviour of the included
field. The value Excluded
here denotes included="no"
Scenario | Guest View | Property View | Payments by Booking behaviour | Agency Booking behaviour |
---|---|---|---|---|
1 | Excluded | Excluded | - Fees/tax was not collected during the book process. - Fees/tax will not be paid out to the property. - Fees/tax will be collected from guests by the property at the time of check-in. | - |
2 | Excluded | Included | - Fees/tax was not collected from the guest during booking. - Fees/tax cost will be borne by Booking and paid out to the property as a benefit. | - |
3 | Included | Excluded | - Fees/tax was collected from the guest during booking. - Fees/tax is withheld and will be paid directly to the authorities and not to property. | - |
4 | Included | Included | - Fees/tax was collected from the guest during booking. - Fees/tax will be paid out to property. | - Fees/tax will be collected from guests by the property. |
For Reservations API response examples, see B.XML endpoint examples.
OTA response changes
To support showing the pricing breakup between the guest (what was collected from the guest) and the property (what is paid out to the property), we have encapsulated the pricing details within the GuestView
and HotelView
in the response details:
PriceDetails > GuestView > Taxes > Tax > Type
: Inclusive/Exclusive: [For bookings where Booking.com handles payments] Indicates whether Booking.com collected the specified amount from the guest.PriceDetails > HotelView > Taxes > Tax > Type
: Inclusive/Exclusive: [For bookings where Booking.com handles payments] Indicates whether Booking.com includes the specified amount in the total as owed to the property.RoomStay
><Total AmountAfterTax="10000">
is now changed to show total for the guest and the property as follows:PriceDetails
>GuestView
><Total Amount="10000">
PriceDetails
>HotelView
><Total Amount="10000">
In addition, you also get an additional attribute in the Tax
field for every tax component that Booking.com has to withhold with the value {{Tax_Name}} (Withheld tax) under Tax > TaxDescription > Text
.
Summary of different combinations of Tax > Type values
The following table captures the intended behaviour of the Type="Inclusive"
or "Exclusive"
field.
Scenario | Guest View | Property View | Payments by Booking behaviour | Agency Booking behaviour |
---|---|---|---|---|
1 | Exclusive | Exclusive | - Fees/tax was not collected during the book process. - Fees/tax will not be paid out to the property. - Fees/tax will be collected from guests by the property at the time of check-in. | - |
2 | Exclusive | Inclusive | - Fees/tax was not collected from the guest during booking. - Fees/tax cost will be borne by Booking and paid out to the property as a benefit. | - |
3 | Inclusive | Exclusive | - Fees/tax was collected from the guest during booking. - Fees/tax is withheld and will be paid directly to the authorities and not to property. | - |
4 | Inclusive | Inclusive | - Fees/tax was collected from the guest during booking. - Fees/tax will be paid out to property. | Fees/tax will be collected from guests by the property. |
For Reservations API response examples, see OTA endpoint examples.
Response examples for Payments Clarity Package v2
This section contains example responses based on multiple scenarios including multiple payment solutions, before and after activating the Payments Clarity package v2 (payment_clarity_package_v2
) feature.
Property on Payments by Booking using VCC as payout
This section shows the current (with Payments Clarity Package (vcc_payment_v2
) feature enabled) and with the new Payments Clarity Package V2 (payment_clarity_package_v2
) feature enabled to help you compare the difference in behaviour. This section contains examples from both B.XML and OTA responses based on the VCC payment solution and with/without withheld tax components in the response.
As we have included multiple response examples, to improve readability we have collapsed all examples. You can expand to see the examples of specific scenarios that you are interested in.
B.XML response examples
Following is a summary of B.XML response examples covered in this section:
B.XML response with Payments Clarity Package (vcc_payment_v2 ) | B.XML response with Payments Clarity Package V2 (payment_clarity_package_v2 ) |
---|---|
Current example | Response with withheld tax |
Multiroom property response example | Multiroom property response with withheld tax |
Current example | Response without withheld tax |
OTA response examples
Following is a summary of OTA response examples covered in this section:
OTA response with Payments Clarity Package (vcc_payment_v2 ) | OTA response with Payments Clarity Package V2 (payment_clarity_package_v2 ) |
---|---|
Current example | Response with withheld tax |
Multiroom property response example | Multiroom property response with withheld tax |
Current example | Response without withheld tax |
B.XML response with the existing Payments Clarity Package
For the example responses in this section, the following price configurations are set up for the property:
- The price of the room is $10.
- The price excludes:
- Withheld tax of 2.00%
- Withheld tax of 5.00%
- Withheld tax of 1.50%
- City tax of 5.50%
Also, either the Payments Clarity Package (vcc_payment_v2
), or the Include Price Details (include_price_details
) feature is turned on.
Expand this section to view the B.XML response example with the existing Payments Clarity Package (vcc_payment_v2
) enabled.
<reservations> <reservation> <commissionamount>0</commissionamount> <currencycode>USD</currencycode> <customer> <address>********</address> <cc_activation_date>********</cc_activation_date> <cc_current_balance>11.45</cc_current_balance> <cc_cvc>********</cc_cvc> <cc_expiration_date>********</cc_expiration_date> <cc_name>********</cc_name> <cc_number>****************</cc_number> <cc_type>MasterCard (virtual credit card)</cc_type> <city></city> <company></company> <countrycode>NL</countrycode> <currencycode>USD</currencycode> <dc_issue_number></dc_issue_number> <dc_start_date></dc_start_date> <email>dennis@guest.booking.com</email> <first_name>Dennis</first_name> <last_name>Stanford</last_name> <remarks>You have received a virtual credit card for this reservation.You may charge it as of 2024-04-24. </remarks> <telephone>+31 6 14901111</telephone> <vcc_expiration_date>2025-04-01</vcc_expiration_date> <zip></zip> </customer> <date>2024-04-05</date> <hotel_id>11783895</hotel_id> <hotel_name>PCP Property</hotel_name> <id>4310937700</id> <reservation_extra_info> <flags> <flag name="booker_is_genius" /> </flags> <payer> <payments> <payment amount="11.45" currency="USD" payment_type="payment_on_Booking.com" payout_type="Virtual credit card" /> </payments> </payer> </reservation_extra_info> <room> <arrival_date>2024-04-24</arrival_date> <commissionamount>0</commissionamount> <currencycode>USD</currencycode> <departure_date>2024-04-25</departure_date> <extra_info></extra_info> <facilities>Internet facilities, Bath, Air conditioning, Hairdryer, Balcony, Desk, Seating Area, Free toiletries, Microwave, Washing machine, Private bathroom, Flat-screen TV, Electric kettle, Kitchenware, Tumble dryer, Bidet, Children's high chair, Game console – PS4, Cots, Shampoo, Body soap</facilities> <guest_name>Dennis Stanford</guest_name> <id>1178389503</id> <info>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night. Children and Extra Bed Policy: Children of any age are allowed. 1 child (up to and including 3 years old) stays for US$25 per child per stay when using available cots. 1 person (4 years old and over) stays for US$60 per child per night when using available extra beds. The maximum number of extra beds is 1. The maximum number of cots is 1. The maximum number of guests is 2. Deposit Policy: The guest will be charged a prepayment of the cost of the first night after reservation. Cancellation Policy: The guest can cancel free of charge until 14:00 on the day of arrival. The guest will be charged the cost of the first night if they cancel after 14:00 on the day of arrival. </info> <max_children>1</max_children> <meal_plan>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night.</meal_plan> <name>Double Room</name> <numberofguests>2</numberofguests> <price date="2024-04-24" genius_rate="no" rate_id="43584505" rewritten_from_id="0" rewritten_from_name="">10</price> <price_details> <guest> <extracomponent amount="0.55" currency="USD" included="yes" per_night="no" per_person="no" percentage="5.5%" text="City tax" /> <extracomponent amount="0.90" currency="USD" included="yes" per_night="no" per_person="no" percentage="8.5%" text="Tax" /> <total>11.45</total> </guest> <hotel> <extracomponent amount="0.55" currency="USD" included="no" per_night="no" per_person="no" percentage="5.5%" text="City tax" /> <extracomponent amount="0.90" currency="USD" included="no" per_night="no" per_person="no" percentage="8.5%" text="Tax" /> <total>10</total> </hotel> </price_details> <remarks></remarks> <roomreservation_id>4817804923</roomreservation_id> <smoking>1</smoking> <totalprice>10</totalprice> </room> <status>new</status> <time>16:05:59</time> <totalprice>10</totalprice> </reservation> </reservations>
B.XML response with the new Payments Clarity Package V2
For the following example, the new Payments Clarity Package V2 (payment_clarity_package_v2
) is enabled.
Expand this section to view the B.XML response example with the new Payments Clarity Package V2 (payment_clarity_package_v2
) enabled.
The following example shows multiple withheld tax components. The number of withheld tax components depends on the local tax regulations and may vary for your implementation.
<reservations> <reservation> <commissionamount>0</commissionamount> <currencycode>USD</currencycode> <customer> <address>********</address> <cc_activation_date>********</cc_activation_date> <cc_current_balance>10.55</cc_current_balance> <cc_cvc>********</cc_cvc> <cc_expiration_date>********</cc_expiration_date> <cc_name>********</cc_name> <cc_number>****************</cc_number> <cc_type>MasterCard (virtual credit card)</cc_type> <city></city> <company></company> <countrycode>NL</countrycode> <currencycode>USD</currencycode> <dc_issue_number></dc_issue_number> <dc_start_date></dc_start_date> <email>dennis@guest.booking.com</email> <first_name>Dennis</first_name> <last_name>Stanford</last_name> <remarks>You have received a virtual credit card for this reservation.You may charge it as of 2024-04-24. </remarks> <telephone>+31 6 14901111</telephone> <vcc_expiration_date>2025-04-01</vcc_expiration_date> <zip></zip> </customer> <date>2024-04-05</date> <hotel_id>11783895</hotel_id> <hotel_name>PCP Property</hotel_name> <id>4310937700</id> <reservation_extra_info> <flags> <flag name="booker_is_genius" /> </flags> <payer> <payments> <payment amount="10.55" currency="USD" payment_type="payment_on_Booking.com" payout_type="Virtual credit card" /> </payments> </payer> </reservation_extra_info> <room> <arrival_date>2024-04-24</arrival_date> <commissionamount>0</commissionamount> <currencycode>USD</currencycode> <departure_date>2024-04-25</departure_date> <extra_info></extra_info> <facilities>Internet facilities, Bath, Air conditioning, Hairdryer, Balcony, Desk, Seating Area, Free toiletries, Microwave, Washing machine, Private bathroom, Flat-screen TV, Electric kettle, Kitchenware, Tumble dryer, Bidet, Children's high chair, Game console – PS4, Cots, Shampoo, Body soap</facilities> <guest_name>Dennis Stanford</guest_name> <id>1178389503</id> <info>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night. Children and Extra Bed Policy: Children of any age are allowed. 1 child (up to and including 3 years old) stays for US$25 per child per stay when using available cots. 1 person (4 years old and over) stays for US$60 per child per night when using available extra beds. The maximum number of extra beds is 1. The maximum number of cots is 1. The maximum number of guests is 2. Deposit Policy: The guest will be charged a prepayment of the cost of the first night after reservation. Cancellation Policy: The guest can cancel free of charge until 14:00 on the day of arrival. The guest will be charged the cost of the first night if they cancel after 14:00 on the day of arrival. </info> <max_children>1</max_children> <meal_plan>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night.</meal_plan> <name>Double Room</name> <numberofguests>2</numberofguests> <price date="2024-04-24" genius_rate="no" rate_id="43584505" rewritten_from_id="0" rewritten_from_name="">10</price> <price_details> <guest> <extracomponent amount="0.55" currency="USD" included="yes" per_night="no" per_person="no" percentage="5.5%" text="City tax" /> <extracomponent amount="0.16" currency="USD" included="yes" per_night="no" per_person="no" percentage="1.50%" text="Tax (Withheld Tax)" /> <extracomponent amount="0.21" currency="USD" included="yes" per_night="no" per_person="no" percentage="2.00%" text="Tax (Withheld Tax)" /> <extracomponent amount="0.53" currency="USD" included="yes" per_night="no" per_person="no" percentage="5.00%" text="Tax (Withheld Tax)" /> # Only applicable for properties located in a region where Booking.com is # obligated to withhold and remit taxes on behalf of the property. # Can contain as many withheld tax components as the local tax # regulation stipulates. <total>11.45</total> # Indicates the amount that Booking.com collected from the guest during booking process </guest> <hotel> <extracomponent amount="0.55" currency="USD" included="yes" per_night="no" per_person="no" percentage="5.5%" text="City tax" /> <extracomponent amount="0.16" currency="USD" included="no" per_night="no" per_person="no" percentage="1.50%" text="Tax (Withheld Tax)" /> <extracomponent amount="0.21" currency="USD" included="no" per_night="no" per_person="no" percentage="2.00%" text="Tax (Withheld Tax)" /> <extracomponent amount="0.53" currency="USD" included="no" per_night="no" per_person="no" percentage="5.00%" text="Tax (Withheld Tax)" /> # Only applicable for properties located in a region where Booking.com is # obligated to withhold and remit taxes on behalf of the property. # Can contain as many withheld tax components as the local tax # regulation stipulates. <total>10.55</total> # Indicates the total payout amount to the property </hotel> </price_details> <remarks></remarks> <roomreservation_id>4817804923</roomreservation_id> <smoking>1</smoking> <totalprice>10</totalprice> </room> <status>new</status> <time>16:05:59</time> <totalprice>10</totalprice> </reservation> </reservations>
B.XML response for multiroom property using existing Payments Clarity Package
For the following response examples the following price configurations are set up for the property:
- The price of the room is $10.
- The price excludes:
- Withheld tax of 8.50%
- City tax of 5.50%
Also, either the Payments Clarity Package (vcc_payment_v2
), or the Include Price Details (include_price_details
) feature is turned on.
Expand this section to view the B.XML response example with the existing Payments Clarity Package (vcc_payment_v2
) enabled.
<reservations> <reservation> <commissionamount>0</commissionamount> <currencycode>USD</currencycode> <customer> <address>********</address> <cc_activation_date>********</cc_activation_date> <cc_current_balance>22.90</cc_current_balance> <cc_cvc>********</cc_cvc> <cc_expiration_date>********</cc_expiration_date> <cc_name>Bookingcom Agent</cc_name> <cc_number>****************</cc_number> <cc_type>MasterCard (virtual credit card)</cc_type> <city></city> <company></company> <countrycode>NL</countrycode> <currencycode>USD</currencycode> <dc_issue_number></dc_issue_number> <dc_start_date></dc_start_date> <email>lucy@guest.booking.com</email> <first_name>Lucy</first_name> <last_name>Taylor</last_name> <remarks>You have received a virtual credit card for this reservation.You may charge it as of 2024-03-30. </remarks> <telephone>+31 6 14901111</telephone> <vcc_expiration_date>2025-03-01</vcc_expiration_date> <zip></zip> </customer> <date>2024-03-28</date> <hotel_id>11761142</hotel_id> <hotel_name>PCP Property</hotel_name> <id>4787168583</id> <reservation_extra_info> <flags> <flag name="booker_is_genius" /> </flags> <payer> <payments> <payment amount="22.90" currency="USD" payment_type="payment_on_Booking.com" payout_type="Virtual credit card" /> </payments> </payer> </reservation_extra_info> <room> <arrival_date>2024-03-30</arrival_date> <commissionamount>0</commissionamount> <currencycode>USD</currencycode> <departure_date>2024-03-31</departure_date> <extra_info></extra_info> <facilities>Internet facilities, Bath, Air conditioning, Hairdryer, Balcony, Desk, Seating Area, Free toiletries, Microwave, Washing machine, Private bathroom, Flat-screen TV, Electric kettle, Kitchenware, Tumble dryer, Bidet, Children's high chair, Game console – PS4, Cots, Shampoo, Body soap</facilities> <guest_name>Lucy Taylor</guest_name> <id>1176114203</id> <info>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night. Children and Extra Bed Policy: Children of any age are allowed. 1 child (up to and including 3 years old) stays for US$25 per child per stay when using available cots. 1 person (4 years old and over) stays for US$60 per child per night when using available extra beds. The maximum number of extra beds is 1. The maximum number of cots is 1. The maximum number of guests is 2. Deposit Policy: The guest will be charged a prepayment of the cost of the first night after reservation. Cancellation Policy: The guest can cancel free of charge until 18:00 on the day of arrival. The guest will be charged the cost of the first night if they cancel after 18:00 on the day of arrival. </info> <max_children>1</max_children> <meal_plan>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night.</meal_plan> <name>Double Room</name> <numberofguests>1</numberofguests> <price date="2024-03-30" genius_rate="no" rate_id="43470373" rewritten_from_id="0" rewritten_from_name="">10</price> <price_details> <guest> <extracomponent amount="0.55" currency="USD" included="yes" per_night="no" per_person="no" percentage="5.5%" text="City tax" /> <extracomponent amount="0.90" currency="USD" included="yes" per_night="no" per_person="no" percentage="8.5%" text="Tax" /> <total>11.45</total> </guest> <hotel> <extracomponent amount="0.55" currency="USD" included="no" per_night="no" per_person="no" percentage="5.5%" text="City tax" /> <extracomponent amount="0.90" currency="USD" included="no" per_night="no" per_person="no" percentage="8.5%" text="Tax" /> <total>10</total> </hotel> </price_details> <remarks></remarks> <roomreservation_id>4803678746</roomreservation_id> <smoking>1</smoking> <totalprice>10</totalprice> </room> <room> <arrival_date>2024-03-30</arrival_date> <commissionamount>0</commissionamount> <currencycode>USD</currencycode> <departure_date>2024-03-31</departure_date> <extra_info></extra_info> <facilities>Internet facilities, Bath, Air conditioning, Hairdryer, Balcony, Desk, Seating Area, Free toiletries, Microwave, Washing machine, Private bathroom, Flat-screen TV, Electric kettle, Kitchenware, Tumble dryer, Bidet, Children's high chair, Game console – PS4, Cots, Shampoo, Body soap</facilities> <guest_name>Lucy Taylor</guest_name> <id>1176114203</id> <info>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night. Children and Extra Bed Policy: Children of any age are allowed. 1 child (up to and including 3 years old) stays for US$25 per child per stay when using available cots. 1 person (4 years old and over) stays for US$60 per child per night when using available extra beds. The maximum number of extra beds is 1. The maximum number of cots is 1. The maximum number of guests is 2. Deposit Policy: The guest will be charged a prepayment of the cost of the first night after reservation. Cancellation Policy: The guest can cancel free of charge until 18:00 on the day of arrival. The guest will be charged the cost of the first night if they cancel after 18:00 on the day of arrival. </info> <max_children>1</max_children> <meal_plan>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night.</meal_plan> <name>Double Room</name> <numberofguests>1</numberofguests> <price date="2024-03-30" genius_rate="no" rate_id="43470373" rewritten_from_id="0" rewritten_from_name="">10</price> <price_details> <guest> <extracomponent amount="0.55" currency="USD" included="yes" per_night="no" per_person="no" percentage="5.5%" text="City tax" /> <extracomponent amount="0.90" currency="USD" included="yes" per_night="no" per_person="no" percentage="8.5%" text="Tax" /> <total>11.45</total> </guest> <hotel> <extracomponent amount="0.55" currency="USD" included="no" per_night="no" per_person="no" percentage="5.5%" text="City tax" /> <extracomponent amount="0.90" currency="USD" included="no" per_night="no" per_person="no" percentage="8.5%" text="Tax" /> <total>10</total> </hotel> </price_details> <remarks></remarks> <roomreservation_id>4803678762</roomreservation_id> <smoking>1</smoking> <totalprice>10</totalprice> </room> <status>new</status> <time>15:24:22</time> <totalprice>20</totalprice> </reservation> </reservations>
B.XML response for multiroom property with the new PCP 2.0
Expand this section to view the B.XML response example with the new Payments Clarity Package V2 (payment_clarity_package_v2
) enabled.
<reservations> <reservation> <commissionamount>0</commissionamount> <currencycode>USD</currencycode> <customer> <address>********</address> <cc_activation_date>********</cc_activation_date> <cc_current_balance>21.10</cc_current_balance> <cc_cvc>********</cc_cvc> <cc_expiration_date>********</cc_expiration_date> <cc_name>Bookingcom Agent</cc_name> <cc_number>****************</cc_number> <cc_type>MasterCard (virtual credit card)</cc_type> <city>********</city> <company>********</company> <countrycode>NL</countrycode> <currencycode>USD</currencycode> <dc_issue_number></dc_issue_number> <dc_start_date></dc_start_date> <email>lucy@guest.booking.com</email> <first_name>Lucy</first_name> <last_name>Taylor</last_name> <remarks>You have received a virtual credit card for this reservation.You may charge it as of 2024-03-30. </remarks> <telephone>+31 6 14901111</telephone> <vcc_expiration_date>2025-03-01</vcc_expiration_date> <zip></zip> </customer> <date>2024-03-28</date> <hotel_id>11761142</hotel_id> <hotel_name>PCP Property</hotel_name> <id>4787168583</id> <reservation_extra_info> <flags> <flag name="booker_is_genius" /> </flags> <payer> <payments> <payment amount="21.10" currency="USD" payment_type="payment_on_Booking.com" payout_type="Virtual credit card" /> </payments> </payer> </reservation_extra_info> <room> <arrival_date>2024-03-30</arrival_date> <commissionamount>0</commissionamount> <currencycode>USD</currencycode> <departure_date>2024-03-31</departure_date> <extra_info></extra_info> <facilities>Internet facilities, Bath, Air conditioning, Hairdryer, Balcony, Desk, Seating Area, Free toiletries, Microwave, Washing machine, Private bathroom, Flat-screen TV, Electric kettle, Kitchenware, Tumble dryer, Bidet, Children's high chair, Game console – PS4, Cots, Shampoo, Body soap</facilities> <guest_name>Lucy Taylor</guest_name> <id>1176114203</id> <info>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night. Children and Extra Bed Policy: Children of any age are allowed. 1 child (up to and including 3 years old) stays for US$25 per child per stay when using available cots. 1 person (4 years old and over) stays for US$60 per child per night when using available extra beds. The maximum number of extra beds is 1. The maximum number of cots is 1. The maximum number of guests is 2. Deposit Policy: The guest will be charged a prepayment of the cost of the first night after reservation. Cancellation Policy: The guest can cancel free of charge until 18:00 on the day of arrival. The guest will be charged the cost of the first night if they cancel after 18:00 on the day of arrival. </info> <max_children>1</max_children> <meal_plan>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night.</meal_plan> <name>Double Room</name> <numberofguests>1</numberofguests> <price date="2024-03-30" genius_rate="no" rate_id="43470373" rewritten_from_id="0" rewritten_from_name="">10</price> <price_details> <guest> <extracomponent amount="0.55" currency="USD" included="yes" per_night="no" per_person="no" percentage="5.5%" text="City tax" /> <extracomponent amount="0.90" currency="USD" included="yes" per_night="no" per_person="no" percentage="8.50%" text="Tax (Withheld Tax)" /> # Only applicable for properties located in a region where Booking.com is # obligated to withhold and remit taxes on behalf of the property. # Can contain as many withheld tax components as the local tax # regulation stipulates. <total>11.45</total> # Indicates the amount that Booking.com collected from the guest during booking process </guest> <hotel> <extracomponent amount="0.55" currency="USD" included="yes" per_night="no" per_person="no" percentage="5.5%" text="City tax" /> <extracomponent amount="0.90" currency="USD" included="no" per_night="no" per_person="no" percentage="8.50%" text="Tax (Withheld Tax)" /> # Only applicable for properties located in a region where Booking.com is # obligated to withhold and remit taxes on behalf of the property. # Can contain as many withheld tax components as the local tax # regulation stipulates. <total>10.55</total> # Indicates the total payout amount to the property </hotel> </price_details> <remarks></remarks> <roomreservation_id>4803678746</roomreservation_id> <smoking>1</smoking> <totalprice>10</totalprice> </room> <room> <arrival_date>2024-03-30</arrival_date> <commissionamount>0</commissionamount> <currencycode>USD</currencycode> <departure_date>2024-03-31</departure_date> <extra_info></extra_info> <facilities>Internet facilities, Bath, Air conditioning, Hairdryer, Balcony, Desk, Seating Area, Free toiletries, Microwave, Washing machine, Private bathroom, Flat-screen TV, Electric kettle, Kitchenware, Tumble dryer, Bidet, Children's high chair, Game console – PS4, Cots, Shampoo, Body soap</facilities> <guest_name>Lucy Taylor</guest_name> <id>1176114203</id> <info>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night. Children and Extra Bed Policy: Children of any age are allowed. 1 child (up to and including 3 years old) stays for US$25 per child per stay when using available cots. 1 person (4 years old and over) stays for US$60 per child per night when using available extra beds. The maximum number of extra beds is 1. The maximum number of cots is 1. The maximum number of guests is 2. Deposit Policy: The guest will be charged a prepayment of the cost of the first night after reservation. Cancellation Policy: The guest can cancel free of charge until 18:00 on the day of arrival. The guest will be charged the cost of the first night if they cancel after 18:00 on the day of arrival. </info> <max_children>1</max_children> <meal_plan>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night.</meal_plan> <name>Double Room</name> <numberofguests>1</numberofguests> <price date="2024-03-30" genius_rate="no" rate_id="43470373" rewritten_from_id="0" rewritten_from_name="">10</price> <price_details> <guest> <extracomponent amount="0.55" currency="USD" included="yes" per_night="no" per_person="no" percentage="5.5%" text="City tax" /> <extracomponent amount="0.90" currency="USD" included="yes" per_night="no" per_person="no" percentage="8.50%" text="Tax (Withheld Tax)" /> # Only applicable for properties located in a region where Booking.com is # obligated to withhold and remit taxes on behalf of the property. # Can contain as many withheld tax components as the local tax # regulation stipulates. <total>11.45</total> # Indicates the amount that Booking.com collected from the guest during booking process </guest> <hotel> <extracomponent amount="0.55" currency="USD" included="yes" per_night="no" per_person="no" percentage="5.5%" text="City tax" /> <extracomponent amount="0.90" currency="USD" included="no" per_night="no" per_person="no" percentage="8.50%" text="Tax (Withheld Tax)" /> # Only applicable for properties located in a region where Booking.com is # obligated to withhold and remit taxes on behalf of the property. # Can contain as many withheld tax components as the local tax # regulation stipulates. <total>10.55</total> # Indicates the total payout amount to the property </hotel> </price_details> <remarks></remarks> <roomreservation_id>4803678762</roomreservation_id> <smoking>1</smoking> <totalprice>10</totalprice> </room> <status>new</status> <time>15:24:22</time> <totalprice>20</totalprice> </reservation> </reservations>
B.XML response using existing PCP feature with no withheld tax component
For the following reservation response examples, the property has the following set up with the existing Payments Clarity Package (vcc_payment_v2
) enabled:
- Room Price is €10 per night
- VAT of 18.00% is included
- City tax of 3.50% isn't included
- Bed linens fee of €5 per stay isn't included
Expand this section to view the B.XML response example with the existing Payments Clarity Package (vcc_payment_v2
) enabled.
<reservations> <reservation> <booked_at>2024-03-25T16:05:26+00:00</booked_at> <commissionamount>0</commissionamount> <currencycode>EUR</currencycode> <customer> <address>********</address> <cc_activation_date>********</cc_activation_date> <cc_current_balance>15.30</cc_current_balance> <cc_cvc>********</cc_cvc> <cc_expiration_date>********</cc_expiration_date> <cc_name>Bookingcom Agent</cc_name> <cc_number>****************</cc_number> <cc_type>MasterCard (virtual credit card)</cc_type> <city>********</city> <company>********</company> <countrycode>GB</countrycode> <currencycode>EUR</currencycode> <dc_issue_number></dc_issue_number> <dc_start_date></dc_start_date> <email>marcus@guest.booking.com</email> <first_name>Marcus</first_name> <last_name>Aurelius</last_name> <remarks>You have received a virtual credit card for this reservation.You may charge it as of 2024-03-28. </remarks> <telephone></telephone> <vcc_expiration_date>2025-03-01</vcc_expiration_date> <zip></zip> </customer> <date>2024-03-25</date> <guest_counts> <guest_count count="2" type="adult" /> </guest_counts> <hotel_id>10703075</hotel_id> <hotel_name>Test Hotel</hotel_name> <id>4609387145</id> <modified_at>2024-03-25T16:05:27+00:00</modified_at> <reservation_extra_info> <flags> <flag name="booker_is_genius" /> </flags> <payer> <payments> <payment amount="15.30" currency="EUR" payment_type="payment_on_Booking.com" payout_type="Virtual credit card" /> </payments> </payer> </reservation_extra_info> <room> <arrival_date>2024-03-27</arrival_date> <cancel_penalties> <cancel_penalty from="2024-03-25T16:05:26+00:00" policy_code="38" until="2024-03-25T23:00:00+00:00"> <amount_percent amount="0" currency_code="EUR" /> </cancel_penalty> <cancel_penalty from="2024-03-25T23:00:00+00:00" policy_code="38"> <amount_percent amount="10" currency_code="EUR" /> </cancel_penalty> </cancel_penalties> <commissionamount>0</commissionamount> <currencycode>EUR</currencycode> <departure_date>2024-03-28</departure_date> <extra_info></extra_info> <facilities></facilities> <guest_name>Marcus Aurelius</guest_name> <id>1070307502</id> <info>Breakfast costs EUR 14 per person per night. Dinner costs EUR 35 per person per night. Children and Extra Bed Policy: Children of any age are allowed. You haven't added any cots. You haven't added any extra beds. The maximum number of guests is 2. Deposit Policy: The guest will be charged a prepayment of the total price of the reservation within 1 day before arrival. Cancellation Policy: The guest can cancel free of charge until 1 day before arrival. The guest will be charged the total price of the reservation if they cancel within 1 day before arrival. </info> <max_children>0</max_children> <meal_plan>Breakfast costs EUR 14 per person per night. Dinner costs EUR 35 per person per night.</meal_plan> <name>Deluxe Double Room with Mountain View</name> <numberofguests>2</numberofguests> <occupancy>2</occupancy> <price date="2024-03-27" genius_rate="no" rate_id="38452247" rewritten_from_id="0" rewritten_from_name="">10</price> <price_details> <guest> <extracomponent amount="5" currency="EUR" included="yes" per_night="no" per_person="no" percentage="no" text="Bed linens fee" /> <extracomponent amount="1.53" currency="EUR" included="yes" per_night="no" per_person="no" percentage="18%" text="VAT" /> <extracomponent amount="0.30" currency="EUR" included="yes" per_night="no" per_person="no" percentage="3.5%" text="City tax" /> <total>15.30</total> </guest> <hotel> <extracomponent amount="5" currency="EUR" included="no" per_night="no" per_person="no" percentage="no" text="Bed linens fee" /> <extracomponent amount="1.53" currency="EUR" included="yes" per_night="no" per_person="no" percentage="18%" text="VAT" /> <extracomponent amount="0.30" currency="EUR" included="no" per_night="no" per_person="no" percentage="3.5%" text="City tax" /> <total>10</total> </hotel> </price_details> <remarks></remarks> <roomreservation_id>4798390515</roomreservation_id> <smoking>0</smoking> <totalprice>10</totalprice> </room> <status>new</status> <time>17:05:26</time> <totalprice>10</totalprice> </reservation> </reservations>
B.XML response using the new PCP 2.0 feature with no withheld tax component
For the following response example, the property has the new Payments Clarity Package V2 (payment_clarity_package_v2
) enabled:
Expand this section to view the B.XML response example with the new Payments Clarity Package V2 (payment_clarity_package_v2
) enabled.
<reservations> <reservation> <booked_at>2024-03-25T16:05:26+00:00</booked_at> <commissionamount>0</commissionamount> <currencycode>EUR</currencycode> <customer> <address></address> <cc_activation_date>**********</cc_activation_date> <cc_current_balance>15.30</cc_current_balance> <cc_cvc>********</cc_cvc> <cc_expiration_date>*******</cc_expiration_date> <cc_name>Bookingcom Agent</cc_name> <cc_number>****************</cc_number> <cc_type>MasterCard (virtual credit card)</cc_type> <city></city> <company></company> <countrycode>GB</countrycode> <currencycode>EUR</currencycode> <dc_issue_number></dc_issue_number> <dc_start_date></dc_start_date> <email>marcus@guest.booking.com</email> <first_name>Marcus</first_name> <last_name>Aurelius</last_name> <remarks>You have received a virtual credit card for this reservation.You may charge it as of 2024-03-28. </remarks> <telephone></telephone> <vcc_expiration_date>2025-03-01</vcc_expiration_date> <zip></zip> </customer> <date>2024-03-25</date> <guest_counts> <guest_count count="2" type="adult" /> </guest_counts> <hotel_id>10703075</hotel_id> <hotel_name>Test Hotel</hotel_name> <id>4609387145</id> <modified_at>2024-03-25T16:05:27+00:00</modified_at> <reservation_extra_info> <flags> <flag name="booker_is_genius" /> </flags> <payer> <payments> <payment amount="15.30" currency="EUR" payment_type="payment_on_Booking.com" payout_type="Virtual credit card" /> </payments> </payer> </reservation_extra_info> <room> <arrival_date>2024-03-27</arrival_date> <cancel_penalties> <cancel_penalty from="2024-03-25T16:05:26+00:00" policy_code="38" until="2024-03-25T23:00:00+00:00"> <amount_percent amount="0" currency_code="EUR" /> </cancel_penalty> <cancel_penalty from="2024-03-25T23:00:00+00:00" policy_code="38"> <amount_percent amount="10" currency_code="EUR" /> </cancel_penalty> </cancel_penalties> <commissionamount>0</commissionamount> <currencycode>EUR</currencycode> <departure_date>2024-03-28</departure_date> <extra_info></extra_info> <facilities></facilities> <guest_name>Marcus Aurelius</guest_name> <id>1070307502</id> <info>Breakfast costs EUR 14 per person per night. Dinner costs EUR 35 per person per night. Children and Extra Bed Policy: Children of any age are allowed. You haven't added any cots. You haven't added any extra beds. The maximum number of guests is 2. Deposit Policy: The guest will be charged a prepayment of the total price of the reservation within 1 day before arrival. Cancellation Policy: The guest can cancel free of charge until 1 day before arrival. The guest will be charged the total price of the reservation if they cancel within 1 day before arrival. </info> <max_children>0</max_children> <meal_plan>Breakfast costs EUR 14 per person per night. Dinner costs EUR 35 per person per night.</meal_plan> <name>Deluxe Double Room with Mountain View</name> <numberofguests>2</numberofguests> <occupancy>2</occupancy> <price date="2024-03-27" genius_rate="no" rate_id="38452247" rewritten_from_id="0" rewritten_from_name="">10</price> <price_details> <guest> <extracomponent amount="5" currency="EUR" included="yes" # Indicates fees/tax was collected from the guest during booking per_night="no" per_person="no" percentage="no" text="Bed linens fee" /> <extracomponent amount="1.53" currency="EUR" included="yes" per_night="no" per_person="no" percentage="18%" text="VAT" /> <extracomponent amount="0.30" currency="EUR" included="yes" per_night="no" per_person="no" percentage="3.5%" text="City tax" /> <total>15.30</total> # Indicates the amount Booking.com collected from the guest during booking process </guest> <hotel> <extracomponent amount="5" currency="EUR" included="yes" # Indicates fees/tax is included in the payout to the property per_night="no" per_person="no" percentage="no" text="Bed linens fee" /> <extracomponent amount="1.53" currency="EUR" included="yes" per_night="no" per_person="no" percentage="18%" text="VAT" /> <extracomponent amount="0.30" currency="EUR" included="yes" per_night="no" per_person="no" percentage="3.5%" text="City tax" /> <total>15.30</total> # Indicates the total payout amount to the property </hotel> </price_details> <remarks></remarks> <roomreservation_id>4798390515</roomreservation_id> <smoking>0</smoking> <totalprice>10</totalprice> </room> <status>new</status> <time>17:05:26</time> <totalprice>10</totalprice> </reservation> </reservations>
OTA response with the existing Payments Clarity Package
For the response examples in this section the following price configurations are set up for the property:
- The price of the room is $10.
- The price excludes:
- Withheld tax of 2.00%
- Withheld tax of 5.00%
- Withheld tax of 1.50%
- City tax of 5.50%
Also, either the Payments Clarity Package (vcc_payment_v2
), or the Include Price Details (include_price_details
) feature is turned on.
Expand this section to view the OTA response example with the existing Payments Clarity Package (vcc_payment_v2
) enabled.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelResNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelResNotifRQ.xsd" TimeStamp="2024-04-02T13:45:03+00:00" Target="Production" Version="2.001"> <HotelReservations> <HotelReservation> <RoomStays> <RoomStay IndexNumber="127"> <RoomTypes> <RoomType RoomTypeCode="1178389503"> <RoomDescription Name="Double Room - General"> <Text/> <MealPlan>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night.</MealPlan> <MaxChildren>1</MaxChildren> </RoomDescription> <Amenities> <Amenity>Internet facilities</Amenity> <Amenity>Private bathroom</Amenity> <Amenity>Flat-screen TV</Amenity> <Amenity>Electric kettle</Amenity> <Amenity>Kitchenware</Amenity> <Amenity>Tumble dryer</Amenity> <Amenity>Bidet</Amenity> <Amenity>Children's high chair</Amenity> <Amenity>Game console – PS4</Amenity> <Amenity>Cots</Amenity> <Amenity>Shampoo</Amenity> <Amenity>Bath</Amenity> <Amenity>Body soap</Amenity> <Amenity>Air conditioning</Amenity> <Amenity>Hairdryer</Amenity> <Amenity>Balcony</Amenity> <Amenity>Desk</Amenity> <Amenity>Seating Area</Amenity> <Amenity>Free toiletries</Amenity> <Amenity>Microwave</Amenity> <Amenity>Washing machine</Amenity> </Amenities> </RoomType> </RoomTypes> <RatePlans> <RatePlan> <Commission> <CommissionPayableAmount Amount="0" DecimalPlaces="2" CurrencyCode="USD"/> </Commission> </RatePlan> </RatePlans> <RoomRates> <RoomRate EffectiveDate="2024-04-05" RatePlanCode="43584505"> <Rates> <Rate> <Total AmountBeforeTax="1000" CurrencyCode="USD" DecimalPlaces="2"/> </Rate> </Rates> </RoomRate> <TPA_Extensions> <BookingCondition>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night. Children and Extra Bed Policy: Children of any age are allowed. 1 child (up to and including 3 years old) stays for US$25 per child per stay when using available cots. 1 person (4 years old and over) stays for US$60 per child per night when using available extra beds. The maximum number of extra beds is 1. The maximum number of cots is 1. The maximum number of guests is 2. Deposit Policy: The guest will be charged a prepayment of the cost of the first night after reservation. Cancellation Policy: The guest can cancel free of charge until 14:00 on the day of arrival. The guest will be charged the cost of the first night if they cancel after 14:00 on the day of arrival. </BookingCondition> </TPA_Extensions> </RoomRates> <GuestCounts> <GuestCount Count="2"/> </GuestCounts> <Total AmountBeforeTax="1000" CurrencyCode="USD" DecimalPlaces="2"> <Taxes Amount="145" CurrencyCode="USD" DecimalPlaces="2"> <Tax Amount="55" ChargeFrequency="12" Code="3" CurrencyCode="USD" DecimalPlaces="2" Type="Exclusive"> <TaxDescription> <Text>City tax (5.5%)</Text> </TaxDescription> </Tax> <Tax Amount="90" ChargeFrequency="12" Code="17" CurrencyCode="USD" DecimalPlaces="2" Type="Exclusive"> <TaxDescription> <Text>Tax (8.5%)</Text> </TaxDescription> </Tax> </Taxes> </Total> <BasicPropertyInfo HotelCode="11783895"/> <ResGuestRPHs> <ResGuestRPH RPH="1"/> </ResGuestRPHs> <SpecialRequests> <SpecialRequest Name="smoking preference"> <Text>Smoking</Text> </SpecialRequest> </SpecialRequests> </RoomStay> </RoomStays> <ResGuests> <ResGuest ResGuestRPH="1"> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <Surname>Dennis Stanford</Surname> </PersonName> </Customer> </Profile> </ProfileInfo> </Profiles> </ResGuest> </ResGuests> <TPA_Extensions> <flags> <flag name="booker_is_genius"/> </flags> </TPA_Extensions> <ResGlobalInfo> <Comments> <Comment ParagraphNumber="1"> <Text>You have received a virtual credit card for this reservation.You may charge it as of 2024-04-05.</Text> </Comment> </Comments> <Guarantee> <GuaranteesAccepted> <GuaranteeAccepted> <PaymentCard CardCode="MC" CardNumber="****************" SeriesCode="**********" ExpireDate="**********" EffectiveDate="**********" CurrentBalance="1145" DecimalPlaces="2" CurrencyCode="USD" VCCExpirationDate="**********"> <CardHolderName>Bookingcom Agent</CardHolderName> </PaymentCard> </GuaranteeAccepted> </GuaranteesAccepted> </Guarantee> <Total AmountBeforeTax="1000" CurrencyCode="USD" DecimalPlaces="2"/> <HotelReservationIDs> <HotelReservationID ResID_Value="4668177005" ResID_Date="2024-04-02T13:44:01"/> </HotelReservationIDs> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <GivenName>Dennis</GivenName> <Surname>Stanford</Surname> </PersonName> <Telephone PhoneNumber="+31 6 14901111"/> <Email>dennis@guest.booking.com</Email> <Address> <AddressLine/> <CityName/> <PostalCode/> <CountryName Code="NL"/> <CompanyName/> </Address> </Customer> </Profile> </ProfileInfo> </Profiles> <DepositPayments> <GuaranteePayment GuaranteeType="PrePay"> <Description> <Text>payment_on_Booking.com (Payout type: Virtual credit card)</Text> </Description> <AmountPercent Amount="1145" Currency="USD" DecimalPlaces="2"/> </GuaranteePayment> </DepositPayments> </ResGlobalInfo> </HotelReservation> </HotelReservations> </OTA_HotelResNotifRQ>
OTA response with the new Payments Clarity Package V2
For the following example, the Payments Clarity Package V2 (payment_clarity_package_v2
) is enabled.
Expand this section to view the OTA response example with the new Payments Clarity Package V2 (payment_clarity_package_v2
) enabled.
The following example shows multiple withheld tax components. The number of withheld tax components depends on the local tax regulations and may vary for your implementation.
Note that the change in the response lines are marked as follows:
----------------------------Start of change------------------------------------------
----------------------------End of change------------------------------------------
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelResNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelResNotifRQ.xsd" TimeStamp="2024-04-02T13:49:17+00:00" Target="Production" Version="2.001"> <HotelReservations> <HotelReservation> <RoomStays> <RoomStay IndexNumber="127"> <RoomTypes> <RoomType RoomTypeCode="1178389503"> <RoomDescription Name="Double Room - General"> <Text/> <MealPlan>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night.</MealPlan> <MaxChildren>1</MaxChildren> </RoomDescription> <Amenities> <Amenity>Internet facilities</Amenity> <Amenity>Private bathroom</Amenity> <Amenity>Flat-screen TV</Amenity> <Amenity>Electric kettle</Amenity> <Amenity>Kitchenware</Amenity> <Amenity>Tumble dryer</Amenity> <Amenity>Bidet</Amenity> <Amenity>Children's high chair</Amenity> <Amenity>Game console – PS4</Amenity> <Amenity>Cots</Amenity> <Amenity>Shampoo</Amenity> <Amenity>Bath</Amenity> <Amenity>Body soap</Amenity> <Amenity>Air conditioning</Amenity> <Amenity>Hairdryer</Amenity> <Amenity>Balcony</Amenity> <Amenity>Desk</Amenity> <Amenity>Seating Area</Amenity> <Amenity>Free toiletries</Amenity> <Amenity>Microwave</Amenity> <Amenity>Washing machine</Amenity> </Amenities> </RoomType> </RoomTypes> <RatePlans> <RatePlan> <Commission> <CommissionPayableAmount Amount="0" DecimalPlaces="2" CurrencyCode="USD"/> </Commission> </RatePlan> </RatePlans> <RoomRates> <RoomRate EffectiveDate="2024-04-05" RatePlanCode="43584505"> <Rates> <Rate> <Total AmountBeforeTax="1000" CurrencyCode="USD" DecimalPlaces="2"/> </Rate> </Rates> </RoomRate> <TPA_Extensions> <BookingCondition>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night. Children and Extra Bed Policy: Children of any age are allowed. 1 child (up to and including 3 years old) stays for US$25 per child per stay when using available cots. 1 person (4 years old and over) stays for US$60 per child per night when using available extra beds. The maximum number of extra beds is 1. The maximum number of cots is 1. The maximum number of guests is 2. Deposit Policy: The guest will be charged a prepayment of the cost of the first night after reservation. Cancellation Policy: The guest can cancel free of charge until 14:00 on the day of arrival. The guest will be charged the cost of the first night if they cancel after 14:00 on the day of arrival. </BookingCondition> </TPA_Extensions> </RoomRates> <GuestCounts> <GuestCount Count="2"/> </GuestCounts> <Total AmountBeforeTax="1000" CurrencyCode="USD" DecimalPlaces="2"/> <BasicPropertyInfo HotelCode="11783895"/> <ResGuestRPHs> <ResGuestRPH RPH="1"/> </ResGuestRPHs> <SpecialRequests> <SpecialRequest Name="smoking preference"> <Text>Smoking</Text> </SpecialRequest> </SpecialRequests> ----------------------Start of change------------------------------------------ <PriceDetails> <GuestView> <Taxes> <Tax Amount="55" ChargeFrequency="12" Code="3" CurrencyCode="USD" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>City tax (5.5%)</Text> </TaxDescription> </Tax> <Tax Amount="21" ChargeFrequency="12" Code="17" CurrencyCode="USD" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>Tax (Withheld Tax) (2.00%)</Text> # Only applicable for properties located in a region where Booking.com is # obligated to withhold and remit taxes on behalf of the property. # Can contain as many withheld tax components as the local tax # regulation stipulates. </TaxDescription> </Tax> <Tax Amount="53" ChargeFrequency="12" Code="17" CurrencyCode="USD" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>Tax (Withheld Tax) (5.00%)</Text> </TaxDescription> </Tax> <Tax Amount="16" ChargeFrequency="12" Code="17" CurrencyCode="USD" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>Tax (Withheld Tax) (1.50%)</Text> </TaxDescription> </Tax> </Taxes> <Total Amount="1144675" DecimalPlaces="5"/> # Indicates the amount that Booking.com collected from the guest during booking process </GuestView> <HotelView> <Taxes> <Tax Amount="55" ChargeFrequency="12" Code="3" CurrencyCode="USD" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>City tax (5.5%)</Text> </TaxDescription> </Tax> <Tax Amount="21" ChargeFrequency="12" Code="17" CurrencyCode="USD" DecimalPlaces="2" Type="Exclusive"> <TaxDescription> <Text>Tax (Withheld Tax) (2.00%)</Text> # Only applicable for properties located in a region where Booking.com is # obligated to withhold and remit taxes on behalf of the property. # Can contain as many withheld tax components as the local tax # regulation stipulates. </TaxDescription> </Tax> <Tax Amount="53" ChargeFrequency="12" Code="17" CurrencyCode="USD" DecimalPlaces="2" Type="Exclusive"> <TaxDescription> <Text>Tax (Withheld Tax) (5.00%)</Text> </TaxDescription> </Tax> <Tax Amount="16" ChargeFrequency="12" Code="17" CurrencyCode="USD" DecimalPlaces="2" Type="Exclusive"> <TaxDescription> <Text>Tax (Withheld Tax) (1.50%)</Text> </TaxDescription> </Tax> </Taxes> <Total Amount="1055" DecimalPlaces="2"/> # Indicates the total payout amount to the property </HotelView> </PriceDetails> ----------------------End of change------------------------------------------ </RoomStay> </RoomStays> <ResGuests> <ResGuest ResGuestRPH="1"> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <Surname>Dennis Stanford</Surname> </PersonName> </Customer> </Profile> </ProfileInfo> </Profiles> </ResGuest> </ResGuests> <TPA_Extensions> <flags> <flag name="booker_is_genius"/> </flags> </TPA_Extensions> <ResGlobalInfo> <Comments> <Comment ParagraphNumber="1"> <Text>You have received a virtual credit card for this reservation.You may charge it as of 2024-04-05.</Text> </Comment> </Comments> <Guarantee> <GuaranteesAccepted> <GuaranteeAccepted> <PaymentCard CardCode="MC" CardNumber="****************" SeriesCode="**********" ExpireDate="**********" EffectiveDate="**********" CurrentBalance="1055" DecimalPlaces="2" CurrencyCode="USD" VCCExpirationDate="**********"> <CardHolderName>Bookingcom Agent</CardHolderName> </PaymentCard> </GuaranteeAccepted> </GuaranteesAccepted> </Guarantee> <Total AmountBeforeTax="1000" CurrencyCode="USD" DecimalPlaces="2"/> <HotelReservationIDs> <HotelReservationID ResID_Value="4668177005" ResID_Date="2024-04-02T13:44:01"/> </HotelReservationIDs> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <GivenName>Dennis</GivenName> <Surname>Stanford</Surname> </PersonName> <Telephone PhoneNumber="+31 6 14901111"/> <Email>dennis@guest.booking.com</Email> <Address> <AddressLine/> <CityName/> <PostalCode/> <CountryName Code="NL"/> <CompanyName/> </Address> </Customer> </Profile> </ProfileInfo> </Profiles> <DepositPayments> <GuaranteePayment GuaranteeType="PrePay"> <Description> <Text>payment_on_Booking.com (Payout type: Virtual credit card)</Text> </Description> <AmountPercent Amount="1055" Currency="USD" DecimalPlaces="2"/> </GuaranteePayment> </DepositPayments> </ResGlobalInfo> </HotelReservation> </HotelReservations> </OTA_HotelResNotifRQ>
OTA response for multiroom property using existing PCP feature with Withheld tax component
For the following reservation response examples, the property has the following setup with the existing Payments Clarity Package (vcc_payment_v2
) enabled:
- The price of the room is $10.
- The price excludes:
- Withheld tax of 8.50%
- City tax of 5.50%
Expand this section to view the B.XML response example with the existing Payments Clarity Package (vcc_payment_v2
) enabled.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelResNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelResNotifRQ.xsd" TimeStamp="2024-03-28T14:27:46+00:00" Target="Production" Version="2.001"> <HotelReservations> <HotelReservation> <RoomStays> <RoomStay IndexNumber="746"> <RoomTypes> <RoomType RoomTypeCode="1176114203"> <RoomDescription Name="Double Room - General"> <Text/> <MealPlan>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night.</MealPlan> <MaxChildren>1</MaxChildren> </RoomDescription> <Amenities> <Amenity>Internet facilities</Amenity> <Amenity>Private bathroom</Amenity> <Amenity>Flat-screen TV</Amenity> <Amenity>Electric kettle</Amenity> <Amenity>Kitchenware</Amenity> <Amenity>Tumble dryer</Amenity> <Amenity>Bidet</Amenity> <Amenity>Children's high chair</Amenity> <Amenity>Game console – PS4</Amenity> <Amenity>Cots</Amenity> <Amenity>Shampoo</Amenity> <Amenity>Bath</Amenity> <Amenity>Body soap</Amenity> <Amenity>Air conditioning</Amenity> <Amenity>Hairdryer</Amenity> <Amenity>Balcony</Amenity> <Amenity>Desk</Amenity> <Amenity>Seating Area</Amenity> <Amenity>Free toiletries</Amenity> <Amenity>Microwave</Amenity> <Amenity>Washing machine</Amenity> </Amenities> </RoomType> </RoomTypes> <RatePlans> <RatePlan> <Commission> <CommissionPayableAmount Amount="0" DecimalPlaces="2" CurrencyCode="USD"/> </Commission> </RatePlan> </RatePlans> <RoomRates> <RoomRate EffectiveDate="2024-03-30" RatePlanCode="43470373"> <Rates> <Rate> <Total AmountBeforeTax="1000" CurrencyCode="USD" DecimalPlaces="2"/> </Rate> </Rates> </RoomRate> <TPA_Extensions> <BookingCondition>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night. Children and Extra Bed Policy: Children of any age are allowed. 1 child (up to and including 3 years old) stays for US$25 per child per stay when using available cots. 1 person (4 years old and over) stays for US$60 per child per night when using available extra beds. The maximum number of extra beds is 1. The maximum number of cots is 1. The maximum number of guests is 2. Deposit Policy: The guest will be charged a prepayment of the cost of the first night after reservation. Cancellation Policy: The guest can cancel free of charge until 18:00 on the day of arrival. The guest will be charged the cost of the first night if they cancel after 18:00 on the day of arrival. </BookingCondition> </TPA_Extensions> </RoomRates> <GuestCounts> <GuestCount Count="1"/> </GuestCounts> <Total AmountBeforeTax="1000" CurrencyCode="USD" DecimalPlaces="2"> <Taxes Amount="145" CurrencyCode="USD" DecimalPlaces="2"> <Tax Amount="55" ChargeFrequency="12" Code="3" CurrencyCode="USD" DecimalPlaces="2" Type="Exclusive"> <TaxDescription> <Text>City tax (5.5%)</Text> </TaxDescription> </Tax> <Tax Amount="90" ChargeFrequency="12" Code="17" CurrencyCode="USD" DecimalPlaces="2" Type="Exclusive"> <TaxDescription> <Text>Tax (8.5%)</Text> </TaxDescription> </Tax> </Taxes> </Total> <BasicPropertyInfo HotelCode="11761142"/> <ResGuestRPHs> <ResGuestRPH RPH="1"/> </ResGuestRPHs> <SpecialRequests> <SpecialRequest Name="smoking preference"> <Text>Smoking</Text> </SpecialRequest> </SpecialRequests> </RoomStay> <RoomStay IndexNumber="762"> <RoomTypes> <RoomType RoomTypeCode="1176114203"> <RoomDescription Name="Double Room - General"> <Text/> <MealPlan>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night.</MealPlan> <MaxChildren>1</MaxChildren> </RoomDescription> <Amenities> <Amenity>Internet facilities</Amenity> <Amenity>Private bathroom</Amenity> <Amenity>Flat-screen TV</Amenity> <Amenity>Electric kettle</Amenity> <Amenity>Kitchenware</Amenity> <Amenity>Tumble dryer</Amenity> <Amenity>Bidet</Amenity> <Amenity>Children's high chair</Amenity> <Amenity>Game console – PS4</Amenity> <Amenity>Cots</Amenity> <Amenity>Shampoo</Amenity> <Amenity>Bath</Amenity> <Amenity>Body soap</Amenity> <Amenity>Air conditioning</Amenity> <Amenity>Hairdryer</Amenity> <Amenity>Balcony</Amenity> <Amenity>Desk</Amenity> <Amenity>Seating Area</Amenity> <Amenity>Free toiletries</Amenity> <Amenity>Microwave</Amenity> <Amenity>Washing machine</Amenity> </Amenities> </RoomType> </RoomTypes> <RatePlans> <RatePlan> <Commission> <CommissionPayableAmount Amount="0" DecimalPlaces="2" CurrencyCode="USD"/> </Commission> </RatePlan> </RatePlans> <RoomRates> <RoomRate EffectiveDate="2024-03-30" RatePlanCode="43470373"> <Rates> <Rate> <Total AmountBeforeTax="1000" CurrencyCode="USD" DecimalPlaces="2"/> </Rate> </Rates> </RoomRate> <TPA_Extensions> <BookingCondition>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night. Children and Extra Bed Policy: Children of any age are allowed. 1 child (up to and including 3 years old) stays for US$25 per child per stay when using available cots. 1 person (4 years old and over) stays for US$60 per child per night when using available extra beds. The maximum number of extra beds is 1. The maximum number of cots is 1. The maximum number of guests is 2. Deposit Policy: The guest will be charged a prepayment of the cost of the first night after reservation. Cancellation Policy: The guest can cancel free of charge until 18:00 on the day of arrival. The guest will be charged the cost of the first night if they cancel after 18:00 on the day of arrival. </BookingCondition> </TPA_Extensions> </RoomRates> <GuestCounts> <GuestCount Count="1"/> </GuestCounts> <Total AmountBeforeTax="1000" CurrencyCode="USD" DecimalPlaces="2"> <Taxes Amount="145" CurrencyCode="USD" DecimalPlaces="2"> <Tax Amount="55" ChargeFrequency="12" Code="3" CurrencyCode="USD" DecimalPlaces="2" Type="Exclusive"> <TaxDescription> <Text>City tax (5.5%)</Text> </TaxDescription> </Tax> <Tax Amount="90" ChargeFrequency="12" Code="17" CurrencyCode="USD" DecimalPlaces="2" Type="Exclusive"> <TaxDescription> <Text>Tax (8.5%)</Text> </TaxDescription> </Tax> </Taxes> </Total> <BasicPropertyInfo HotelCode="11761142"/> <ResGuestRPHs> <ResGuestRPH RPH="2"/> </ResGuestRPHs> <SpecialRequests> <SpecialRequest Name="smoking preference"> <Text>Smoking</Text> </SpecialRequest> </SpecialRequests> </RoomStay> </RoomStays> <ResGuests> <ResGuest ResGuestRPH="1"> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <Surname>Taylor</Surname> </PersonName> </Customer> </Profile> </ProfileInfo> </Profiles> </ResGuest> <ResGuest ResGuestRPH="2"> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <Surname>Taylor</Surname> </PersonName> </Customer> </Profile> </ProfileInfo> </Profiles> </ResGuest> </ResGuests> <TPA_Extensions> <flags> <flag name="booker_is_genius"/> </flags> </TPA_Extensions> <ResGlobalInfo> <Comments> <Comment ParagraphNumber="1"> <Text>You have received a virtual credit card for this reservation.You may charge it as of 2024-03-30.</Text> </Comment> </Comments> <Guarantee> <GuaranteesAccepted> <GuaranteeAccepted> <PaymentCard CardCode="MC" CardNumber="****************" SeriesCode="**********" ExpireDate="0325" EffectiveDate="**********" CurrentBalance="2290" DecimalPlaces="2" CurrencyCode="USD" VCCExpirationDate="**********"> <CardHolderName>Bookingcom Agent</CardHolderName> </PaymentCard> </GuaranteeAccepted> </GuaranteesAccepted> </Guarantee> <Total AmountBeforeTax="2000" CurrencyCode="USD" DecimalPlaces="2"/> <HotelReservationIDs> <HotelReservationID ResID_Value="4787168583" ResID_Date="2024-03-28T14:24:22"/> </HotelReservationIDs> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <GivenName>Lucy</GivenName> <Surname>Taylor</Surname> </PersonName> <Telephone PhoneNumber="+31 6 14901111"/> <Email>lucy@guest.booking.com</Email> <Address> <AddressLine/> <CityName/> <PostalCode/> <CountryName Code="NL"/> <CompanyName/> </Address> </Customer> </Profile> </ProfileInfo> </Profiles> <DepositPayments> <GuaranteePayment GuaranteeType="PrePay"> <Description> <Text>payment_on_Booking.com (Payout type: Virtual credit card)</Text> </Description> <AmountPercent Amount="2000" Currency="USD" DecimalPlaces="2"/> </GuaranteePayment> </DepositPayments> </ResGlobalInfo> </HotelReservation> </HotelReservations> </OTA_HotelResNotifRQ>
OTA response for multiroom property using the new PCP 2.0 feature with withheld tax component
For the following reservation response examples, the property has the following setup with the new Payments Clarity Package V2 (payment_clarity_package_v2
) enabled:
- The price of the room is $10.
- The price excludes:
- Withheld tax of 8.50%
- City tax of 5.50%
Expand this section to view the OTA response example with the new Payments Clarity Package V2 (payment_clarity_package_v2
) enabled.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelResNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelResNotifRQ.xsd" TimeStamp="2024-03-28T14:28:12+00:00" Target="Production" Version="2.001"> <HotelReservations> <HotelReservation> <RoomStays> <RoomStay IndexNumber="746"> <RoomTypes> <RoomType RoomTypeCode="1176114203"> <RoomDescription Name="Double Room - General"> <Text/> <MealPlan>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night.</MealPlan> <MaxChildren>1</MaxChildren> </RoomDescription> <Amenities> <Amenity>Internet facilities</Amenity> <Amenity>Private bathroom</Amenity> <Amenity>Flat-screen TV</Amenity> <Amenity>Electric kettle</Amenity> <Amenity>Kitchenware</Amenity> <Amenity>Tumble dryer</Amenity> <Amenity>Bidet</Amenity> <Amenity>Children's high chair</Amenity> <Amenity>Game console – PS4</Amenity> <Amenity>Cots</Amenity> <Amenity>Shampoo</Amenity> <Amenity>Bath</Amenity> <Amenity>Body soap</Amenity> <Amenity>Air conditioning</Amenity> <Amenity>Hairdryer</Amenity> <Amenity>Balcony</Amenity> <Amenity>Desk</Amenity> <Amenity>Seating Area</Amenity> <Amenity>Free toiletries</Amenity> <Amenity>Microwave</Amenity> <Amenity>Washing machine</Amenity> </Amenities> </RoomType> </RoomTypes> <RatePlans> <RatePlan> <Commission> <CommissionPayableAmount Amount="0" DecimalPlaces="2" CurrencyCode="USD"/> </Commission> </RatePlan> </RatePlans> <RoomRates> <RoomRate EffectiveDate="2024-03-30" RatePlanCode="43470373"> <Rates> <Rate> <Total AmountBeforeTax="1000" CurrencyCode="USD" DecimalPlaces="2"/> </Rate> </Rates> </RoomRate> <TPA_Extensions> <BookingCondition>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night. Children and Extra Bed Policy: Children of any age are allowed. 1 child (up to and including 3 years old) stays for US$25 per child per stay when using available cots. 1 person (4 years old and over) stays for US$60 per child per night when using available extra beds. The maximum number of extra beds is 1. The maximum number of cots is 1. The maximum number of guests is 2. Deposit Policy: The guest will be charged a prepayment of the cost of the first night after reservation. Cancellation Policy: The guest can cancel free of charge until 18:00 on the day of arrival. The guest will be charged the cost of the first night if they cancel after 18:00 on the day of arrival. </BookingCondition> </TPA_Extensions> </RoomRates> <GuestCounts> <GuestCount Count="1"/> </GuestCounts> <Total AmountBeforeTax="1000" CurrencyCode="USD" DecimalPlaces="2"/> <BasicPropertyInfo HotelCode="11761142"/> <ResGuestRPHs> <ResGuestRPH RPH="1"/> </ResGuestRPHs> <SpecialRequests> <SpecialRequest Name="smoking preference"> <Text>Smoking</Text> </SpecialRequest> </SpecialRequests> <PriceDetails> <GuestView> <Taxes> <Tax Amount="55" ChargeFrequency="12" Code="3" CurrencyCode="USD" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>City tax (5.5%)</Text> </TaxDescription> </Tax> <Tax Amount="90" ChargeFrequency="12" Code="17" CurrencyCode="USD" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>Tax (Withheld Tax) (8.50%)</Text> # Only applicable for properties located in a region where Booking.com is # obligated to withhold and remit taxes on behalf of the property. # Can contain as many withheld tax components as the local tax # regulation stipulates. </TaxDescription> </Tax> </Taxes> <Total Amount="1144675" DecimalPlaces="5"/> # Indicates the amount Booking.com collected from the guest during booking process </GuestView> <HotelView> <Taxes> <Tax Amount="55" ChargeFrequency="12" Code="3" CurrencyCode="USD" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>City tax (5.5%)</Text> </TaxDescription> </Tax> <Tax Amount="90" ChargeFrequency="12" Code="17" CurrencyCode="USD" DecimalPlaces="2" Type="Exclusive"> <TaxDescription> <Text>Tax (Withheld Tax) (8.50%)</Text> # Only applicable for properties located in a region where Booking.com is # obligated to withhold and remit taxes on behalf of the property. # Can contain as many withheld tax components as the local tax # regulation stipulates. </TaxDescription> </Tax> </Taxes> <Total Amount="1055" DecimalPlaces="2"/> # Indicates the total payout amount to the property </HotelView> </PriceDetails> </RoomStay> <RoomStay IndexNumber="762"> <RoomTypes> <RoomType RoomTypeCode="1176114203"> <RoomDescription Name="Double Room - General"> <Text/> <MealPlan>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night.</MealPlan> <MaxChildren>1</MaxChildren> </RoomDescription> <Amenities> <Amenity>Internet facilities</Amenity> <Amenity>Private bathroom</Amenity> <Amenity>Flat-screen TV</Amenity> <Amenity>Electric kettle</Amenity> <Amenity>Kitchenware</Amenity> <Amenity>Tumble dryer</Amenity> <Amenity>Bidet</Amenity> <Amenity>Children's high chair</Amenity> <Amenity>Game console – PS4</Amenity> <Amenity>Cots</Amenity> <Amenity>Shampoo</Amenity> <Amenity>Bath</Amenity> <Amenity>Body soap</Amenity> <Amenity>Air conditioning</Amenity> <Amenity>Hairdryer</Amenity> <Amenity>Balcony</Amenity> <Amenity>Desk</Amenity> <Amenity>Seating Area</Amenity> <Amenity>Free toiletries</Amenity> <Amenity>Microwave</Amenity> <Amenity>Washing machine</Amenity> </Amenities> </RoomType> </RoomTypes> <RatePlans> <RatePlan> <Commission> <CommissionPayableAmount Amount="0" DecimalPlaces="2" CurrencyCode="USD"/> </Commission> </RatePlan> </RatePlans> <RoomRates> <RoomRate EffectiveDate="2024-03-30" RatePlanCode="43470373"> <Rates> <Rate> <Total AmountBeforeTax="1000" CurrencyCode="USD" DecimalPlaces="2"/> </Rate> </Rates> </RoomRate> <TPA_Extensions> <BookingCondition>Breakfast costs US$14 per person per night. Dinner costs US$35 per person per night. Children and Extra Bed Policy: Children of any age are allowed. 1 child (up to and including 3 years old) stays for US$25 per child per stay when using available cots. 1 person (4 years old and over) stays for US$60 per child per night when using available extra beds. The maximum number of extra beds is 1. The maximum number of cots is 1. The maximum number of guests is 2. Deposit Policy: The guest will be charged a prepayment of the cost of the first night after reservation. Cancellation Policy: The guest can cancel free of charge until 18:00 on the day of arrival. The guest will be charged the cost of the first night if they cancel after 18:00 on the day of arrival. </BookingCondition> </TPA_Extensions> </RoomRates> <GuestCounts> <GuestCount Count="1"/> </GuestCounts> <Total AmountBeforeTax="1000" CurrencyCode="USD" DecimalPlaces="2"/> <BasicPropertyInfo HotelCode="11761142"/> <ResGuestRPHs> <ResGuestRPH RPH="2"/> </ResGuestRPHs> <SpecialRequests> <SpecialRequest Name="smoking preference"> <Text>Smoking</Text> </SpecialRequest> </SpecialRequests> <PriceDetails> <GuestView> <Taxes> <Tax Amount="55" ChargeFrequency="12" Code="3" CurrencyCode="USD" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>City tax (5.5%)</Text> </TaxDescription> </Tax> <Tax Amount="90" ChargeFrequency="12" Code="17" CurrencyCode="USD" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>Tax (Withheld Tax) (8.50%)</Text> # Only applicable for properties located in a region where Booking.com is # obligated to withhold and remit taxes on behalf of the property. # Can contain as many withheld tax components as the local tax # regulation stipulates. </TaxDescription> </Tax> </Taxes> <Total Amount="1144675" DecimalPlaces="5"/> # Indicates the amount Booking.com collected from the guest during booking process </GuestView> <HotelView> <Taxes> <Tax Amount="55" ChargeFrequency="12" Code="3" CurrencyCode="USD" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>City tax (5.5%)</Text> </TaxDescription> </Tax> <Tax Amount="90" ChargeFrequency="12" Code="17" CurrencyCode="USD" DecimalPlaces="2" Type="Exclusive"> <TaxDescription> <Text>Tax (Withheld Tax) (8.50%)</Text> # Only applicable for properties located in a region where Booking.com is # obligated to withhold and remit taxes on behalf of the property. # Can contain as many withheld tax components as the local tax # regulation stipulates. </TaxDescription> </Tax> </Taxes> <Total Amount="1055" DecimalPlaces="2"/> # Indicates the total payout amount to the property </HotelView> </PriceDetails> </RoomStay> </RoomStays> <ResGuests> <ResGuest ResGuestRPH="1"> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <Surname>Taylor</Surname> </PersonName> </Customer> </Profile> </ProfileInfo> </Profiles> </ResGuest> <ResGuest ResGuestRPH="2"> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <Surname>Taylor</Surname> </PersonName> </Customer> </Profile> </ProfileInfo> </Profiles> </ResGuest> </ResGuests> <TPA_Extensions> <flags> <flag name="booker_is_genius"/> </flags> </TPA_Extensions> <ResGlobalInfo> <Comments> <Comment ParagraphNumber="1"> <Text>You have received a virtual credit card for this reservation.You may charge it as of 2024-03-30.</Text> </Comment> </Comments> <Guarantee> <GuaranteesAccepted> <GuaranteeAccepted> <PaymentCard CardCode="MC" CardNumber="****************" SeriesCode="**********" ExpireDate="**********" EffectiveDate="**********" CurrentBalance="2110" DecimalPlaces="2" CurrencyCode="USD" VCCExpirationDate="**********"> <CardHolderName>Bookingcom Agent</CardHolderName> </PaymentCard> </GuaranteeAccepted> </GuaranteesAccepted> </Guarantee> <Total AmountBeforeTax="2000" CurrencyCode="USD" DecimalPlaces="2"/> <HotelReservationIDs> <HotelReservationID ResID_Value="4787168583" ResID_Date="2024-03-28T14:24:22"/> </HotelReservationIDs> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <GivenName>Lucy</GivenName> <Surname>Taylor</Surname> </PersonName> <Telephone PhoneNumber="+31 6 14901111"/> <Email>lucy@guest.booking.com</Email> <Address> <AddressLine/> <CityName/> <PostalCode/> <CountryName Code="NL"/> <CompanyName/> </Address> </Customer> </Profile> </ProfileInfo> </Profiles> <DepositPayments> <GuaranteePayment GuaranteeType="PrePay"> <Description> <Text>payment_on_Booking.com (Payout type: Virtual credit card)</Text> </Description> <AmountPercent Amount="2110" Currency="USD" DecimalPlaces="2"/> </GuaranteePayment> </DepositPayments> </ResGlobalInfo> </HotelReservation> </HotelReservations> </OTA_HotelResNotifRQ>
OTA response using existing PCP feature with no withheld tax component
For the following reservation response examples, the property has the following setup with the existing Payments Clarity Package (vcc_payment_v2
) enabled:
- Room Price is €10 per night
- VAT of 18.00% is included
- City tax of 3.50% isn't included
- Bed linens fee of €5 per stay isn't included
Expand this section to view the OTA response example with the existing Payments Clarity Package (vcc_payment_v2
) enabled.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelResNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelResNotifRQ.xsd" TimeStamp="2024-03-25T16:07:38+00:00" Target="Production" Version="2.001"> <HotelReservations> <HotelReservation> <RoomStays> <RoomStay IndexNumber="515"> <RoomTypes> <RoomType RoomTypeCode="1070307502"> <RoomDescription Name="Deluxe Double Room with Mountain View - Flexible - 24 hours"> <Text/> <MealPlan>Breakfast costs EUR 14 per person per night. Dinner costs EUR 35 per person per night.</MealPlan> <MaxChildren>0</MaxChildren> </RoomDescription> </RoomType> </RoomTypes> <RatePlans> <RatePlan> <Commission> <CommissionPayableAmount Amount="0" DecimalPlaces="2" CurrencyCode="EUR"/> </Commission> </RatePlan> </RatePlans> <RoomRates> <RoomRate EffectiveDate="2024-03-27" RatePlanCode="38452247"> <Rates> <Rate> <Total AmountAfterTax="1000" CurrencyCode="EUR" DecimalPlaces="2"/> </Rate> </Rates> </RoomRate> <TPA_Extensions> <BookingCondition>Breakfast costs EUR 14 per person per night. Dinner costs EUR 35 per person per night. Children and Extra Bed Policy: Children of any age are allowed. You haven't added any cots. You haven't added any extra beds. The maximum number of guests is 2. Deposit Policy: The guest will be charged a prepayment of the total price of the reservation within 1 day before arrival. Cancellation Policy: The guest can cancel free of charge until 1 day before arrival. The guest will be charged the total price of the reservation if they cancel within 1 day before arrival. </BookingCondition> </TPA_Extensions> </RoomRates> <GuestCounts> <GuestCount Count="2"/> </GuestCounts> <CancelPenalties> <CancelPenalty PolicyCode="38" From="2024-03-25T16:05:26+00:00" Until="2024-03-25T23:00:00+00:00"> <AmountPercent Amount="0" DecimalPlaces="2" CurrencyCode="EUR"/> </CancelPenalty> <CancelPenalty PolicyCode="38" From="2024-03-25T23:00:00+00:00"> <AmountPercent Amount="1000" DecimalPlaces="2" CurrencyCode="EUR"/> </CancelPenalty> </CancelPenalties> <Total AmountAfterTax="1000" CurrencyCode="EUR" DecimalPlaces="2"> <Taxes Amount="683" CurrencyCode="EUR" DecimalPlaces="2"> <Tax Amount="500" ChargeFrequency="12" Code="14" CurrencyCode="EUR" DecimalPlaces="2" Type="Exclusive"> <TaxDescription> <Text>Bed linens fee</Text> </TaxDescription> </Tax> <Tax Amount="153" ChargeFrequency="12" Code="19" CurrencyCode="EUR" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>VAT (18%)</Text> </TaxDescription> </Tax> <Tax Amount="30" ChargeFrequency="12" Code="3" CurrencyCode="EUR" DecimalPlaces="2" Type="Exclusive"> <TaxDescription> <Text>City tax (3.5%)</Text> </TaxDescription> </Tax> </Taxes> </Total> <BasicPropertyInfo HotelCode="10703075"/> <ResGuestRPHs> <ResGuestRPH RPH="1"/> </ResGuestRPHs> <TPA_Extensions> <Occupancy>2</Occupancy> </TPA_Extensions> </RoomStay> </RoomStays> <ResGuests> <ResGuest ResGuestRPH="1"> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <GivenName>Matthew</GivenName> <Surname>Bradley</Surname> </PersonName> </Customer> </Profile> </ProfileInfo> </Profiles> </ResGuest> </ResGuests> <TPA_Extensions> <flags> <flag name="booker_is_genius"/> </flags> </TPA_Extensions> <ResGlobalInfo> <Comments> <Comment ParagraphNumber="1"> <Text>You have received a virtual credit card for this reservation.You may charge it as of 2024-03-28.</Text> </Comment> </Comments> <Guarantee> <GuaranteesAccepted> <GuaranteeAccepted> <PaymentCard CardCode="MC" CardNumber="****************" SeriesCode="********" ExpireDate="**********" EffectiveDate="**********" CurrentBalance="1530" DecimalPlaces="2" CurrencyCode="EUR" VCCExpirationDate="**********"> <CardHolderName>Bookingcom Agent</CardHolderName> </PaymentCard> </GuaranteeAccepted> </GuaranteesAccepted> </Guarantee> <Total AmountAfterTax="1000" CurrencyCode="EUR" DecimalPlaces="2"/> <HotelReservationIDs> <HotelReservationID ResID_Value="4609387145" ResID_Date="2024-03-25T16:05:26" ResID_Source="BOOKING.COM" ResID_Type="14" ResID_SourceContext="10703075"/> </HotelReservationIDs> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <GivenName>Matthew</GivenName> <Surname>Bradley</Surname> </PersonName> <Email>matthew@guest.booking.com</Email> <Address> <AddressLine/> <CityName/> <PostalCode/> <CountryName Code="GB"/> <CompanyName/> </Address> </Customer> </Profile> </ProfileInfo> </Profiles> <GuestCounts> <GuestCount Count="2" AgeQualifyingCode="10"/> </GuestCounts> <DepositPayments> <GuaranteePayment GuaranteeType="PrePay"> <Description> <Text>payment_on_Booking.com (Payout type: Virtual credit card)</Text> </Description> <AmountPercent Amount="1530" Currency="EUR" DecimalPlaces="2"/> </GuaranteePayment> </DepositPayments> <TotalCommissions> <CommissionPayableAmount Amount="0" DecimalPlaces="2" CurrencyCode="EUR"/> <Comment>This is the total commission amount calculated by Booking.com</Comment> </TotalCommissions> </ResGlobalInfo> </HotelReservation> </HotelReservations> </OTA_HotelResNotifRQ>
OTA response using the new PCP 2.0 feature with no withheld tax component
For the following response example, the property has the new Payments Clarity Package V2 (payment_clarity_package_v2
) enabled:
Expand this section to view the OTA response example with the new Payments Clarity Package V2 (payment_clarity_package_v2
) enabled.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelResNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelResNotifRQ.xsd" TimeStamp="2024-03-25T16:10:43+00:00" Target="Production" Version="2.001"> <HotelReservations> <HotelReservation> <RoomStays> <RoomStay IndexNumber="515"> <RoomTypes> <RoomType RoomTypeCode="1070307502"> <RoomDescription Name="Deluxe Double Room with Mountain View - Flexible - 24 hours"> <Text/> <MealPlan>Breakfast costs EUR 14 per person per night. Dinner costs EUR 35 per person per night.</MealPlan> <MaxChildren>0</MaxChildren> </RoomDescription> </RoomType> </RoomTypes> <RatePlans> <RatePlan> <Commission> <CommissionPayableAmount Amount="0" DecimalPlaces="2" CurrencyCode="EUR"/> </Commission> </RatePlan> </RatePlans> <RoomRates> <RoomRate EffectiveDate="2024-03-27" RatePlanCode="38452247"> <Rates> <Rate> <Total AmountAfterTax="1000" CurrencyCode="EUR" DecimalPlaces="2"/> </Rate> </Rates> </RoomRate> <TPA_Extensions> <BookingCondition>Breakfast costs EUR 14 per person per night. Dinner costs EUR 35 per person per night. Children and Extra Bed Policy: Children of any age are allowed. You haven't added any cots. You haven't added any extra beds. The maximum number of guests is 2. Deposit Policy: The guest will be charged a prepayment of the total price of the reservation within 1 day before arrival. Cancellation Policy: The guest can cancel free of charge until 1 day before arrival. The guest will be charged the total price of the reservation if they cancel within 1 day before arrival. </BookingCondition> </TPA_Extensions> </RoomRates> <GuestCounts> <GuestCount Count="2"/> </GuestCounts> <CancelPenalties> <CancelPenalty PolicyCode="38" From="2024-03-25T16:05:26+00:00" Until="2024-03-25T23:00:00+00:00"> <AmountPercent Amount="0" DecimalPlaces="2" CurrencyCode="EUR"/> </CancelPenalty> <CancelPenalty PolicyCode="38" From="2024-03-25T23:00:00+00:00"> <AmountPercent Amount="1000" DecimalPlaces="2" CurrencyCode="EUR"/> </CancelPenalty> </CancelPenalties> <Total AmountAfterTax="1000" CurrencyCode="EUR" DecimalPlaces="2"/> <BasicPropertyInfo HotelCode="10703075"/> <ResGuestRPHs> <ResGuestRPH RPH="1"/> </ResGuestRPHs> <TPA_Extensions> <Occupancy>2</Occupancy> </TPA_Extensions> <PriceDetails> <GuestView> <Taxes> <Tax Amount="500" ChargeFrequency="12" Code="14" CurrencyCode="EUR" DecimalPlaces="2" Type="Inclusive"> # Indicates fees/tax was collected from the guest during booking <TaxDescription> <Text>Bed linens fee</Text> </TaxDescription> </Tax> <Tax Amount="153" ChargeFrequency="12" Code="19" CurrencyCode="EUR" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>VAT (18%)</Text> </TaxDescription> </Tax> <Tax Amount="30" ChargeFrequency="12" Code="3" CurrencyCode="EUR" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>City tax (3.5%)</Text> </TaxDescription> </Tax> </Taxes> <Total Amount="152966101694915" DecimalPlaces="13"/> # Indicates the amount Booking.com collected from the guest during booking process </GuestView> <HotelView> <Taxes> <Tax Amount="500" ChargeFrequency="12" Code="14" CurrencyCode="EUR" DecimalPlaces="2" Type="Inclusive"> # Indicates fees/tax is included in the payout to the property <TaxDescription> <Text>Bed linens fee</Text> </TaxDescription> </Tax> <Tax Amount="153" ChargeFrequency="12" Code="19" CurrencyCode="EUR" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>VAT (18%)</Text> </TaxDescription> </Tax> <Tax Amount="30" ChargeFrequency="12" Code="3" CurrencyCode="EUR" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>City tax (3.5%)</Text> </TaxDescription> </Tax> </Taxes> <Total Amount="152966101694915" DecimalPlaces="13"/> # Indicates the total payout amount to the property </HotelView> </PriceDetails> </RoomStay> </RoomStays> <ResGuests> <ResGuest ResGuestRPH="1"> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <GivenName>Matthew</GivenName> <Surname>Bradley</Surname> </PersonName> </Customer> </Profile> </ProfileInfo> </Profiles> </ResGuest> </ResGuests> <TPA_Extensions> <flags> <flag name="booker_is_genius"/> </flags> </TPA_Extensions> <ResGlobalInfo> <Comments> <Comment ParagraphNumber="1"> <Text>You have received a virtual credit card for this reservation.You may charge it as of 2024-03-28.</Text> </Comment> </Comments> <Guarantee> <GuaranteesAccepted> <GuaranteeAccepted> <PaymentCard CardCode="MC" CardNumber="****************" SeriesCode="********" ExpireDate="********" EffectiveDate="********" CurrentBalance="1530" DecimalPlaces="2" CurrencyCode="EUR" VCCExpirationDate="**********"> <CardHolderName>Bookingcom Agent</CardHolderName> </PaymentCard> </GuaranteeAccepted> </GuaranteesAccepted> </Guarantee> <Total AmountAfterTax="1000" CurrencyCode="EUR" DecimalPlaces="2"/> <HotelReservationIDs> <HotelReservationID ResID_Value="4609387145" ResID_Date="2024-03-25T16:05:26" ResID_Source="BOOKING.COM" ResID_Type="14" ResID_SourceContext="10703075"/> </HotelReservationIDs> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <GivenName>Matthew</GivenName> <Surname>Bradley</Surname> </PersonName> <Email>matthew@guest.booking.com</Email> <Address> <AddressLine/> <CityName/> <PostalCode/> <CountryName Code="GB"/> <CompanyName/> </Address> </Customer> </Profile> </ProfileInfo> </Profiles> <GuestCounts> <GuestCount Count="2" AgeQualifyingCode="10"/> </GuestCounts> <DepositPayments> <GuaranteePayment GuaranteeType="PrePay"> <Description> <Text>payment_on_Booking.com (Payout type: Virtual credit card)</Text> </Description> <AmountPercent Amount="1530" Currency="EUR" DecimalPlaces="2"/> </GuaranteePayment> </DepositPayments> <TotalCommissions> <CommissionPayableAmount Amount="0" DecimalPlaces="2" CurrencyCode="EUR"/> <Comment>This is the total commission amount calculated by Booking.com</Comment> </TotalCommissions> </ResGlobalInfo> </HotelReservation> </HotelReservations> </OTA_HotelResNotifRQ>
Property on Payments by Booking using Bank transfer as payout
This section shows the current (with Payments Clarity Package (vcc_payment_v2
) feature enabled) and with the new Payments Clarity Package V2 (payment_clarity_package_v2
) feature enabled to help you compare the difference in behaviour. This section contains examples from both B.XML and OTA response examples based on the Bank transfer payment solution and with/without withheld tax in the response.
As we have included multiple response examples, to improve readability we have collapsed all examples. You can expand to see the examples of specific scenarios that you are interested in.
B.XML response on Bank transfer using the existing PCP feature with no withheld tax component
For the following response example, the property has the existing Payments Clarity Package (vcc_payment_v2
) enabled with the following configuration:
- Room Price is €10 per night
- VAT of 18.00% is included
- City tax of 3.50% isn't included
- Bed linens fee of €5 per stay isn't included
Expand this section to view the B.XML response example with the existing Payments Clarity Package (vcc_payment_v2
) enabled.
<reservations> <reservation> <commissionamount>0</commissionamount> <currencycode>EUR</currencycode> <customer> <address></address> <cc_current_balance>15.30</cc_current_balance> <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> <currencycode>EUR</currencycode> <dc_issue_number></dc_issue_number> <dc_start_date></dc_start_date> <email>john@guest.booking.com</email> <first_name>John</first_name> <last_name>Doe</last_name> <remarks>** THIS RESERVATION HAS BEEN PRE-PAID ** BOOKING NOTE : Payment charge is EUR 0.19885593220339</remarks> <telephone>+31 6 14901111</telephone> <zip></zip> </customer> <date>2024-04-02</date> <hotel_id>8407009</hotel_id> <hotel_name>Test Hotel</hotel_name> <id>4707766190</id> <reservation_extra_info> <flags> <flag name="booker_is_genius" /> </flags> <payer> <payments> <payment amount="15.30" currency="EUR" payment_type="payment_on_Booking.com" payout_type="BankTransfer" /> </payments> </payer> </reservation_extra_info> <room> <arrival_date>2024-04-26</arrival_date> <commissionamount>0</commissionamount> <currencycode>EUR</currencycode> <departure_date>2024-04-27</departure_date> <extra_info>The unit offers 1 bed.</extra_info> <facilities>Private bathroom</facilities> <guest_name>John Doe</guest_name> <id>840700903</id> <info>Breakfast costs EUR 14 per person per night. Children and Extra Bed Policy: Children of any age are allowed. You haven't added any cots. You haven't added any extra beds. The maximum number of guests is 6. Deposit Policy: The guest will be charged a prepayment of the total price of the reservation at any time. Cancellation Policy: The guest can cancel free of charge until 5 days before arrival. The guest will be charged the total price of the reservation if they cancel in the 5 days before arrival. </info> <max_children>0</max_children> <meal_plan>Breakfast costs EUR 14 per person per night.</meal_plan> <name>Apartment</name> <numberofguests>2</numberofguests> <price date="2024-04-26" genius_rate="no" rate_id="26551143" rewritten_from_id="0" rewritten_from_name="">10</price> <price_details> <guest> <extracomponent amount="5" currency="EUR" included="yes" per_night="no" per_person="no" percentage="no" text="Bed linens fee" /> <extracomponent amount="1.53" currency="EUR" included="yes" per_night="no" per_person="no" percentage="18%" text="VAT" /> <extracomponent amount="0.30" currency="EUR" included="yes" per_night="no" per_person="no" percentage="3.5%" text="City tax" /> <total>15.30</total> </guest> <hotel> <extracomponent amount="5" currency="EUR" included="no" per_night="no" per_person="no" percentage="no" text="Bed linens fee" /> <extracomponent amount="1.53" currency="EUR" included="yes" per_night="no" per_person="no" percentage="18%" text="VAT" /> <extracomponent amount="0.30" currency="EUR" included="no" per_night="no" per_person="no" percentage="3.5%" text="City tax" /> <total>10</total> </hotel> </price_details> <remarks></remarks> <roomreservation_id>4812158094</roomreservation_id> <smoking>0</smoking> <totalprice>10</totalprice> </room> <status>new</status> <time>16:35:19</time> <totalprice>10</totalprice> </reservation> </reservations>
B.XML response on Bank transfer using the new PCP 2.0 feature with no withheld tax component
For the following response example, the property has the new Payments Clarity Package V2 (payment_clarity_package_v2
) enabled with the following configuration:
- Room Price is €10 per night
- VAT of 18.00% is included
- City tax of 3.50% isn't included
- Bed linens fee of €5 per stay isn't included
Expand this section to view the B.XML response example with the new Payments Clarity Package V2 (payment_clarity_package_v2
) enabled.
<reservations> <reservation> <commissionamount>0</commissionamount> <currencycode>EUR</currencycode> <customer> <address></address> <cc_current_balance>15.30</cc_current_balance> <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> <currencycode>EUR</currencycode> <dc_issue_number></dc_issue_number> <dc_start_date></dc_start_date> <email>john@guest.booking.com</email> <first_name>John</first_name> <last_name>Doe</last_name> <remarks>** THIS RESERVATION HAS BEEN PRE-PAID ** BOOKING NOTE : Payment charge is EUR 0.19885593220339</remarks> <telephone>+31 6 14901111</telephone> <zip></zip> </customer> <date>2024-04-02</date> <hotel_id>8407009</hotel_id> <hotel_name>Test Hotel</hotel_name> <id>4707766190</id> <reservation_extra_info> <flags> <flag name="booker_is_genius" /> </flags> <payer> <payments> <payment amount="15.30" currency="EUR" payment_type="payment_on_Booking.com" payout_type="BankTransfer" /> </payments> </payer> </reservation_extra_info> <room> <arrival_date>2024-04-26</arrival_date> <commissionamount>0</commissionamount> <currencycode>EUR</currencycode> <departure_date>2024-04-27</departure_date> <extra_info>The unit offers 1 bed.</extra_info> <facilities>Private bathroom</facilities> <guest_name>John Doe</guest_name> <id>840700903</id> <info>Breakfast costs EUR 14 per person per night. Children and Extra Bed Policy: Children of any age are allowed. You haven't added any cots. You haven't added any extra beds. The maximum number of guests is 6. Deposit Policy: The guest will be charged a prepayment of the total price of the reservation at any time. Cancellation Policy: The guest can cancel free of charge until 5 days before arrival. The guest will be charged the total price of the reservation if they cancel in the 5 days before arrival. </info> <max_children>0</max_children> <meal_plan>Breakfast costs EUR 14 per person per night.</meal_plan> <name>Apartment</name> <numberofguests>2</numberofguests> <price date="2024-04-26" genius_rate="no" rate_id="26551143" rewritten_from_id="0" rewritten_from_name="">10</price> <price_details> <guest> <extracomponent amount="5" currency="EUR" included="yes" # Indicates fees/tax was collected from the guest during booking per_night="no" per_person="no" percentage="no" text="Bed linens fee" /> <extracomponent amount="1.53" currency="EUR" included="yes" per_night="no" per_person="no" percentage="18%" text="VAT" /> <extracomponent amount="0.30" currency="EUR" included="yes" per_night="no" per_person="no" percentage="3.5%" text="City tax" /> <total>15.30</total> # Indicates the amount Booking.com collected from the guest during booking process </guest> <hotel> <extracomponent amount="5" currency="EUR" included="yes" # Indicates fees/tax is included in the payout to the property per_night="no" per_person="no" percentage="no" text="Bed linens fee" /> <extracomponent amount="1.53" currency="EUR" included="yes" per_night="no" per_person="no" percentage="18%" text="VAT" /> <extracomponent amount="0.30" currency="EUR" included="yes" per_night="no" per_person="no" percentage="3.5%" text="City tax" /> <total>15.30</total> # Indicates the total payout amount to the property </hotel> </price_details> <remarks></remarks> <roomreservation_id>4812158094</roomreservation_id> <smoking>0</smoking> <totalprice>10</totalprice> </room> <status>new</status> <time>16:35:19</time> <totalprice>10</totalprice> </reservation> </reservations>
OTA response on Bank transfer using the existing PCP feature with no withheld tax component
For the following response example, the property has the existing Payments Clarity Package (vcc_payment_v2
) enabled with the following configuration:
- Room Price is €10 per night
- VAT of 18.00% is included
- City tax of 3.50% isn't included
- Bed linens fee of €5 per stay isn't included
Expand this section to view the OTA response example with the existing Payments Clarity Package (vcc_payment_v2
) enabled.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelResNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelResNotifRQ.xsd" TimeStamp="2024-04-02T14:36:22+00:00" Target="Production" Version="2.001"> <HotelReservations> <HotelReservation> <RoomStays> <RoomStay IndexNumber="94"> <RoomTypes> <RoomType RoomTypeCode="840700903"> <RoomDescription Name="Apartment - General"> <Text>The unit offers 1 bed.</Text> <MealPlan>Breakfast costs EUR 14 per person per night.</MealPlan> <MaxChildren>0</MaxChildren> </RoomDescription> <Amenities> <Amenity>Private bathroom</Amenity> </Amenities> </RoomType> </RoomTypes> <RatePlans> <RatePlan> <Commission> <CommissionPayableAmount Amount="0" DecimalPlaces="2" CurrencyCode="EUR"/> </Commission> </RatePlan> </RatePlans> <RoomRates> <RoomRate EffectiveDate="2024-04-26" RatePlanCode="26551143"> <Rates> <Rate> <Total AmountAfterTax="1000" CurrencyCode="EUR" DecimalPlaces="2"/> </Rate> </Rates> </RoomRate> <TPA_Extensions> <BookingCondition>Breakfast costs EUR 14 per person per night. Children and Extra Bed Policy: Children of any age are allowed. You haven't added any cots. You haven't added any extra beds. The maximum number of guests is 6. Deposit Policy: The guest will be charged a prepayment of the total price of the reservation at any time. Cancellation Policy: The guest can cancel free of charge until 5 days before arrival. The guest will be charged the total price of the reservation if they cancel in the 5 days before arrival. </BookingCondition> </TPA_Extensions> </RoomRates> <GuestCounts> <GuestCount Count="2"/> </GuestCounts> <Total AmountAfterTax="1000" CurrencyCode="EUR" DecimalPlaces="2"> <Taxes Amount="683" CurrencyCode="EUR" DecimalPlaces="2"> <Tax Amount="500" ChargeFrequency="12" Code="14" CurrencyCode="EUR" DecimalPlaces="2" Type="Exclusive"> <TaxDescription> <Text>Bed linens fee</Text> </TaxDescription> </Tax> <Tax Amount="153" ChargeFrequency="12" Code="19" CurrencyCode="EUR" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>VAT (18%)</Text> </TaxDescription> </Tax> <Tax Amount="30" ChargeFrequency="12" Code="3" CurrencyCode="EUR" DecimalPlaces="2" Type="Exclusive"> <TaxDescription> <Text>City tax (3.5%)</Text> </TaxDescription> </Tax> </Taxes> </Total> <BasicPropertyInfo HotelCode="8407009"/> <ResGuestRPHs> <ResGuestRPH RPH="1"/> </ResGuestRPHs> <SpecialRequests> <SpecialRequest Name="smoking preference"> <Text>Non-Smoking</Text> </SpecialRequest> </SpecialRequests> </RoomStay> </RoomStays> <ResGuests> <ResGuest ResGuestRPH="1"> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <Surname>John Doe</Surname> </PersonName> </Customer> </Profile> </ProfileInfo> </Profiles> </ResGuest> </ResGuests> <TPA_Extensions> <flags> <flag name="booker_is_genius"/> </flags> </TPA_Extensions> <ResGlobalInfo> <Comments> <Comment ParagraphNumber="1"> <Text>** THIS RESERVATION HAS BEEN PRE-PAID ** BOOKING NOTE : Payment charge is EUR 0.19885593220339</Text> </Comment> </Comments> <Total AmountAfterTax="1000" CurrencyCode="EUR" DecimalPlaces="2"/> <HotelReservationIDs> <HotelReservationID ResID_Value="4707766190" ResID_Date="2024-04-02T14:35:19"/> </HotelReservationIDs> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <GivenName>John</GivenName> <Surname>Doe</Surname> </PersonName> <Telephone PhoneNumber="+31 6 14901111"/> <Email>john@guest.booking.com</Email> <Address> <AddressLine/> <CityName/> <PostalCode/> <CountryName Code="NL"/> <CompanyName/> </Address> </Customer> </Profile> </ProfileInfo> </Profiles> <DepositPayments> <GuaranteePayment GuaranteeType="PrePay"> <Description> <Text>payment_on_Booking.com (Payout type: BankTransfer)</Text> </Description> <AmountPercent Amount="1530" Currency="EUR" DecimalPlaces="2"/> </GuaranteePayment> </DepositPayments> </ResGlobalInfo> </HotelReservation> </HotelReservations> </OTA_HotelResNotifRQ>
OTA response on Bank transfer using the new PCP 2.0 feature with no withheld tax component
For the following response example, the property has the new Payments Clarity Package V2 (payment_clarity_package_v2
) enabled with the following configuration:
- Room Price is €10 per night
- VAT of 18.00% is included
- City tax of 3.50% isn't included
- Bed linens fee of €5 per stay isn't included
Expand this section to view the OTA response example with the new Payments Clarity Package V2 (payment_clarity_package_v2
) enabled.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelResNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelResNotifRQ.xsd" TimeStamp="2024-04-02T14:38:44+00:00" Target="Production" Version="2.001"> <HotelReservations> <HotelReservation> <RoomStays> <RoomStay IndexNumber="94"> <RoomTypes> <RoomType RoomTypeCode="840700903"> <RoomDescription Name="Apartment - General"> <Text>The unit offers 1 bed.</Text> <MealPlan>Breakfast costs EUR 14 per person per night.</MealPlan> <MaxChildren>0</MaxChildren> </RoomDescription> <Amenities> <Amenity>Private bathroom</Amenity> </Amenities> </RoomType> </RoomTypes> <RatePlans> <RatePlan> <Commission> <CommissionPayableAmount Amount="0" DecimalPlaces="2" CurrencyCode="EUR"/> </Commission> </RatePlan> </RatePlans> <RoomRates> <RoomRate EffectiveDate="2024-04-26" RatePlanCode="26551143"> <Rates> <Rate> <Total AmountAfterTax="1000" CurrencyCode="EUR" DecimalPlaces="2"/> </Rate> </Rates> </RoomRate> <TPA_Extensions> <BookingCondition>Breakfast costs EUR 14 per person per night. Children and Extra Bed Policy: Children of any age are allowed. You haven't added any cots. You haven't added any extra beds. The maximum number of guests is 6. Deposit Policy: The guest will be charged a prepayment of the total price of the reservation at any time. Cancellation Policy: The guest can cancel free of charge until 5 days before arrival. The guest will be charged the total price of the reservation if they cancel in the 5 days before arrival. </BookingCondition> </TPA_Extensions> </RoomRates> <GuestCounts> <GuestCount Count="2"/> </GuestCounts> <Total AmountAfterTax="1000" CurrencyCode="EUR" DecimalPlaces="2"/> <BasicPropertyInfo HotelCode="8407009"/> <ResGuestRPHs> <ResGuestRPH RPH="1"/> </ResGuestRPHs> <SpecialRequests> <SpecialRequest Name="smoking preference"> <Text>Non-Smoking</Text> </SpecialRequest> </SpecialRequests> <PriceDetails> <GuestView> <Taxes> <Tax Amount="500" ChargeFrequency="12" Code="14" CurrencyCode="EUR" DecimalPlaces="2" Type="Inclusive"> # Indicates fees/tax was collected from the guest during booking <TaxDescription> <Text>Bed linens fee</Text> </TaxDescription> </Tax> <Tax Amount="153" ChargeFrequency="12" Code="19" CurrencyCode="EUR" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>VAT (18%)</Text> </TaxDescription> </Tax> <Tax Amount="30" ChargeFrequency="12" Code="3" CurrencyCode="EUR" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>City tax (3.5%)</Text> </TaxDescription> </Tax> </Taxes> <Total Amount="152966101694915" DecimalPlaces="13"/> # Indicates the amount Booking.com collected from the guest during booking process </GuestView> <HotelView> <Taxes> <Tax Amount="500" ChargeFrequency="12" Code="14" CurrencyCode="EUR" DecimalPlaces="2" Type="Inclusive"> # Indicates fees/tax is included in the payout to the property <TaxDescription> <Text>Bed linens fee</Text> </TaxDescription> </Tax> <Tax Amount="153" ChargeFrequency="12" Code="19" CurrencyCode="EUR" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>VAT (18%)</Text> </TaxDescription> </Tax> <Tax Amount="30" ChargeFrequency="12" Code="3" CurrencyCode="EUR" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>City tax (3.5%)</Text> </TaxDescription> </Tax> </Taxes> <Total Amount="152966101694915" DecimalPlaces="13"/> # Indicates the total payout amount to the property </HotelView> </PriceDetails> </RoomStay> </RoomStays> <ResGuests> <ResGuest ResGuestRPH="1"> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <Surname>John Doe</Surname> </PersonName> </Customer> </Profile> </ProfileInfo> </Profiles> </ResGuest> </ResGuests> <TPA_Extensions> <flags> <flag name="booker_is_genius"/> </flags> </TPA_Extensions> <ResGlobalInfo> <Comments> <Comment ParagraphNumber="1"> <Text>** THIS RESERVATION HAS BEEN PRE-PAID ** BOOKING NOTE : Payment charge is EUR 0.19885593220339</Text> </Comment> </Comments> <Total AmountAfterTax="1000" CurrencyCode="EUR" DecimalPlaces="2"/> <HotelReservationIDs> <HotelReservationID ResID_Value="4707766190" ResID_Date="2024-04-02T14:35:19"/> </HotelReservationIDs> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <GivenName>John</GivenName> <Surname>Doe</Surname> </PersonName> <Telephone PhoneNumber="+31 6 14901111"/> <Email>john@guest.booking.com</Email> <Address> <AddressLine/> <CityName/> <PostalCode/> <CountryName Code="NL"/> <CompanyName/> </Address> </Customer> </Profile> </ProfileInfo> </Profiles> <DepositPayments> <GuaranteePayment GuaranteeType="PrePay"> <Description> <Text>payment_on_Booking.com (Payout type: BankTransfer)</Text> </Description> <AmountPercent Amount="1530" Currency="EUR" DecimalPlaces="2"/> </GuaranteePayment> </DepositPayments> </ResGlobalInfo> </HotelReservation> </HotelReservations> </OTA_HotelResNotifRQ>
Agency booking response examples
The following response examples list the B.XML and OTA response for agency booking using both the existing and the new PCP 2.0 features.
Agency booking B.XML response using the existing PCP feature
For the following response example, the property has the existing Payments Clarity Package (vcc_payment_v2
) enabled with the following configuration:
- Room Price is €10 per night
- VAT of 5.00% is included
- City tax of 2.50% isn't included
Expand this section to view the B.XML response example with the existing Payments Clarity Package (vcc_payment_v2
) enabled.
<reservations> <reservation> <commissionamount>0</commissionamount> <currencycode>EUR</currencycode> <customer> <address></address> <cc_cvc>********</cc_cvc> <cc_expiration_date>********</cc_expiration_date> <cc_name>Jennifer Oman</cc_name> <cc_number>********</cc_number> <cc_type>Visa</cc_type> <city></city> <company></company> <countrycode>NL</countrycode> <dc_issue_number></dc_issue_number> <dc_start_date></dc_start_date> <email>jennifer@guest.booking.com</email> <first_name>Jennifer</first_name> <last_name>Oman</last_name> <remarks></remarks> <telephone>+31 6 14901111</telephone> <zip></zip> </customer> <date>2024-04-02</date> <hotel_id>4889129</hotel_id> <hotel_name>Test Hotel</hotel_name> <id>4476717092</id> <reservation_extra_info> <flags> <flag name="booker_is_genius" /> </flags> </reservation_extra_info> <room> <arrival_date>2024-04-07</arrival_date> <commissionamount>0</commissionamount> <currencycode>EUR</currencycode> <departure_date>2024-04-08</departure_date> <extra_info></extra_info> <facilities></facilities> <guest_name>Jennifer Oman</guest_name> <id>488912902</id> <info>Full board is included in the room rate. Children and Extra Bed Policy: Children of any age are allowed. You haven't added any cots. You haven't added any extra beds. The maximum number of guests is 0. Deposit Policy: No prepayment is needed. Cancellation Policy: The guest can cancel free of charge until 14:00 on the day of arrival. The guest will be charged the cost of the first night if they cancel after 14:00 on the day of arrival. </info> <max_children>0</max_children> <meal_plan>Full board is included in the room rate.</meal_plan> <name>Double Room</name> <numberofguests>2</numberofguests> <price date="2024-04-07" genius_rate="no" rate_id="20766042" rewritten_from_id="0" rewritten_from_name="">10</price> <price_details> <guest> <extracomponent amount="0.48" currency="EUR" included="yes" per_night="no" per_person="no" percentage="5%" text="VAT" /> <extracomponent amount="0.24" currency="EUR" included="yes" per_night="no" per_person="no" percentage="2.5%" text="City tax" /> <total>10.24</total> </guest> <hotel> <extracomponent amount="0.48" currency="EUR" included="yes" per_night="no" per_person="no" percentage="5%" text="VAT" /> <extracomponent amount="0.24" currency="EUR" included="no" per_night="no" per_person="no" percentage="2.5%" text="City tax" /> <total>10</total> </hotel> </price_details> <remarks></remarks> <roomreservation_id>4812008729</roomreservation_id> <smoking>0</smoking> <totalprice>10</totalprice> </room> <status>new</status> <time>15:12:44</time> <totalprice>10</totalprice> </reservation> </reservations>
Agency booking B.XML response using the new PCP 2.0 feature
For the following response example, the property has the new Payments Clarity Package V2 (payment_clarity_package_v2
) enabled with the following configuration:
- Room Price is €10 per night
- VAT of 5.00% is included
- City tax of 2.50% isn't included
Expand this section to view the B.XML response example with the new Payments Clarity Package V2 (payment_clarity_package_v2
) enabled.
<reservations> <reservation> <commissionamount>0</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>Visa</cc_type> <city></city> <company></company> <countrycode>NL</countrycode> <dc_issue_number></dc_issue_number> <dc_start_date></dc_start_date> <email>jennifer@guest.booking.com</email> <first_name>Jennifer</first_name> <last_name>Oman</last_name> <remarks></remarks> <telephone>+31 6 14901111</telephone> <zip></zip> </customer> <date>2024-04-02</date> <hotel_id>4889129</hotel_id> <hotel_name>Test Hotel</hotel_name> <id>4476717092</id> <reservation_extra_info> <flags> <flag name="booker_is_genius" /> </flags> </reservation_extra_info> <room> <arrival_date>2024-04-07</arrival_date> <commissionamount>0</commissionamount> <currencycode>EUR</currencycode> <departure_date>2024-04-08</departure_date> <extra_info></extra_info> <facilities></facilities> <guest_name>Jennifer Oman</guest_name> <id>488912902</id> <info>Full board is included in the room rate. Children and Extra Bed Policy: Children of any age are allowed. You haven't added any cots. You haven't added any extra beds. The maximum number of guests is 0. Deposit Policy: No prepayment is needed. Cancellation Policy: The guest can cancel free of charge until 14:00 on the day of arrival. The guest will be charged the cost of the first night if they cancel after 14:00 on the day of arrival. </info> <max_children>0</max_children> <meal_plan>Full board is included in the room rate.</meal_plan> <name>Double Room</name> <numberofguests>2</numberofguests> <price date="2024-04-07" genius_rate="no" rate_id="20766042" rewritten_from_id="0" rewritten_from_name="">10</price> <price_details> <guest> <extracomponent amount="0.48" currency="EUR" included="yes" per_night="no" per_person="no" percentage="5%" text="VAT" /> <extracomponent amount="0.24" currency="EUR" included="yes" per_night="no" per_person="no" percentage="2.5%" text="City tax" /> <total>10.24</total> </guest> <hotel> <extracomponent amount="0.48" currency="EUR" included="yes" per_night="no" per_person="no" percentage="5%" text="VAT" /> <extracomponent amount="0.24" currency="EUR" included="yes" per_night="no" per_person="no" percentage="2.5%" text="City tax" /> <total>10.24</total> </hotel> </price_details> <remarks></remarks> <roomreservation_id>4812008729</roomreservation_id> <smoking>0</smoking> <totalprice>10</totalprice> </room> <status>new</status> <time>15:12:44</time> <totalprice>10</totalprice> </reservation> </reservations>
Agency booking OTA response using existing PCP feature
For the following response example, the property has the existing Payments Clarity Package (vcc_payment_v2
) enabled with the following configuration:
- Room Price is €10 per night
- VAT of 5.00% is included
- City tax of 2.50% isn't included
Expand this section to view the OTA response example with the existing Payments Clarity Package (vcc_payment_v2
) enabled.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelResNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelResNotifRQ.xsd" TimeStamp="2024-04-02T13:26:50+00:00" Target="Production" Version="2.001"> <HotelReservations> <HotelReservation> <RoomStays> <RoomStay IndexNumber="532"> <RoomTypes> <RoomType RoomTypeCode="488912902"> <RoomDescription Name="Double Room - General - Breakfast included,Lunch included,Dinner included"> <Text/> <MealPlan>Full board is included in the room rate.</MealPlan> <MaxChildren>0</MaxChildren> </RoomDescription> </RoomType> </RoomTypes> <RatePlans> <RatePlan> <Commission> <CommissionPayableAmount Amount="0" DecimalPlaces="2" CurrencyCode="EUR"/> </Commission> </RatePlan> </RatePlans> <RoomRates> <RoomRate EffectiveDate="2024-04-04" RatePlanCode="20766042"> <Rates> <Rate> <Total AmountAfterTax="1000" CurrencyCode="EUR" DecimalPlaces="2"/> </Rate> </Rates> </RoomRate> <TPA_Extensions> <BookingCondition>Full board is included in the room rate. Children and Extra Bed Policy: Children of any age are allowed. You haven't added any cots. You haven't added any extra beds. The maximum number of guests is 0. Deposit Policy: No prepayment is needed. Cancellation Policy: The guest can cancel free of charge until 14:00 on the day of arrival. The guest will be charged the cost of the first night if they cancel after 14:00 on the day of arrival. </BookingCondition> </TPA_Extensions> </RoomRates> <GuestCounts> <GuestCount Count="2"/> </GuestCounts> <Total AmountAfterTax="1000" CurrencyCode="EUR" DecimalPlaces="2"> <Taxes Amount="72" CurrencyCode="EUR" DecimalPlaces="2"> <Tax Amount="48" ChargeFrequency="12" Code="19" CurrencyCode="EUR" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>VAT (5%)</Text> </TaxDescription> </Tax> <Tax Amount="24" ChargeFrequency="12" Code="3" CurrencyCode="EUR" DecimalPlaces="2" Type="Exclusive"> <TaxDescription> <Text>City tax (2.5%)</Text> </TaxDescription> </Tax> </Taxes> </Total> <BasicPropertyInfo HotelCode="4889129"/> <ResGuestRPHs> <ResGuestRPH RPH="1"/> </ResGuestRPHs> <SpecialRequests> <SpecialRequest Name="smoking preference"> <Text>Non-Smoking</Text> </SpecialRequest> </SpecialRequests> </RoomStay> </RoomStays> <ResGuests> <ResGuest ResGuestRPH="1"> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <Surname>Jennifer Oman</Surname> </PersonName> </Customer> </Profile> </ProfileInfo> </Profiles> </ResGuest> </ResGuests> <TPA_Extensions> <flags> <flag name="booker_is_genius"/> </flags> </TPA_Extensions> <ResGlobalInfo> <Guarantee> <GuaranteesAccepted> <GuaranteeAccepted> <PaymentCard CardCode="VI" CardNumber="********" SeriesCode="********" ExpireDate="********"> <CardHolderName>Jennifer Oman</CardHolderName> </PaymentCard> </GuaranteeAccepted> </GuaranteesAccepted> </Guarantee> <Total AmountAfterTax="1000" CurrencyCode="EUR" DecimalPlaces="2"/> <HotelReservationIDs> <HotelReservationID ResID_Value="4940133196" ResID_Date="2024-04-02T13:25:46"/> </HotelReservationIDs> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <GivenName>Jennifer</GivenName> <Surname>Oman</Surname> </PersonName> <Telephone PhoneNumber="+31 6 14901111"/> <Email>jennifer@guest.booking.com</Email> <Address> <AddressLine/> <CityName/> <PostalCode/> <CountryName Code="NL"/> <CompanyName/> </Address> </Customer> </Profile> </ProfileInfo> </Profiles> </ResGlobalInfo> </HotelReservation> </HotelReservations> </OTA_HotelResNotifRQ>
Agency booking OTA response using the new PCP 2.0 feature
For the following response example, the property has the new Payments Clarity Package V2 (payment_clarity_package_v2
) enabled with the following configuration:
- Room Price is €10 per night
- VAT of 5.00% is included
- City tax of 2.50% isn't included
Expand this section to view the OTA response example with the new Payments Clarity Package V2 (payment_clarity_package_v2
) enabled.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelResNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelResNotifRQ.xsd" TimeStamp="2024-04-02T13:29:51+00:00" Target="Production" Version="2.001"> <HotelReservations> <HotelReservation> <RoomStays> <RoomStay IndexNumber="532"> <RoomTypes> <RoomType RoomTypeCode="488912902"> <RoomDescription Name="Double Room - General - Breakfast included,Lunch included,Dinner included"> <Text/> <MealPlan>Full board is included in the room rate.</MealPlan> <MaxChildren>0</MaxChildren> </RoomDescription> </RoomType> </RoomTypes> <RatePlans> <RatePlan> <Commission> <CommissionPayableAmount Amount="0" DecimalPlaces="2" CurrencyCode="EUR"/> </Commission> </RatePlan> </RatePlans> <RoomRates> <RoomRate EffectiveDate="2024-04-04" RatePlanCode="20766042"> <Rates> <Rate> <Total AmountAfterTax="1000" CurrencyCode="EUR" DecimalPlaces="2"/> </Rate> </Rates> </RoomRate> <TPA_Extensions> <BookingCondition>Full board is included in the room rate. Children and Extra Bed Policy: Children of any age are allowed. You haven't added any cots. You haven't added any extra beds. The maximum number of guests is 0. Deposit Policy: No prepayment is needed. Cancellation Policy: The guest can cancel free of charge until 14:00 on the day of arrival. The guest will be charged the cost of the first night if they cancel after 14:00 on the day of arrival. </BookingCondition> </TPA_Extensions> </RoomRates> <GuestCounts> <GuestCount Count="2"/> </GuestCounts> <Total AmountAfterTax="1000" CurrencyCode="EUR" DecimalPlaces="2"/> <BasicPropertyInfo HotelCode="4889129"/> <ResGuestRPHs> <ResGuestRPH RPH="1"/> </ResGuestRPHs> <SpecialRequests> <SpecialRequest Name="smoking preference"> <Text>Non-Smoking</Text> </SpecialRequest> </SpecialRequests> <PriceDetails> <GuestView> <Taxes> <Tax Amount="48" ChargeFrequency="12" Code="19" CurrencyCode="EUR" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>VAT (5%)</Text> </TaxDescription> </Tax> <Tax Amount="24" ChargeFrequency="12" Code="3" CurrencyCode="EUR" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>City tax (2.5%)</Text> </TaxDescription> </Tax> </Taxes> <Total Amount="102380952380952" DecimalPlaces="13"/> </GuestView> <HotelView> <Taxes> <Tax Amount="48" ChargeFrequency="12" Code="19" CurrencyCode="EUR" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>VAT (5%)</Text> </TaxDescription> </Tax> <Tax Amount="24" ChargeFrequency="12" Code="3" CurrencyCode="EUR" DecimalPlaces="2" Type="Inclusive"> <TaxDescription> <Text>City tax (2.5%)</Text> </TaxDescription> </Tax> </Taxes> <Total Amount="102380952380952" DecimalPlaces="13"/> </HotelView> </PriceDetails> </RoomStay> </RoomStays> <ResGuests> <ResGuest ResGuestRPH="1"> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <Surname>Jennifer Oman</Surname> </PersonName> </Customer> </Profile> </ProfileInfo> </Profiles> </ResGuest> </ResGuests> <TPA_Extensions> <flags> <flag name="booker_is_genius"/> </flags> </TPA_Extensions> <ResGlobalInfo> <Guarantee> <GuaranteesAccepted> <GuaranteeAccepted> <PaymentCard CardCode="VI" CardNumber="********" SeriesCode="********" ExpireDate="********"> <CardHolderName>Jennifer Oman</CardHolderName> </PaymentCard> </GuaranteeAccepted> </GuaranteesAccepted> </Guarantee> <Total AmountAfterTax="1000" CurrencyCode="EUR" DecimalPlaces="2"/> <HotelReservationIDs> <HotelReservationID ResID_Value="4940133196" ResID_Date="2024-04-02T13:25:46"/> </HotelReservationIDs> <Profiles> <ProfileInfo> <Profile> <Customer> <PersonName> <GivenName>Jennifer</GivenName> <Surname>Oman</Surname> </PersonName> <Telephone PhoneNumber="+31 6 14901111"/> <Email>jennifer@guest.booking.com</Email> <Address> <AddressLine/> <CityName/> <PostalCode/> <CountryName Code="NL"/> <CompanyName/> </Address> </Customer> </Profile> </ProfileInfo> </Profiles> </ResGlobalInfo> </HotelReservation> </HotelReservations> </OTA_HotelResNotifRQ>
Testing Payments Clarity Package V2
You can test the feature by adding a Features
header and specifying the feature key: payment_clarity_package_v2
along with the Reservations API requests.
For providers who manage properties located in a region where Booking.com is obligated to withhold and remit taxes on behalf of the property: Before testing this feature you need to fulfill certain additional requirements. For more information, contact the Connectivity Support team.
You can also use the new header with other parameters such as id
(reservation ID). This enables you to request an existing reservation with the feature header to see and compare the changes the feature brings.
For example, you can send a cURL request by adding the header as follows:
curl -X GET -H "Authorization: Basic xxXXxx" -H "Features: payment_clarity_package_v2" -H "Cache-Control: no-cache" URL
(Note: Replace URL
with the URL of requests you want to test the feature on.)
Changes to the Market insights API error handling
We are changing how we return error code responses in the Market insights API. To follow the new Online Travel Agency(OTA) standards in processing error codes, the Market Insights API will return OTA error codes in place of error strings.
Instead of a string value in the [Old] Error Code
column, the API returns a numeric value as specified in the [New] OTA Error Code
column. The API returns the old message
values in the Description
field.
HTTP Error Code | [Old] Error Code | [New] OTA Error Code | Message | Description | Reason and Possible Fix |
---|---|---|---|---|---|
HTTP 400 Bad Request | FORBIDDEN | 450 | Unable to process. | Can be one of the following: - The property is not eligible for retrieving demand data - The provider is not eligible for retrieving demand data - This account doesn't have access to this property | Can occur due to one of the following reasons: - Incorrect endpoint URL/HTTP method or invalid JSON body. Make sure to use the correct endpoint URL/HTTP method or check if the request has a valid JSON body. |
For more information on the Market insights API, see Analysing Booking.com guests' demand data.
Changes to the LOS pricing endpoint
The following improvements are rolled out to the /hotels/csv/los_pricing
endpoint v1.1. We plan to deprecate v1.0 of the hotels/csv/los_pricing
endpoint. For the deprecation and sunset timeline, see the Deprecation and sunsetting topic.
The changes outlined in this section are applicable only when using the hotels/csv/los_pricing
endpoint with a special header parameter. The following section covers only the changes available in v1.1. For a detailed explanation of the hotels/csv/los_pricing
endpoint, see [Create or update LOS pricing rates.] (/connectivity/docs/csv-los_pricing.md)
The following are the changes implemented in the v1.1 hotels/csv/los_pricing
endpoint:
- The occupancy value cannot exceed the value set in the
MaxAdultOccupancy
. Specifying the maximum occupancy value (MaxOccupancy
) in v 1.0 doesn't return a warning. Whereas, in v 1.1 the endpoint returns a warning. Make sure to specify a value not exceeding theMaxAdultOccupancy
value. - If the specified price per night exceeds the maximum price (€50000 or equivalent), then the API rejects the price update request. This differs from the previous behaviour: where the API sets the price to 0 and automatically closes the room.
- While setting up pricing for an inventory using rate IDs that are configured as child rates, make sure the request doesn't set values for fields that are configured to inherit from the parent rate plan. For example, if you try to set a price for a child rate while the child rate is configured to follow price, the API returns a partial success response with an error message. To resolve the error, specify a rate plan ID that is either configured as a parent rate, or a child rate that does not have the
FollowsPrice
restriction set. - Accepts past date updates up to 1 day in the past (follows Central European Time (CET) timezone). Updates more than 1 day in the past returns a
NOT_A_VALID_DATE
error. - Some existing error messages were improved for better clarity. For a list of all the error message changes see changes to existing error messages.
Header parameter
Header | Description | Type | Required/ Optional | Notes |
---|---|---|---|---|
Accept-Version | Specify the version number to get the API functionality specific to that version. | string | optional | Supports the following values: - 1.1: New version. - 1.0: Previous version. |
Sample header
POST 'https://supply-xml.booking.com/hotels/csv/los_pricing' \ --header 'Accept-Version: 1.1' \ --header 'Authorization: Basic THVjLVNhbXVlbMblmRAdlOCghQ29qaU9pNmxlWSpIWXU9OigvS2meQpQ12puj' \ --header 'Content-Type: application/csv'
HTTP error code behaviour on v1.1 los_pricing
With the v1.1 of the los_pricing
endpoint, we have standardised the treatment of the HTTP error codes. The following table captures all the common conditions and the HTTP error codes that the v1.1 endpoint returns.
If the endpoint encounters | The endpoint returns |
---|---|
Incorrect username or password. | HTTP 401 |
Schema validations such as invalid integer, date. | HTTP 400 |
All updates with errors. | HTTP 400 |
At least one successful update. | HTTP 200 in addition to errors or warnings, if any. |
All updates are unauthorized. | HTTP 403 |
Changes to existing behaviour
When you migrate to v1.1 of the los_pricing
endpoint, you can see the following change in the API behaviour:
Existing API behaviour (v1.0) | New API behaviour (v1.1) |
---|---|
Accepts the maximum occupancy value (MaxOccupancy ) set for the room type. | Does not accept the MaxOccupancy value of the room type. Make sure to specify a value not exceeding the value set for MaxAdultOccupancy of the room. Otherwise, the API returns the following warning: los_pricing,400,Errors occurred while processing your changes: OCCUPANCY_EXCEEDS_MAX_PERSONS,Room '{room-ID}' has a maximum occupancy of '7'. You cannot set price for higher occupancy for rate '{rate-ID}'. |
Accepts update for child rates. | While setting up availability using rate IDs that are configured as child rates, make sure the request doesn't set values for fields that are configured to inherit from the parent rate plan. For example, if you try to set a value for MinAdvancedBookingOffset restrictions for a child rate while the child rate is configured to follow restrictions, the API returns a partial success response with an error message. To resolve the error, specify a rate plan ID that is either configured as a parent rate, or a child rate that does not have the following restrictions: FollowsPrice , or FollowsRestrictions . Similar to the v1.0 behaviour, the above constraint does not apply to the FollowsClosed restriction. While creating availability using a child rate ID, you can update the status of the room type to open or close, irrespective of the value set in FollowsClosed . However, if an availability is set using a parent rate along with open/close information, then the room type status for the associated child rate is also updated. To reiterate, there is no change to the FollowsClosed restriction behaviour. |
Accepts past date updates. | Accepts past date updates up to 1 day in the past (follows Central European Time (CET) timezone). Updates more than 1 day in the past returns a NOT_A_VALID_DATE error. |
Accepts duplicate date updates. | Does not accept duplicate date updates. The API now returns WARN_DUPLICATE_DATES warning. |
On authorisation errors, the API returns HOTEL_NOT_ALLOWED_FOR_CONNECTION_TYPE error. | On authorisation errors, the API now returns HOTEL_ACCESS_DENIED error. |
Changes to the OTA_HotelRateAmountNotif endpoint
The following improvements are rolled out to the OTA_HotelRateAmountNotif
endpoint. We plan to deprecate v1.0 of the OTA_HotelRateAmountNotif
endpoint by 31 January 2024 11:00 am CEST with a planned sunset date of February 14, 2024. For more information on the deprecation timeline, see the Deprecation and sunsetting topic.
The changes outlined in this section are applicable only when using the OTA_HotelRateAmountNotif
endpoint with a special header parameter. The following section covers only the changes available in v1.1. For a detailed explanation of the OTA_HotelRateAmountNotif
endpoint, see Create or update rates.
When migrating to the v1.1 OTA_HotelRateAmountNotif
endpoint, you get:
Header parameter
Header | Description | Type | Required/ Optional | Notes |
---|---|---|---|---|
Accept-Version | Specify the version number to get the API functionality specific to that version. | string | optional | Supports the following values: - 1.1: New version. - 1.0: Previous version. |
Sample header
POST 'https://supply-xml.booking.com/hotels/ota/OTA_HotelRateAmountNotif' \ --header 'Accept-Version: 1.1' \ --header 'Authorization: Basic THVjLVNhbXVlbMblhWTdlOCghQ29qaU9pNmxlWSpIWXU9OigvS2meQpQ12puj' \ --header 'Content-Type: application/xml'
Sample request
The following example is to set price per rate/room/date for a property using Occupancy based pricing type. Note: If only a few weekdays are marked as true
then the API marks the other days as false
. However, if some weekdays are marked as false
, then the API considers this as sending none as true
and therefore marks all weekdays as true
.
<OTA_HotelRateAmountNotifRQ> <RateAmountMessages> <RateAmountMessage LocatorID="1"> <StatusApplicationControl Sat="true" Sun="true" Start="2023-11-19" End="2023-12-20" RatePlanCode="25278032" InvTypeCode="801185512" /> <Rates> <Rate MinLOS="1" MaxLOS="1" RateTimeUnit="Day" UnitMultiplier="1" MinGuestApplicable="1" MaxGuestApplicable="4"> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="3800" DecimalPlaces="2" NumberOfGuests="4" CurrencyCode="EUR" /> </BaseByGuestAmts> <AdditionalGuestAmounts> <AdditionalGuestAmount AgeBucketID="1" AdditionalGuestNumber="1" Amount="0.01" DecimalPlaces="0" AgeQualifyingCode="8" /> <AdditionalGuestAmount MinAge="2" MaxAge="5" AdditionalGuestNumber="1" Percent="5" DecimalPlaces="0" AgeQualifyingCode="8" /> </AdditionalGuestAmounts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Sample response
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelRateAmountNotifRS.xsd" TimeStamp="2023-10-12T11:34:06-00:00" Target="Production" Version="1.006"> <Success /> </OTA_HotelRateAmountNotifRS>
Sample error response
<OTA_HotelRateAmountNotifRS> <Errors> <Error Code="RATE_NOT_ACTIVE_FOR_ROOM" ShortText="Rate '18858134' is not active for room '28301'" Details="rate_ids: 18134; dates: 2024-04-11,2024-04-12; hotel_ids: 2783; room_ids: 28301;"/> </Errors> </OTA_HotelRateAmountNotifRS>
Changes to the OTA_HotelRateAmountNotif behaviour
The following are the changes implemented in the v1.1 OTA_HotelRateAmountNotif
endpoint:
- If the specified price per night exceeds the maximum price (€50000 or equivalent), then the API rejects the price update request. This differs from the previous behaviour: where the API sets the price to 0 and automatically closes the room.
- While setting up price per rate, room and date combination using rate IDs that are configured as child rates, make sure the request doesn't set values for fields that are configured to inherit from the parent rate plan. For example, if you try to set a price for a child rate while the child rate is configured to follow price, the API returns a partial success response with an error message. To resolve the error, specify a rate plan ID that is either configured as a parent rate, or a child rate that does not have the
FollowsPrice
restriction set. - When setting decimal prices, you must use the period decimal separator and not the comma separator. For example, 75.50 is a valid price definition whereas 75,50 returns an HTTP 400 status error.
- Accepts past date updates up to 1 day in the past (follows Central European Time (CET) timezone). Updates more than 1 day in the past returns a
NOT_A_VALID_DATE
error. - It is recommended to use the
NumberOfGuests
attribute instead of theMinGuestApplicable
andMaxGuestApplicable
attributes.
Header parameter
Header | Description | Type | Required/ Optional | Notes |
---|---|---|---|---|
Accept-Version | Specify the version number to get the API functionality specific to that version. | string | optional | Supports the following values: - 1.1: New version. - 1.0: Previous version. |
Sample header
POST 'https://supply-xml.booking.com/ota/OTA_HotelRateAmountNotif' \ --header 'Accept-Version: 1.1' \ --header 'Authorization: Basic THVjLVNhbXVlbMblmRAdlOCghQ29qaU9pNmxlWSpIWXU9OigvS2meQpQ12puj' \ --header 'Content-Type: application/xml'
HTTP error code behaviour on v1.1 OTA_HotelRateAmountNotif
With the v1.1 of the OTA_HotelRateAmountNotif
endpoint, we have standardised the treatment of the HTTP error codes. The following table captures all the common conditions and the HTTP error codes that the v1.1 endpoint returns.
If the endpoint encounters | The endpoint returns |
---|---|
Incorrect username or password. | HTTP 401 |
Schema validations such as invalid integer, date. | HTTP 400 |
All updates with errors. | HTTP 400 |
At least one successful update. | HTTP 200 in addition to errors or warnings, if any. |
All updates are unauthorized. | HTTP 403 |
New warnings on v1.1
The following table summarises the new warnings for the OTA_HotelRateAmountNotif
endpoint.
New error code | Error message | Notes |
---|---|---|
WARN_UNPROCESSED_ADDITIONAL_GUEST | Additional guest updates weren't processed. Please try again later. | |
WARN_DUPLICATE_DATES | Request contains duplicate dates, we have applied only the first occurrence. |
New error codes on v1.1
The following table summarises the new error codes for the OTA_HotelRateAmountNotif
endpoint.
Error code | Error message | Notes |
---|---|---|
ROOM_ID_MISSING | Room ID is missing | Room ID is required for the request. |
ROOM_ELEMENT_REQUIRED | Room is missing | The request contains an empty request body. |
FROM_DATE_SHOULD_BE_LESS_THAN_TO_DATE | From date should be less than or equal To Date | The From date should be less than or equal to the To date. |
LOS_PRICING_PASSED_FOR_OBP_RATE | LOS pricing format sent for OBP room-rate | The request contains pricing information in LOS pricing format. However, the property is set to OBP pricing type. |
LOS_PRICING_PASSED_FOR_DEFAULT_RATE | LOS pricing format sent for Standard room-rate | The request contains pricing information in LOS pricing format. However, the property is set to Standard pricing type. |
OBP_PRICING_PASSED_FOR_DEFAULT_RATE | OBP format sent for Standard room-rate | The request contains pricing information in OBP pricing format. However, the property is set to Standard pricing type. |
CANT_SET_PERCENTAGE_FOR_OBP_LOS | Cannot set percentage for OBP/LOS room-rate | The request is trying to send percentage pricing for Flexible Children Rates (FCR) while the roomrate is in OBP or LOS pricing mode. This is not accepted. You can set a fixed amount FCR in case the roomrate is on OBP or LOS pricing model. |
ADDITIONAL_PRICE_TYPE_CAN_BE_CHILDREN_ONLY | Additional guest type can only be child | For the Type attribute of <additional_guest> element, the only supported value is child . |
INVALID_CURRENCY_CODE | Supplied currency code '%s' doesn't match the hotel's currency code '%s' for room ID '%s' and rate ID '%s' | Currency code in the request should match the property's currency code. |
INVALID_USE_OF_SINGLE_OCCUPANCY | Cannot set price for occupancy 1. Please check the room-rate pricing model | Cannot set pricing for single occupancy as the pricing type of the property or roomrate is other than Standard . |
RATE_EDITABLE_ONLY_ON_EXTRANET | Rate '%s' is only editable on Extranet | You are not allowed to edit the rate via the connectivity API. The property can edit the rate via the Booking.com extranet. |
ROOM_EDITABLE_ONLY_ON_EXTRANET | Room '%s' is only editable on Extranet | You are not allowed to edit the room via the connectivity API. The property can edit the room via Booking.com extranet. |
RATE_NOT_ACTIVE_FOR_ROOM | Rate '%s' is not active for room '%s' | Rate is not activated for the selected room. Please check allowed roomrates using the roomrates endpoint. |
HOTEL_ACCESS_DENIED | Request for forbidden hotel id(s) | Check the property ID and either provide the correct property ID or make sure the machine account credentials have enough permissions. |
NOT_A_VALID_OCCUPANCY | An occupancy may not be zero, Occupancy '%s' may not be negative, Occupancy '%s' exceeds maximum value $MAX, Occupancy '%s' does not look numeric | Make sure to send pricing information for the correct occupancy level defined in the roomrate for the specific roomtype. |
NOT_A_VALID_DATE | INVALID_DATE | The supplied date format is invalid. The valid format is yyyy-mm-dd . Or, the supplied date is more than 1 day in the past. |
PRICE_EXCEEDS_MAX_PRICE | You are setting ‘$price’ for room ID ‘%room_id’, rate ID ‘%rate_id’ and date ‘%date’ which exceeds the maximum allowed price of ‘%max_price’ | You are setting the price for the combination of room, rate and date that exceeds the maximum price set. |
PRICE_BELOW_MIN_PRICE | You are setting ‘$price’ for room ID ‘%room_id’, rate ID ‘%rate_id’ and date ‘%date’ which is below the minimum allowed price of ‘%min_price’ | You are setting the price for the combination of room, rate and date that goes below the minimum price set. |
NOT_A_VALID_RELEASE_TIME | Release times should be in the expected format. This is not the case for room ID $room_id, rate ID $rate_id on date '$date' | Make sure to specify the release time in the expected format. |
TYPE_VIOLATION | Generic error when provided data type is different than specified. | |
HOTEL_HAS_MISCONFIGURED_UFI | The timezone value is missing for the Ufi associated with hotel ID $hotel_id | Check the property's UFI configuration. |
INVALID_GUEST_AGE_BAND | Please define a to and from ages that match an age bucket | This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
INVALID_GUEST_AGE_BAND_ID | Please define an existing age bucket ID | This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
INVALID_ADDITIONAL_PRICES | Prices length cannot be 0 | This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
ADDITIONAL_GUEST_PRICE_DATES_OVERLAP | The dates of the guest prices cannot overlap for the same roomId and rateId | This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
INVALID_GUEST_AGE_BAND_ID | ageBandId must be 1, 2 or 3 | This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
PROVIDED_DATES_OUTSIDE_ALLOWED_RANGE | Please check if date is not in the past or more than 4 years in the future | This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
INVALID_ADDITIONAL_GUEST_NUMBER | Invalid additionalGuestNumber. It should be a non negative number up to + MAX_GUEST_NUMBER | This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
PRICE_LESS_THAN_0 | There's no support for negative prices | Make sure to specify a price greater than 0. This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
PRICE_GREATER_THAN_10_DIGITS | Max Price Value is + MAX_PRICE | This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
PRICE_PERCENTAGE_IS_BIGGER_THAN_100 | Percentage should be between [0.0, 100.0] | This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
PRICE_PERCENTAGE_IS_ZERO | There's no support for percentage price zero | This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
DATE_ELEMENT_MISSING | Date is missing | Date is required for this request. |
RATE_ID_REQUIRED | Rate Id is required | Rate id is required for this request. |
OBP_PRICING_PASSED_FOR_RLO_RATE | OBP format sent for RLO room-rate | Room-rate is on RLO pricing model while request is trying to set OBP prices for it. |
ROOM_ID_INVALID | Room ID '%s' is not valid | Provide a valid Room ID. Make sure to retrieve the correct Room ID using the rooms endpoint. |
RATE_IS_A_SLAVE_RATE | You cannot set $attribute for a child rate $rate_id, since they are automatically set based on Rate Relations | Cannot update a child rate. |
CURRENCY_SWITCH_IN_PROGRESS | There is a hotel currency switch currently in progress | You need to wait until hotel switch currency. |
EXCEEDS_MAX_RELATIVE_RELEASE_TIME | Relative release time {release_time} exceeds max allowed value. This is not the case for room id{room_id}, rate id {rate_id} on date{date} | You are setting release time that exceeds the maximum allowed value. |
NUMBER_OF_NIGHTS_EXCEEDS_MAX_FOR_LINES | The update has too many nights and only the first 90 nights were considered | You cannot set more than 90 nights. |
OCCUPANCY_EXCEEDS_MAX_PERSONS | Room '%s' has a maximum occupancy of '%s'. You cannot set price for higher occupancy for rate '%s' | Cannot set pricing for occupancy that is higher than the maximum occupancy. |
AUTHENTICATION_FAILURE | Authentication failed for the request | The credentials provided in the request was not sufficient for a successful authentication check. To fix a failed authentication request, see the [Authentication page.] (/connectivity/docs/authentication/#troubleshooting) |
INTERNAL_SERVER_ERROR | Internal server error | Booking.com service failed. |
Changes to the roomrateavailability endpoint
The following updates are available to the roomrateavailability
endpoint with the version 1.1.
Difference between roomrateavailability endpoint v1.0 and v1.1
You can use the roomrateavailability
endpoint in two versions. In addition to the functionality available in v1.0, when migrating to the v1.1 roomrateavailability
endpoint, you can view whether a room type is closed. For more information on the existing functionality, see Retrieve inventory and rate details.
Header parameter
Header | Description | Type | Required/ Optional | Notes |
---|---|---|---|---|
Accept-Version | Specify the version number to get the API functionality specific to that version. | string | optional | Supports the following values: - 1.1: New version. - 1.0: Previous version. |
Sample header
POST 'https://supply-xml.booking.com/hotels/xml/roomrateavailability' \ --header 'Accept-Version: 1.1' \ --header 'Authorization: Basic THVjLVNhbXVlbMblmRAdlOCghQ29qaU9pNmxlWSpIWXU9OigvS2meQpQ12puj' \ --header 'Content-Type: application/xml'
Response parameters
Field | Description | Type | Required | Notes |
---|---|---|---|---|
> date | Contains availability information for specified date. | object | The API returns this element only if the value of room_level in the request is 0 . | |
closed | Specifies whether all rooms of a room type are closed (not bookable) on the specified date. | boolean | Possible values are: 1 (closed), 0 (open). Once you close a room, make sure to open it before setting availability for it. |
Changes to the OTA_HotelAvailNotif endpoint
The following improvements are rolled out to the OTA_HotelAvailNotif
endpoint.
The changes outlined in this section are applicable only when using the OTA_HotelAvailNotif
endpoint with a special header parameter. The following section covers only the changes available in v1.1. For a detailed explanation of the OTA_HotelAvailNotif
endpoint, see Create or update inventory, restrictions.
When migrating to the v1.1 OTA_HotelAvailNotif
endpoint, you get:
- To close a room type on a specified date. Even if roomrates are open, the room type is not available for booking.
- Set past date updates up to 1 day in the past (follows Central European Time (CET) timezone). Updates more than 1 day in the past, return a
NOT_A_VALID_DATE
error. - Improved API behaviour.
- Improved error handling and error description.
- Improved latency.
Header parameter
Header | Description | Type | Required/ Optional | Notes |
---|---|---|---|---|
Accept-Version | Specify the version number to get the API functionality specific to that version. | string | optional | Supports the following values: - 1.1: New version. - 1.0: Previous version. |
Sample header
POST 'https://supply-xml.booking.com/hotels/ota/OTA_HotelAvailNotif' \ --header 'Accept-Version: 1.1' \ --header 'Authorization: Basic THVjLVNhbXVlbMblhWTdlOCghQ29qaU9pNmxlWSpIWXU9OigvS2meQpQ12puj' \ --header 'Content-Type: application/xml'
Closing room type vs. room and rate combination
You can close availability at the:
- room type level: Useful when removing availability for all rooms of a room type that has multiple rate combinations.
- room type and rate combination level: Useful when removing availability for a room type satisfying a specific rate combination.
Consider the following inventory:
Room type | Rate | Price | Date period | Rooms to sell |
---|---|---|---|---|
Villa | Summer rate | 110 | Jul 15 - Aug 31 | 10 |
Villa | Peak season rate | 120 | Aug 05 - Aug 20 | 10 |
Villa | Off season rate | 90 | Nov 01 - Dec 10 | 10 |
Closing room type and rate combination
To close the availability of the Villa so that guests don't see availability from Nov 01 - Dec 10, you must close the room type (Villa) and rate combination (Off season rate) by providing the following parameters: room
, date
, rate
, closed
Closing a room type
To close the availability of a specific room type, say Villa, so that guests don't see availability for a specific period, you must close the room type (Villa) by providing the following parameters: room
, date
, closed
.
Before creating availability for a room that is closed, you must use the OTA_HotelAvailNotif
endpoint to open the room. Otherwise, the request to create availability completes successfully. But guests will not be able to see the availability as the room is still closed.
Request body
For a complete list of request parameters available for this endpoint, see the documentation on the availability
endpoint.
Element | Attribute | Description | Type | Required | Notes |
---|---|---|---|---|---|
>>> RestrictionStatus | Specifies whether all rooms of a room type are closed (not bookable) or only the specified room type and rate combination on the specified date depending on whether the rate ID is provided. | integer | optional | ||
Status | Specifies whether all rooms of a room type are closed (not bookable) or only the specified room type and rate combination on the specified date depending on whether the StatusApplicationControl.RatePlanCode is provided. | string | enumerated string | Accepts: close , or open . |
Changes to existing behaviour
When you migrate to v1.1 of the OTA_HotelAvailNotif
endpoint, you can see the following change in the API behaviour:
Existing API behaviour (v1.0) | New API behaviour (v1.1) |
---|---|
Accepts update for child rates. | While setting up availability using rate IDs that are configured as child rates, make sure the request doesn't set values for fields that are configured to inherit from the parent rate plan. For example, if you try to set a value for MinAdvancedBookingOffset restrictions for a child rate while the child rate is configured to follow restrictions, the API returns a partial success response with an error message. To resolve the error, specify a rate plan ID that is either configured as a parent rate, or a child rate that does not have the following restrictions: FollowsPrice , or FollowsRestrictions . Similar to the v1.0 behaviour, the above constraint does not apply to the FollowsClosed restriction. While creating availability using a child rate ID, you can update the status of the room type to open or close, irrespective of the value set in FollowsClosed . However, if an availability is set using a parent rate along with open/close information, then the room type status for the associated child rate is also updated. To reiterate, there is no change to the FollowsClosed restriction behaviour. |
Accepts past date updates. | Accepts past date updates up to 1 day in the past (follows Central European Time (CET) timezone). Updates more than 1 day in the past returns a NOT_A_VALID_DATE error. |
Accepts duplicate date updates. | Does not accept duplicate date updates. The API now returns WARN_DUPLICATE_DATES warning. |
On authorisation errors, the API returns HOTEL_NOT_ALLOWED_FOR_CONNECTION_TYPE error. | On authorisation errors, the API now returns HOTEL_ACCESS_DENIED error. |
Accepts Content-Type: application/x-www-form-urlencoded and the body of the request is encoded. | Only supports Content-Type: application/xml or text/xml , as per documentation. |
Property ID is validated. | Property ID is not required and is not validated. |
Setting the MinAdvancedBookingOffset or MaxAdvancedBookingOffset value beyond 360 days 360D does not return an error. | Setting the MinAdvancedBookingOffset or MaxAdvancedBookingOffset value beyond 360 days 360D returns an error. |
HTTP error code behaviour on v1.1
With the v1.1 of the OTA_HotelAvailNotif
endpoint, we have standardised the treatment of the HTTP error codes. The following table captures all the common conditions and the HTTP error codes that the v1.1 endpoint returns.
If the endpoint encounters | The endpoint returns |
---|---|
Incorrect username or password. | HTTP 401 |
Schema validations such as invalid integer, date. | HTTP 400 |
All updates with errors. | HTTP 400 |
At least one successful update. | HTTP 200 in addition to errors or warnings, if any. |
All updates are unauthorized. | HTTP 403 |
New error codes on v1.1
The following table summarises the new error codes for the OTA_HotelAvailNotif
endpoint.
Error code | Error message | Notes |
---|---|---|
AUTHENTICATION_FAILURE | Authentication failed for the request | The credentials provided in the request was not sufficient for a successful authentication check. To fix a failed authentication request, see the [Authentication page.] (/connectivity/docs/authentication/#troubleshooting) |
CURRENCY_SWITCH_IN_PROGRESS | There is a hotel currency switch currently in progress | You need to wait until hotel switch currency. |
DATE_ELEMENT_MISSING | Date is missing | Date is required for this request. |
EXCEEDS_MAX_RELATIVE_RELEASE_TIME | Relative release time {release_time} exceeds max allowed value. This is not the case for room id{room_id}, rate id {rate_id} on date{date} | You are setting release time that exceeds the maximum allowed value. |
FROM_DATE_SHOULD_BE_LESS_THAN_TO_DATE | From date should be less than or equal To Date | The From date should be less than or equal to the To date. |
HOTEL_ACCESS_DENIED | Request for forbidden hotel id(s) | Check the property ID and either provide the correct property ID or make sure the machine account credentials have enough permissions. |
HOTEL_HAS_MISCONFIGURED_UFI | The timezone value is missing for the Ufi associated with hotel ID $hotel_id | Check the property's UFI configuration. |
INTERNAL_SERVER_ERROR | Internal server error | Booking.com service failed. |
NOT_A_VALID_DATE | INVALID_DATE | The supplied date format is invalid. The valid format is yyyy-mm-dd . Or, the supplied date is more than 1 day in the past. |
NOT_A_VALID_RELEASE_TIME | Release times should be in the expected format. This is not the case for room ID $room_id, rate ID $rate_id on date '$date' | Make sure to specify the release time in the expected format. |
RATE_EDITABLE_ONLY_ON_EXTRANET | Rate '%s' is only editable on Extranet | You are not allowed to edit the rate via the connectivity API. The property can edit the rate via the Booking.com extranet. |
RATE_ID_REQUIRED | Rate Id is required | Rate id is required for this request. |
RATE_IS_A_SLAVE_RATE | You cannot set $attribute for a child rate $rate_id, since they are automatically set based on Rate Relations | Cannot update a child rate. |
RATE_NOT_ACTIVE_FOR_ROOM | Rate '%s' is not active for room '%s' | Rate is not activated for the selected room. Please check allowed roomrates using the roomrates endpoint. |
ROOM_EDITABLE_ONLY_ON_EXTRANET | Room '%s' is only editable on Extranet | You are not allowed to edit the room via the connectivity API. The property can edit the room via Booking.com extranet. |
ROOM_ELEMENT_REQUIRED | Room is missing | The request contains an empty request body. |
ROOM_ID_INVALID | Room ID '%s' is not valid | Provide a valid Room ID. Make sure to retrieve the correct Room ID using the rooms endpoint. |
ROOM_ID_MISSING | Room ID is missing | Room ID is required for the request. |
TYPE_VIOLATION | Generic error when provided data type is different than specified. |
Changes to the availability endpoint
We have rolled out few improvements to the B.XML availability
endpoint.
The changes outlined in this section are applicable only when using the B.XML availability
endpoint with a special header parameter. The following section covers only the changes available in v1.1. For a detailed explanation of the B.XML availability
endpoint, see Create or update inventory, restrictions.
When migrating to the v1.1 B.XML availability
endpoint, you get:
- To close a room type on a specified date. Even if roomrates are open, the room type is not available for booking.
- To update for periods in the future and up to one day in the past, in the Central European Time (CET) timezone.
- Accepts past date updates up to 1 day in the past (follows Central European Time (CET) timezone). Updates more than 1 day in the past returns a
NOT_A_VALID_DATE
error. - Improved error handling and error description.
- Improved latency.
New behaviour
While setting up availability using rate IDs that are configured as child rates, make sure the request doesn't set values for fields that are configured to inherit from the parent rate plan. For example, if you try to set a value for min_advance_res
restrictions for a child rate while the child rate is configured to follow restrictions or set price
when FollowsPrice
is set, the API returns a partial success response with an error. To resolve the error, specify a rate plan ID that is either configured as a parent rate, or a child rate that does not have the following restrictions: FollowsPrice
, or FollowsRestrictions
.
Similar to the v1.0 behaviour, the above constraint does not apply to the FollowsClosed
restriction. While creating availability using a child rate ID, you can update the status of the room type to open or close, irrespective of the value set in FollowsClosed
. However, if an availability is set using a parent rate along with open/close information, then the room type status for the associated child rate is also updated. To reiterate, there is no change to the FollowsClosed
restriction behaviour.
Header parameter
Header | Description | Type | Required/ Optional | Notes |
---|---|---|---|---|
Accept-Version | Specify the version number to get the API functionality specific to that version. | string | optional | Supports the following values: - 1.1: New version. - 1.0: Previous version. |
Sample header
POST 'https://supply-xml.booking.com/hotels/xml/availability' \ --header 'Accept-Version: 1.1' \ --header 'Authorization: Basic THVjLVNhbXVlbMblhWTdlOCghQ29qaU9pNmxlWSpIWXU9OigvS2meQpQ12puj' \ --header 'Content-Type: application/xml'
Closing room type vs. room and rate combination
You can close availability at the:
- room type level: Useful when removing availability for all rooms of a room type that has multiple rate combinations.
- room type and rate combination level: Useful when removing availability for a room type satisfying a specific rate combination.
Consider the following inventory:
Room type | Rate | Price | Date period | Rooms to sell |
---|---|---|---|---|
Villa | Summer rate | 110 | Jul 15 - Aug 31 | 10 |
Villa | Peak season rate | 120 | Aug 05 - Aug 20 | 10 |
Villa | Off season rate | 90 | Nov 01 - Dec 10 | 10 |
Closing room type and rate combination
To close the availability of the Villa so that guests don't see availability from Nov 01 - Dec 10, you must close the room type (Villa) and rate combination (Off season rate) by providing the following parameters: room
, date
, rate
, closed
Closing a room type
To close the availability of a specific room type, say Villa, so that guests don't see availability for a specific period, you must close the room type (Villa) by providing the following parameters: room
, date
, closed
.
Before creating availability for a room that is closed, you must use the availability
endpoint to open the room. Otherwise, the request to create availability completes successfully. But guests will not be able to see the availability as the room is still closed.
Request body
For a complete list of request parameters available for this endpoint, see the documentation on the availability
endpoint.
Element | Attribute | Description | Type | Required | Notes |
---|---|---|---|---|---|
>>> closed | Specifies whether all rooms of a room type are closed (not bookable) or only the specified room type and rate combination on the specified date depending on whether the rate ID is provided. | integer | optional | Accepts: 1 (closed), 0 (open). NOTE: See also Availability restrictions. Closing a room does not clear the value of roomstosell , price , or other fields. The values are preserved. Once you close a room, make sure to open it before setting availability for it. |
HTTP error code behaviour on v1.1
With the v1.1 of the B.XML availability
endpoint, we have standardised the treatment of HTTP error codes. The following table captures all the common conditions and the HTTP error codes that the v1.1 endpoint returns.
If the endpoint encounters | The endpoint returns |
---|---|
Incorrect username or password. | HTTP 401 |
Schema validations such as invalid integer, date. | HTTP 400 |
All updates with errors. | HTTP 400 |
At least one successful update. | HTTP 200 in addition to errors or warnings, if any. |
All updates are unauthorized. | HTTP 403 |
INTERNAL_SERVER_ERROR. | HTTP 500 |
Changes to existing error messages
The following table lists only the error codes that have changed for the B.XML availability
endpoint.
Old error code (v1.0) | Error message | New error code (v1.1) | Error message | Notes |
---|---|---|---|---|
NO_HOTEL_FOUND_FOR_ROOMS | No hotel found for provided room IDs. | ROOM_ID_INVALID | Room ID '%s' is not valid | Incorrect room ID. Make sure to retrieve the correct Room ID using the rooms endpoint. |
ROOM_DOES_NOT_EXIST | Room does not exist. | ROOM_ID_INVALID | Room ID '%s' is not valid | Provide a valid Room ID. Make sure to retrieve the correct Room ID using the rooms endpoint. |
ROOM_NOT_ACTIVE | Room is not active. | ROOM_ID_INVALID | Room ID '%s' is not valid | Provide a valid Room ID. Make sure to retrieve the correct Room ID using the rooms endpoint. |
DATES_TOO_FAR_OR_INVALID | Some of the date(s) for RoomID %s are too much into the future or invalid (e.g. %s) | NOT_A_VALID_DATE | Dates should be in YYYY-MM-DD format, not before '%s',and not be past $y'. The data should also be valid | Avoid providing dates that are too far in the future. |
AVAILABILITY_UPDATE_DISABLE_ HOTEL_SWITCHING_CURRENCY | Updating availability is temporarily disable for the hotel. Currency switch is in progress. | CURRENCY_SWITCH_IN_PROGRESS | There is a hotel currency switch currently in progress | Try to run the request after the currency switch is in place. |
DATE_ELEMENT_ATTRIBUTE_NOT_SET | Neither from/to nor value attribute has been set. | DATE_ELEMENT_MISSING | Date is missing | A valid date is required for the request. |
FROM_OR_TO_DATE_INVALID | From or To date is invalid. | DATE_ELEMENT_MISSING | Date is missing | A valid date is required for the request. |
TAG_NOT_ALLOWED | Tag not allowed inside date block when using room level inventory with no rate. | RATE_ID_REQUIRED | Rate Id is required | Rate ID is required for the request. |
OBP_PRICING_PASSED_FOR_ LOS_RATE, OBP_PRICING_PASSED_FOR_ RLO_RATE, OBP_PRICING_PASSED_FOR_ DEFAULT_RATE, OBP_PRICING_PASSED_FOR_ SINGLE_USE_RATE | OBP_PRICING_PASSED_FOR_ RLO_RATE, OBP_PRICING_PASSED_FOR_ DEFAULT_RATE. Rest are considered valid. |
New warnings on v1.1
The following table summarises the new warnings for the B.XML availability
endpoint.
New error code | Error message | Notes |
---|---|---|
WARN_UNPROCESSED_ADDITIONAL_GUEST | Additional guest updates weren't processed. Please try again later. | |
WARN_DUPLICATE_DATES | Request contains duplicate dates, we have applied only the first occurrence. |
New error codes on v1.1
The following table summarises the new error codes for the B.XML availability
endpoint.
Error code | Error message | Notes |
---|---|---|
ROOM_ID_MISSING | Room ID is missing | Room ID is required for the request. |
ROOM_ELEMENT_REQUIRED | Room is missing | The request contains an empty request body. |
FROM_DATE_SHOULD_BE_LESS_THAN_TO_DATE | From date should be less than or equal To Date | The From date should be less than or equal to the To date. |
LOS_PRICING_PASSED_FOR_OBP_RATE | LOS pricing format sent for OBP room-rate | The request contains pricing information in LOS pricing format. However, the property is set to OBP pricing type. |
LOS_PRICING_PASSED_FOR_DEFAULT_RATE | LOS pricing format sent for Standard room-rate | The request contains pricing information in LOS pricing format. However, the property is set to Standard pricing type. |
OBP_PRICING_PASSED_FOR_DEFAULT_RATE | OBP format sent for Standard room-rate | The request contains pricing information in OBP pricing format. However, the property is set to Standard pricing type. |
CANT_SET_PERCENTAGE_FOR_OBP_LOS | Cannot set percentage for OBP/LOS room-rate | The request is trying to send percentage pricing for Flexible Children Rates (FCR) while the roomrate is on OBP or LOS pricing mode. This is not accepted. You can set a fixed amount FCR in case the roomrate is on OBP or LOS pricing model. |
ADDITIONAL_PRICE_TYPE_CAN_BE_CHILDREN_ONLY | Additional guest type can only be child | For the Type attribute of <additional_guest> element, the only supported value is child . |
INVALID_CURRENCY_CODE | Supplied currency code '%s' doesn't match the hotel's currency code '%s' for room ID '%s' and rate ID '%s' | Currency code in the request should match the property's currency code. |
INVALID_USE_OF_SINGLE_OCCUPANCY | Cannot set price for occupancy 1. Please check the room-rate pricing model | Cannot set pricing for single occupancy as the pricing type of the property or roomrate is other than Standard . |
RATE_EDITABLE_ONLY_ON_EXTRANET | Rate '%s' is only editable on Extranet | You are not allowed to edit the rate via the connectivity API. The property can edit the rate via the Booking.com extranet. |
ROOM_EDITABLE_ONLY_ON_EXTRANET | Room '%s' is only editable on Extranet | You are not allowed to edit the room via the connectivity API. The property can edit the room via Booking.com extranet. |
RATE_NOT_ACTIVE_FOR_ROOM | Rate '%s' is not active for room '%s' | Rate is not activated for the selected room. Please check allowed roomrates using the roomrates endpoint. |
HOTEL_ACCESS_DENIED | Request for forbidden hotel id(s) | Check the property ID and either provide the correct property ID or make sure the machine account credentials have enough permissions. |
NOT_A_VALID_OCCUPANCY | An occupancy may not be zero, Occupancy '%s' may not be negative, Occupancy '%s' exceeds maximum value $MAX, Occupancy '%s' does not look numeric | Make sure to send pricing information for the correct occupancy level defined in the roomrate for the specific roomtype. |
NOT_A_VALID_DATE | INVALID_DATE | The supplied date format is invalid. The valid format is yyyy-mm-dd . Or, the supplied date is more than 1 day in the past. |
PRICE_EXCEEDS_MAX_PRICE | You are setting ‘$price’ for room ID ‘%room_id’, rate ID ‘%rate_id’ and date ‘%date’ which exceeds the maximum allowed price of ‘%max_price’ | You are setting the price for the combination of room, rate and date that exceeds the maximum price set. |
PRICE_BELOW_MIN_PRICE | You are setting ‘$price’ for room ID ‘%room_id’, rate ID ‘%rate_id’ and date ‘%date’ which is below the minimum allowed price of ‘%min_price’ | You are setting the price for the combination of room, rate and date that goes below the minimum price set. |
NOT_A_VALID_RELEASE_TIME | Release times should be in the expected format. This is not the case for room ID $room_id, rate ID $rate_id on date '$date' | Make sure to specify the release time in the expected format. |
TYPE_VIOLATION | Generic error when provided data type is different than specified. | |
HOTEL_HAS_MISCONFIGURED_UFI | The timezone value is missing for the Ufi associated with hotel ID $hotel_id | Check the property's UFI configuration. |
INVALID_GUEST_AGE_BAND | Please define a to and from ages that match an age bucket | This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
INVALID_GUEST_AGE_BAND_ID | Please define an existing age bucket ID | This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
INVALID_ADDITIONAL_PRICES | Prices length cannot be 0 | This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
ADDITIONAL_GUEST_PRICE_DATES_OVERLAP | The dates of the guest prices cannot overlap for the same roomId and rateId | This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
INVALID_GUEST_AGE_BAND_ID | ageBandId must be 1, 2 or 3 | This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
PROVIDED_DATES_OUTSIDE_ALLOWED_RANGE | Please check if date is not in the past or more than 4 years in the future | This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
INVALID_ADDITIONAL_GUEST_NUMBER | Invalid additionalGuestNumber. It should be a non negative number up to + MAX_GUEST_NUMBER | This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
PRICE_LESS_THAN_0 | There's no support for negative prices | Make sure to specify a price greater than 0. This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
PRICE_GREATER_THAN_10_DIGITS | Max Price Value is + MAX_PRICE | This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
PRICE_PERCENTAGE_IS_BIGGER_THAN_100 | Percentage should be between [0.0, 100.0] | This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
PRICE_PERCENTAGE_IS_ZERO | There's no support for percentage price zero | This error is related to configurations set for flexible children rates. See also, [managing flexible children rates.] (/connectivity/docs/flexible-children-rates/managing-flexible-children-rates.md) |
DATE_ELEMENT_MISSING | Date is missing | Date is required for this request. |
RATE_ID_REQUIRED | Rate Id is required | Rate id is required for this request. |
OBP_PRICING_PASSED_FOR_RLO_RATE | OBP format sent for RLO room-rate | Room-rate is on RLO pricing model while request is trying to set OBP prices for it. |
ROOM_ID_INVALID | Room ID '%s' is not valid | Provide a valid Room ID. Make sure to retrieve the correct Room ID using the rooms endpoint. |
RATE_IS_A_SLAVE_RATE | You cannot set $attribute for a child rate $rate_id, since they are automatically set based on Rate Relations | Cannot update a child rate. |
CURRENCY_SWITCH_IN_PROGRESS | There is a hotel currency switch currently in progress | You need to wait until hotel switch currency. |
EXCEEDS_MAX_RELATIVE_RELEASE_TIME | Relative release time {release_time} exceeds max allowed value. This is not the case for room id{room_id}, rate id {rate_id} on date{date} | You are setting release time that exceeds the maximum allowed value. |
OCCUPANCY_EXCEEDS_MAX_PERSONS | Room '%s' has a maximum occupancy of '%s'. You cannot set price for higher occupancy for rate '%s' | Cannot set pricing for occupancy that is higher than the maximum occupancy. |
AUTHENTICATION_FAILURE | Authentication failed for the request | The credentials provided in the request was not sufficient for a successful authentication check. To fix a failed authentication request, see the [Authentication page.] (/connectivity/docs/authentication/#troubleshooting) |
INTERNAL_SERVER_ERROR | Internal server error | Booking.com service failed. |
Changes to the roomrates endpoint
We plan to roll out the improvements made to the B.XML roomrates
endpoint as a new version, v1.1.
The changes outlined in this section are applicable only when using the B.XML roomrates
endpoint with a special header parameter. For a detailed explanation of the v1.0 B.XML roomrates
endpoint, see Retrieving active roomrates.
With the v1.1 B.XML roomrates endpoint, you can:
- Query roomrate details with or without rewritten rate details.
- Retrieve additional response details like flexible children prices, if they are set.
- See improved latency.
Also, in version v1.1:
- To resolve security issues and non-standard system behavior, the v1.1
roomrates
endpoint supports the UTF-16 encoding algorithm. - The endpoint returns all responses within the
roomrates
object. - The endpoint doesn't return the
max_children
attribute anymore. - The endpoint doesn't return the redundant
follows_room_rate_properties
attribute in the response while retrieving roomrates with rate relations.
Header parameter
Header | Description | Type | Required/ Optional | Notes |
---|---|---|---|---|
Accept-Version | Specify the version number to get the API functionality specific to that version. | string | optional | Supports the following values: - 1.1: New version. - 1.0: Previous version. |
Sample header
POST 'https://supply-xml.booking.com/hotels/xml/roomrates' \ --header 'Accept-Version: 1.1' \ --header 'Authorization: Basic THVjLVNhbXVlbMblhWTdlOCghQ29qaU9pNmxlWSpIWXU9OigvS2meQpQ12puj' \ --header 'Content-Type: application/xml'
Additional body parameter
The following table includes a body parameter in addition to parameters supported in roomrates v1.0:
Element | Description | Type | Required/Optional | Notes |
---|---|---|---|---|
> support_rate_rewrite | Specifies whether the API should include rewritten rate details. | boolean | optional | Possible value: - 0 : Include all rates including rewritten rate plan details. - 1 : Do not include rewritten rate plan details. |
Sample request
<request> <hotel_id>123456</hotel_id> <support_rate_rewrite>0</support_rate_rewrite> <policy_override_start_date>2023-02-26</policy_override_start_date> <policy_override_end_date>2023-03-30</policy_override_end_date> </request>
Response details
The endpoint returns the following flexible child rate details (if they are already defined) in addition to the details returned by roomrates v1.0.
Element | Attribute | Description | Type | Notes |
---|---|---|---|---|
roomrates | Contains the room objects. | object | ||
>>>> additional_guests | Contains the price elements for children. | array | ||
>>>>> price | Contains the children pricing details. | object | ||
type | Specifies that the prices are for children. | string | ||
additional_guest_number | Specifies the order of prices within the same age bucket. | integer | For example: Price for 1 (first child) is 5000, while price for 2 (second child) is 2500, and 3 (third child) is free (0 ). Default value is 0 , meaning all prices are the same for children in the specified age bucket. | |
age_bucket_id | Specifies the ID of the property-level age bucket. | integer | ||
from_age | Specifies the beginning of an age range. | integer | ||
to_age | Specifies the end of an age range and is inclusive. | integer | ||
additional | Specifies the fixed price for a child within a certain age bucket. | integer | ||
percentage | Specifies the price for the child as a percentage of the adult price. | integer | Possible value between 0 and 100 . |
Sample response
<roomrates> <rooms> <room id="813518802" hotel_id="8135188" hotel_name="Deluxe HillTop Suites" max_children="0" room_name="Classic Quadruple Room"> <rates> <rate id="25337348" fixed_occupancy="2" max_persons="5" policy="General" policy_id="343709190" rate_name="summer time rates"> <meal_plan meal_plan_code="19"/> <policies> <booking_rules> <booking_rule max_advanced_booking_offset="P14D"/> <booking_rule min_advanced_booking_offset="P1D"/> </booking_rules> <cancel_policy> <cancel_penalty policy_code="43"/> </cancel_policy> <guarantee_payment_policy> <guarantee_payment policy_code="166" effective_from="after_reservation_is_made" required="1"/> </guarantee_payment_policy> </policies> <pricing type="OBP"> <additional_guests> <price type="child" additional_guest_number="0" from_age="0" to_age="5" age_bucket_id="1" additional="0"/> <price type="child" additional_guest_number="0" from_age="6" to_age="10" age_bucket_id="2" additional="40"/> <price type="child" additional_guest_number="0" from_age="11" to_age="12" age_bucket_id="3" additional="60"/> </additional_guests> </pricing> </rate> </rates> </room> </rooms> </roomrates>
Changes to MaxChildOccupancy attribute usage
We plan to change the way you can specify child occupancy settings for a room type or a unit using the OTA_HotelInvNotif
endpoint from 20 March 2023.
This section captures the changes to the functionality for existing providers using the MaxChildOccupancy
attribute within the OTA_HotelInvNotif
endpoint and for new implementations.
Currently, the OTA_HotelInvNotif
endpoint has three fields related to occupancy:
MaxOccupancy
: Specifies the maximum number of guests that can physically fit in the room.MaxAdultOccupancy
: Specifies the maximum number of adults that can physically fit in the room.MaxChildOccupancy
: Specifies the maximum number of children that are eligible for the children rate.
We plan to introduce an additional attribute MaxChildPayableOccupancy
under TPA_Extensions
to capture the number of children that are eligible for the children rate. Starting March 20, the value in the MaxChildOccupancy
attribute no longer reflects the eligibility for children rates and instead specifies the physical child occupancy limit of the room type or unit.
Changes to existing implementations
The following changes are expected from March 20, 2023, for providers who are already using the MaxChildOccupancy
attribute:
MaxChildOccupancy
: Specifies the maximum number of children that can physically fit in the room. There is no longer a limit of 4 children per room type/unit. However, the maximum number of children must be less than theMaxOccupancy
value. This does not specify the number of children eligible for the children rate.
We will use the existing value as the maximum child occupancy limit.MaxChildPayableOccupancy
: Specifies the maximum number of children that are eligible for the children rate. Additional children are charged as adults.
We will copy the existing value ofMaxChildOccupancy
attribute to theMaxChildPayableOccupancy
attribute. If you have implemented child rates, by copying the value, we can retain the value of children eligible for the child rate.
New implementations
For all new implementations, the following behaviour is expected from March 20, 2023:
MaxChildOccupancy
: Specifies the maximum number of children that can physically fit in the room. There is no longer a limit of 4 children per room type/unit. However, the maximum number of children must be less than theMaxOccupancy
value.MaxChildPayableOccupancy
: Specifies the maximum number of children that are eligible for the children rate. Additional children are charged as adults.
If you do not specify a value, the default value is set to 0 unless this value is updated in the extranet.
For more information on OTA_HotelInvNotif
endpoint, see Managing room types.
In line with the planned changes to OTA_HotelInvNotif
endpoint, when retrieving property details using the OTA HotelDescriptiveInfo
endpoint, the value in the MaxChildOccupancy
attribute reflects the maximum number of children that can physically fit in the room.
Examples
The following section shows code snippets that specify the maximum occupancy and the number of children eligible for child rates using both the existing and new implementation.
Existing behaviour
The following code snippet sets the maximum number of children eligible for child rates to 2.
<OTA_HotelInvNotifRQ> <SellableProducts HotelCode="6314570"> <SellableProduct InvNotifType="Overlay" InvCode="631457019"> <GuestRoom> <Occupancy MaxOccupancy="6" MaxAdultOccupancy="3" MaxChildOccupancy="2"/> <Room RoomID="12345" /> <Description> <Text>Apartment with Garden View</Text> </Description> </GuestRoom> </SellableProduct> </SellableProducts> </OTA_HotelInvNotifRQ>
New behaviour
The following code snippet sets the maximum number of children that can physically fit in the room type to 3 and the maximum number of children eligible for child rates to 2.
<OTA_HotelInvNotifRQ> <SellableProducts HotelCode="6314570"> <SellableProduct InvNotifType="Overlay" InvCode="631457019"> <GuestRoom> <Occupancy MaxOccupancy="6" MaxAdultOccupancy="3" MaxChildOccupancy="3" /> <TPA_Extensions> <Occupancy MaxChildPayableOccupancy="2" /> </TPA_Extensions> <Room RoomID="12345" /> <Description> <Text>Apartment with Garden View</Text> </Description> </GuestRoom> </SellableProduct> </SellableProducts> </OTA_HotelInvNotifRQ>
Changes to roomrateavailability endpoint
We plan to roll out the improvements made to the roomrateavailability
endpoint soon.
The changes outlined in this section are applicable only when you use the test endpoint provided by your Connectivity account manager. This section covers only the changes based on the test endpoint. You can refer to the Rates & Availability documentation to know more about the existing functionalities.
Changes to the roomrateavailability
endpoint
This section captures the latest changes to roomrateavailability
available on the test endpoint. For a detailed explanation of the existing endpoint, see Retrieving rate and inventory details.
Test Endpoint
POST
https://supply-xml.booking.com/v1-beta/hotel/roomrateavailability
What changed? | Old behaviour | New behaviour | Notes |
---|---|---|---|
Data type change for price and price1 | integer | double | |
The number of rows returned when number_of_days is specified | Returns (number_of_days + 1) rows. | Returns number_of_days rows starting from the date specified in start_date (including). | If the start_date is not provided, then the API returns inventory information from the next day of the request till the number_of_days value. |
For example, if you specify number_of_days as 2, the API returns 3 rows starting from the date provided in the start_date . | For example, if you specify number_of_days as 2, the API returns 2 rows starting from the date provided in the start_date . |
Request example
<request> <hotel_id>8011855</hotel_id> <room_id>801185502</room_id> <start_date>2022-11-02</start_date> <number_of_days>2</number_of_days> </request>
[Old behaviour] Response example
<result> <roomrate booked="2" cancelled="0" closed="0" date="2022-11-02" min_contracted_rooms="0" min_contracted_rooms_until="0" rate_id="25279855" room_id="801185502" rooms_to_sell="8"/> <roomrate booked="2" cancelled="0" closed="0" date="2022-11-03" min_contracted_rooms="0" min_contracted_rooms_until="0" rate_id="25279855" room_id="801185502" rooms_to_sell="8"/> <roomrate booked="2" cancelled="0" closed="0" date="2022-11-04" min_contracted_rooms="0" min_contracted_rooms_until="0" rate_id="25279855" room_id="801185502" rooms_to_sell="8"/> </result>
[New behaviour] Response example
<result> <roomrate booked="2" cancelled="0" closed="0" date="2022-11-02" min_contracted_rooms="0" min_contracted_rooms_until="0" rate_id="25279855" room_id="801185502" rooms_to_sell="8"/> <roomrate booked="2" cancelled="0" closed="0" date="2022-11-03" min_contracted_rooms="0" min_contracted_rooms_until="0" rate_id="25279855" room_id="801185502" rooms_to_sell="8"/> </result>
Licences
We plan to deprecate the old Licences API features on February 15, 2022. You can find the features we plan to deprecate next to their alternatives:
Deprecating CAPI feature | New solution or alternative |
---|---|
Retrieving licence requirements using the licenses/check_requirements endpoint] or the static licences table. | Retrieving the up-to-date licence requirements using the licenses/rules/properties/{property_id} endpoint. Depending on the region of your properties, those requirements differ. |
Sending licence information with the LicenseInfos element using the /ota/OTA_HotelDescriptiveContentNotif and [/ota/OTA_HotelInvNotif][creating-room] endpoints. | Sending licence information using the /licenses/data/properties/{property_id} endpoint for property-level licences and the /licenses/data/properties/{property_id}/rooms/{room_id} endpoint for room type-level licences. |
Retrieving existing licence information using the ota/OTA_HotelDescriptiveInfo endpoint. | Retrieving existing licence information per property using the /licenses/data/properties/{property_id} endpoint endpoint for property-level licence information and the /licenses/data/properties/{property_id}/rooms/{room_id} endpoint for the room type-level licence information. |
Hotelier messages
We plan to deprecate sending hotelier messages using the Content API on February 15, 2022. You can find the features we plan to deprecate next to their alternatives:
Deprecating CAPI feature | New solution or alternative |
---|---|
Sending a hotelier message using the OTA_HotelDescriptiveContentNotif endpoint. | Sending a hotelier message using the /properties/{property_id}/hotelier_messages endpoint. |
Retrieving hotelier messages info using the OTA_HotelDescriptiveInfo endpoint. | Retrieving hotelier messages using the /properties/{property_id}/hotelier_messages endpoint. |
Single property owner (SPO) flow
We plan to deprecate the SPO flow, which is creating an independent property without legal entity id, on September 15, 2021. You can find the features we plan to deprecate next to their alternatives:
Deprecating CAPI feature | New solution or alternative |
---|---|
Creating an independent property using the OTA_HotelDescriptiveContentNotif endpoint, which refers to creating a property without a legal entity id. | Switching on the contracting feature that enables you to build a property first using [the OTA_HotelDescriptiveContentNotif endpoint][creating-independent-property] by providing a legal contact email under <ContactInfo ContactProfileType="contract"> . For more information, see the Contracting API. |
Photos through HotelDescriptiveContentNotif (HDCN)
We plan to deprecate sending photos using the HotelDescriptiveContentNotif endpoint on September 15, 2021. You can find the features we plan to deprecate next to their alternatives:
Deprecating CAPI feature | New solution or alternative |
---|---|
Sending and uploading photos using the MultimediaDescriptions element in the the OTA_HotelDescriptiveContentNotif endpoint. | Using the improved Photo API to manage all your photo needs. |