Transmission of the prices based on OTA_HotelRatePlanNotifRQ / OTA_HotelRatePlanNotifRS

Transmission of the prices based on OTA_HotelRatePlanNotifRQ / OTA_HotelRatePlanNotifRS

The OTA_HotelRatePlanNotifRQ / OTA_HotelRatePlanNotifRS can be used to transmit either room-based pricing or occupancy-based pricing. A request will be send every time a change in the prices has been detected on our system.

The Hotel-Spider system will send the following request

Use case 1: OTA_HotelRatePlanNotifRQ for occupancy-based pricing
<OTA_HotelRatePlanNotifRQ 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_HotelRatePlanNotifRQ" Version="1.000"> <POS> <Source> <RequestorID ID="MASTERUSERNAME" MessagePassword="MASTERPASSWORD" Type="13"></RequestorID> </Source> </POS> <RatePlans HotelCode="HOTELCODE"> <RatePlan RatePlanCode="00P551924536469f"> <Rates> <Rate InvTypeCode="00P5519245316dc1" Start="2015-10-26" End="2015-10-31"> <BaseByGuestAmts> <BaseByGuestAmt AmountAfterTax="38.00" DecimalPlaces="2" NumberOfGuests="1" CurrencyCode="CHF" AgeQualifyingCode="10" /> <BaseByGuestAmt AmountAfterTax="45.00" DecimalPlaces="2" NumberOfGuests="2" CurrencyCode="CHF" AgeQualifyingCode="10" /> <BaseByGuestAmt AmountAfterTax="52.00" DecimalPlaces="2" NumberOfGuests="3" CurrencyCode="CHF" AgeQualifyingCode="10" /> <BaseByGuestAmt AmountAfterTax="9.00" DecimalPlaces="2" NumberOfGuests="1" CurrencyCode="CHF" AgeQualifyingCode="7"/> <BaseByGuestAmt AmountAfterTax="15.00" DecimalPlaces="2" NumberOfGuests="1" CurrencyCode="CHF" AgeQualifyingCode="8"/> </BaseByGuestAmts> <AdditionalGuestAmounts> <AdditionalGuestAmount Amount="59.00" DecimalPlaces="2" CurrencyCode="EUR" AgeQualifyingCode="8" TaxInclusive="true"/> <AdditionalGuestAmount Amount="102.00" DecimalPlaces="2" CurrencyCode="EUR" AgeQualifyingCode="10" TaxInclusive="true"/> </AdditionalGuestAmounts> </Rate> </Rates> </RatePlan> </RatePlans> </OTA_HotelRatePlanNotifRQ>
Use case 2: OTA_HotelRatePlanNotifRQ for room-based pricing
<OTA_HotelRatePlanNotifRQ 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_HotelRatePlanNotifRQ" Version="1.000"> <POS> <Source> <RequestorID ID="MASTERUSERNAME" MessagePassword="MASTERPASSWORD" Type="13"></RequestorID> </Source> </POS> <RatePlans HotelCode="HOTELCODE"> <RatePlan RatePlanCode="00P551924536469f"> <Rates> <Rate InvTypeCode="00P5519245316dc1" Start="2015-10-26" End="2015-10-31"> <BaseByGuestAmts> <BaseByGuestAmt AmountAfterTax="38.00" DecimalPlaces="2" CurrencyCode="CHF" /> </BaseByGuestAmts> </Rate> </Rates> </RatePlan> </RatePlans> </OTA_HotelRatePlanNotifRQ>

Request structure

OTA_HotelRatePlanNotifRQ

Parent: None (Root element)

Mandatory: yes

Attributes:

Name

Mandatory

Description

TimeStamp

Yes

The format should respect the ISO 8601 2015-11-16T22:23:48+00:00

Target

Yes

When sending updates to the staging environment "Test" must be used.

When sending updates to the production environment "Production" must be used.

Version

Yes

The default value should be "1.000"

EchoToken

Yes

This string should be returned in the response

Child elements: POS (when using POS authentication. See Authentication methods for more information), RatePlans

 

RatePlans

Parent: OTA_HotelRatePlanNotifRQ

Mandatory: yes

Attributes:

Name

Mandatory

Description

HotelCode

Yes

The ID of the hotel on the online booking system

Child elements: RateAmountMessage

 

RatePlan

Parent: RatePlans

Mandatory: yes

Attributes:

Name

Mandatory

Description

RatePlanCode

No

The ID of the rate plan on the online booking system

