Target audienceRMS, CRM, CRS
Version3.0.
AuthenticationBearer Token
Message typeAsynchronous, Push
DirectionInbound, Outbound

Message Description

protel I/O uses a request and response message pair to communicate stay restriction updates (inbound and outbound) and overbooking (inbound only) from sender to receiver. Restrictions and overbooking use the same HTNG message type (OTA_HotelAvailNotifRQ/RS).

The following restrictions are supported:

Restriction

Hotel/ Property

Rate Code

Room type

Product (Room Type x Rate Code)

Close Out

x

x

x

x

Close to Arrival

x

x

x

x

Close to Departurexxxx

Minimum Length of Stay by stay

x

x

x

x

Minimum Length of Stay by arrival

x

x

x

x


Overbooking limits can be set at hotel and room type level.

Also note that each message should contain an overbooking limit that could apply to a single day or could span multiple days, but will not mix house and room type limits in the same message. Should there be the necessity for such to be removed - this can only happen for the same period used when the restriction was created. For this reason, we recommend restrictions to be sent for 1 day only.


Additionally updates on Hurdles (LRV = Last Room Value) and BAR Rates are also communicated via OTA_HotelAvailNotifRQ.

Message Attributes

MessageContentCode

Description outbound

pAirOnPremDescription inboundpAironPrem

1

Overbooking/Restrictions - Room type level(Fehler)(Fehler)Overbooking/Restrictions - Room type level(Haken)(Haken)

Restrictions - 

Rate code level

(Fehler)(Fehler)

Restrictions - 

Rate code level

(Haken)(Haken)

3

Restrictions - 

Room type / rate code level

(Haken)(Haken)

Restrictions - 

Room type / rate code level

(Haken)(Haken)

4

Restrictions -

Rate category level (rate group)

(Haken)(Fehler)

Restrictions -

Rate category level (rate group)

(Haken)(Fehler)

6

Overbooking/Restrictions - 

Property level

(Fehler)(Fehler)

Overbooking/Restrictions - 

Property level

(Haken)(Haken)

7

Hurdles(Fehler)(Fehler)Hurdles(Haken)(Haken)

11

BAR rates(Fehler)(Fehler)BAR rates(Fehler)(Haken)

OTA_HotelAvailNotifRQ

Element | @Attribute

Type

Num

Description

Comments + Content outbound

pAIROnPrem

Comments + Content inbound

pAIROnPrem

OTA_ HotelAvailNotifRQ


1

Root element of the message.







(Haken)(Haken)
(Haken)(Haken)

@EchoToken 

StringLength1to1280..1

A reference for additional message identification, assigned by the requesting host system. When a request message includes an echo token the corresponding response message MUST include an echo token with an identical value.







(Haken)(Haken)
(Haken)(Haken)

@CorrelationID

StringLength1to64

1

Used to match result messages (*RS) to request messages (*RQ) in asynchronous communication patterns. Therefore mandatory.


(Haken)(Haken)
(Haken)(Haken)

@TimeStamp 

dateTime

1

Timestamp of the transaction. 


(Haken)(Haken)
(Haken)(Haken)

@Version 

decimal

0..1

Version of the message.


(Haken)(Haken)
(Haken)(Haken)

@PrimaryLangID

language

0..1

Default language of the property.


(Fehler)(Fehler)


(Fehler)(Fehler)

@MessageContentCode

OTA_CodeType MCC

0..1

The attribute defines the type of the message and its content. 

Message Content Code (MCC)

Restrictions

  • "3" = Room type / Rate code level


(Haken)(Haken)

Supported Codes:

Overbooking

  • "1" = Room Type Level
  • "6" = Property level

Hurdle Rates

  • "7" (pAir)

BAR Rate Availability

  • "11" (onPrem)

Restrictions

  • "1" = Room Type Level
  • "2" = Rate Code Level
  • "3" = Room type / rate code level
  • "4" = Segment availability
  • "6" = Property level
(Haken)(Haken)
@TargetNMTOKEN0..1Used to indicate wether the request is for the Test or the Production system.
(Haken)(Haken)
(Haken)(Haken)
OTA_HotelAvailNotifRQ | POS
1

(Haken)(Haken)
(Haken)(Fehler)
OTA_HotelAvailNotifRQ | POS | Source
1..10

(Haken)(Haken)
(Haken)(Fehler)

OTA_HotelAvailNotifRQ | POS | Source | RequestorID


0..1

This identifies the system that should process the restriction details etc.


(Haken)(Haken)
(Haken)(Fehler)

