Transmission of the booking rules based on OTA_HotelAvailNotifRQ / OTA_HotelAvailNotifRS

The OTA_HotelAvailNotifRQ / OTA_HotelAvailNotifRS can be used to transmit the booking rules on all the agreed levels. A request will be send every time a change in the booking rules has been detected on our system.


Other usages of OTA_HotelAvailNotifRQ / OTA_HotelAvailNotifRS

Beside transmitting room availabilities, the OTA_HotelAvailNotifRQ / OTA_HotelAvailNotifRS message pair can also be used to transmit prices (room-based only) as well as the room availabilities. Check the corresponding chapters to see use cases

Determining the level for the booking rules

To indicate for which level (hotel, room type, rate plan or product) a booking rule should be applied, the attributes InvCode and/or RatePlanCode are used. In the Hotel-Spider system all the booking rules can be managed on all 4 levels. However a specific booking rule will only be accessible if at least one connected channel requires it.

Use case 1: Booking rules on hotel level
<StatusApplicationControl Start="2015-09-24" End="2015-10-14" />
Use case 2: Booking rules on room type level
<StatusApplicationControl Start="2015-09-24" End="2015-10-14" InvCode="00P5519245316dc1" />
Use case 3: Booking rules on rate plan level
<StatusApplicationControl Start="2015-09-24" End="2015-10-14" RatePlanCode="00P551924536469f" />
Use case 4: Booking rules on product level
<StatusApplicationControl Start="2015-09-24" End="2015-10-14" InvCode="00P5519245316dc1" RatePlanCode="00P551924536469f" />

The Hotel-Spider system will send the following request

Use case: OTA_HotelAvailNotifRQ for room-based pricing
<OTA_HotelAvailNotifRQ 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_HotelAvailNotifRQ.xsd" TimeStamp="2012-10-05T14:20:50" Target="Test" Version="1.000" EchoToken="">
  <POS>
    <Source>
      <RequestorID ID="MASTERUSERNAME" MessagePassword="MASTERPASSWORD" Type="13"></RequestorID>
    </Source>
  </POS>
  <AvailStatusMessages HotelCode="1234HotelCode">
    <AvailStatusMessage>
      <StatusApplicationControl Start="2015-09-24" End="2015-10-14" InvTypeCode="00P5519245316dc1" RatePlanCode="00P551924536469f" />
      <LengthsOfStay>
        <LengthOfStay Time="2" MinMaxMessageType="SetMinLOS"/>
        <LengthOfStay Time="5" MinMaxMessageType="SetMaxLOS"/>
      </LengthsOfStay>
      <RestrictionStatus Restriction="Master" Status="Open"/>
      <RestrictionStatus Restriction="Arrival" Status="Open"/>
      <RestrictionStatus Restriction="Departure" Status="Open"/>
      <RestrictionStatus MinAdvancedBookingOffset="P2W" MaxAdvancedBookingOffset="P1Y"/>
    </AvailStatusMessage>
  </AvailStatusMessages>
</OTA_HotelAvailNotifRQ>

Request structure

OTA_HotelAvailNotifRQ

Parent: None (Root element)

Mandatory: yes

Attributes:

Name
Mandatory
Description
TimeStampYesThe format should respect the ISO 8601 2015-11-16T22:23:48+00:00
TargetYes

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

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

VersionYesThe default value should be "1.000"
EchoTokenYesThis string should be returned in the response

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


AvailStatusMessages

Parent: OTA_HotelAvailNotifRQ

Mandatory: yes

Attributes:

Name
Mandatory
Description
HotelCodeYesThe ID of the hotel on the online booking system

Child elements: AvailStatusMessage


AvailStatusMessage

Parent: Inventories

Mandatory: yes

Attributes: None

Child elements: StatusApplicationControl


StatusApplicationControl

Parent: Inventory

Mandatory: yes

Attributes:

Name
Mandatory
Description
InvCodeNoThe ID of the room type on the online booking system
RatePlanCodeNoThe ID of the rate plan on the online booking system
StartYesThe format will respect ISO 8601 2015-11-16
EndYesThe format will respect ISO 8601 2015-11-16
MonNoDoes this update apply to a Monday
TueNoDoes this update apply to a Tuesday
WedsNoDoes this update apply to a Wednesday
ThurNoDoes this update apply to a Thursday
FriNoDoes this update apply to a Friday
SatNoDoes this update apply to a Saturday
SunNoDoes this update apply to a Friday

Child elements: None



LengthsOfStay

Parent: AvailStatusMessage

Mandatory: yes

Attributes: None

Child elements: LengthOfStay


LengthOfStay

Parent: LengthsOfStay

Mandatory: yes

Attributes:

Name
Mandatory
Description
TimeYesThe new price to apply on the online booking system
MinMaxMessageTypeYes

Possible values are:

  • SetMinLOS
  • RemoveMinLOS
  • SetMaxLOS
  • RemoveMaxLOS
  • SetForwardMinStay
  • RemoveForwardMinStay
  • SetForwardMaxStay
  • RemoveForwardMaxStay

Child elements: None


RestrictionStatus

Parent: AvailStatusMessage

Mandatory: yes

Attributes:

Name
Mandatory
Description
RestrictionNo

Possible values:

  • Master
  • Arrival
  • Departure
StatusNo

Possible values are:

  • Open
  • Close
MinAdvancedBookingOffsetNoValue is given using the ISO 8601 Duration notation
MaxAdvancedBookingOffsetNoValue is given using the ISO 8601 Duration notation

Child elements: None


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


Use case 1. OTA_HotelAvailNotifRS confirmation
<OTA_HotelAvailNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2015-11-25T17:21:43+01:00" EchoToken="" CorrelationID="" Version="1.0">
  <Success />
</OTA_HotelAvailNotifRS>
Use case 2. OTA_HotelAvailNotifRS error notification
<OTA_HotelAvailNotifRS 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_HotelAvailNotifRS>


Response structure

OTA_HotelAvailNotifRS

Parent: None (Root element)

Mandatory: yes

Attributes:

Name
Mandatory
Description
TimeStampYesThe format should respect the ISO 8601 2015-11-16T22:23:48+00:00
TargetYes

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

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

VersionYesThe default value should be "1.000"
EchoTokenYesThis string should be returned in the response

Child elements: Success, Errors


Success

Parent: OTA_HotelAvailNotifRS

Mandatory: no

Attributes: None

Child elements: None



Errors

Parent: OTA_HotelAvailNotifRS

Mandatory: No

Attributes: None

Child elements: Error


Error

Parent: Errors

Mandatory: yes

Attributes:

Name
Mandatory
Description
CodeYesThe unique error code assigned by the online booking system
TypeYes
StatusYes

Possible values are:

  • NotProcessed
  • Incomplete
  • Complete
  • Unknown
ShortTextYesA short textual explanation of the error. Max 64 characters.
TagYesIndicates which element and/or attribute provoked the error to occur

Child elements: None