Managing property details
Use the Property Details API (property-api
) to create, update and retrieve property details.
Creating property details
POST
https://supply-xml.booking.com/property-api/properties
Use the property-api
endpoint to create a property by specifying the property details such as name, property category, physical location, check in/out time and few others. After successfully processing the request, the endpoint returns a property ID.
API validations
In addition to the validations mentioned in the Request body parameters table below, here are some additional validations to be aware of:
- The latitude and longitude values must correspond to the country specified under
physical_address
... >...country_code
. Otherwise, the API returnsCannot create a hotel because UFI country (countryCode) is different from property country (countryCode)
. - Make sure the property is not a duplicate of an existing non-test property. Property Details API defines a duplicate as having an exact match on: property name, address line, position.latitude, and position.longitude.
- If the API finds a duplicate property AND the property is associated with your account or the provided LEID then the API returns the existing properties’ ID so that you can add more room types or quantity or ask the property owner to update the existing property. For more information, see the OTA Error Code 850.
- In the case that you still wish to create the property, you can avoid the duplicate block by ensuring that the property name or address line is unique.
- Note that the duplicate check is applied on all creation requests, both production and test. However, only existing production properties are searched when considering potential duplicates. This is a departure how from duplicate check is applied in OTA_HotelDescriptiveContentNotif. If you wish to test the duplicate check behaviour when creating a test property, it must match an existing production property.
- The postcode/zip code must be correct for the city.
- The postcode/zip code must be correct for the country.
- Add a valid phone number with +country code (rather than just the local number).
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).
- Name does not include emojis or some special characters including " | > <"
- Is not all in uppercase.
- Does not support CJK Unified Ideographs.
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.
Header parameter
The following table describes the elements you can add in the header:
Header | Description | Type | Required/ Optional | Notes |
---|---|---|---|---|
Content-Type: application/json | Specifies the expected content type. | string | required | |
Accept-Version | Specify the version number to get the API functionality specific to that version. | string | optional | Currently supports the value: 1.0 |
Request body parameters
The following table describes the elements you can add in the request body:
Element | Attribute | Description | Type | Required/ Optional | Notes | Root parameter in HDCN |
---|---|---|---|---|---|---|
> position | Contains the geographical coordinates of the property. | object | required | - | >>>> Position | |
latitude | Specifies the latitude coordinates. | double | required | - | Latitude | |
longitude | Specifies the longitude coordinates. | double | required | - | Longitude | |
> check_in | Contains the check-in details. | object | required | Specify 24-hour check-in by using 00:00 for both from and until . | >>>>> PolicyInfo.CheckInTime | |
from | Specifies the earliest time a guest can check-in. | enumerated string | required | Accepted values follow the Booking.com Check-In / Check-Out Times format. | ||
until | Specifies the latest time when a guest can check-in. | enumerated string | optional | Accepted values follow the Booking.com Check-In / Check-Out Times format. | ||
> check_out | Contains the check-out details. | object | optional | Specify 24-hour check-out by using 00:00 for both from and until . | >>>>> PolicyInfo.CheckOutTime | |
from | Specifies the earliest time a guest can check-out. | enumerated string | optional | Accepted values follow the Booking.com Check-In / Check-Out Times format. | ||
until | Specifies the latest time when a guest can check-out. | enumerated string | required if check_out > from is specified | Accepted values follow the Booking.com Check-In / Check-Out Times format. | ||
> property_name | Specifies the name of the property on Booking.com. | string | required | Does not support using CJK Unified Ideographs. | >> HotelDescriptiveContent.HotelName | |
> property_category | Specifies the property class type code. | integer | required | For a list of supported property class type codes, see Property Class Type Code. | >>>>> HotelCategory | |
> primary_language | Specifies the language in which the property wants their Booking.com extranet content and communication such as emails, notifications, and so on. | enumerated string | optional | Default: en-gb . For a list of supported language codes, see Booking.com Language Code table. | LanguageCode | |
> languages_spoken | Contains the language(s) spoken at the property. | array of enumerated strings | optional | Can contain multiple Language elements. For a list of supported language codes, see Booking.com Language Code table. | >>> HotelInfo.Languages | |
> room_count | Specifies the number of sellable units the property offers. | integer | required | A "sellable unit" is the smallest possible space that a guest can book at the property. In a property 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 . | >>>>> GuestRoomInfo.Quantity | |
> floor_count | Specifies the total number of floors in the building, excluding the underground floors. | integer | optional | Max value can be 200. | >>>> TotalNumberOfFloors.Number | |
> stars | Specifies the number of stars. You can set star rating only for Hotel properties such as Hostel, Resort, Motel or Capsule Hotel among others and not Apartment or Villa and so on. | integer | optional | Accepts values: 0 –5 . Starting from 1, accepts values in increments of .5. Some countries don't use star ratings. To see whether your property belongs to a Hotel property type, see the property class type table. | >>> AffiliationInfo > Awards > Award.Rating | |
> target | Specifies whether it is a test or production-ready property. | enumerated string | required | Accepts the following values: - test - production | > OTA_HotelDescriptiveContentNotif.Target | |
> provider_property_id | Specifies a custom property ID. | string | optional | Recommended for new properties. For example, the provider's internal ID. Can contain a maximum of 16 characters. | >>> HotelInfo.ID | |
> currency_code | Specifies the Booking.com defined currency for the property. | enumerated string | optional | In select countries a currency other than the default can be selected. For more details see the information the currency documentation | CurrencyCode | |
> physical_address | Contains the property's physical address. | object | required | - | ||
city_name | Species the name of the city, town, or village. | string | required | Does not support using CJK Unified Ideographs. | >>> ContactInfos ContactProfileType =PhysicalLocation to update physical address details using HDCN. | |
country_code | Species the two-letter country code. | enumerated string | required | For more information on how to retrieve the country code details, see xml/countries endpoint. | >>> ContactInfos ContactProfileType =PhysicalLocation to update physical address details using HDCN. | |
postal_code | Specifies the postal/zip code. | string | optional | Make sure the zip code (postal_code ) is relevant to the country specified in the country_code . | >>> ContactInfos ContactProfileType =PhysicalLocation to update physical address details using HDCN. | |
address_line | Species the full street name and number. | string | required | Does not support using CJK Unified Ideographs. Should not contain abbreviations (such as "Rd." for "Road") and should not exceed 255 characters. | >>> ContactInfos ContactProfileType =PhysicalLocation to update physical address details using HDCN. | |
display_address | Specifies whether to hide the full address details from the guest. | boolean | optional | - true : Shows the full address to the guest. - false : Hides the full address from the guest. | >>> ContactInfos > HiddenAddress > ShouldHideAddress ContactProfileType =PhysicalLocation to update physical address details using HDCN. | |
> translations | Specifies the non-English translations of the physical address. | array of objects | optional | - | >>> ContactInfos ContactProfileType =PhysicalLocation to update physical address details using HDCN. | |
city_name | Species the name of the city, town, or village. | string | required | >>> ContactInfos ContactProfileType =PhysicalLocation to update physical address details using HDCN. | ||
address_line | Species the full street name and number. | string | required | Should not contain abbreviations (such as "Rd." for "Road") and should not exceed 255 characters. | >>> ContactInfos ContactProfileType =PhysicalLocation to update physical address details using HDCN. | |
language_code | Species the Booking.com Language code for the address details. | enumerated string | required | Used for non-English translations. For a list of supported language codes, see Booking.com Language Code table. | ||
property_name | Specifies the non-English name of the property on Booking.com. | enumerated string | required | >> HotelDescriptiveContent.HotelName | ||
> legal_entity_id | Specifies the ID of the legal entity to which the property belongs. | integer | required | Only allowed for new properties. | CompanyName > Code |
Request body
The following is a request body example:
{ "position": { "latitude": 52.388418, "longitude": 4.619941 }, "check_in": { "from": "12:30" }, "check_out": { "from": "10:00", "until": "10:30" }, "property_name": "Floating hotel", "property_category": 30, "primary_language": "en-gb", "languages_spoken": [ "en-gb", "nl", "ms" ], "room_count": 8, "floor_count": 1, "provider_property_id": "flotella003", "stars": "4", "target": "test", "physical_address": { "city_name": "Overveen", "country_code": "NL", "postal_code": "2051", "address_line": "Zandvoort", "display_address": true }, "translations": [ { "city_name": "Overveen", "address_line": "Zandvoort", "language_code": "es", "property_name": "Floating hotel" } ], "legal_entity_id": "78775" }
Response body
The following is a response body example:
{ "data": { "property_id": 10664256 }, "warnings": [], "meta": { "ruid": "08240512-21g4-4575-p94g-e76me888fwq4" } }
Response body elements
The following table describes the response elements:
Element | Attribute | Description | Type | Notes |
---|---|---|---|---|
data | Root element | object | ||
> property_id | Specifies the property ID that was created or modified. | string | - | |
warnings | Contains any warnings in the response. | object | - | |
meta | Contains metadata information about the response. | object | - | |
> ruid | Specifies the unique request ID. | string | You can share this ID with Booking.com customer support when you run into an issue. This can help in understanding what went wrong. |
Updating property details
PATCH
https://supply-xml.booking.com/property-api/properties/{propertyID}
Use the PATCH property-api
endpoint along with the property ID as a path parameter to update the property details. All request parameters are optional. You can specify only the parameters that you want to change. Several request parameters can be unset by passing null
as the value. This is reiterated in the respective parameter's description.
API validations
In addition to the validations mentioned in the Request body parameters table below, here are some additional validations to be aware of:
- Cannot update a property if it is in one of the following statuses:
XML: Ready to check
XML: Ready to open
Closed Post Legal
Closed forever
XML: Hotel is Duplicate
- Can update the following fields only if the property is in
Test Hotel
orXML: Being built status
.currency_code
primary_language
physical_address
address_line
city_name
country_code
postal_code
primary_language
Header parameter
The following table describes the elements you can add in the header:
Header | Description | Type | Required/ Optional | Notes |
---|---|---|---|---|
Accept-Version | Specify the version number to get the API functionality specific to that version. | string | optional | Currently supports the value: 1.0 |
Path parameter
The following table describes the elements you can add in the path:
Value | Description | Type | Required/ Optional | Notes |
---|---|---|---|---|
{property ID } | Specify the unique ID of the property to update its details. | integer | required |
Request body parameters
The following table describes the elements you can add in the request body:
Element | Attribute | Description | Type | Required/ Optional | Notes | Name in HDCN |
---|---|---|---|---|---|---|
> position | Contains the geographical coordinates of the property. | object | optional | >>>> Position | ||
latitude | Specifies the latitude coordinates. | double | optional | Booking.com recommends that you set both latitude and longitude values in the same request. | Latitude | |
longitude | Specifies the longitude coordinates. | double | optional | Booking.com recommends that you set both latitude and longitude values in the same request. | Longitude | |
> check_in | Contains the check-in details. | object | optional | Specify 24-hour check-in by using 00:00 for both from and until . | >>>>> PolicyInfo.CheckInTime | |
from | Specifies the earliest time a guest can check-in. | enumerated string | optional | |||
until | Specifies the latest time when a guest can check-in. To clear the existing value, specify null . | enumerated string | optional | |||
> check_out | Contains the check-out details. | object | optional | Specify 24-hour check-out by using 00:00 for both from and until . | >>>>> PolicyInfo.CheckOutTime | |
from | Specifies the earliest time a guest can check-out. To clear the existing value, specify null . | enumerated string | optional | Specify 24-hour check-in by using 00:00-00:00 . | ||
until | Specifies the earliest time a guest can check-out. | enumerated string | optional | >> HotelDescriptiveContent.HotelName | ||
> property_name | Specifies the name of the property on Booking.com. | string | optional | If you want to (re)name a property, ensure the name follows Booking.com naming convention. Does not support using CJK Unified Ideographs. | >> HotelDescriptiveContent.HotelName | |
> property_category | Specifies the property class type code. | integer | optional | For a list of supported property class type codes, see Property Class Type Code. | >>>>> HotelCategory | |
> primary_language | Specifies the language in which the property wants their Booking.com extranet content and communication such as emails, notifications, and so on. | enumerated string | optional | For a list of supported language codes, see Booking.com Language Code table. Only possible to update if the property is in status: Test Hotel or XML: Being built . | LanguageCode | |
> languages_spoken | Contains the language(s) spoken at the property. To clear the existing value, specify null . | array of enumerated strings | optional | Can contain multiple Language elements. For a list of supported language codes, see Booking.com Language Code table. | >>> HotelInfo.Languages | |
> room_count | 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 property 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 . | >>>>> GuestRoomInfo.Quantity | |
> floor_count | Specifies the total number of floors in the building, excluding the underground floors. | integer | optional | Maximum value can be 200. | >>>> TotalNumberOfFloors.Number | |
> stars | Specifies the number of stars. You can set star rating only for Hotel properties such as Hostel, Resort, Motel or Capsule Hotel among others and not Apartment or Villa and so on. | string | optional | Accepts values: 0 –5 . Half star increments are possible (e.g. 1.5 ), but rarely used Some countries don't use star ratings. To see whether your property belongs to a Hotel property type, see the property class type table. | >>> AffiliationInfo > Awards > Award.Rating | |
> provider_property_id | Specifies a custom property ID. To clear the existing value, specify null . | string | optional | Can contain a maximum of 16 characters. | >>> HotelInfo.ID | |
> currency_code | Specifies the Booking.com defined currency for the property. | enumerated string | optional | In select countries a currency other than the default can be selected. For more details see the information the currency documentation | CurrencyCode | |
> physical_address | Contains the property's physical address. | object | optional | You can update this and its child elements only if the property is in status: Test Hotel or XML: Being built . Booking.com recommends that you set all address details in a single request. | ||
city_name | Species the name of the city, town, or village. | string | optional | Does not support using CJK Unified Ideographs. | >>> ContactInfos ContactProfileType =PhysicalLocation to update physical address details using HDCN. | |
country_code | Species the two-letter country code. | enumerated string | optional | For more information on how to retrieve the country code details, see xml/countries endpoint. | >>> ContactInfos ContactProfileType =PhysicalLocation to update physical address details using HDCN. | |
postal_code | Specifies the postal/zip code. | string | optional | - | >>> ContactInfos | |
address_line | Species the full street name and number. | string | optional | Does not support using CJK Unified Ideographs. Should not contain abbreviations (such as "Rd." for "Road") and should not exceed 255 characters. | >>> ContactInfosContactProfileType =PhysicalLocation to update physical address details using HDCN. | |
display_address | Specifies whether to hide the full address details from the guest. Recommended to also set address_line | boolean | optional | - true : Shows the full address to the guest. - false : Hides the full address from the guest. | >>> ContactInfos > HiddenAddress > ShouldHideAddress ContactProfileType =PhysicalLocation to update physical address details using HDCN. | |
> translations | Specifies the non-English translations of the physical address and property name. | array of objects | optional | Note that updating translations fields only appends to or updates the existing values and does not delete translations that are omitted. For example, when you pass translations while creating a property (POST ) for the languages es and fr and then update the translations using PATCH with translations for fr and de , then the property would have translations for es , fr (updated), and de . | >>> ContactInfos ContactProfileType =PhysicalLocation to update physical address details using HDCN. | |
city_name | Species the name of the city, town, or village. | string | required | >>> ContactInfosContactProfileType =PhysicalLocation to update physical address details using HDCN. | ||
address_line | Species the full street name and number. | string | required | Should not contain abbreviations (such as "Rd." for "Road") and should not exceed 255 characters. | >>> ContactInfos ContactProfileType =PhysicalLocation to update physical address details using HDCN. | |
language_code | Species the Booking.com Language code for the address details. | enumerated string | required | Used for non-English translations. For a list of supported language codes, see Booking.com Language Code table. | ||
property_name | Specifies the non-English name of the property on Booking.com. | enumerated string | required | If you want to (re)name a property, ensure the name follows Booking.com naming convention. | >> HotelDescriptiveContent.HotelName |
Request body
The following is a request body example:
{ "check_in": { "from": "12:00" }, "check_out": { "from": "09:30" }, "languages_spoken": [ "en-gb", "nl", "ms", "de", "fr", "pl" ] }
Response body
{ "data": { "property_id": 10664256 }, "warnings": [], "meta": { "ruid": "1c9bff15-h4742-9l08-2ew3-df4fd1f1166b" } }
Response body elements
The following table describes the response elements:
Element | Attribute | Description | Type | Notes |
---|---|---|---|---|
data | Root element | object | ||
> property_id | Specifies the property ID that was created or modified. | string | - | |
warnings | Contains any warnings in the response. | object | - | |
meta | Contains metadata information about the response. | object | - | |
> ruid | Specifies the unique request ID. | string | You can share this ID with Booking.com customer support when you run into an issue. This can help in understanding what went wrong. |
Retrieving property details
GET
https://supply-xml.booking.com/property-api/properties/{propertyID}
Use the GET property-api
endpoint along with the property ID to retrieve the property details.
Header parameter
The following table describes the elements you can add in the header:
Header | Description | Type | Required/ Optional | Notes |
---|---|---|---|---|
Accept-Version | Specify the version number to get the API functionality specific to that version. | string | optional | Currently supports the value: 1.0 |
Path parameter
The following table describes the elements you can add in the path:
Value | Description | Type | Required/ Optional | Notes |
---|---|---|---|---|
{property ID } | Specify the unique ID of the property to retrieve its details. | integer | required |
Response body
{ "data": { "position": { "latitude": 52.388418, "longitude": 4.619941 }, "check_in": { "from": "12:00" }, "check_out": { "from": "09:30", "until": "10:30" }, "property_name": "Floating hotel", "property_category": 30, "primary_language": "en-gb", "languages_spoken": [ "en-gb", "ms", "nl" ], "room_count": 8, "floor_count": 1, "provider_property_id": "flotella003", "stars": "4", "target": "test", "currency_code": "EUR", "property_id": 10664256, "status": "Test Hotel", "physical_address": { "city_name": "Overveen", "country_code": "nl", "postal_code": "2051", "address_line": "Zandvoort", "display_address": true }, "translations": [ { "city_name": "Overveen", "address_line": "Zandvoort", "language_code": "es", "property_name": "Floating hotel" } ], "legal_entity_id": "78775" }, "meta": { "ruid": "2ccea0cc-9a0b-4179-9c20-9436e50cc070" } }
Response body elements
The following table describes the response elements:
Element | Attribute | Description | Type | Notes |
---|---|---|---|---|
data | Root element | object | ||
> position | Contains the geographical coordinates of the property. | object | ||
latitude | Specifies the latitude coordinates. | double | - | |
longitude | Specifies the longitude coordinates. | double | - | |
> check_in | Contains the Booking.com check in time code for the earliest time a guest can check in. | string | A value of 00:00 for both from and until means the property accepts 24-hour check in. | |
from | Specifies the Booking.com check in for the earliest time a guest can check in. | enumerated string | - | |
until | Specifies the Booking.com check in until when guests can check in. | enumerated string | - | |
> check_out | Contains the Booking.com check out time code for the earliest time a guest can check out. | string | A value of 00:00 for both from and until means the property accepts 24-hour check out. | |
from | Specifies the Booking.com check out for the earliest time a guest can check out. | enumerated string | - | |
until | Specifies the Booking.com check out until when guests can check out. | enumerated string | - | |
> property_name | Specifies the name of the property on Booking.com. | string | - | |
> property_category | Specifies the property class type code. | enumerated string | - | |
> primary_language | Specifies the language in which the property wants their Booking.com extranet content and communication. | enumerated string | - | |
> languages_spoken | Contains the language(s) spoken at the property. | string | Can contain multiple Language elements. | |
> room_count | Specifies the number of sellable units the property offers. | integer | - | |
> floor_count | Specifies the total number of floors in the building. | integer | - | |
> target | Specifies whether it is a test or production-ready property. | enumerated string | Contains one of the following values: - test - production | |
> stars | Specifies the number of stars. | integer | - | |
> provider_property_id | Specifies a custom property ID. | string | - | |
>> currency_code | Specifies the Booking.com defined currency for the property. | enumerated string | - | |
> property_id | Specifies the Booking.com generated property ID. | string | - | |
>> status | Specifies the property status. | enumerated string | - | |
>> url | [Only available when a property is in open and bookable status] Specifies the property's URL. Note: Changes that may be immediately reflected via APIs or Extranet may take extra time to show up in our traveller facing products because the use of caches and data materlization. | string | - | |
> physical_address | Contains the property's physical address. | object | - | |
>> city_name | Specifies the name of the city, town, or village. | string | - | |
>> country_code | Specifies the two-letter country code. | enumerated string | - | |
>> postal_code | Specifies the postal/zip code. | string | - | |
>> address_line | Specifies the full street name and number. | string | - | |
>>> city_name | Specifies the name of the city, town, or village. | string | - | |
>>> address_line | Specifies the full street name and number. | string | - | |
>>> language_code | Specifies the Booking.com Language code for the address details. | enumerated string | - | |
>>> property_name | Specifies the non-English name of the property on Booking.com. | enumerated string | - | |
>> display_address | Specifies whether to hide the address details. | boolean | - true : Shows the full address to the guest. - false : Hides the full address from the guest. | |
> translations | Specifies the non-English translations of the physical address | object | - | |
> legal_entity_id | Specifies the ID of the legal entity to which the property belongs. | integer | - | |
warnings | Contains any warnings in the response. | object | - | |
meta | Contains metadata information about the response. | object | - | |
> ruid | Specifies the unique request ID. | string | You can share this ID with Booking.com customer support when you run into an issue. This can help in understanding what went wrong. |
Quick Actions
→ To learn more about the Property API use cases, see [Property API implementation use cases.][property-api-usecases-ga]
→ To troubleshoot Property API errors, see [Troubleshooting Property API error responses.][troubleshooting-property-api-ga]
→ To create and manage property contacts, see [Contacts API.][managing-contact-details-ga]