RatePlanCode/RatePlanType/RatePlanID

No

The ID of the rate plan on the online booking system

By default our system will search for the RatePlanCode atttribute. Should you have been using RatePlanType in a previous development, we can configure our interface to work with RatePlanType. The same goes for the RatePlanID attribute.

Child elements: Rates

RatePlanCode attribute use scenario

The RatePlanCode/RatePlanType/RatePlanID attribute will only be transmitted if the online booking system manages multiple rate plans.

 

Rates

Parent: RatePlan

Mandatory: yes

Attributes: None

Child elements: Rate

 

Rate

Parent: Rates

Mandatory: yes

Attributes:

Name

Mandatory

Description

InvCode/InvTypeCode/RoomID

Yes

The ID of the room type on the online booking system

By default our system will search for the InvCode attribute. Should you have been using InvTypeCode in a previous development (for example: OTA version of the Booking.com interface ), we can configure our interface to work with InvTypeCode. The same goes for the RoomID attribute.

Start

Yes

The format will respect ISO 8601 2015-11-16

End

Yes

The format will respect ISO 8601 2015-11-16

Mon

No

Does this update apply to a Monday

Tue

No

Does this update apply to a Tuesday

Weds

No

Does this update apply to a Wednesday

Thur

No

Does this update apply to a Thursday

Fri

No

Does this update apply to a Friday

Sat

No

Does this update apply to a Saturday

Sun

No

Does this update apply to a Friday

Child elements: BaseByGuestAmts

 

BaseByGuestAmts

Parent: Rates

Mandatory: yes

Attributes: None

Child elements: BaseByGuestAmt

 

BaseByGuestAmts

Parent: BaseByGuestAmts

Mandatory: yes

Attributes:

Name

Mandatory

Description

AmountAfterTax / AmountBeforeTax

Yes

The new price to apply on the online booking system

DecimalPlaces

Yes

The number of decimal places that have been transferred with the price

NumberOfGuests

No

The occupancy for which the transmitted price applies

CurrencyCode

Yes

The currency in which the price has been transmitted

AgeQualifyingCode

No

See Age Qualifying Code (AQC) definitions

Child elements: None

NumberOfGuests attribute

When occupancy-based pricing is used by the online booking system, the NumberOfGuests attribute will be transferred in order to provided. Should room-based pricing be used then no NumberOfGuests attribute will be transferred.

From room-based to occupancy-based pricing

Should the hotel be configured to use room-based pricing in the Hotel-Spider system but occupancy-based pricing on the online booking system, then the same price will be transferred for all the possible occupancies on the online booking system.

 

The online booking system must respond with either of the following formats

Use case 1. OTA_HotelRatePlanNotifRS confirmation
<OTA_HotelRatePlanNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2015-11-25T17:21:43+01:00" EchoToken="" CorrelationID="" Version="1.0"> <Success /> </OTA_HotelRatePlanNotifRS>
Use case 2. OTA_HotelAvailNotifRS error notification
<OTA_HotelRatePlanNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2015-11-25T17:21:43+01:00" EchoToken="" CorrelationID="" Version="1.0"> <Errors> <Error Code="3008" Type="13" Status="NotProcessed" ShortText="Processing error" Tag="/">Hotel ID invalid</Error> </Errors> </OTA_HotelRatePlanNotifRS>

 

Response structure

OTA_HotelRatePlanNotifRS

Parent: None (Root element)

Mandatory: yes

Attributes:

Name

Mandatory

Description

TimeStamp

Yes

The format should respect the ISO 8601 2015-11-16T22:23:48+00:00

Target

Yes

When sending updates to the staging environment "Test" must be used.

When sending updates to the production environment "Production" must be used.

Version

Yes

The default value should be "1.000"

EchoToken

Yes

This string should be returned in the response

Child elements: Success, Errors

 

Success

Parent: OTA_HotelRatePlanNotifRS

Mandatory: no

Attributes: None

Child elements: None

 

 

Errors

Parent: OTA_HotelRatePlanNotifRS

Mandatory: No

Attributes: None

Child elements: Error

 

Error

Parent: Errors

Mandatory: yes

Attributes:

Name

Mandatory

Description

Code

Yes

The unique error code assigned by the online booking system

Type

Yes

 

Status

Yes

Possible values are:

  • NotProcessed

  • Incomplete

  • Complete

  • Unknown

ShortText

Yes

A short textual explanation of the error

Tag

Yes

Indicates which element and/or attribute provoked the error to occur

Child elements: None