# Property Management APIs

Booking.com provides multiple APIs to manage focussed sections of your property and its content.
These APIs are part of the initiative to modularise the Content API (used to create and open properties on Booking.com).

## Authentication

The Property Management APIs use the same [authentication methods](/connectivity/docs/authentication) as other APIs.

## Property API

Create and manage a property by providing only the basic required details.

### What can you do with Property API?

The following are the benefits of using the `property-api`:

- Create or update a property's details such as name, property category, check in/out time and physical location without impacting other information.
- Edit the property location by changing the property's latitude and longitude values.
- Specify an external property ID while creating a property. This could be the ID of the property within your system and may be useful for you while you're debugging or testing your integration.
- Create a [property ID](#what-can-you-do-with-property-ids) quickly by providing minimum information. Add the rest of the details later using other endpoints.
- See an improved request and response body structure in Json.
- Get familiar with the validation checks for [property creation](/connectivity/docs/property-api/implementing-property-api-ga/#api-validations) and [property updates](/connectivity/docs/property-api/implementing-property-api-ga/#api-validations-1) early.


For more details on the Property API, see [Managing property details.](/connectivity/docs/property-api/implementing-property-api-ga)

#### Difference in request parameters between Content API and Property API

To see the difference in request parameters between the `OTA_HotelDescriptiveContentNotif` and `property-api` endpoints,
see the *Root parameter in HDCN* column under the [Request body parameters](/connectivity/docs/property-api/implementing-property-api-ga#request-body-parameters) table.

## Managing property settings

Use the Property API's `settings` endpoint to manage settings at the property level like property's location coordinates, pets allowance, children policies and so on.
For more information, see [managing property settings.](/connectivity/docs/content-api-modules/property-details-api/implementing-property-api-settings)

## Contacts API

Use the Contacts API to create and manage property contact information.
To open/list a property on Booking.com, a general/primary point of contact is required.

In addition, you can:

- Create one contact and use the same contact information to represent multiple contact profile types.
- Replace multiple contact details using a single request.


### What you can do with the Contacts API

The following are the benefits of using the `contacts-api` endpoint:

- Just send only contacts information and no other property information.
- You can update any contact details including of types: `General` when the property is open and bookable.
- You can use the same contact details for multiple contact types. This reduces creating duplicate contacts for different purposes.
- Get familiar with the [validation checks](/connectivity/docs/contacts-api/implementing-contacts-api-ga/#api-validations) early.
- See an improved request and response body structure in Json.


For more details on the Contacts API, see [Managing contact details.](/connectivity/docs/contacts-api/implementing-contacts-api-ga)

#### Difference in request parameters between Content API and Contacts API

To see the difference in request parameters between the `OTA_HotelDescriptiveContentNotif` (HDCN) and `contacts-api` endpoints,
see the *Root parameter in HDCN* column under the [Request body parameters](/connectivity/docs/contacts-api/implementing-contacts-api-ga#request-body-parameters) table.

For all other APIs except property details, you need to specify a property ID
You need to specify a property ID to create contacts, room details, facilities & amenities or taxes & fees for a property and to set property settings.

## Facilities API

Use the Facilities API to manage facilities at both the property and room-level.

Using the Facilities API, you can:

- Explore available facilities, facility IDs and other related details through the [meta endpoint.](/connectivity/docs/content-api-modules/facilities-api/facilities-meta-endpoint)
- Add, update, or remove [property facilities.](/connectivity/docs/content-api-modules/facilities-api/manage-property-facilities#adding-single-instance-facilities)
- Get the [list of facilities](/connectivity/docs/content-api-modules/facilities-api/manage-property-facilities#retrieving-facilities-details-added-to-a-property) set for the property.
- Add, update, or remove [room facilities.](/connectivity/docs/content-api-modules/facilities-api/manage-room-facilities#adding-room-facilities)
- Get the list of [facilities set for the room.](/connectivity/docs/content-api-modules/facilities-api/manage-room-facilities#retrieving-room-facilities-details-added-to-a-property)
- Manage [bathroom facilities.](/connectivity/docs/content-api-modules/facilities-api/manage-bathrooms)


For more information, see the [introduction to the Facilities API.](/connectivity/docs/content-api-modules/facilities-api/introduction-to-facilities-api)

## Charges API

Use the Charges API to manage charges at both the property and room-level.

Using the Charges API, you can:

- Explore available charge types and their related details through the [meta endpoint.](/connectivity/docs/charges-api/charges-meta-endpoint)
- Retrieve, add, update, or remove [property and room charges.](/connectivity/docs/charges-api/manage-property-room-charges)


For more information, see the [introduction to the Charges API.](/connectivity/docs/charges-api/charges-api-overview)

## Rooms API

Use the Rooms API to manage rooms, configure bed arrangements, and set occupancy limits among other tasks.

Using the Rooms API, you can:

- Retrieve information about room types, room names and bed types supported by Rooms API in the language of your choice through the [meta endpoint.](/connectivity/docs/rooms-api/rooms-api-meta-information)
- Retrieve, add, update, or remove [rooms.](/connectivity/docs/rooms-api/managing-units)


For more information, see the [introduction to the Rooms API.](/connectivity/docs/rooms-api/introduction-to-rooms-api)

## Using Property Management APIs along with Content API

The following section lists the recommended approach when using any of the Property Management APIs along with the Content API.

The Content API's default overlay behavior treats missing data in updates as intentional omissions.
This can accidentally remove data you've set through any of the Property Management APIs if you don't include the same data in subsequent HDCN requests.

To prevent this issue and maintain your new API's data even when it's not included in HDCN updates, Booking.com is introducing a `domain_update_lock_<api_name>` feature.

### How to use the new domain update lock feature?

This section provides guidance on how to enable the domain update lock feature if you continue to use the Content API (`OTA_HotelDescriptiveContentNotif`) endpoint along with the Property Management APIs.

1. Keep your existing HDCN request unchanged and continue to send the full HDCN request without omitting any details. When the feature is on we ignore the related updates in HDCN. Note that the request must be valid and pass existing validations.
2. Test the feature on a per-request basis. For example, when sending the request, attach to your HTTP Header `Features` value `domain_update_lock_charges`. You can specify multiple feature names separated by a comma to include multiple features at the same time. See [Testing the domain_update_lock_charges feature.](#testing-the-domain_update_lock_charges-feature)
3. Once satisfied with the responses from both the `OTA_HotelDescriptiveContentNotif` and the Property Management API, switch the feature on for all your requests using the Provider Portal.
a. Navigate to the [Provider Portal](https://connect.booking.com/feature_management?lang=en). Log in with your credentials. Click Administration -> Feature Management.
b. Enable the `domain_update_lock_charges` feature and click Save.


For more information on using Charges API along with the Content API, see [Using Charges API along with Content API.](#using-charges-api-along-with-content-api)

### Using Property Details API along with Content API

To prevent your Property Details API related data from being accidentally updated via HDCN updates, Booking.com has introduced the `domain_update_lock_property_general_info` feature. This feature only applies to connectivity partners who have implemented the Property Details API.

Continue sending the full HDCN payload without omitting any information and enable the feature `domain_update_lock_property_general_info` after you have tested and implemented the Property Details API.

If you enable the feature `domain_update_lock_property_general_info`, subsequent HDCN calls will not make updates to the following fields.

| Ignored root parameter in HDCN | Notes |
|  --- | --- |
| [>> HotelDescriptiveContent > ID](/connectivity/docs/tsk-create-property) | Specifies a custom property ID. |
| [**>>** HotelDescriptiveContent.HotelName](/connectivity/docs/tsk-create-property/#hoteldescriptivecontent) |  |
| [>> HotelDescriptiveContent > LanguageCode](/connectivity/docs/tsk-create-property/#hoteldescriptivecontent) |  |
| [>> HotelDescriptiveContent > CurrencyCode](/connectivity/docs/tsk-create-property/#hoteldescriptivecontent) |  |
| [**>>>>>** HotelCategory](/connectivity/docs/tsk-create-property/#hotelcategory) |  |
| [**>>>** ContactInfos](/connectivity/docs/tsk-create-property/#contactinfos) | Where `ContactProfileType=PhysicalLocation` |
| [**>>>>** Position](/connectivity/docs/tsk-create-property/#position) |  |
| [**>>>>>** PolicyInfo.CheckInTime](/connectivity/docs/tsk-create-property/#policyinfo) |  |
| [**>>>>>** PolicyInfo.CheckOutTime](/connectivity/docs/tsk-create-property/#policyinfo) |  |
| [**>>>** AffiliationInfo > Awards > Award.Rating](/connectivity/docs/tsk-create-property/#affiliationinfo) |  |
| [**>>>** HotelInfo.Languages](/connectivity/docs/tsk-create-property/#hotelinfo) | Contains the language(s) spoken at the property. |
| [ >> OwnershipManagementInfo > CompanyName.Code](/connectivity/docs/properties#ownershipmanagementinfo) |  |
| [**>>>>** TotalNumberOfFloors.Number](/connectivity/docs/tsk-create-property/#totalnumberoffloors) |  |
| [**>>>>>** GuestRoomInfo.Quantity](/connectivity/docs/tsk-create-property/#guestroominfo) |  |


For testing the feature, please check [section below](#testing-the-features).

### Using Property Settings API along with Content API

Enable the following features once you have tested and implemented the related sections in the Property Settings API. With the features enabled, you can continue to send the full HDCN payload without omitting any information.

Once you have tested and implemented the full functionality of the Property Settings API, you can enable all the `domain_update_lock_settings_*` features.

##### Feature `domain_update_lock_settings_general`

| Ignored root parameter in HDCN | Notes |
|  --- | --- |
| [HotelInfo > TPA_Extensions > PaymentPreferences](/connectivity/docs/collecting-cvc#implementing-or-disabling-cvc-collection) |  |
| [TPA_Extensions > GuestInformation](/connectivity/docs/api-reference/guestinformation#guestinformation) | Affecting data related to booker address, curfew, age restrictions |
| [TPA_Extensions > LongStayInfo](/connectivity/docs/api-reference/longstayinfo#longstayinfo) |  |
| [TPA_Extensions > PricingType](/connectivity/docs/api-reference/pricingtype#ota_hoteldescriptivecontentnotif) |  |
| [HotelInfo -> Services -> Service](/connectivity/docs/api-reference/services) | Only applicable for `Service[@Code]=312` (All Spaces Non-Smoking (public and private)) |


##### Feature `domain_update_lock_settings_pets`

| Ignored root parameter in HDCN |
|  --- |
| [Policies > Policy > PetsPolicies](/connectivity/docs/api-reference/petspolicy#fields) |


##### Feature `domain_update_lock_settings_sp`

| Ignored root parameter in HDCN | Notes |
|  --- | --- |
| [TPA_Extensions > StandardPhrases](/connectivity/docs/fine-print) | Including `HotelChainBedLinen`, `SecurityDeposit` and `Renovation` with the rest of all Standard Phrases. |


##### Feature `domain_update_lock_settings_accepted_pt`

| Ignored root parameter in HDCN |
|  --- |
| [TPA_Extensions > AcceptedPayments](/connectivity/docs/api-reference/acceptedpayments) |


##### Feature `domain_update_lock_settings_cancel_ex`

| Ignored root parameter in HDCN |
|  --- |
| [TPA_Extensions > CancellationGracePeriod > HoursAfterBooking](/connectivity/docs/api-reference/cancellationgraceperiod) |
| [TPA_Extensions > CancellationGracePeriod > WeeksBeforeCheckIn](/connectivity/docs/api-reference/cancellationgraceperiod) |


##### Feature `domain_update_lock_settings_age_buckets`

| Ignored root parameter in HDCN | Notes |
|  --- | --- |
| [TPA_Extensions > AgeBuckets](/connectivity/docs/flexible-children-rates/managing-a-children-policy#what-are-age-buckets) | Affecting only `AgeBuckets` in the Policy. |


##### Feature `domain_update_lock_settings_cp`

| Ignored root parameter in HDCN | Notes |
|  --- | --- |
| [Policies > Policy > PolicyInfo](/connectivity/docs/setting-up-children-policies-and-pricing#setting-up-children-policies-and-child-rates-pricing-1) | Affecting only `AcceptedGuestType` and `MinGuestAge` |
| [Policies > Policy > FeePolicies](/connectivity/docs/setting-up-children-policies-and-pricing#setting-up-children-policies-and-child-rates-pricing-1) | Affecting only Fee Policies with `Code` that has values:  37, 38, 44 |


##### Feature `domain_update_lock_settings_invoice`

| Ignored root parameter in HDCN | Notes |
|  --- | --- |
| [ContactInfos > ContactInfo](/connectivity/docs/api-reference/contactinfo) | In HDCN, the contact where `ContactProfileType=invoices` is used to update invoice details. In the new APIs, this is updated in [Property Settings API](/connectivity/docs/content-api-modules/property-details-api/implementing-property-api-settings) and invoice contact in [Contacts API](/connectivity/docs/contacts-api/implementing-contacts-api-ga). |
| [TPA_Extensions > InvoiceDetails](/connectivity/docs/api-reference/invoicedetails) | Brazil tax info |


##### Feature `domain_update_lock_settings_french_taxes`

| Ignored root parameter in HDCN |
|  --- |
| [TPA_Extensions > PropertyTaxInfo](/connectivity/docs/api-reference/propertytaxinfo) |


##### Feature `domain_update_lock_settings_rtb`

| Ignored root parameter in HDCN |
|  --- |
| [TPA_Extensions > RTB](/connectivity/docs/tsk-create-property#enabling-request-to-book) |


For testing the features, please check [section below](#testing-the-features).

### Using Contacts API along with Content API

After fully migrating to Contacts API, you can enable the `domain_update_lock_contacts` feature to prevent HDCN updating data related to Contacts API.

| Ignored root parameter in HDCN | Notes |
|  --- | --- |
| [**>>>** ContactInfos](/connectivity/docs/tsk-create-property/#contactinfos) | - Where `ContactProfileType` is not `PhysicalLocation`. - Invoice contact (`ContactProfileType=invoices`), has double purpose in HDCN: to update invoice contact itself and update invoice details. This feature will only lock updating the contact itself. To prevent invoice details from being updated please check [`domain_update_lock_settings_invoice_settings`](/connectivity/docs/property-content-management/property-content-management-overview#feature-domain_update_lock_settings_invoice_settings) |


For testing the feature, please check [section below](#testing-the-features).

### Using Facilities API along with Content API

Facilities API consists of 3 endpoints (Property Facilities, Room Facilities, Bathrooms).

Property Facilities are part of [HDCN](/connectivity/docs/tsk-create-property) endpoint and can be locked using `domain_update_lock_facilities` feature.

Room facilities and Bathrooms are part of [OTA_HotelInvNotif (HIN)](/connectivity/docs/ota-hotelinvnotif) endpoint, therefore, won't be affected by this feature.

Once you started using Property Facilities in Facilities API, you can choose to enable the feature for locking Property Facilities data domain updates in [HDCN](/connectivity/docs/tsk-create-property).

| Ignored root parameter in HDCN | Notes |
|  --- | --- |
| [FacilityInfo -> Restaurants](/connectivity/docs/api-reference/restaurant) |  |
| [HotelInfo -> Services -> Service](/connectivity/docs/api-reference/services) | `Service[@Code]=312` (All Spaces Non-Smoking (public and private)) will not be affected as its part of Property Settings API |
| [Policies -> FeePolicies -> TPA_Extensions -> InternetFeePolicy](/connectivity/docs/api-reference/internetfeepolicy) | `FeePolicy[@Code=5035]` |
| [Policies -> FeePolicies -> TPA_Extensions -> ParkingFeePolicy](/connectivity/docs/api-reference/parkingfeepolicy) | `FeePolicy[@Code=5036]` |


For testing the feature, please check [section below](#testing-the-features).

For more information on Facilities API, see [Facilities API overview.](/connectivity/docs/content-api-modules/facilities-api/introduction-to-facilities-api)

### Using Charges API along with Content API

To prevent your Charges data from being accidentally deleted when it's not included in HDCN updates, Booking.com has introduced the `domain_update_lock_charges` feature.

It will affect the following fields:

| Ignored root parameter in HDCN | Notes |
|  --- | --- |
| [Policies - > FeePolices](/connectivity/docs/api-reference/feepolicies) | Excluding: - ChildrenPolicy-related FeePolicies: 37, 38, 44- Parking FeePolicy: 5035- Internet policy: 5036 |
| [Policies - > TaxPolicies](/connectivity/docs/api-reference/taxpolicies) |  |


For testing the feature, please check [section below](#testing-the-features).

For more information on Charges API, see [Charges API overview.](/connectivity/docs/charges-api/charges-api-overview)

### Using Policies API along with Content API

To prevent your Policy data from being accidentally deleted when it's not included in HDCN updates, Booking.com has introduced the `domain_update_lock_cancellation_policies` feature.

It will affect the following fields:

| Ignored root parameter in HDCN |
|  --- |
| [Policies - > GuaranteePaymentPolicy](/connectivity/docs/api-reference/guaranteepayment) |
| [Policies - > CancelPolicy](/connectivity/docs/api-reference/cancelpenalty) |


For testing the feature, please check [section below](#testing-the-features).

For more information on Policy API, see [Policy API overview.](/connectivity/docs/policies-api/managing-policies)

### Migrating away from OTA_HotelInvNotif (HIN)

If you are migrating from HIN to [Rooms API](#rooms-api) and [Facilities API (Room Facilities and Bathrooms)](#facilities-api) endpoints, Booking.com currently doesn’t support a feature. We therefore recommend you to migrate to [Rooms API](#rooms-api) and the Room facilities and Bathroom within the [Facilities API's](#facilities-api) in one go.

### Testing the features

Enabling the feature impacts all the properties that you manage. Before doing so, to test whether the HDCN call works as intended, pass the feature name in the Header of your HDCN request on a per-request basis.

For example:


```cURL
curl --location 'https://supply-xml.booking.com/hotels/ota/OTA_HotelDescriptiveContentNotif' \
--header 'Content-Type: text/plain' \
--header 'Authorization: ••••••' \
--header 'Features: domain_update_lock_charges,domain_update_lock_facilities'
```

If you are satisfied with the feature behaviour, then enable it to omit/ignore any Charges and Facilities related data updates provided in subsequent HDCN calls.

## Going live

Before you go live with your API integration, you'll need to meet certain requirements. For more information, see [Going Live.](/connectivity/docs/going_live/)

## Quick Actions

→ To learn more about the Property API, see [Introduction to Property API.](/connectivity/docs/property-api/property-api-introduction/)
→ To learn more about the Contacts API, see [Introduction to Contacts API.](/connectivity/docs/contacts-api/contacts-api-introduction/)