Content is outdated

This documentation section will soon become deprecated. To know more about room type and rate plan managmeent, consult the new room type and management API management documentation.

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

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?

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 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?

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:


HTTP request


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 Cancellation Policy Code for the cancellation penalty. | You must only use the PolicyName values that you can retrieve through the HotelDescriptiveInfo endpoint.
  • 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, if PrePaymentRequired field is "true" or 1, and PolicyCode is "after_reservation_is_made" or "after_cancellation_fee_begins", or simply not charged at all if PrePaymentRequired is passed as false.

Request body

Provide an OTA_HotelProductNotifRQ object in the request body. Example:

<?xml version="1.0" encoding="UTF-8"?>
  <HotelProducts HotelCode="{PropertyID}">
    <HotelProduct ProductNotifType="New">
        <RoomType RoomTypeCode="{RoomTypeID}"  MaxOccupancy="{MaxOccupancy}"/>
        <RatePlan RatePlanCode="{RatePlanID}" />
        <MealPlan MealPlanCode="19" />
          <BookingRule MinAdvancedBookingOffset="P1D" />
          <BookingRule MaxAdvancedBookingOffset="P1D" />
          <BookingRule ReleaseTimeOfDayStart="10:00"/>
          <BookingRule ReleaseTimeOfDayEnd="16:30"/>
          <CancelPenalty PolicyCode="12" PolicyName="PTT_SPECIAL_CONDITIONS_2"/>
            <GuaranteePayment PolicyCode="after_reservation_is_made" PrePaymentRequired="true"/>
          <OverridePolicy PolicyName="PTT_NON_REFUNDABLE">
              <BookDate Start="2019-06-06" End="2019-06-29"/>
              <BookDate Start="2019-07-06" End="2019-07-29"/>
              <ActiveWeekday Day="Friday"/>
              <ActiveWeekday Day="Saturday"/>
          <OverridePolicy PolicyName="PTT_SPECIAL_CONDITIONS">
              <BookDate Start="2019-09-07" End="2019-09-08"/>
              <BookDate Start="2019-09-21" End="2019-09-29"/>
              <ActiveWeekday Day="Friday"/>
              <ActiveWeekday Day="Saturday"/>


The response contains an OTA_HotelProductNotifRS object:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelProductNotifRS xmlns="" xmlns:xsi=""
xsi:schemaLocation=" OTA_HotelProductNotifRS.xsd" TimeStamp="2015-07-31T14:08:46-00:00" Target="Production" Version="3.000">
  <Success />

Next steps