Create a product(beta) that connects room types and rate plans, and assigns a policy to that mapping

Closed beta

This API is in closed beta. You can't use it unless you have been invited as a beta tester.

Products connect room types to rate plans, and contain details about cancellation policies, mealplans, and booking rules. Use /ota/OTA_HotelProductNotif to create products.

What has changed in this beta?

Before: First step, set up policy at property level using Property Information API (OTA_HotelDescriptiveNotif). Second step, assign policy at room rate level using Product API (OTA_HotelProductNotif) Changed: Both steps possible using the HotelProductNotif API

Specify policy codes with policy names

Booking.com allows its hotels to configure upto 6 cancellation and prepayment policies for their hotels. PTT_GENERAL, PTT_NON_REFUNDABLE, PTT_SPECIAL_CONDITIONS, PTT_SPECIAL_CONDITIONS_2, PTT_SPECIAL_CONDITIONS_3, PTT_SPECIAL_CONDITIONS_4. As such when you're trying to attach a policy on the roomrate level without having first created then on the hotel level, you are required to specify the name associated with that policy. This will overwrite the policy code attached to the name previously. Your former reservation will still continue to have the policy they were booked on, however any new reservations(using the specified policy name: General/Nonrefundable/Special policy etc) will be tagged with this new overwritten policy code attached to this name.

What are these Policy Overrides? (Beta)

Cancellation Policies that are set on a roomrate level can be overriden for certain dates by different policies to meet hotel needs. For example, setting a different cancellation policy around the Christmas holidays can be a more restrictive one. Please note that a the policy name must be specified for the override and it must be previously matched to an exicting policy code (referenced above). Specifying a policy name within override that does not already correspond to a policycode for the hotel will result in an error.

Before you start

To complete this task, you need:

Request

HTTP request

POST https://supply-xml.booking.com/hotels/ota/OTA_HotelProductNotif

Request Attribute(@) Overview

Field Description Type Required Notes
OverridePolicy Parent node for the override policy object Optional -
BookDates Range of dates to override on Mandatory Array -
ActiveWeekdays List of active weekdays to override with the new policy Weekday names Required((within RateRelation)) Default: All Days
  • The @guarantee_payment_policy indicates if and when when the prepayment will be charge on the roomrate.
  • The @booking_rule defines restriction on the roomrate on when it can be booked.
  • The @cancel_policy defines the Booking.com Cancellation Policy Code for the cancellation penalty. | BCCP
  • The @override_policy defines the policy that will be applicable on those certain dates overriding the default set for that roomrate.

Understanding the prepayment policy.

The prepayment policy is closely attached to your cancellation policy and together they form a PolicyName (General/Nonrefundable/Specialgroups). The Cancellation Policy Code along with information on whether or not prepayment has to be charged, and if so at what time together forms the Policy. Prepayment can be charged "after_reservation_is_made", "after_cancellation_fee_begins", or simply not charged at all.

Request body

Provide an OTA_HotelProductNotifRQ object in the request body. Example:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelProductNotifRQ
  xmlns="http://www.opentravel.org/OTA/2003/05"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  PrimaryLangID="en-US"
  EchoToken="GUID"
  Version="1.0"
  Target="Test">
  <HotelProducts HotelCode="{PropertyID}">
    <HotelProduct ProductNotifType="New">
      <RoomTypes>
        <RoomType RoomTypeCode="{RoomTypeID}"  MaxOccupancy="{MaxOccupancy}"/>
      </RoomTypes>
      <RatePlans>
        <RatePlan RatePlanCode="{RatePlanID}" />
      </RatePlans>
      <PolicyInfo>
        <BookingRules>
          <BookingRule MinAdvancedBookingOffset="P1D" />
          <BookingRule ReleaseTimeOfDayStart="41"/>
          <BookingRule ReleaseTimeOfDayEnd="41"/>
        </BookingRules>
        <CancelPolicy>
          <CancelPenalty PolicyCode="12" PolicyName="PTT_SPECIAL_CONDITIONS_2"/>
          <PrepaymentPolicy EffectiveFrom="after_reservation_is_made"/>
        </CancelPolicy>
        <OverridePolicies>
          <OverridePolicy PolicyName="PTT_NON_REFUNDABLE">
            <BookDates>
              <BookDate Start="2019-06-06" End="2019-06-29"/>
              <BookDate Start="2019-07-06" End="2019-07-29"/>
            </BookDates>
            <ActiveWeekdays>
              <ActiveWeekday Day="Friday"/>
              <ActiveWeekday Day="Saturday"/>
            </ActiveWeekdays>
          </OverridePolicy>
          <OverridePolicy PolicyName="PTT_SPECIAL_CONDITIONS">
            <BookDates>
              <BookDate Start="2019-09-07" End="2019-09-08"/>
              <BookDate Start="2019-09-21" End="2019-09-29"/>
            </BookDates>
            <ActiveWeekdays>
              <ActiveWeekday Day="Friday"/>
              <ActiveWeekday Day="Saturday"/>
            </ActiveWeekdays>
          </OverridePolicy>
        </OverridePolicies>
      </PolicyInfo>
    </HotelProduct>
  </HotelProducts>
</OTA_HotelProductNotifRQ>

Response

The response contains an OTA_HotelProductNotifRS object:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelProductNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelProductNotifRS.xsd" TimeStamp="2015-07-31T14:08:46-00:00" Target="Production" Version="3.000">
  <Success />
</OTA_HotelProductNotifRS><!-- RUID: [XXXXXXXXXXXXXXXXXXXXXXXXXXX==] -->

Next steps