Last updated

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 returns Cannot 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.
Usage of certain words are restricted as property names

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:

HeaderDescriptionTypeRequired/
Optional
Notes
Content-Type: application/jsonSpecifies the expected content type.stringrequired
Accept-VersionSpecify the version number to get the API functionality specific to that version.stringoptionalCurrently supports the value: 1.0

Request body parameters

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

ElementAttributeDescriptionTypeRequired/
Optional
NotesRoot parameter in HDCN
> positionContains the geographical coordinates of the property.objectrequired->>>> Position
latitudeSpecifies the latitude coordinates.doublerequired-Latitude
longitudeSpecifies the longitude coordinates.doublerequired-Longitude
> check_inContains the check-in details.objectrequiredSpecify 24-hour check-in by using 00:00 for both from and until.>>>>> PolicyInfo.CheckInTime
fromSpecifies the earliest time a guest can check-in.enumerated stringrequiredAccepted values follow the Booking.com Check-In / Check-Out Times format.
untilSpecifies the latest time when a guest can check-in.enumerated stringoptionalAccepted values follow the Booking.com Check-In / Check-Out Times format.
> check_outContains the check-out details.objectoptionalSpecify 24-hour check-out by using 00:00 for both from and until.>>>>> PolicyInfo.CheckOutTime
fromSpecifies the earliest time a guest can check-out.enumerated stringoptionalAccepted values follow the Booking.com Check-In / Check-Out Times format.
untilSpecifies the latest time when a guest can check-out.enumerated stringrequired if check_out > from is specifiedAccepted values follow the Booking.com Check-In / Check-Out Times format.
> property_nameSpecifies the name of the property on Booking.com.stringrequiredDoes not support using CJK Unified Ideographs.>> HotelDescriptiveContent.HotelName
> property_categorySpecifies the property class type code.integerrequiredFor a list of supported property class type codes, see Property Class Type Code.>>>>> HotelCategory
> primary_languageSpecifies the language in which the property wants their Booking.com extranet content and communication such as emails, notifications, and so on.enumerated stringoptionalDefault: en-gb. For a list of supported language codes, see Booking.com Language Code table.LanguageCode
> languages_spokenContains the language(s) spoken at the property.array of enumerated stringsoptionalCan contain multiple Language elements. For a list of supported language codes, see Booking.com Language Code table.>>> HotelInfo.Languages
> room_countSpecifies the number of sellable units the property offers.integerrequiredA "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_countSpecifies the total number of floors in the building, excluding the underground floors.integeroptionalMax value can be 200.>>>> TotalNumberOfFloors.Number
> starsSpecifies 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.integeroptionalAccepts values: 05.
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
> targetSpecifies whether it is a test or production-ready property.enumerated stringrequiredAccepts the following values:
- test
- production
> OTA_HotelDescriptiveContentNotif.Target
> provider_property_idSpecifies a custom property ID.stringoptionalRecommended for new properties. For example, the provider's internal ID.
Can contain a maximum of 16 characters.
>>> HotelInfo.ID
> currency_codeSpecifies the Booking.com defined currency for the property.enumerated stringoptionalIn select countries a currency other than the default can be selected. For more details see the information the currency documentationCurrencyCode
> physical_addressContains the property's physical address.objectrequired-
city_nameSpecies the name of the city, town, or village.stringrequiredDoes not support using CJK Unified Ideographs.>>> ContactInfos
ContactProfileType=PhysicalLocation to update physical address details using HDCN.
country_codeSpecies the two-letter country code.enumerated stringrequiredFor 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_codeSpecifies the postal/zip code.stringoptionalMake 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_lineSpecies the full street name and number.stringrequiredDoes 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_addressSpecifies whether to hide the full address details from the guest.booleanoptional- 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.
> translationsSpecifies the non-English translations of the physical address.array of objectsoptional->>> ContactInfos
ContactProfileType=PhysicalLocation to update physical address details using HDCN.
city_nameSpecies the name of the city, town, or village.stringrequired>>> ContactInfos
ContactProfileType=PhysicalLocation to update physical address details using HDCN.
address_lineSpecies the full street name and number.stringrequiredShould 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_codeSpecies the Booking.com Language code for the address details.enumerated stringrequiredUsed for non-English translations. For a list of supported language codes, see Booking.com Language Code table.
property_nameSpecifies the non-English name of the property on Booking.com.enumerated stringrequired>> HotelDescriptiveContent.HotelName
> legal_entity_idSpecifies the ID of the legal entity to which the property belongs.integerrequiredOnly 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:

