You can use the new Property API to create, and update property details. Also, use the Contacts API to create, update or overwrite property contact details.
Create a property
Use the OTA_HotelDescriptiveContentNotif
endpoint to create or update property details.
You can create or update a property's details using the following high-level elements:
ContactInfos
: Contains details such as the property's address, contact details, and other general information.HotelInfo
: Contains details such as the property's category (Hotel, ApartHotel, Cruise etc...), latitude and longitude information, service details among others.FacilityInfo
: Contains details such as the facility details that the property supports including restaurant details.Policies
: Contains details such as the property's cancellation policies among others.TPA-Extensions
: Contains extra information.
Minimum requirements to create a property
To create a property, you must specify the following minimum details:
- A legal entity ID - An identifier for the legal entity that owns or manages a property (such as a property management company or a hotel chain). For more information on how to retrieve your legal entity ID using
Contracting API
, see Retrieving the legal entity ID or partners can find it in their contract. - Provide the property name with only Latin characters.
- Provide Physical location (
PhysicalLocation
) contact type with the following details:- Address line 1 - only latin characters are allowed.
- City.
- Postcode.
- Provide General (
general
) and Invoice (invoices
) contact types with the following details:- Contact person name (Given name and surname).
- Email address, and
- Phone number.
- Provide the latitude and longitude details of the property's physical location.
- Specify the checkin and checkout timing.
- Specify the number of sellable units.
- Specify the property's accommodation type.
- Specify at least one language code for the property.
Naming convention
When naming a property, ensure that the name:
- Has a length between 3 and 255 characters.
- Does not contain a phone number (or no more than five consecutive numbers).
- Only contains letters (any language), numbers, or the following symbols: ! # & ` ' " - ,
- Is not all in uppercase.
If a name is rejected, the property name could contain a restricted word. If you do not think this is the case, reach out to our Connectivity Support.
URL
POST https://supply-xml.booking.com/hotels/ota/OTA_HotelDescriptiveContentNotif
When creating a property using the OTA_HotelDescriptiveContentNotif
endpoint, if you do not specify the policy details, the API creates a fully-flexible policy (PolicyCode=152
) as the default policy for the property.
Helpful tips
- The latitude and longitude values should correspond to the country specified under
ContactInfos
... >...Address
>CountryName
. Otherwise, the API returnsCannot create a hotel because UFI country (countryCode) is different from property country (countryCode)
. - Make sure the phone numbers specified under
ContactInfos
... >...Phone
match with the regional specification and the category specified underPhoneTechType
. - Make sure the zip code matches with the address specified under
ContactInfos
... >...Address
>CountryName
.
Request body parameters
The following table describes the elements you must add in the request body:
Element | Attribute | Description | Type | Required/ Optional | Notes |
---|---|---|---|---|---|
OTA_HotelDescriptiveContentNotifRQ | Root element | object | required | ||
> HotelDescriptiveContents | Contains property details. | object | required | ||
>> HotelDescriptiveContent | |||||
HotelDescriptiveContentNotifType | Specifies whether the request is meant to create a new property or overlay an existing one. | enumerated string | optional | Accepts the following values: * New (default) * Overlay | |
HotelName | Specifies the name of the property on Booking.com. | string | required | Required when creating a new property. If you want to (re)name a property, ensure the name follows Booking.com naming convention. | |
ID | Specifies a custom property ID. | string | optional | Recommended for new properties. | |
LanguageCode | Specifies the language in which the property wants their Booking.com Extranet content and communication (emails, notifications, etc.) | enumerated string | required | For a list of supported language codes, see Booking.com Language Code table. | |
CurrencyCode | Specifies the currency code. | enumerated string | optional | Booking.com defines the currency for each property. To retrieve a list of all currency codes, use the /xml/currencies endpoint. | |
Target | Specifies whether it is a test or production-ready property. | enumerated string | required | Accepts the following values: - Test - Production | |
>>> AffiliationInfo | Contains star ratings and other awards. | object | optional | ||
>>>> Awards | Contains award information. | object | optional | You can only set a star rating for properties with property class hotel , which means you cannot set a star rating for non-hotel properties. To verify whether your property's property class type is a hotel, see the property class type table. | |
>>>>> Award | Contains award details | object | optional | ||
Provider | Specifies the type of award. | enumerated string | optional | Accepts: Star rating | |
Rating | Specifies the number of stars. | integer | optional | Accepts values: 0 –5 . Some countries don't use star ratings. | |
>>> AreaInfo | Contains details about attractions and amenities near the property. | object | optional | ||
>>>> Attractions | Contains details about attractions and amenities near the property. | object | optional | ||
>>>>> Attraction | Contains attraction details near the property. | object | optional | ||
AttractionCategoryCode | Specifies the attraction Category Code. | enumerated string | required | For a list of supported attraction codes, see the Attraction code list. | |
AttractionName | Specifies the attraction name (in LanguageCode ). | string | required | - | |
Distance | Specifies the distance from the property to the attraction site (in DistanceUnit ). | float | required | - | |
DistanceUnit | Specifies the measurement unit for Distance . | enum | optional | Supported values are: * meters (default) * kilometers * feet * miles | |
LanguageCode | Specifies the Booking.com language code used for the attraction information. | enumerated string | optional | Default: en . For a list of supported language codes, see Booking.com Language Code table. | |
>>> ContactInfos | Contains contact information. | object | optional | ||
>>>> ContactInfo | Contains contact details of individual person/channel. | object | optional | ||
ContactProfileType | Specifies the type of contact. | enumerated string | required | See ContactProfileType. | |
>>>>> HiddenAddress | Contains whether the property's address can be shown to the guests before they book a stay on a property. | object | optional | - | |
ShouldHideAddress | Specifies whether to hide the address details. | boolean | optional | * 0 - Do not hide the full address. * 1 - Hide the full address from the guest. | |
>>>>> Addresses | Contains the contact addresses. | array of Address | required | - | |
>>>>>> Address | Contains the contact addresses. | array of Address | required | - | |
>>>>>>> Language | Species the Booking.com Language code for the address details. | enumerated string | required | Default: en . For a list of supported language codes, see Booking.com Language Code table. | |
>>>>>>> AddressLine | Species the full street name and number. | string | required | Should not contain abbreviations (such as "Rd." for "Road") and should not exceed 255 characters. | |
>>>>>>> CityName | Species the name of the city, town, or village. | string | required | - | |
>>>>>>> CountryName | Species the two-letter country code. | enumerated string | required | For more information on how to retrieve the country code details, see xml/countries endpoint. | |
>>>>>>> HotelName | Specifies the name of the property (in a language other than English). | object | required | - | |
>>>>>>> PostalCode | Specifies the postal/zip code. | string | optional | - | |
>>>>>>> StateProv | Contains the State/province details. | object | optional | - | |
StateCode | Specifies the code for the state or province. | string | optional | Follow the ISO 3166-2 standard to specify the state, province, or other subdivision. | |
>>>>> Emails | Contains the email addresses. | array of Email | optional | - | |
>>>>>> Email | Contains the email address details. | array of Email | optional | - | |
>>>>> Names | Contains the contact person names. | array of Name | optional | - | |
>>>>>> Name | Contains the contact person name. | array of Name | optional | - | |
Language | Specifies the contact person's preferred language of communication. | string | optional | - | |
Gender | Contact person's gender. | enum | 0..1 | Accepts: Male , Female . Default: null. To set as empty, omit the entire attribute (instead of specifying "" ). | |
>>>>>>> GivenName | Specifies the contact person's first name. | string | optional | - | |
>>>>>>> SurName | Specifies the contact person's surname. | string | optional | - | |
>>>>>>> JobTitle | The contact's Booking.com Job Title Code. | BCJT | 0..1 | - | |
>>>>> Phones | Contains Phone numbers. | array of Phone | optional | - | |
>>>>>> Phone | Contains Phone number information. | array of Phone | optional | - | |
Extension | The extension number that must be dialled in addition to the @PhoneNumber . | string | 0..1 | Only accepted when @PhoneTechType="1" . | |
PhoneNumber | Specifies the international phone number. | string | optional | Follows the format: \+[0-9]+ | |
PhoneTechType | Specifies the type of phone line/device. | enumerated string | optional | For a list of supported values, see PTT. | |
>>> FacilityInfo | Contains property's facility details. | object | optional | ||
>>>> GuestRooms | Contains property's room details. | object | optional | ||
>>>>> GuestRoom | Contains property's room details. | object | optional | ||
>>>>>> Amenities | Contains property's amenities details. | object | optional | ||
>>>>>>> Amenity | Contains property's amenity details. | object | optional | ||
RoomAmenityCode | Specifies a collection of room amenity type codes. | enumerated string | required | For a list of supported room amenity type codes, see Room Amenity Type Code. | |
AmenityCode | Specifies the room amenity type code. | enumerated string | required | Same as RoomAmenityCode , introduced for compatibility with OTA_HotelInvNotifRQ. | |
Quantity | Specifies the available number of amenities of this type. | integer | optional | - | |
Value | Specifies the available number of amenities of this type. | enumerated string | optional | Same as Quantity , introduced for compatibility with OTA_HotelInvNotifRQ. | |
Configuration | Specifies whether the amenity is available in the standard or alternative room arrangement. | enumerated string | optional | Accepted only when the room amenity type code is a bed type . Supported values are: * 1 (standard arrangement) * 2 (alternative arrangement) Introduced for compatibility with OTA_HotelInvNotifRQ. | |
>>>> Restaurants | Contains property's restaurant details. | object | optional | ||
>>>>> Restaurant | Contains individual restaurant details. | object | optional | ||
OfferBreakfast | Specifies whether the restaurant offers breakfast. | integer | optional | Supports: - 1 : Offers breakfast - 0 : Does not offer breakfast (default) | |
OfferBrunch | Specifies whether the restaurant offers brunch. | integer | optional | Supports: - 1 : Offers brunch - 0 : Does not offer brunch (default) | |
OfferDinner | Specifies whether the restaurant offers dinner. | integer | optional | Supports: - 1 : Offers dinner - 0 : Does not offer dinner (default) | |
OfferLunch | Specifies whether the restaurant offers lunch. | integer | optional | Supports: - 1 : Offers lunch - 0 : Does not offer lunch (default) | |
RestaurantName | Specifies the name of the restaurant. | string | optional | - | |
>>>>>> CuisineCodes | Container for cuisine details. | array of CuisineCode | optional | - | |
>>>>>>> CuisineCode | Container for cuisine details. | array of CuisineCode | optional | - | |
Code | Specifies the main cuisine code. | enumerated string | optional | A restaurant can offer more than one cuisine. | |
>>>>>> OperationSchedules | Contains opening/closing times. | array of OperationSchedule | optional | - | |
>>>>>>> OperationSchedule | Contains opening/closing times. | array of OperationSchedule | optional | - | |
>>>>>>>> OperationTimes | Opening/closing times for the service offered. | array of OperationTime | optional | Currently used for breakfast services only. | |
>>>>>>>>> OperationTime | Opening/closing times for a Restaurant or Service like breakfast. | object | optional | Can contain multiple OperationTime elements. | |
Mon | Specifies whether the Start and End times apply on this day of the week. | integer | optional | Supported values are: - 1 = true. - 0 = false. (default) | |
Tue | Specifies whether the Start and End times apply on this day of the week. | integer | optional | Supported values are: - 1 = true. - 0 = false. (default) | |
Weds | Specifies whether the Start and End times apply on this day of the week. | integer | optional | Supported values are: - 1 = true. - 0 = false. (default) | |
Thur | Specifies whether the Start and End times apply on this day of the week. | integer | optional | Supported values are: - 1 = true. - 0 = false. (default) | |
Fri | Specifies whether the Start and End times apply on this day of the week. | integer | optional | Supported values are: - 1 = true. - 0 = false. (default) | |
Sat | Specifies whether the Start and End times apply on this day of the week. | integer | optional | Supported values are: - 1 = true. - 0 = false. (default) | |
Sun | Specifies whether the Start and End times apply on this day of the week. | integer | optional | Supported values are: - 1 = true. - 0 = false. (default) | |
Start | Contains the opening times of the Restaurant or Service . | enumerated string | required | For a list of opening times, see BCIO. | |
End | Contains the closing times of the Restaurant or Service . | enumerated string | required | For a list of closing times, see BCIO. | |
>>>>>> Features | Container for special features. | array of Feature | optional | - | |
>>>>>>> Feature | Container for special features. | array of Feature | optional | - | |
DescriptiveText | Specifies the feature type. | enumerated string | required | For all supported values, see DescriptiveText. | |
>>>>>> TPA_Extensions | Container for Ambiances and DietaryOptions . | object | optional | - | |
>>>>>>> Ambiances | Contains the ambiance/mood/atmosphere for a Restaurant . | object | optional | Can contain multiple Ambiances elements. | |
>>>>>>>> Ambiance | Contains the ambiance/mood/atmosphere for a Restaurant . | object | required | ||
Name | Specifies the ambiance type. | enumerated string | required | Supported values are: * family/kids friendly * modern * romantic * traditional | |
>>>>>>> DietaryOptions | Contains dietary options in a Restaurant . | object | optional | Can contain multiple DietaryOptions elements. | |
>>>>>>>> DietaryOption | Contains a single dietary option in a Restaurant . | object | optional | Can contain multiple DietaryOption elements. | |
Name | Specifies the dietary option. | enumerated string | required | Supported values are: * dairy free * gluten free * halal * kosher * vegan , vegetarian | |
>>> HotelInfo | Contains information about the types of rooms and services a property offers. | object | required | - | |
>>>> CategoryCodes | Contains the general property details, such as number of rooms and property type. | object | optional | - | |
>>>>> GuestRoomInfo | Contains room details. | object | optional | - | |
Quantity | Specifies the number of sellable units the property offers. | integer | optional | A "sellable unit" is the smallest possible space that a guest can book at the property. In a hotel with 200 rooms, each room is a sellable unit, and the value would be 200 .In a holiday home, guests must typically book the home in its entirety, making the value 1 . | |
>>>>> HotelCategory | Contains property type details. | object | optional | - | |
Code | Specifies the property class type code. | enumerated string | required | For a list of supported property class type codes, see Property Class Type Code. | |
ExistsCode | Specifies whether the property currently exists. | integer | optional | Supported values are: * 1 (yes) default * 0 (no) | |
>>>> Languages | Contains the languages spoken at the property. | array of Language | optional | ||
>>>>> Language | Contains the language spoken at a property. | object | optional | Can contain multiple Language elements. | |
LanguageCode | Specifies the Booking.com Language Code. | enumerated string | required | For a list of supported language codes, see Booking.com Language Code table. | |
>>>> Position | Contains the geographical coordinates of the property. | object | optional | - | |
Latitude | Specifies the latitude coordinates. | latitude | required | - | |
Longitude | Specifies the longitude coordinates. | longitude | required | - | |
>>>> Services | Contains the services offered at the property. | array of Service | optional | - | |
>>>>> Service | Contains the details of individual services offered at the property. | array of Service | optional | - | |
Code | Specifies the property amenity code for the service. | enumerated string | required | For a list of Booking.com supported property amenity codes, see Amenity codes. | |
ExistsCode | Specifies whether the service/facility is present or missing. | enumerated string | optional | Supported values are: * 1 = yes(present) * 2 = no(missing). Default: 1 . | |
Included | Specifies whether the service is included in the room price or comes at an extra charge. | enumerated string | optional | Supported values are: * true * false * unknown . Default: unknown | |
Price | The price for the service. Specified in the property's default currency. | integer | optional | Required if Code is 173 (breakfast), 6000 (lunch), 6001 (dinner). | |
CurrencyCode | Specifies the currency code. | currencycode | optional | Required if Code is 173 (breakfast), 6000 (lunch), 6001 (dinner). If specified, must match the property's default currency code. | |
>>>>>> Features | Contains the details about service features. | array of Feature | optional | ||
>>>>>>> Feature | Contains the details about service features. | array of Feature | optional | ||
DescriptiveText | Specifies the feature type. | enumerated string | required | For a list of supported values, see DescriptiveText. | |
>>>>>> Types | Contains the types of service offered. | array of Type | optional | Currently used for breakfast services only. | |
>>>>>>> Type | Contains the types of service offered. | array of Type | optional | Currently used for breakfast services only. | |
Code | Specifies the Booking.com breakfast type code. | enumerated string | optional | For a list of supported breakfast type code, see Booking.com Breakfast Type Code. | |
>>>>>> Items | Contains a collection of items. | array of Item | optional | Currently used for breakfast services only. | |
>>>>>>> Item | Contains the items for the service offered. | array of Item | optional | Currently used for breakfast services only. | |
Code | Specifies the Booking.com breakfast type code. | enumerated string | optional | For a list of supported breakfast type code, see Booking.com Breakfast Type Code. | |
>>>> OwnershipManagementInfos | Contains the information about the property's relationship to Booking.com. | array of OwnershipManagementInfo | required | - | |
>>>>> OwnershipManagementInfo | Contains the details about the property's relationship to Booking.com. | object | required | - | |
>>>>>> CompanyName | Contains the details of the company that owns/manages the property. | object | optional | ||
Code | Specifies the ID of the legal entity to which the property belongs. | integer | optional | Only allowed for new properties. | |
>>>> RelativePositions | Contains the travel routes to and from the property. | array of RelativePosition | optional | - | |
>>>>> RelativePosition | Contains the details of a travel route to or from the property. | object | optional | Can contain multiple RelativePosition elements. | |
>>>>>> Transportations | Contains an array of Transportation | object | optional | - | |
>>>>>>> Transportation | Container for TPA_Extensions . | object | optional | Can contain multiple Transportation elements. | |
>>>>>>>> TPA_Extensions | Container for Route . | object | optional | Can contain multiple TPA_Extensions elements. | |
>>>>>>>>> Route | Contains the details of a travel route. | object | optional | - | |
>>>>>>>>>> Leg | Contains the details of the starting point, destination, and transport method. | object | required | - | |
>>>>>>>>>>> Departure | Contains the departure times. | object | optional | - | |
Interval | Contains the departure interval in minutes, if the transportation departs multiple times a day. | integer | optional | - | |
UponArrangement | Specifies whether the transportation is available only by arrangement. | integer | optional | Supported values are: - 1 = true. - 0 = false. | |
>>>>>>>>>>> Junction | Contains details of the motorway/highway junction/exit to take. | object | optional | - | |
Name | Specifies the name of the junction/exit to take, if travelling by car. | string | required | Only allowed when TransportType[Code="5"] . | |
>>>>>>>>>>> Line | Contains the public transport line details. | object | optional | - | |
Name | Specifies the name or number of the line to take, if travelling by shuttle or public transport. | string | optional | Only allowed when TransportType[Code] is 3 , 10 , 18 , 22 , or 5001 . | |
>>>>>>>>>>> Motorway | Contains details of the motorway/highway details. | object | optional | - | |
Name | Specifies the name of the motorway to take, if travelling by car. | string | optional | Only allowed when TransportType[Code="5"] (car). | |
>>>>>>>>>>> Start | Contains the starting point details. | object | optional | - | |
Type | Specifies the type of starting point. | enumerated string | required | Accepted values: airport | |
Code | Specifies the 3-letter IATA code of the airport that serves as the starting location. | enumerated string | required | For a list of supported IATA codes, see IATA. | |
>>>>>>>>>>> TransportType | Contains the transportation mode. | object | optional | - | |
Code | Specifies the transportation code for the Leg 's transportation type. | integer | required | For a list of supported values, see Transportation code. | |
>>>>>>>>>> JourneyTime | Contains the travel time details. | object | required | - | |
Minutes | Specifies the journey time in minutes. | integer | required | - | |
>>>>>>>>>> Price | Contains the travel price details. | object | optional | - | |
Amount | Specifies the estimated price of the journey, in CurrencyCode . | real | optional | - | |
CurrencyCode | Specifies the currency code. | currencycode | optional | - | |
>>>> TPA_Extensions | Container for AcceptedPayments , and InvoiceDetails . | object | optional | - | |
>>>>> AcceptedPayments | Contains the details of the payment methods. | object | optional | Can contain multiple AcceptedPayments elements. | |
>>>>>> AcceptedPayment | Contains the details of a payment method. | object | optional | Can contain multiple AcceptedPayment elements. | |
PaymentTypeCode | Specifies the Booking.com Payment Type Code. | BCPT | required | - | |
>>>>> InvoiceDetails | Contains the special identifying information for Brazilian properties, issued by the Brazilian tax authority. Used for invoicing. | object | optional | Required for Brazilian properties. | |
>>>>>> InvoiceTaxType | Contains details useful for processing invoices. | object | required | ||
Type | Specifies whether the identifying number belongs to a company or a private individual. | enumerated string | required | Accepts: CNPJ (company), CPF (private individual). | |
>>>>>> InvoiceTaxNumber | string | required | |||
Code | The identifying number. | string | required | Length depends on the value of InvoiceTaxType[Type] . CNPJ = 14 digits. CPF = 11 digits. | |
>>>>>> InvoiceAddress | string | required | - | ||
Email | Email address of invoice recipient. | string | required | - | |
>>>>>>> CityHallInfo | string | required | - | ||
Id | The 8-digit ID for the city hall which issued the CNPJ or CPF number. | string | required | - | |
>>>>>>> BirthDate | string | optional | |||
Date | Date of birth of the individual providing the CPF number. | string | optional | Format: YYYY-MM-DD . Required if InvoiceTaxType[Type="CPF"] . | |
>>>>> PaymentPreferences | Contains details such as whether properties can see guest's credit card details and collect CVC codes. | object | optional | The default value for NoCVC is 1. | |
NoCVC | Specify whether properties can collect CVC for a booking. | boolean | optional | * 0 - Properties can collect CVC details. * 1 - Properties cannot collect CVC details. | |
ViewCCDetails | Specify whether trusted properties can view the guest's credit card details. | boolean | optional | * 0 - Properties cannot view credit card details. * 1 - A trusted property can view the credit card details. | |
>>> Policies | Contains all policy details. | object | optional | - | |
>>>> Policy | Contains policy details. | object | optional | - | |
>>>>> PolicyInfo | Contains check-in/-out times. | object | optional | - | |
CheckInTime | The Booking.com Check-in/Check-Out Time Code for the earliest time a guest can check in. | enumerated string | optional | Format: HH:MM (from) or HH:MM-HH:MM (from-to). Only "from" is required; "to" is optional. 24-hour check-in can be specified using 00:00-00:00 . | |
CheckOutTime | The Booking.com Check-in/Check-Out Time Code for the time by which a guest should check out at the latest. | enumerated string | optional | Format: HH:MM (from) or HH:MM-HH:MM (from-to). 24-hour check-out can be specified using 00:00-00:00 . | |
TotalGuestCount | The total number of guests that can stay at the property at a given time. | integer | optional | - | |
AcceptedGuestType | Specifies whether the property admits adults and children, or only adults. | enumerated string | optional | Accepts AdultOnly and ChildrenAllowed . Default value is AdultsOnly , which means children are not allowed. | |
MinGuestAge | Specifies the minimum age that children are allowed (in case ChildrenAllowed ). | integer | optional | ||
>>>>> CancelPolicy | Policies around cancellations and no-shows. | array of CancelPenalty | optional | - | |
>>>>>> CancelPenalty | Contains Cancellation fee details. | optional | Can contain multiple CancelPenalty elements. | ||
PolicyCode | The Booking.com Cancellation Policy Code. | enumerated string | optional | ||
>>>>>>> TPA_Extensions | Container for NoShowPolicy. | array of NoShowPolicy | optional | - | |
>>>>>>>> NoShowPolicy | No-show policy details. | object | optional | Descendant of CancelPenalty . | |
Penalty | Specifies how much the property charges if the guest doesn't show up on the check-in date. | enumerated string | required | Accepts: total_price (of stay), default (same as cancellation fee). | |
>>>>> PetsPolicies | Policies around pets. | array of PetsPolicy | optional | - | |
PetsAllowedCode | Specifies the property's policy regarding pets. | enumerated string | optional | Accepts: - Pets Allowed - Pets Not Allowed (default) - Pets By Arrangements | |
>>>>>> PetsPolicy | Pets policy details. | object | optional | Required if PetsAllowedCode is Pets Allowed , Pets By Arrangements . | |
NonRefundableFee | Specifies if the property charges for having a pet stay in the room. | enumerated string | Accepts: - free (default) - charges_may_apply | ||
>>>>> GuaranteePaymentPolicy | Policies around refunds. | array of GuaranteePayment | optional | - | |
>>>>>> GuaranteePayment | Refund policy details. | array of GuaranteePayment | optional | - | |
PolicyCode | The Booking.com Cancellation Policy Code. | enumerated string | optional | ||
>>>>>>> TPA_Extensions | Container for PrepaymentPolicy . | object | optional | - | |
>>>>>>>> PrepaymentPolicy | - | object | optional | Descendant of GuaranteePayment . | |
EffectiveFrom | The moment at which the refund policy becomes effective. | enumerated string | required | Accepts: after_reservation_is_made , after_cancellation_fee_begins . Default: after_reservation_is_made | |
>>>>> TaxPolicies | Policies around taxes. | array of TaxPolicy | optional | - | |
>>>>>> TaxPolicy | Tax policy details. | object | optional | Can contain multiple TaxPolicy elements. | |
Code | The Fee Tax Type Code. | FTT | required | - | |
Amount | The amount charged, in the country's local currency. | price | optional | Instead of Amount , you can also use Percent . | |
DecimalPlaces | The number of decimal places to apply to Amount . | integer | optional | - | |
Percent | The percentage of the room price that will be added as taxes. | non-negative | optional | Only allowed if Amount is not provided. Required if Code="36" (VAT). | |
Type | Specifies whether the tax is included in the room price or not. | enumerated string | optional | Accepts: Inclusive , Exclusive . | |
ChargeFrequency | The Charge Type Code that specifies the basis for the charge (e.g. once per stay, every day). | enumerated string | optional | Default: 21 (Per person per night) | |
InvCode | The Booking.com room type ID that this fee applies to. | string | optional | A fee can only apply to one room type at a time. To apply the same fee to multiple rooms, duplicate the entire TaxPolicy element. To apply a fee to all rooms in the property, remove InvCode . Get the room type ID from OTA_HotelInvNotifRS endpoint ResponseInvCode attribute on creation of room type. | |
>>>>> FeePolicies | Policies around service fees (WiFi, heating, pets, etc.). | array of FeePolicy | optional | - | |
>>>>>> FeePolicy | Fee policy details. | object | optional | Can contain multiple FeePolicy elements. | |
Code | The Fee Tax Type Code. | FTT | required | - | |
Amount | The amount charged, in the country's local currency. | price | optional | Instead of Amount , you can also use Percent . | |
DecimalPlaces | The number of decimal places to apply to Amount . | integer | optional | Default: 0 | |
Percent | The percentage of the room price that will be added as a fee. | non-negative | optional | Only allowed if Amount is not provided. | |
Type | Specifies whether the fee is included in the room price, or is charged only under certain conditions. | enumerated string | optional | Accepts: Inclusive , Exclusive , Conditional . Conditional is only allowed when [Code="5009"] (cleaning fees). | |
ChargeFrequency | The Charge Type Code that specifies the unit of time on which the charge is calculated (e.g. once per stay, every day). | enumerated string | optional | Default: 21 (Per person per night) | |
MinAge | Specifies the minimum age for the children policy to apply. In combination with MaxAge it becomes an age range. | integer | optional | You can use this attribute with Fee Tax Type (FTT) code 37, 38, or 44. If you want to specify different prices per age range, you must create multiple FeePolicy elements within the same request. See example. | |
MaxAge | Specifies the maximum age for the children policy to apply. The max value is 255 (adult). | integer | optional | You can use this attribute with Fee Tax Type (FTT) code 37, 38, or 44. If you want to specify different prices per age range, you must create multiple FeePolicy elements within the same request. See example. | |
InvCode | Specifies the Booking.com room type ID to which the fee applies. | string | optional | You can apply one fee policy to one room type at a time. To apply the same fee policy to multiple rooms, you have to add another FeePolicy element for each additional room type. To apply a fee to all room types in the property, you must remove the InvCode attribute. | |
>>>>>>> TPA_Extensions | Container for Conditions , InternetFeePolicy or ParkingFeePolicy (depending on Type ). | object | optional | - | |
>>>>>>>> Conditions | Cleaning fee conditions. | object | required | - | |
>>>>>>>>> Condition | Cleaning fee condition details. | object | required | - | |
Type | Specifies when a guest must pay the extra cleaning fee. | enumerated string | required | Accepts: guest_brings_pet , guest_doesnt_clean_before_checkout , guest_smokes . | |
>>>>>>>> InternetFeePolicy | Internet fee details. | object | optional | Only allowed when FeePolicy[Type="5035"] . | |
InternetType | Specifies the type of internet connection. | enumerated string | optional | Accepts: wired , wifi , none . Default: wifi | |
InternetCoverage | Specifies the area covered by the internet. | enumerated string | optional | Accepts: entire_property , public_areas , all_rooms , some_rooms , business_centre . Default: entire_property | |
>>>>>>>> ParkingFeePolicy | Parking fee policy details. | object | optional | You can apply parking fee with Parking fee policy details as a FeePolicy , which will not be added to reservation price. To apply parking fee as charges which is applied to all reservations, properties must request Booking.com local support team to set it as VAT/Tax/Charges in the extranet. | |
ParkingType | Specifies the type of parking the property offers. | enumerated string | optional | Accepts: on_site , location_nearby , none . Default: on_site | |
ParkingReservation | Specifies whether guests can/must reserve a parking space in advance. | enumerated string | optional | Accepts: needed , not_needed , not_available . Default: not_available | |
ParkingProperty | Specifies whether the parking facility is publicly accessible or private. | enumerated string | Accepts: private , public . Default: public | ||
>>> TPA_Extensions | object | optional | Container for: StandardPhrases , GuestInformation , PropertyTaxInfo , PreventLikelyToBeCancelledBookings , CancellationGracePeriod , TotalNumberOfFloors , PricingType , LongStayInfo . | ||
>>>> StandardPhrases | Standard phrases details. | object | optional | Can contain multiple StandardPhrases elements. | |
>>>>> StandardPhrase | Standard phrase details. | object | optional | Can contain multiple StandardPhrase elements. | |
Enabled | Specifies whether the standard phrase is enabled. | integer | required | Supported values are: - 1 = true. - 0 = false. | |
Name | Specifies which standard phrase must be displayed. | enumerated string | required | For Coronavirus-related phrases, see Standard phrases during the Coronavirus. | |
>>>>>> Options | - | Contains a collection of Options. | optional | ||
>>>>>>> Option | - | Additional configuration for certain types of StandardPhrase . | optional | Required if Name is KeyCollection , Renovation ,HotelChainBedLinen , or SecurityDeposit . | |
Name | The type of option. | enumerated string | required | Accepts: KeyCollectionAddressLine , KeyCollectionCityName , KeyCollectionPostalCode , RenovationFrom , RenovationUntil , SecurityDepositAmount , SecurityDepositCollectMethod , SecurityDepositCollectWhen , SecurityDepositCollectNumDays , SecurityDepositReturnMethod , SecurityDepositReturnWhen , HotelChainBedLinenAmount . | |
>>>> GuestInformation | Contains flags that specify which information guests must provide. | object | optional | - | |
RequireGuestAddress | Specifies whether guests must provide an address. | integer | optional | Accepts: 1 (required), 0 (not required). | |
RequireGuestContactNumber | Specifies whether guests must provide a contact telephone number. | integer | optional | Accepts: 1 (required), 0 (not required). | |
HasAgeRestriction | Specifies whether there is an age limit to check-in. | integer | optional | Accepts: 1 (has age restriction), 0 (does not have age restriction). | |
AgeRestrictionMin | Minimum allowed age for guests to check-in. Only effective when HasAgeRestriction =1. | integer | 18..99 | Only effective when HasAgeRestriction =1. | |
AgeRestrictionMax | Maximum allowed age for guests to check-in. Only effective when HasAgeRestriction =1. | integer | 18..99 | Only effective when HasAgeRestriction =1. | |
HasCurfew | Specifies whether property has a curfew - times at which guests cannot enter/leave the property. | integer | optional | Accepts: 1 (has curfew), 0 (does not have curfew). | |
CurfewStart | Curfew start time in HH:MM format. | string | optional | Only effective when HasCurfew =1. | |
CurfewEnd | Curfew start time in HH:MM format. | string | optional | Only effective when HasCurfew =1. | |
>>>> PropertyTaxInfo | Object that contains city tax-related information. | object | optional | - | |
PropertyRegisteredInVcs | Are you registered as a professional at the trade commercial register (Registre du Commerce et des Sociétés)? | integer | required | Accepts: 1 (yes), 0 (no). | |
PropertyHasVat | Do you have a VAT registered for this activity? | integer | required | Accepts: 1 (yes), 0 (no). | |
PropertyDeclaresRevenue | Do you declare revenues as professional for direct tax purposes (see article 155 IV du CGI)? | integer | required | Accepts: 1 (yes), 0 (no). | |
PropertyTaxCategory | Contains a number - city tax category ID. You can retrieve available categories using the /xml/citytaxcategory call. | integer | optional | If your answer to any of the preceding questions is (yes), then you must NOT send the PropertyTaxCategory . The system sets it up automatically. Accepts: integer value containing category ID. | |
PropertyNatureCategory | Contains a number - nature category ID. You can retrieve available categories using /xml/citytaxcategory call. | integer | optional | Accepts integer value containing category ID. | |
Enabled | Enable/disable selling meal plans as addons through booking or not. | boolean | 1 will enable selling meals as addons through booking, 0 will disable that. | ||
>>>> PreventLikelyToBeCancelledBookings | Feature object | object | optional | - | |
Enabled | Enable/disable the feature for current property. | boolean | 1 - opt in to the feature. 0 - opt out of the feature. | ||
>>>> CancellationGracePeriod | Cancellation exceptions container object. | object | - | - | |
HoursAfterBooking | Grace period - amount of hours after booking when free cancellation is available. | integer | optional | Accepts: 0, 1, 4, 24 . | |
WeeksBeforeCheckIn | Advance cancellation - amount of weeks before check-in when free cancellation is available. | integer | optional | Accepts: 0, 4, 8, 12 | |
>>>> TotalNumberOfFloors | Allows to set the total number of floors in the building excluding underground floors. | object | optional | - | |
Number | Total number of floors the building has (excl. underground floors). | non-negative | Max value can be 200. | ||
>>>> PricingType | Additional pricing configuration for HotelProduct. | object | optional | - | |
Value | Specifies the pricing type for the product. | enumerated string | optional | Accepts: Standard , OBP , or LOS . Default: Standard . Note: For length of stay pricing (LOS) and Occupancy Based pricing (OBP), you must be certified to use these pricing types. Please check with the Booking.com Connectivity support team about the certification process. | |
>>>> LongStayInfo | Long Stay container object. | object | Optional | - | |
AcceptLongStay | Whether the property accepts a stay longer than 30 nights. Defaults to No. | boolean | Optional | Accepts: - 0: False - 1: true | |
MaxLengthOfStay | The maximum length of stay that a guest can book. | integer | Optional | Accepts: 45, 60, 75, 90 . Defaults to 90. | |
>>>> BookingModel | Booking model of the property. Supports request to book or instant booking (default value). | object | optional | - | |
Type | Specifies whether the property supports request to book feature. | enumerated string | required | Accepts: - RTB : Enables request to book - IB : (default) Enables instant booking. Disables request to book. |
Request body
The following is a request body example:
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelDescriptiveContentNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" PrimaryLangID="en-us" EchoToken="GUID" TimeStamp="2015-06-09T09:30:47Z" xsi:schemaLocation="http://www.opentravel.org/2014B/OTA_HotelDescriptiveContentNotifRQ.xsd" id="OTA2014B" Version="8.0" Target="Production"> <HotelDescriptiveContents> <HotelDescriptiveContent HotelName="The Best Hotel" LanguageCode="en" HotelDescriptiveContentNotifType="New"> <ContactInfos> <ContactInfo ContactProfileType="PhysicalLocation"> <Addresses> <Address> <!-- Replace the {PlaceHolders} in the following lines! --> <AddressLine>{AddressLine}</AddressLine> <CityName>{CityName}</CityName> <PostalCode>{PostalCode}</PostalCode> <CountryName>{CountryCode}</CountryName> </Address> </Addresses> </ContactInfo> <ContactInfo ContactProfileType="general"> <Names> <Name Language="en"> <GivenName>Jane</GivenName> <Surname>Doe</Surname> </Name> </Names> <Emails> <Email>noreply@booking.com</Email> </Emails> <Phones> <Phone PhoneNumber="+31666666666" PhoneTechType="5" /> </Phones> </ContactInfo> <ContactInfo ContactProfileType="invoices"> <Names> <Name Language="en"> <GivenName>Sam</GivenName> <Surname>Xu</Surname> </Name> </Names> <Addresses> <Address> <AddressLine>Herengracht 597</AddressLine> <CityName>Amsterdam</CityName> <PostalCode>1017 CE</PostalCode> <StateProv StateCode="NH" /> <CountryName>NL</CountryName> </Address> </Addresses> <Phones> <Phone PhoneNumber="+31207777777" PhoneTechType="1" Extension="30" /> </Phones> </ContactInfo> </ContactInfos> <HotelInfo> <CategoryCodes> <GuestRoomInfo Quantity="100" /> <!-- Replace the {PlaceHolder} in the following line! --> <HotelCategory ExistsCode="1" Code="{PropertyClassTypeCode}" /> </CategoryCodes> <!-- Replace the {PlaceHolder} in the following line! --> <Position Latitude="{Latitude}" Longitude="{Longitude}" /> <OwnershipManagementInfos> <OwnershipManagementInfo> <!-- Replace the {PlaceHolder} in the following line! --> <CompanyName Code="{LegalEntityID}" /> </OwnershipManagementInfo> </OwnershipManagementInfos> </HotelInfo> <FacilityInfo> <GuestRooms> <GuestRoom> <Amenities> <Amenity RoomAmenityCode="228" /> </Amenities> </GuestRoom> </GuestRooms> <Restaurants> <Restaurant RestaurantName='Antekoje' OfferLunch='1' OfferDinner='1'> <CuisineCodes> <CuisineCode Code='51'/> <CuisineCode Code='49'/> </CuisineCodes> <OperationSchedules> <OperationSchedule> <OperationTimes> <OperationTime Mon='1' Tue='1' Weds='1' Thur='1' Fri='1' Sat='1' Sun='1' Start='17:30' End='22:00' /> <OperationTime Sat='1' Sun='1' Start='11:00' End='14:30' /> </OperationTimes> </OperationSchedule> </OperationSchedules> <Features> <Feature DescriptiveText='a la carte'/> <Feature DescriptiveText='buffet'/> <Feature DescriptiveText='accepts reservations'/> <Feature DescriptiveText='outdoor seating'/> </Features> <TPA_Extensions> <Ambiances> <Ambiance Name='modern'/> </Ambiances> <DietaryOptions> <DietaryOption Name='gluten free'/> <DietaryOption Name='vegan'/> </DietaryOptions> </TPA_Extensions> </Restaurant> </Restaurants> </FacilityInfo> <Policies> <Policy> <PolicyInfo CheckInTime="16:00" CheckOutTime="11:00"/> <PetsPolicies PetsAllowedCode="Pets By Arrangements"> <PetsPolicy NonRefundableFee="free" /> </PetsPolicies> <CancelPolicy> <CancelPenalty PolicyCode="43" /> <CancelPenalty PolicyCode="1" /> </CancelPolicy> <GuaranteePaymentPolicy> <GuaranteePayment PolicyCode="43" /> <GuaranteePayment PolicyCode="1" /> </GuaranteePaymentPolicy> <TaxPolicies> <TaxPolicy Code="36" Percent="1800" DecimalPlaces="2" Type="Inclusive" ChargeFrequency="12" /> <TaxPolicy Code="3" Percent="350" DecimalPlaces="2" Type="Exclusive" ChargeFrequency="21" /> </TaxPolicies> <FeePolicies> <FeePolicy Code="5012" Amount="1600" DecimalPlaces="2" Type="Exclusive" ChargeFrequency="12" /> <FeePolicy Code="5013" Amount="1800" DecimalPlaces="2" Type="Exclusive" ChargeFrequency="12" /> <FeePolicy Code="5035" Amount="500" DecimalPlaces="2" Type="Exclusive" ChargeFrequency="1" > <TPA_Extensions> <InternetFeePolicy InternetType="wifi" InternetCoverage="public_areas" /> </TPA_Extensions> </FeePolicy> <FeePolicy Code="5036" Amount="350" DecimalPlaces="2" Type="Exclusive" ChargeFrequency="2" > <TPA_Extensions> <ParkingFeePolicy ParkingType="location_nearby" ParkingReservation="needed" ParkingProperty="private"/> </TPA_Extensions> </FeePolicy> </FeePolicies> </Policy> </Policies> </HotelDescriptiveContent> </HotelDescriptiveContents> </OTA_HotelDescriptiveContentNotifRQ>
DescriptiveText
The Feature[DescriptiveText]
accepts the following values. Each value corresponds with a similarly named setting on the Facilities & Services page on our Extranet. Some options appear only when the Restaurant checkbox is selected.
Value | Description |
---|---|
a la carte | The restaurant offers à la carte dining. |
buffet | The restaurant has a buffet. |
guests only | The restaurant only serves guests of the property. |
accepts reservations | Customers can reserve a table at the restaurant. |
outdoor seating | The restaurant offers outdoor seating. |
ContactProfileType
ContactInfo[ContactProfileType]
accepts the following values. Each value corresponds with a similarly named heading on the Contacts page in our extranet.
A property must have all the required contact profiles before you can open it.
Value | Description | Required |
---|---|---|
general | Primary point of contact for the property. | Required |
contract | Contact for contract matters. | Optional |
reservations | Contact for reservations. | Optional |
invoices | Contact for accounts payable. | Required |
availability | Contact for questions about availability. | Optional |
site_content | Contact for photos, descriptions, and other website content. | Optional |
parity | Contact for pricing and rate matters. | Optional |
requests | Contact for special requests. | Optional |
central_reservations | Contact for central reservations. Applies to properties that manage reservations from another location. | Optional |
PhysicalLocation | Address details for the property's physical location. | Required |
Response body example
The following is a successful response body example:
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelDescriptiveContentNotifRS 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_HotelDescriptiveContentNotifRS.xsd" TimeStamp="2015-07-31T12:36:23-00:00" Target="Test" Version="3.000"> <UniqueID Type="10" ID="{PropertyID}" /> <Success /> </OTA_HotelDescriptiveContentNotifRS> <!-- RUID: [XXXXXXXXXXXXXXXXXXXXXXXXXXX==] -->
Response body parameters
The following table describes the response elements:
Element | Description | Type | Notes |
---|---|---|---|
OTA_HotelDescriptiveContentNotifRS | Contains the response data. | object | |
> warnings | Contains potential warnings. These can help you improve your requests. | array | |
> errors | Contains potential errors. These can help you understand what went wrong with your request. | array | |
> success | Indicates the success of the request. | object | |
ruid | Specifies the unique ID of the request. | string | You can send this ID to Booking.com's Connectivity support team if you run into an issue. This can help to understand what went wrong. |
Copying fees forward
When a property has set up a tax or fee change at a future moment in time in the extranet, Booking.com systems automatically copy the other existing fees to the future period. Looking at the table below, this means that at the future moment in time the updated fees will become effective.
Fee | Now | Future moment in time (for example, 01/01/2023) |
---|---|---|
VAT | 8% | 9% |
Cleaning fee | €50 per stay | €50 per stay |
City Tax | €5 per day | €5 per day |
However, if you make changes via the Content API (/ota/OTA_HotelDescriptiveContentNotif
endpoint) after the future fee change was set up, Booking.com systems did not automatically copy the updated fees to the future period. Looking at the table, you can see that when you change the cleaning fee value via the Content API, it does not get copied forward to the future moment in time.
Fee | Now | Future moment in time (for example, 01/01/2023) |
---|---|---|
VAT | 8% | 9% |
Cleaning fee | €70 per stay | €50 per stay |
City Tax | €5 per day | €5 per day |
To mitigate this behavior, the Content API now has a setting (TPA_Extensions
> OverwriteFutureFees
) with a default setting (1
) to copy any fee changes to the future moment in time. If you want to turn off this behavior, you can send a request by setting the value to 0
.
Partial example
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelDescriptiveContentNotifRQ Target="Production"> <HotelDescriptiveContents> <HotelDescriptiveContent HotelName="The Best Hotel" LanguageCode="en" HotelDescriptiveContentNotifType="Overlay"> <Policies> <Policy> <PolicyInfo CheckInTime="16:00" CheckOutTime="11:00"/> <PetsPolicies PetsAllowedCode="Pets By Arrangements"> <PetsPolicy NonRefundableFee="free" /> </PetsPolicies> <CancelPolicy> <CancelPenalty PolicyCode="43" /> <CancelPenalty PolicyCode="1" /> </CancelPolicy> <GuaranteePaymentPolicy> <GuaranteePayment PolicyCode="43" /> <GuaranteePayment PolicyCode="1" /> </GuaranteePaymentPolicy> <TaxPolicies> <TaxPolicy Code="36" Percent="900" DecimalPlaces="2" Type="Inclusive" ChargeFrequency="12" /> </TaxPolicies> <FeePolicies> <FeePolicy Code="5009" Amount="7000" DecimalPlaces="2" Type="Exclusive" ChargeFrequency="12" /> <FeePolicy Code="3" Amount="500" DecimalPlaces="2" Type="Exclusive" ChargeFrequency="1" /> <FeePolicy Code="5036" Amount="350" DecimalPlaces="2" Type="Exclusive" ChargeFrequency="2" /> </FeePolicies> <TPA_Extensions OverwriteFutureFees='1' /> </Policy> </Policies> </HotelDescriptiveContent> </HotelDescriptiveContents> </OTA_HotelDescriptiveContentNotifRQ>
Enabling request to book
Booking.com supports two types of booking flow depending on the partners choice:
- Instant booking (IB): The existing booking flow where guests search and book a stay instantly with the option to pay immediately or at the property depending on the cancellation policy.
- Request to book (RtB): (a.) Guests who want to stay at the partner's property send them a booking request at least three days before check-in. (b.) Partner receives a booking request notification and has 24 hours to accept or decline it. (c.) If the partner accepts the request, the guest has 24 hours to complete their booking and confirm their stay. If they don’t complete the booking in time, the request will expire and no reservation will be made.
Availability for request to book are shown to guests only when the stay dates are 3 or more days in the future.
RtB can only be enabled for new properties meeting certain eligibility criteria.
In order to make use of the Content API to change a property's booking model to RtB, you must have the content_api_rtb_enabled
feature on. You can do this in the provider portal by going to your feature management.
If RtB feature is not specified in the /ota/OTA_HotelDescriptiveContentNotif
request, then the property is configured for instant booking (IB) booking flow.
Partial example
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelDescriptiveContentNotifRQ Target="Production"> <HotelDescriptiveContents> <HotelDescriptiveContent HotelName="The Best Hotel" LanguageCode="en" HotelDescriptiveContentNotifType="New"> <TPA_Extensions> <BookingModel Type="RTB"/> </TPA_Extensions> </HotelDescriptiveContent> </HotelDescriptiveContents> </OTA_HotelDescriptiveContentNotifRQ>
Error codes
BuildHotel error
If you receive the BuildHotel error
, try to resend the same building request again until you receive a success
response. The system excludes properties built with the BuildHotel error, which are automatically set to Closed
(status). In case the BuildHotel error
does not disappear, contact Connectivity Support.