@Type 

OTA_CodeType UIT

1

A reference to the type of object defined by the UniqueID element. Refer to OpenTravel Code List Unique ID Type (UIT)

(Haken)(Haken)
(Haken)(Fehler)

@ID 

StringLength1to32

1

The ID will transfer the HotelID and needs to be agreed by the trading partners and remain the same throughout the messages.


(Haken)(Haken)
(Haken)(Fehler)

@ID_Context

StringLength1to32

1

Used to identify where the ID comes from.

“protelIO”(Haken)(Haken)
(Haken)(Fehler)
OTA_HotelAvailNotifRQ | POS | Source | BookingChannel
0..1Specifies the booking channel type and whether it is the primary means of connectivity of the source.
(Fehler)(Fehler)
(Fehler)(Fehler)
@Primaryboolean0..1Indicates whether the enumerated booking channel is in the primary means of connectivity used by the source 
  • true 
  • false
(Fehler)(Fehler)
  • true 
  • false
(Fehler)(Fehler)

@Type

OTA_CodeType BCT

1

Indicates the type of booking channel per the Open Travel BCT codes. 

(Fehler)(Fehler)


(Fehler)(Fehler)
OTA_HotelAvailNotifRQ | POS | Source | TPA_Extensions
0..1

(Fehler)(Fehler)
(Haken)(Haken)
OTA_HotelAvailNotifRQ | POS | Source | TPA_Extensions | POSExtensions
0..1

(Fehler)(Fehler)
(Haken)(Haken)
OTA_HotelAvailNotifRQ | POS | Source | TPA_Extensions | POSExtensions | HotelInfo
0..1

(Fehler)(Fehler)
(Haken)(Haken)
@FiscalDatedate0..1

(Fehler)(Fehler)
(Haken)(Haken)
@CurrentBookingDatedate0..1

(Fehler)(Fehler)
(Haken)(Haken)
OTA_HotelAvailNotifRQ | UniqueID
0..1The unique identifier element allows the trading partners to uniquely identify each AvailNotifRQ (i.e. the entire message ) for tracing of transactions.
(Haken)(Haken)
(Haken)(Haken)

@ID

StringLength1to32

1

The ID will transfer an ID unique for each AvailNotifRQ.


(Haken)(Haken)
(Haken)(Haken)

@ID_Context

StringLength1to32

1

Used to identify where the ID comes from.

"protelIO"(Fehler)(Fehler)
(Haken)(Haken)

@Type

OTA_CodeType UIT

1

A reference to the type of object defined by the UniqueID element. Refer to OpenTravel Code List Unique ID Type (UIT)

(Haken)(Haken)
(Haken)(Haken)

OTA_HotelAvailNotifRQ | AvailStatusMessages


0..1

The AvailStatusMessage indicates whether the inventory is opened, closed, closed on request etc.
(Haken)(Haken)
(Haken)(Haken)

@HotelCode

StringLength1to16

0..1

This is the Hotel ID of the property whose availability is being updated.


(Haken)(Haken)
(Haken)(Haken)
@ChainCodeStringLength1to80.1The code that identifies a hotel chain per management group. The hotel code is decided btw vendors. The attribute is optional if the hotel is independent property that can be identified by the HotelCode attribute .
(Fehler)(Fehler)
(Haken)(Haken)

@HotelCodeContext

StringLength1to32

0..1

A text field used to communicate the context  (or source of ) the hotel ReferenceGroup codes.

Default value is “protelIO”(Fehler)(Fehler)
(Haken)(Fehler)

@HotelName

StringLength1to128

0..1

A text field used to communicate the the proper name of the hotel


(Fehler)(Fehler)
(Haken)(Fehler)

OTA_HotelAvailNotifRQ | AvailStatusMessages | AvailStatusMessage


1..n

Although all restrictions are optional, at least one should be sent for the message to have any meaning.


(Haken)(Haken)One of the attributes (BookingLimit or BookingThreshold) is mandatory in MessageContentCode=1 for inbound messages to protelIO if Overbooking is sent.(Haken)(Haken)

@BookingLimitMessageType

string

0..1

Enumerated values are used to indicate whether the booking limit sent in the transmission is used to set, adjust or delete the booking limit (SetLimit, AdjustLimit, RemoveLimit).

  • SetLimit
  • AdjustLimit
  • RemoveLimit
(Haken)(Haken)
(Haken)(Fehler)

OTA_HotelAvailNotifRQ | AvailStatusMessages | AvailStatusMessage | StatusApplicationControl


0..1