ElementAttributeDescriptionTypeNotes
dataRoot elementobject
> property_idSpecifies the property ID that was created or modified.string-
warningsContains any warnings in the response.object-
metaContains metadata information about the response.object-
> ruidSpecifies the unique request ID.stringYou 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 or XML: 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:

HeaderDescriptionTypeRequired/
Optional
Notes
Accept-VersionSpecify the version number to get the API functionality specific to that version.stringoptionalCurrently supports the value: 1.0

Path parameter

The following table describes the elements you can add in the path:

ValueDescriptionTypeRequired/
Optional
Notes
{property ID}Specify the unique ID of the property to update its details.integerrequired

Request body parameters

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

ElementAttributeDescriptionTypeRequired/
Optional
NotesName in HDCN
> positionContains the geographical coordinates of the property.objectoptional>>>> Position
latitudeSpecifies the latitude coordinates.doubleoptionalBooking.com recommends that you set both latitude and longitude values in the same request.Latitude
longitudeSpecifies the longitude coordinates.doubleoptionalBooking.com recommends that you set both latitude and longitude values in the same request.Longitude
> check_inContains the check-in details.objectoptionalSpecify 24-hour check-in by using 00:00 for both from and until.>>>>> PolicyInfo.CheckInTime
fromSpecifies the earliest time a guest can check-in.enumerated stringoptional
untilSpecifies the latest time when a guest can check-in.
To clear the existing value, specify null.
enumerated stringoptional
> check_outContains the check-out details.objectoptionalSpecify 24-hour check-out by using 00:00 for both from and until.>>>>> PolicyInfo.CheckOutTime
fromSpecifies the earliest time a guest can check-out.
To clear the existing value, specify null.
enumerated stringoptionalSpecify 24-hour check-in by using 00:00-00:00.
untilSpecifies the earliest time a guest can check-out.enumerated stringoptional>> HotelDescriptiveContent.HotelName
> property_nameSpecifies the name of the property on Booking.com.stringoptionalIf 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_categorySpecifies the property class type code.integeroptionalFor a list of supported property class type codes, see Property Class Type Code.>>>>> HotelCategory
> primary_languageSpecifies the language in which the property wants their Booking.com extranet content and communication such as emails, notifications, and so on.enumerated stringoptionalFor 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_spokenContains the language(s) spoken at the property.
To clear the existing value, specify null.
array of enumerated stringsoptionalCan contain multiple Language elements. For a list of supported language codes, see Booking.com Language Code table.>>> HotelInfo.Languages
> room_countSpecifies the number of sellable units the property offers.integeroptionalA "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_countSpecifies the total number of floors in the building, excluding the underground floors.integeroptionalMaximum value can be 200.>>>> TotalNumberOfFloors.Number
> starsSpecifies 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.stringoptionalAccepts values: 05.
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_idSpecifies a custom property ID.
To clear the existing value, specify null.
stringoptionalCan contain a maximum of 16 characters.>>> HotelInfo.ID
> currency_codeSpecifies the Booking.com defined currency for the property.enumerated stringoptionalIn select countries a currency other than the default can be selected. For more details see the information the currency documentationCurrencyCode
> physical_addressContains the property's physical address.objectoptionalYou 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_nameSpecies the name of the city, town, or village.stringoptionalDoes not support using CJK Unified Ideographs.>>> ContactInfos
ContactProfileType=PhysicalLocation to update physical address details using HDCN.
country_codeSpecies the two-letter country code.enumerated stringoptionalFor 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_codeSpecifies the postal/zip code.stringoptional->>> ContactInfos
address_lineSpecies the full street name and number.stringoptionalDoes 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_addressSpecifies whether to hide the full address details from the guest.
Recommended to also set address_line
booleanoptional- 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.
> translationsSpecifies the non-English translations of the physical address and property name.array of objectsoptionalNote 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_nameSpecies the name of the city, town, or village.stringrequired>>> ContactInfos
ContactProfileType=PhysicalLocation to update physical address details using HDCN.
address_lineSpecies the full street name and number.stringrequiredShould 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_codeSpecies the Booking.com Language code for the address details.enumerated stringrequiredUsed for non-English translations. For a list of supported language codes, see Booking.com Language Code table.
property_nameSpecifies the non-English name of the property on Booking.com.enumerated stringrequiredIf 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:

