Last updated

Migrating from HDCN to Facilities API

If you previously implemented facilities through OTA_HotelDescriptiveContentNotif endpoint, use this topic to learn how to migrate to the new Facilities API.

To find out all the different details supported, see the Facilities API Specification. To find out more about each facility details, see the Meta endpoint.

Mapping OTA_HotelDescriptiveContentNotif fields

Migrating hotel amenity codes

This section covers the necessary Facility API fields to specify when migrating the hotel amenity codes under HotelInfo >> Services >> Service in OTA_HotelDescriptiveContentNotif API.

ElementDescriptionTypeRequired/
Optional
NotesParameter in HDCN
facility_idSpecifies the Booking.com facility ID.integerrequired-Replaces the OTA HAC code (HotelInfo >> Services >> Service >> Code) with the Booking.com facility ID. HotelInfo >> Services >> Service Code.

To get the Booking.com facility ID for a corresponding OTA code, see the Meta endpoint.
stateSpecifies whether the facility is present or missing.integerrequired-HotelInfo >> Services >> Service >> ExistsCode

Migrating Restaurant facility

To migrate the restaurant details using the Facilities API, see the following table.

ElementDescriptionTypeRequired/
Optional
NotesParameter in HDCN
facility_idSpecifies the Booking.com facility ID.integerrequired-Replaces the OTA HAC code (HotelInfo >> Services >> Service >> Code) with the Booking.com facility ID. HotelInfo >> Services >> Service Code.