Element defining application of controls being sent.
(Haken)(Haken)Element defining application of controls being sent.(Haken)(Haken)

@Start

date

1

The first date for which the availability update is being sent.

"YYYY-MM-DD"(Haken)(Haken)
(Haken)(Haken)

@End

date

1

The last date for which the availability update is being sent.

"YYYY-MM-DD"(Haken)(Haken)
(Haken)(Haken)

@Mon
@Tue
@Weds
@Thur
@Fri
@Sat
@Sun

boolean

0..1

The day of the week indicators are used to communicate which days of the week the update pertains to. If one is sent, they must all be sent.
If missing, default value is taken ("1").

Instead of these attributes we send the respective date period incl/excl the resp DoW

(Fehler)(Fehler)

"1" = true, i.e. the restriction will apply for this day

"0" = false, i.e. the restriction will not apply for this day

Overbooking:

  • If no DoW is set → all "true"
  • If all DoW are set → we process that what's sent
  • If only specific DoW are set (doesn't matter if "true" or "false" → we will set the rest as default to "false")
(Haken)(Haken)

@AllInvCode

boolean

0..1

If the restriction sent is valid for all room types this is set to “true” and @InvTypeCode could be removed.
If missing, default value is taken ("false").

Outbound restrictions are always sent per room/rate combination, i.e. MessageContentCode = "3"

(Fehler)(Fehler)
  • true
  • false
(Haken)(Haken)

@InvTypeCode

StringLength1to16

0..1

This is the room type code for which the availability update is being sent.
Mandatory for MessageContentCode = "1" and "3"


(Haken)(Haken)
(Haken)(Haken)

@AllRateCode

boolean

0..1

If the restriction sent is valid for all rate codes this is set to “true” and @RatePlanCode could be removed.
If missing, default value is taken ("false").

Outbound restrictions are always sent per room/rate combination, i.e. MessageContentCode = "3"

(Fehler)

(Fehler)
  • true 
  • false
(Haken)(Haken)

@RatePlanCode

StringLength1to64

0..1

This is the rate plan whose availability is being updated.
Mandatory for MessageContentCode = "2" and "3" (if restriction on rate code level)


(Haken)(Haken)
(Haken)(Haken)

@RatePlanCategory

StringLength1to64

0..1

This is the rate group to which the rate whose availability is being updated belongs.
Mandatory for MessageContentCode = "3" if restriction on rate group level


(Fehler)(Fehler)
(Haken)(Haken)

OTA_HotelAvailNotifRQ | AvailStatusMessages | AvailStatusMessage | BestAvailableRates


0..1

A collection of the best rates available.
Mandatory in MessageContentCode=11 for inbound messages to protelIO


(Fehler)(Fehler)
(Fehler)(Haken)

OTA_HotelAvailNotifRQ | AvailStatusMessages | AvailStatusMessage | BestAvailableRates | BestAvailableRate


1..n

This element is normally repeated for each length of stay.
The maximum length of stay “n” is to be agreed upon by trading partners, though normally it is 8.
In cases where a single BAR value is applicable for all length of stays, the element is sent once.


(Fehler)(Fehler)
(Fehler)(Haken)

@LengthOfStayTime

integer

0..1

Length of stay. This is normally a number from 1 to “n” (defined above).
In cases where a single BAR value is applicable for all length of stays, the value is zero.


(Fehler)(Fehler)
(Fehler)(Haken)

@RatePlanCode

StringLength1to64

0..1

This is the code identifying the best available rate.


(Fehler)(Fehler)
(Fehler)(Haken)
@AmountMoney0..1This is the best available rate.
(Fehler)(Fehler)
(Fehler)(Haken)
@CurrencyCodeAlphaLength30..1Currency of best available rate using ISO 4217 codes.
(Fehler)(Fehler)
(Fehler)(Haken)

OTA_HotelAvailNotifRQ | AvailStatusMessages | AvailStatusMessage | HurdleRate


0..1

Restriction based on the minimum rate to be considered for availability, ex., can sell weekend rate only if charging the hurdle rate or more. Mandatory in MessageContentCode=7 for inbound messages to protelIO


(Fehler)(Fehler)
(Fehler)(Haken)

@Amount

Money

1

This is the hurdle rate to set for the season sent.

100.00(Fehler)(Fehler)
(Fehler)(Haken)
@CurrencyCodeAlphaLength31Currency of hurdle rate using ISO 4217 codes. If the partner receiving the data does not support currency code for hurdle rate, the currency code would be ignored.USD, EUR, GBP (Fehler)(Fehler)
(Fehler)(Haken)

OTA_HotelAvailNotifRQ | AvailStatusMessages | AvailStatusMessage | Delta


0..1

Incremental adjustment to the hurdle rate. Included if supported by trading partners only in MessageContentCode=7 for inbound messages to protelIO.


(Fehler)(Fehler)
(Fehler)(Haken)

@Amount

Money

1

Amount of delta adjustment.


(Fehler)(Fehler)
(Fehler)(Haken)

@CurrencyCode

AlphaLength3

1

Currency of delta adjustment using ISO 4217 codes. If the partner receiving the data does not support currency code for Hurdle rate, the currency code would be ignored.


(Fehler)(Fehler)
(Fehler)(Haken)

@Ceiling

integer

0..1

Upper limit on the number of deltas that should be added to the hurdle rate.


(Fehler)(Fehler)
(Fehler)(Haken)

@MaxSold

integer

0..1

Upper limit on the number of transient reservations that should be accepted.


(Fehler)(Fehler)
(Fehler)(Haken)

OTA_HotelAvailNotifRQ | AvailStatusMessages | AvailStatusMessage | RestrictionStatus


0..1

Availability status assigned to the room rate combination.

Either a RestrictionStatus OR a LengthsOfStay with at least one LengthOfStay element will be sent.


(Haken)(Haken)
(Haken)(Haken)

@Restriction

NMTOKENS

0..1

Type of restriction

  • Master
  • Arrival
  • Departure
  • NonGuarantee
  • TravelAgent
  • Master” - valid for all reservations in house on the mentioned date
  • “Arrival” - valid only for arriving reservations on the mentioned date.
(Haken)(Haken)
(Haken)(Haken)

@Status

AvailabilityStatusType

0..1

Identifies the availability status of an item.

We are using the attribute as well to display if the rate is "Active" or "Deactivated". It is configurable to opt the display of this status. If these values are disabled per configuration, then by default restrictions are sent out for active rates only.

  • Open
  • Close
  • ClosedOnArrival
  • ClosedOnArrivalOnRequest
  • RemoveCloseOnly
  • Open” - Inventory is available for sale
  • “Close” - Inventory is not available for sale.
  • "Active" - The rate season is active
  • "Deactivated" - The rate season is deactivated
(Haken)(Haken)
(Haken)(Haken)
OTA_HotelAvailNotifRQ | AvailStatusMessages | AvailStatusMessage | LengthsOfStay
0..1Collection of LenghtOfStay elements . These LOS elements indicate what LOS restrictions are to be added or removed. Some systems include this information directly with the availability status as opposed to the booking restriction.
(Fehler)(Fehler)
(Haken)(Haken)
@ArrivalDateBasedboolean0..1True indicates that LOS is based on arrival date. False indicates that LOS is based on stay date.
  • true
  • false
(Fehler)(Fehler)
(Haken)(Haken)

OTA_HotelAvailNotifRQ | AvailStatusMessages | AvailStatusMessage | LengthsOfStay | LengthOfStay


0..n

A collection of patterns defining allowable lengths of stay (LOS).


(Haken)(Haken)
(Haken)(Haken)

@MinMaxMessageType

string

0..1

Type of the restriction.

  • "SetMinLOS"
    Set an arrival based min LOS value
  • "SetForwardMinStay"
    Set a stay thru min LOS value
  • "RemoveMinLOS"
    Remove an arrival based min LOS value
  • "RemoveForwardMinStay"
    Remove a stay thru min LOS value
(Haken)(Haken)
(Haken)(Haken)

@TimeUnit

TimeUnitType

0..1

TimeUnit will be set to “Day”.


(Haken)(Haken)
(Haken)(Haken)

@Time

integer

0..1

Time will be set to the number of days being set.


(Haken)(Haken)
(Haken)(Haken)

OTA_HotelAvailNotifRQ | AvailStatusMessages | AvailStatusMessage | UniqueID


0..1

The unique identifier element allows the trading partners to uniquely identify each AvailStatusMessage for tracing of transactions.


(Fehler)(Fehler)
(Haken)(Haken)

@ID

StringLength1to32

1

The ID will transfer an unique ID (throughout the message).


(Fehler)(Fehler)
(Haken)(Haken)

@ID_Context

StringLength1to32

1

Used to identify where the ID comes from.

"protelIO"(Fehler)(Fehler)
(Haken)(Haken)

@Type

OTA_CodeType UIT

1

A reference to the type of object defined by the UniqueID element. Refer to OpenTravel Code List Unique ID Type (UIT)

(Fehler)(Fehler)
(Haken)(Haken)


*: 

OTA_HotelAvailNotifRS

Element | @Attribute

Type

Num

Description

Comments + Content outbound

pAIROnPrem

Comments + Content inbound

pAIROnPrem

OTA_HotelAvailNotifRS


1

Root element of the message.


(Haken)(Haken)
(Haken)(Haken)

@EchoToken 

StringLength1to128

0..1 

A reference for additional message identification, assigned by the requesting host system. When a request message includes an echo token the corresponding response message MUST include an echo token with an identical value.


(Haken)(Haken)
(Haken)(Haken)

@CorrelationID

StringLength1to64

1

Used to match result messages (*RS) to request messages (*RQ) in asynchronous communication patterns. Therefore mandatory.


(Haken)(Haken)
(Haken)(Haken)

@TimeStamp 

dateTime

1

Timestamp of the transaction. 


(Haken)(Haken)
(Haken)(Haken)

@Version 

decimal

0..1

Version of the message


(Haken)(Haken)
(Haken)(Haken)

@PrimaryLangID

language

0..1

Default language of the property.

ISO 639 codes
"en"
(Haken)(Haken)
(Haken)(Haken)

OTA_HotelAvailNotifRS | Errors


0..1

Indicates an error occurred during the processing of an OpenTravel message.

If the message successfully processes, but there are business errors, those errors should be passed in the warning element.

Either Errors or Success (+ Warnings) should be transferred.


(Haken)(Haken)
(Haken)(Haken)

OTA_HotelAvailNotifRS | Errors | Error


1..99

An error that occurred during the processing of a message.


(Haken)(Haken)
(Haken)(Haken)

@Type 

OTA_CodeType EWT

1

Mandatory. Refer to the OTA Code List: Error Warning Type (EWT).

(Haken)(Haken)
(Haken)(Haken)

@Code 

OTA_CodeType ERR

0..1 

Refers to the OTA Code List: Error Codes (ERR). 

(Haken)(Haken)
(Haken)(Haken)

@RecordID 

StringLength1to64

0..1 

If the receiving system is able to identify within a batch of availability status messages which specific message failed, the UniqueID of the message should be reported here. 







@ShortText

StringLength1to64

0..1

Describes the occurring error in short. Example: "A rate plan 'XY' was not found for the code provided."


(Haken)(Haken)
(Haken)(Haken)

OTA_HotelAvailNotifRS | Success


1

This is the annotation that the message batch was received successfully.

It could be combined with warning messages if some of the messages in the batch had issues.

Either Errors or Success (+ Warnings) should be transferred.


(Haken)(Haken)
(Haken)(Haken)

OTA_HotelAvailNotifRS | Warnings


0..1

Used when a message has been successfully processed to report any warnings or business errors that occurred.


(Haken)(Haken)
(Haken)(Haken)

OTA_HotelAvailNotifRS | Warnings | Warning


1..999

Used in conjunction with the Success element to define a business error.


(Haken)(Haken)
(Haken)(Haken)

@Type 

OTA_CodeType EWT

1

Mandatory. Refer to the OTA Code List: Error Warning Type (EWT).

(Haken)(Haken)
(Haken)(Haken)

@Code 

OTA_CodeType ERR

0..1 

Refers to the OTA Code List: Error Codes (ERR). 

(Haken)(Haken)
(Haken)(Haken)

@RecordID 

StringLength1to64

0..1 

If the receiving system is able to identify within a batch of availability status messages which specific message failed, the UniqueID of the message should be reported here. 







@ShortText

StringLength1to64

0..1

Describes the occurring error in short. Example: "A rate plan 'XY' was not found for the code provided."


(Haken)(Haken)
(Haken)(Haken)
OTA_HotelAvailNotifRS | UniqueID
0..1This identifies the system that has processed the restriction details etc.
(Haken)(Haken)
(Fehler)(Fehler)

@ID

StringLength1to32

1

The ID will transfer the HotelID and needs to be agreed by the trading partners and remain the same throughout the messages.


(Haken)(Haken)
(Fehler)(Fehler)

@ID_Context

StringLength1to32

1

Used to identify where the ID comes from.

"protelIO"(Haken)(Haken)“protelIO”(Fehler)(Fehler)

@Type

OTA_CodeType UIT

1

A reference to the type of object defined by the UniqueID element. Refer to OpenTravel Code List Unique ID Type (UIT)

(Haken)(Haken)"10" = Hotel(Fehler)(Fehler)
  • Keine Stichwörter