OTA_HotelRateAmountNotif

The OTA_HotelRateAmountNotif messages are used to update the price per rate/room/date in booking.com.

The Connectivity Partner pushes prices to Booking.com in an OTA_HotelRateAmountNotifRQ message via a HTTPS request, upon which Booking.com responds with an OTA_HotelRateAmountNotifRS.

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

Request — HTTP Message Body Model

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.opentravel.org/OTA/2003/05" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelRateAmountNotifRQ.xsd" TimeStamp="2012-10-12T11:34:05" Target="Production" Version="3.000">
  <RateAmountMessages>
    <RateAmountMessage LocatorID="1">
    <StatusApplicationControl Start="2012-10-19" End="2012-11-20" RatePlanCode="1278606" InvTypeCode="36745604"/>
    <Rates>
      <Rate>
        <BaseByGuestAmts>
          <BaseByGuestAmt AmountAfterTax="3800" DecimalPlaces="2" NumberOfGuests="1" CurrencyCode="EUR"/>
          <BaseByGuestAmt AmountAfterTax="4500" DecimalPlaces="2" CurrencyCode="EUR"/>
        </BaseByGuestAmts>
      </Rate>
    </Rates>
  </RateAmountMessage>
  <RateAmountMessage LocatorID="2">
   <StatusApplicationControl Start="2012-10-19" End="2012-11-20" RatePlanCode="1278607" InvTypeCode="36745604"/>
     <Rates>
       <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountAfterTax="5500" DecimalPlaces="2" CurrencyCode="EUR"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Response — HTTP Message Body Sample

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS 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_HotelRateAmountNotifRS.xsd" TimeStamp="2012-10-12T11:34:06-00:00" Target="Production" Version="1.006">
  <Success />
</OTA_HotelRateAmountNotifRS>
<!-- RUID: [XXXXXXXXXXXXXXXXXXXXXXXXXXX==] -->

The above example will do the following:

Set price for room 36745604 and rate 1278606 to 38.00 for 1 person from the 19th of October to and including the 20th of November 2012

Set price for room 36745604 and rate 1278606 to 45.00 for the room per night from the 19th of October to and including the 20th of November 2012

Set price for room 36745604 and rate 1278607 to 55.00 for the room per night from the 19th of October to and including the 20th of November 2012

Request fields

OTA_HotelRateAmountNotifRQ

All the below XML is fixed and mandatory, except:

timestamp: Should contain the current time and date

target: Either 'Production' or, may contain 'Test', which will not update anything in the Booking.com database.

<OTA_HotelRateAmountNotifRQ
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://www.opentravel.org/OTA/2003/05"
  xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05
  OTA_HotelRateAmountNotifRQ.xsd"
  TimeStamp="2012-10-12T11:34:05"
  Target="Production"
  Version="3.000"
>

RateAmountMessages

The RateAmountMessages element is mandatory for the OTA_HotelRateAmountNotif request.

<RateAmountMessages>
  ...
</RateAmountMessages>

RateAmountMessage

LocatorID (required): should contain a unique ID (used as RecordID in OTA_HotelRateAmountNotifRS)

<RateAmountMessage LocatorID="1">

StatusApplicationControl

Start / End (required): the period which you are updating (inclusive end date). Please note, only dates in the future can be updated.

RatePlanCode (required): the Booking.com rate category ID which you are updating.

InvTypeCode (required): the Booking.com room ID which you are updating.

<StatusApplicationControl Start="2012-10-19" End="2012-11-20" RatePlanCode="1278606" InvTypeCode="36745604"/>

Rates

The Rates element is optional for the OTA_HotelRateAmountNotif request.

<Rates>
...
</Rates>

Rate

The Rate element is mandatory for the OTA_HotelRateAmountNotif request when specifying the Rates element.

<Rate>
...
</Rate>

BaseByGuestAmts

the BaseByGuestAmts element is optional for the OTA_HotelRateAmountNotif request.

<BaseByGuestAmts>
...
</BaseByGuestAmts>

BaseByGuestAmt

the BaseByGuestAmt element is mandatory for the OTA_HotelRateAmountNotif request when specifying the BaseByGuestAmts element.

AmountAfterTax/AmountBeforeTax (required): the price for the given room for the given date for the given rate category. The currency used for pricing is always the same for the hotel and set by Booking.com. The currencies used per country can be found in the documentation under Overview, static information. Prices cannot be removed after a value has been set.

€50000 maximum price