ElementAttributeDescriptionTypeNotes
dataRoot elementobject
> property_idSpecifies the property ID that was created or modified.string-
warningsContains any warnings in the response.object-
metaContains metadata information about the response.object-
> ruidSpecifies the unique request ID.stringYou 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:

HeaderDescriptionTypeRequired/
Optional
Notes
Accept-VersionSpecify the version number to get the API functionality specific to that version.stringoptionalCurrently supports the value: 1.0

Path parameter

The following table describes the elements you can add in the path:

ValueDescriptionTypeRequired/
Optional
Notes
{property ID}Specify the unique ID of the property to retrieve its details.integerrequired

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:

ElementAttributeDescriptionTypeNotes
dataRoot elementobject
> positionContains the geographical coordinates of the property.object
latitudeSpecifies the latitude coordinates.double-
longitudeSpecifies the longitude coordinates.double-
> check_inContains the Booking.com check in time code for the earliest time a guest can check in.stringA value of 00:00 for both from and until means the property accepts 24-hour check in.
fromSpecifies the Booking.com check in for the earliest time a guest can check in.enumerated string-
untilSpecifies the Booking.com check in until when guests can check in.enumerated string-
> check_outContains the Booking.com check out time code for the earliest time a guest can check out.stringA value of 00:00 for both from and until means the property accepts 24-hour check out.
fromSpecifies the Booking.com check out for the earliest time a guest can check out.enumerated string-
untilSpecifies the Booking.com check out until when guests can check out.enumerated string-
> property_nameSpecifies the name of the property on Booking.com.string-
> property_categorySpecifies the property class type code.enumerated string-
> primary_languageSpecifies the language in which the property wants their Booking.com extranet content and communication.enumerated string-
> languages_spokenContains the language(s) spoken at the property.stringCan contain multiple Language elements.
> room_countSpecifies the number of sellable units the property offers.integer-
> floor_countSpecifies the total number of floors in the building.integer-
> targetSpecifies whether it is a test or production-ready property.enumerated stringContains one of the following values:
- test
- production
> starsSpecifies the number of stars.integer-
> provider_property_idSpecifies a custom property ID.string-
>> currency_codeSpecifies the Booking.com defined currency for the property.enumerated string-
> property_idSpecifies the Booking.com generated property ID.string-
>> statusSpecifies 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_addressContains the property's physical address.object-
>> city_nameSpecifies the name of the city, town, or village.string-
>> country_codeSpecifies the two-letter country code.enumerated string-
>> postal_codeSpecifies the postal/zip code.string-
>> address_lineSpecifies the full street name and number.string-
>>> city_nameSpecifies the name of the city, town, or village.string-
>>> address_lineSpecifies the full street name and number.string-
>>> language_codeSpecifies the Booking.com Language code for the address details.enumerated string-
>>> property_nameSpecifies the non-English name of the property on Booking.com.enumerated string-
>> display_addressSpecifies whether to hide the address details.boolean- true : Shows the full address to the guest.
- false : Hides the full address from the guest.
> translationsSpecifies the non-English translations of the physical addressobject-
> legal_entity_idSpecifies the ID of the legal entity to which the property belongs.integer-
warningsContains any warnings in the response.object-
metaContains metadata information about the response.object-
> ruidSpecifies the unique request ID.stringYou 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]