To get the Booking.com facility ID for a corresponding OTA code, see the Meta endpoint.
stateSpecifies whether the facility is present or missing.integerrequired-HotelInfo >> Services >> Service >> ExistsCode
instancesContains multiple restaurant instancesobjectoptional-
> instance_idSpecifies individual restaurant instance IDintegeroptional-
> restaurant_detailsContains individual restaurant instance IDintegeroptional-FacilityInfo >> Restaurants >> Restaurant `
>> nameSpecifies individual restaurant namesstringoptional-FacilityInfo >> Restaurants >> Restaurant >> @RestaurantName
>> guest_onlySpecifies whether the restaurant is open for the property's guests onlystringoptional-
>> accept_reservationsSpecifies whether the restaurant accepts reservations.booleanoptional-FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> DescriptiveText >> @accepts reservations
>> outdoor_seatingSpecifies whether the restaurant provides outdoor seating.booleanoptional-FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> DescriptiveText >> @outdoor seating
>> meal_types_listSpecifies the restaurant's meal type.enumerated stringoptionalPossible values are: UNKNOWN_MEAL_TYPE, HALAL, KOSHER, VEGETARIAN, VEGAN, GLUTEN_FREE, DAIRY_FREEFacilityInfo >> Restaurants >> Restaurant >> TPA_Extensions >> @DietaryOption
>> ambiances_listSpecifies the restaurant's ambiance.stringoptionalPossible values are: UNKNOWN_AMBIANCE, FAMILY_KIDS_FRIENDLY, TRADITIONAL, MODERN, ROMANTICFacilityInfo >> Restaurants >> Restaurant >> TPA_Extensions >> @Ambiance
>> open_for_meals_listSpecifies whether the restaurant offers breakfast, lunch, brunch, or dinner.stringoptionalPossible values are: UNKNOWN_OPEN_FOR_MEALS, BREAKFAST, BRUNCH, LUNCH, DINNER, HIGH_TEA, COCKTAIL_HOURFacilityInfo >> Restaurants >> Restaurant >> @OfferBreakfast, @OfferDinner, @OfferBrunch, @OfferDinner
>> cuisines_listSpecifies details of the type of food served at a property's restaurant.enumerated stringoptionalPossible values are: UNKNOWN_CUISINE, AFRICAN, AMERICAN, ARGENTINIAN, BELGIAN, BRAZILIAN, CAJUN_CREOLE, CAMBODIAN, CANTONESE, CARIBBEAN, CATALAN, CHINESE, DUTCH, BRITISH, ETHIOPIAN, FRENCH, GREEK, INDIAN, INDONESIAN, IRISH, ITALIAN, JAPANESE, KOREAN, MALAYSIAN, MEDITERRANEAN, MEXICAN, MIDDLE_EASTERN, MOROCCAN, NEPALESE, PERUVIAN, PIZZA, POLISH, PORTUGUESE, SCOTTISH, SEAFOOD, SICHUAN, SINGAPOREAN, SPANISH, STEAKHOUSE, SUSHI, TEXMEX, THAI, TURKISH, VIETNAMESE, AUSTRIAN, AUSTRALIAN, GERMAN, RUSSIAN, LOCAL, ASIAN, INTERNATIONAL, LATIN_AMERICAN, EUROPEAN, CROATIAN, HUNGARIAN, GRILL_BBQ, SOUTH_AFRICANFacilityInfo >> Restaurants >> Restaurant >> CuisineCodes >> CuisineCode >> @Code
>> is_buffetSpecifies individual restaurant namesstringoptional-FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> DescriptiveText >> @buffet
>> is_alacarteSpecifies individual restaurant namesstringoptional-FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> DescriptiveText >> @a la carte
schedule_detailsContains the schedule details for the restaurant's operation.objectoptional-FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> OperationTimes
> scheduleSpecifies opening times on a certain day of the week.objectoptional-FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> OperationTimes >> OperationTime
>> fromContains the start time of the opening hours.objectoptional-FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> OperationTimes >> OperationTime >> @Start
>>> hoursSpecifies the start time in hours.integerrequired-FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> OperationTimes >> OperationTime >> @Start HH (The hour part in the @Start value HH:MM)
>>> minutesSpecifies the start time in minutes.integerrequired-FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> OperationTimes >> OperationTime >> @Start MM (The minute part in the @Start value HH:MM)
>> toContains the end time of the opening hours.objectoptional-FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> OperationTimes >> OperationTime >> @End
>>> hoursSpecifies the end time in hours.integerrequired-FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> OperationTimes >> OperationTime >> @End HH (The hour part in the @End value HH:MM)
>>> minutesSpecifies the end time in minutes.integerrequired-FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> OperationTimes >> OperationTime >> @End (The minute part in the @End value HH:MM)
>>> day_of_weekSpecifies the day of the week.enumerated stringrequiredPossible values are: UNKNOWN_DAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
Allows you to specify different operating hours depending on the days of the week.
FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> OperationTimes >> OperationTime >> @Mon, @Tue, @Weds, @Thur, @Fri, @Sat, @Sun
temporarily_closed_detailsContains temporary closure information.objectoptional-
> closedContains start and end dates of the closure.objectoptional-
> start_dateContains the closure start date.objectoptional-
>> epoch_secondsSpecifies the time in seconds when the closure begins.integeroptional-
> end_dateContains the closure end date.objectoptional-
>> epoch_secondsSpecifies the time in seconds when the closure ends.integeroptional-
surcharge_detailsContains the surcharge details.objectoptional-
surcharge_typeSpecifies the surcharge type.stringoptionalPossible values are: DEFAULT, FREE, PAIDDefaults to DEFAULT (When created using HDCN.)

Migrating Parking facility

ElementDescriptionTypeRequired/
Optional
NotesParameter in HDCN
facility_idSpecifies the Booking.com Facility ID.integerrequired-Replaces the OTA HAC code (OTA_HotelDescriptiveContentNotifRQ >> HotelDescriptiveContents >> HotelDescriptiveContent >> HotelInfo >> Services >> Service >> Code) with the Booking.com facility ID. HotelInfo >> Services >> Service Code.

To get the Booking.com facility ID for a corresponding OTA code, see the Meta endpoint.
stateSpecifies whether the facility is present or missing.integerrequired-HotelInfo >> Services >> Service >> ExistsCode
instancesContains multiple parking instances.objectoptional-
> instance_idSpecifies individual parking instance ID.integeroptional-
> parking_detailsContains individual parking instance ID.integeroptional-
>> nameSpecifies individual parking names.stringrequired-
>> parking_typeSpecifies the parking type.enumerated stringoptional-OTA_HotelDescriptiveContentNotifRQ >> HotelDescriptiveContents >> HotelDescriptiveContent >> Policies >> Policy >> FeePolicies >> FeePolicy >> TPA_Extensions >> ParkingFeePolicy >> ParkingFeePolicy >> @ParkingType
>> parking_locationSpecifies the parking location.enumerated stringrequiredPossible values are: UNKNOWN_LOCATION, ON_SITE, NEARBY
>> parking_accessSpecifies parking eligibility.enumerated stringrequiredPossible values are: UNKNOWN_PARKING_ACCESS, ONLY_GUESTS, GENERAL_PUBLIC OTA_HotelDescriptiveContentNotifRQ >> HotelDescriptiveContents >> HotelDescriptiveContent >>HotelInfo >> Services >> Service >> ParkingFeePolicy >> @ParkingProperty
>> parking_reservationSpecifies whether parking reservations are required.enumerated stringrequiredPossible values are: UNKNOWN_RESERVATION, NEEDED, NOT_NEEDED, NOT_POSSIBLEOTA_HotelDescriptiveContentNotifRQ >> HotelDescriptiveContents >> HotelDescriptiveContent >> Policies >> Policy >> FeePolicies >> FeePolicy >> TPA_Extensions >> ParkingFeePolicy >> @ParkingReservation
>> max_height_mSpecifies the maximum parking height.numberoptional
>> has_valet_serviceSpecifies whether valet service is available at the property.enumerated stringoptionalPossible values are: NOT_SPECIFIED, PRESENT, MISSING
>> has_onsite_staffSpecifies availability of parking staff onsite.enumerated stringoptionalPossible values are: NOT_SPECIFIED, PRESENT, MISSING
>> has_gated_parkingSpecifies whether the parking facility is gated.enumerated stringoptionalPossible values are: NOT_SPECIFIED, PRESENT, MISSING
>> has_security_camerasSpecifies whether the parking facility has security cameras.enumerated stringoptionalPossible values are: NOT_SPECIFIED, PRESENT, MISSING
>> has_ev_charging_station Specifies whether the parking facility has EV charging stations.enumerated stringoptionalPossible values are: NOT_SPECIFIED, PRESENT, MISSING
>> has_accessible_parking_spots Specifies whether the parking facility has accessible parking spots.enumerated stringoptionalPossible values are: NOT_SPECIFIED, PRESENT, MISSING
> payment_detailsSpecifies payment details.integeroptional-
>> charge_modeSpecifies the parking charge mode.stringrequiredPossible values are: UNKNOWN_CHARGE_MODE, FREE, PAID, CHARGES_MAY_APPLY
>> charge_detailsSpecifies the parking charge details.objectoptional
>>> priceSpecifies the parking fee in the property's currency.numberoptional
>>> frequencySpecifies the parking charge frequency.enumerated stringoptionalUNKNOWN_FREQUENCY, PER_STAY, PER_MINUTE, PER_HALF_HOUR, PER_HOUR, PER_DAY, PER_WEEK

Migrating Swimming facility

ElementDescriptionTypeRequired/
Optional
NotesParameter in HDCN
facility_idSpecifies the Booking.com facility ID.integerrequired-Replaces the OTA HAC code (HotelInfo >> Services >> Service >> Code) with the Booking.com facility ID. HotelInfo >> Services >> Service Code.

To get the Booking.com facility ID for a corresponding OTA code, see the Meta endpoint.
instancesContains multiple swimming pool instance details.objectoptional-
> instance_idSpecifies individual swimming instance ID.integeroptional-
> swimming_pool_detailsContains individual swimming pool instance ID.integeroptional-
>> nameSpecifies individual swimming pool names.stringrequired-
>> swimming_pool_typeSpecifies whether the facility is present or missing.stringrequiredPossible values are: UNKNOWN_POOL_TYPE, INDOOR, OUTDOOR, INDOOR_AND_OUTDOOR
>> availability_typeSpecifies the pool's availability.enumerated stringoptionalPossible values are: UNKNOWN_AVAILABILITY, ALL_SEASON, SEASONABLE
>> allowed_age_typeSpecifies the pool's age restrictions if any.enumerated stringoptionalPossible values are: UNKNOWN_AGE_TYPE, ADULTS_ONLY, KIDS_ONLY, ALL_AGES
>> has_loungersSpecifies whether the pool has loungers.booleanoptionalReplaces the OTA HAC code 5076 (HotelInfo >> Services >> Service >> Code).
>> has_water_slideSpecifies whether the pool has water slides.booleanoptionalReplaces the OTA HAC code 5160 (HotelInfo >> Services >> Service >> Code).
>> has_pool_barSpecifies whether the pool has a bar.booleanoptionalReplaces the OTA HAC code 5119 (HotelInfo >> Services >> Service >> Code).
>> has_pool_coverSpecifies whether the pool has a cover.booleanoptionalReplaces the OTA HAC code 5121 (HotelInfo >> Services >> Service >> Code).
>> has_free_towelsSpecifies whether there are free towels available.booleanoptionalReplaces the OTA HAC code 5069 (HotelInfo >> Services >> Service >> Code).
>> has_pool_toysSpecifies whether there are pool toys available.booleanoptionalReplaces the OTA HAC code 5113 (HotelInfo >> Services >> Service >> Code).
>> has_sun_umbrellasSpecifies whether there are sun umbrellas.booleanoptionalReplaces the OTA HAC code 5077 (HotelInfo >> Services >> Service >> Code).
>> has_fence_around_poolSpecifies whether the pool is fenced.booleanoptionalReplaces the OTA HAC code 5122 (HotelInfo >> Services >> Service >> Code).
>> has_snake_trapSpecifies whether the pool has a snake trap.booleanoptionalReplaces the OTA HAC code 5119 (HotelInfo >> Services >> Service >> Code).
>> is_sharedSpecifies whether the pool is shared.booleanoptional
>> is_rooftopSpecifies whether the pool is on the roof top.booleanoptionalReplaces the OTA HAC code 5114 (HotelInfo >> Services >> Service >> Code).
>> is_shallow_endSpecifies whether the pool has a shallow end.booleanoptionalReplaces the OTA HAC code 5120 (HotelInfo >> Services >> Service >> Code).
>> is_infinitySpecifies whether it is an infinity pool.booleanoptionalReplaces the OTA HAC code 5115 (HotelInfo >> Services >> Service >> Code).
>> is_heatedSpecifies whether the pool is heated.booleanoptionalReplaces the OTA HAC code 49 (HotelInfo >> Services >> Service >> Code).
>> is_salt_waterSpecifies whether the pool is on salt water.booleanoptionalReplaces the OTA HAC code 5117 (HotelInfo >> Services >> Service >> Code).
>> is_pool_with_viewSpecifies whether the pool has a view.booleanoptionalReplaces the OTA HAC code 5116 (HotelInfo >> Services >> Service >> Code).
>> is_plunge_poolSpecifies whether it's a plunge pool.booleanoptionalReplaces the OTA HAC code 5118 (HotelInfo >> Services >> Service >> Code).
schedule_detailsContains the schedule details for the swimming pool's operation.objectoptional-
> scheduleSpecifies opening times on a certain day of the week.objectoptional-
>> fromContains the start time of the opening hours.objectoptional-
>>> hoursSpecifies the start time in hours.integerrequired-
>>> minutesSpecifies the start time in minutes.integerrequired-
>> toContains the end time of the opening hours.objectoptional-
>>> hoursSpecifies the end time in hours.integerrequired-
>>> minutesSpecifies the end time in minutes.integerrequired-
>>> day_of_weekSpecifies the day of the week.enumerated stringrequiredPossible values are: UNKNOWN_DAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
Allows you to specify different operating hours depending on the days of the week.
temporarily_closed_detailsContains temporary closure information.objectoptional-
> closedContains start and end dates of the closure information.objectoptional-
> start_dateContains the start of the closure.objectoptional-
>> epoch_secondsSpecifies the time in seconds when the closure begins.integeroptional-
> end_dateContains the end of the closure.objectoptional-
>> epoch_secondsSpecifies the time in seconds when the closure ends.integeroptional-
surcharge_detailsContains the surcharge details.objectoptional-
surcharge_typeSpecifies the surcharge type.stringoptionalPossible values are: DEFAULT, FREE, PAIDDefaults to DEFAULT (When created using HDCN.)
OnSiteDetailsContains the details of the on-site facility.enumerated stringoptionalPossible values are: DEFAULT, ONSITE, OFFSITE
> KidsPoolDetailsContains kid's pool details.objectoptional
>> lengthSpecifies the kid's pool length.numberoptional
>> widthSpecifies the kid's pool width.numberoptional
>> depth_minSpecifies the kid's pool minimum depth.numberoptional
>> depth_maxSpecifies the kid's pool maximum depth.numberoptional
>> unitSpecifies the measurement unit.numberoptional
> has_shallow_endSpecifies whether the pool has a shallow end.booleanoptional

Migrating Schedule details

ElementDescriptionTypeRequired/
Optional
NotesParameter in HDCN
schedule_detailsContains the schedule details for the swimming pool's operation.objectoptional-FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> OperationTimes
> scheduleSpecifies opening times on a certain day of the week.objectoptional-FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> OperationTimes >> OperationTime
>> fromContains the start time of the opening hours.objectoptional-FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> OperationTimes >> OperationTime >> @Start
>>> hoursSpecifies the start time in hours.integerrequired-FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> OperationTimes >> OperationTime >> @Start HH
>>> minutesSpecifies the start time in minutes.integerrequired-FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> OperationTimes >> OperationTime >> @Start MM (The hour part in the @Start value HH:MM)
>> toContains the end time of the opening hours.objectoptional-FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> OperationTimes >> OperationTime >> @End (The minute part in the @Start value HH:MM)
>>> hoursSpecifies the end time in hours.integerrequired-FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> OperationTimes >> OperationTime >> @End HH (The hour part in the @End value HH:MM)
>>> minutesSpecifies the end time in minutes.integerrequired-FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> OperationTimes >> OperationTime >> @End (The minute part in the @End value HH:MM)
>>> day_of_weekSpecifies the day of the week.enumerated stringrequiredPossible values are: UNKNOWN_DAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
Allows you to specify different operating hours depending on the days of the week.
FacilityInfo >> Restaurants >> Restaurant >> Features >> Feature >> OperationTimes >> OperationTime >> @Mon, @Tue, @Weds, @Thur, @Fri, @Sat, @Sun

Migrating temporarily closed details

ElementDescriptionTypeRequired/
Optional
NotesParameter in HDCN
temporarily_closed_detailsContains temporary closure information.objectoptional-
> closedContains start and end dates of the closure information.objectoptional-
> start_dateContains the start of the closure.objectoptional-
>> epoch_secondsSpecifies the time in seconds when the closure begins.integeroptional-
> end_dateContains the end of the closure.objectoptional-
>> epoch_secondsSpecifies the time in seconds when the closure ends.integeroptional-
surcharge_detailsContains the surcharge details.objectoptional-
surcharge_typeSpecifies the surcharge type.stringoptionalPossible values are: DEFAULT, FREE, PAIDDefaults to DEFAULT (When created using HDCN.)

Migrating Internet Services facility

ElementDescriptionTypeRequired/
Optional
NotesParameter in HDCN
facility_idSpecifies the Booking.com facility ID. In this case, 47.integerrequired-OTA_HotelDescriptiveContentNotifRQ >> HotelDescriptiveContents >> HotelDescriptiveContent >> Policies >> Policy >> FeePolicies >> FeePolicy >> TPA_Extensions >> InternetFeePolicy
instancesContains multiple swimming pool instance details.objectoptional-
> payment_detailsSpecifies payment details.integeroptional-
>> charge_modeSpecifies the parking charge mode.stringrequiredPossible values are: UNKNOWN_CHARGE_MODE, FREE, PAID, CHARGES_MAY_APPLY
> internet_detailsSpecifies internet service details.objectoptional-
>> areaSpecifies the connection location.enumerated stringoptionalPossible values are: UNKNOWN_COVERAGE, ALL_ROOMS, SOME_ROOMS, PUBLIC_AREAS, BUSINESS_CENTER, ENTIRE_PROPERTYOTA_HotelDescriptiveContentNotifRQ >> HotelDescriptiveContents >> HotelDescriptiveContent >> Policies >> Policy >> FeePolicies >> FeePolicy >> TPA_Extensions >> InternetFeePolicy >> @InternetCoverage
>> typeSpecifies the supported network type.enumerated stringoptionalPossible values are: NONE, WIRED, WIFIOTA_HotelDescriptiveContentNotifRQ >> HotelDescriptiveContents >> HotelDescriptiveContent >> Policies >> Policy >> FeePolicies >> FeePolicy >> TPA_Extensions >> InternetFeePolicy >> @InternetType
>> wifi_infoSpecifies the network details.objectoptional-
>>> network_nameSpecifies internet network name.stringoptional-
>>> speed_downloadSpecifies the supported internet download speed.numberoptional-
>>> speed_uploadSpecifies the supported internet upload speed.numberoptional-

Some OTA facility codes are grouped

Some of the legacy facility IDs were deprecated and replaced by Booking.com facility IDs.

Facility nameOTA codeBooking.com Facility ID
Indoor parking532
Valet Parking972
Accessible Parking1162
Street Parking1862
Secured Parking2302
Swimming Outdoor all year5109433
Swimming Outdoor seasonal5110433
Swimming Indoor all year5111433
Swimming Indoor seasonal5112433
Pool towels5069433