The maximum price you can set for a room is €50000 (or equivalent) per night. If you try to set a higher price, we set the price to zero, which automatically closes the room. The API will return an error message like this:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS 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_HotelRateAmountNotifRS.xsd" TimeStamp="2018-04-05T09:11:26+00:00" Target="Test" Version="1.006">
    <Errors>
        <Error Type="1" Code="320" RecordID="1" Status="NotProcessed" ShortText="Price **** for room id ***** and rate id ****** is higher than Maximum System Rate. We have closed the room as a precaution.">
    </Errors>
</OTA_HotelRateAmountNotifRS>

If the room has both 'Including VAT' and 'Including taxes' enabled in the Booking.com system, AmountAfterTax must be supplied, otherwise AmountBeforeTax.

DecimalPlaces (optional): the number of decimal places for a particular currency (eg. 8550 with DecimalPlaces="2" represents 85.50).

NumberOfGuests (optional): 1, if set, the single use price is set. Please note, Booking.com is only able to set prices per room night or for 1 person in a room, per night (so called single-use)

CurrencyCode: Currency code of the hotel. It must match the hotel currency code configuration on Booking.com, Otherwise you will get an error.

<BaseByGuestAmt AmountAfterTax="3800" DecimalPlaces="2" NumberOfGuests="1" CurrencyCode="EUR"/>
<BaseByGuestAmt AmountAfterTax="45.00" CurrencyCode="EUR"/>

Response fields

OTA_HotelAvailNotifRS

All the below code is fixed, except:

TimeStamp: contains current time

Target: set to same value as in corresponding OTA_HotelAvailNotifRQ.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS 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_HotelRateAmountNotifRS.xsd" TimeStamp="2012-10-12T11:47:05-00:00" Target="Production" Version="1.006">
  <Success />
</OTA_HotelRateAmountNotifRS>
<!-- RUID: [XXXXXXXXXXXXXXXXXXXXXXXXXXX==] -->

Success

Success element is optional, depending on whether the request contained mistakes.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS 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_HotelRateAmountNotifRS.xsd" TimeStamp="2012-10-12T11:47:05-00:00" Target="Production" Version="1.006">
  <Success />
</OTA_HotelRateAmountNotifRS>
<!-- RUID: [XXXXXXXXXXXXXXXXXXXXXXXXXXX==] -->

Warnings

Warnings can be combined with success messages if the request was still processed.

Type: OTA error code (see OTA codetable).

Code: OTA EWT code (see OTA codetable).

RecordID: same as LocatorID in OTA_HotelAvailNotifRQ.

Status: NotProcessed (error) / Complete (only warning).

ShortText (may be empty): warning message.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS 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_HotelRateAmountNotifRS.xsd" TimeStamp="2012-10-12T13:49:09-00:00" Target="Production" Version="1.006">
  <Success />
  <Warnings>
    <Warning Type="1" Code="367" Status="Complete" ShortText="Rate for 'Studio' (36745604) for 'Standard Rate' (1278606) for date '2012-10-19' with price '3800' might be too low, please check"/>
  </Warnings>
</OTA_HotelRateAmountNotifRS>
<!-- RUID: [XXXXXXXXXXXXXXXXXXXXXXXXXXX==] -->

Errors

Errors are optional and only used alone, without success/warnings.

Code: OTA EWT code (see OTA codetable).

Type: OTA error code (see OTA codetable).

RecordID: same as LocatorID in OTA_HotelAvailNotifRQ.

Status: NotProcessed.

ShortText (may be empty): error message.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS 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_HotelRateAmountNotifRS.xsd" TimeStamp="2012-10-12T13:49:59-00:00" Target="Production" Version="1.006">
  <Errors>
    <Error Type="3" Code="61" RecordID="1" Status="NotProcessed" ShortText="BaseByGuestAmt: rate must be greater than 0."/>
  </Errors>
</OTA_HotelRateAmountNotifRS>
<!-- RUID: [XXXXXXXXXXXXXXXXXXXXXXXXXXX==] -->

RUID strings

The Booking.com responses will always contain a "RUID" string, which is an encoded string used by the Booking.com staff to trace back any updates made before. Whenever the Connectivity Partner wishes the XML-Team to look at any logfiles for debugging or the like; the RUID string needs to be provided. This will enable the Booking.com technical staff to provide Connectivity Partners with support.

<!-- RUID: [XXXXXXXXXXXXXXXXXXXXXXXXXXX==] -->