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 Departure | x | x | x | x |
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 | pAir | OnPrem | Description inbound | pAir | onPrem |
---|---|---|---|---|---|---|
1 | Overbooking/Restrictions - Room type level | Overbooking/Restrictions - Room type level | ||||
2 | Restrictions - Rate code level | Restrictions - Rate code level | ||||
3 | Restrictions - Room type / rate code level | Restrictions - Room type / rate code level | ||||
4 | Restrictions - Rate category level (rate group) | Restrictions - Rate category level (rate group) | ||||
6 | Overbooking/Restrictions - Property level | Overbooking/Restrictions - Property level | ||||
7 | Hurdles | Hurdles | ||||
11 | BAR rates | BAR rates |
OTA_HotelAvailNotifRQ
Element | @Attribute | Type | Num | Description | Comments + Content outbound | pAIR | OnPrem | Comments + Content inbound | pAIR | OnPrem |
---|---|---|---|---|---|---|---|---|---|
OTA_ HotelAvailNotifRQ | 1 | Root element of the message. | |||||||
@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. | ||||||
@CorrelationID | StringLength1to64 | 1 | Used to match result messages (*RS) to request messages (*RQ) in asynchronous communication patterns. Therefore mandatory. | ||||||
@TimeStamp | dateTime | 1 | Timestamp of the transaction. | ||||||
@Version | decimal | 0..1 | Version of the message. | ||||||
@PrimaryLangID | language | 0..1 | Default language of the property. | ||||||
@MessageContentCode | OTA_CodeType MCC | 0..1 | The attribute defines the type of the message and its content. | Supported Codes: Overbooking
Hurdle Rates
BAR Rate Availability
Restrictions
| |||||
@Target | NMTOKEN | 0..1 | Used to indicate wether the request is for the Test or the Production system. | ||||||
OTA_HotelAvailNotifRQ | POS | 1 | ||||||||
OTA_HotelAvailNotifRQ | POS | Source | 1..10 | ||||||||
OTA_HotelAvailNotifRQ | POS | Source | RequestorID | 0..1 | This identifies the system that should process the restriction details etc. | |||||||
@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) | ||||||
@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. | ||||||
@ID_Context | StringLength1to32 | 1 | Used to identify where the ID comes from. | “protelIO” | |||||
OTA_HotelAvailNotifRQ | POS | Source | BookingChannel | 0..1 | Specifies the booking channel type and whether it is the primary means of connectivity of the source. | |||||||
@Primary | boolean | 0..1 | Indicates whether the enumerated booking channel is in the primary means of connectivity used by the source |
|
| ||||
@Type | OTA_CodeType BCT | 1 | Indicates the type of booking channel per the Open Travel BCT codes. | ||||||
OTA_HotelAvailNotifRQ | POS | Source | TPA_Extensions | 0..1 | ||||||||
OTA_HotelAvailNotifRQ | POS | Source | TPA_Extensions | POSExtensions | 0..1 | ||||||||
OTA_HotelAvailNotifRQ | POS | Source | TPA_Extensions | POSExtensions | HotelInfo | 0..1 | ||||||||
@FiscalDate | date | 0..1 | |||||||
@CurrentBookingDate | date | 0..1 | |||||||
OTA_HotelAvailNotifRQ | UniqueID | 0..1 | The unique identifier element allows the trading partners to uniquely identify each AvailNotifRQ (i.e. the entire message ) for tracing of transactions. | |||||||
@ID | StringLength1to32 | 1 | The ID will transfer an ID unique for each AvailNotifRQ. | ||||||
@ID_Context | StringLength1to32 | 1 | Used to identify where the ID comes from. | "protelIO" | |||||
@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) | ||||||
OTA_HotelAvailNotifRQ | AvailStatusMessages | 0..1 | The AvailStatusMessage indicates whether the inventory is opened, closed, closed on request etc. | |||||||
@HotelCode | StringLength1to16 | 0..1 | This is the Hotel ID of the property whose availability is being updated. | ||||||
@ChainCode | StringLength1to8 | 0.1 | The 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 . | ||||||
@HotelCodeContext | StringLength1to32 | 0..1 | A text field used to communicate the context (or source of ) the hotel ReferenceGroup codes. | Default value is “protelIO” | |||||
@HotelName | StringLength1to128 | 0..1 | A text field used to communicate the the proper name of the hotel | ||||||
OTA_HotelAvailNotifRQ | AvailStatusMessages | AvailStatusMessage | 1..n | Although all restrictions are optional, at least one should be sent for the message to have any meaning. | One of the attributes (BookingLimit or BookingThreshold) is mandatory in MessageContentCode=1 for inbound messages to protelIO if Overbooking is sent. | ||||||
@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). |
| |||||
OTA_HotelAvailNotifRQ | AvailStatusMessages | AvailStatusMessage | StatusApplicationControl | 0..1 | Element defining application of controls being sent. | Element defining application of controls being sent. | ||||||
@Start | date | 1 | The first date for which the availability update is being sent. | "YYYY-MM-DD" | |||||
@End | date | 1 | The last date for which the availability update is being sent. | "YYYY-MM-DD" | |||||
@Mon | 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. | Instead of these attributes we send the respective date period incl/excl the resp DoW | "1" = true, i.e. the restriction will apply for this day "0" = false, i.e. the restriction will not apply for this day Overbooking:
| ||||
@AllInvCode | boolean | 0..1 | If the restriction sent is valid for all room types this is set to “true” and @InvTypeCode could be removed. | Outbound restrictions are always sent per room/rate combination, i.e. MessageContentCode = "3" |
| ||||
@InvTypeCode | StringLength1to16 | 0..1 | This is the room type code for which the availability update is being sent. | ||||||
@AllRateCode | boolean | 0..1 | If the restriction sent is valid for all rate codes this is set to “true” and @RatePlanCode could be removed. | Outbound restrictions are always sent per room/rate combination, i.e. MessageContentCode = "3" |
| ||||
@RatePlanCode | StringLength1to64 | 0..1 | This is the rate plan whose availability is being updated. | ||||||
@RatePlanCategory | StringLength1to64 | 0..1 | This is the rate group to which the rate whose availability is being updated belongs. | ||||||
OTA_HotelAvailNotifRQ | AvailStatusMessages | AvailStatusMessage | BestAvailableRates | 0..1 | A collection of the best rates available. | |||||||
OTA_HotelAvailNotifRQ | AvailStatusMessages | AvailStatusMessage | BestAvailableRates | BestAvailableRate | 1..n | This element is normally repeated for each length of stay. | |||||||
@LengthOfStayTime | integer | 0..1 | Length of stay. This is normally a number from 1 to “n” (defined above). | ||||||
@RatePlanCode | StringLength1to64 | 0..1 | This is the code identifying the best available rate. | ||||||
@Amount | Money | 0..1 | This is the best available rate. | ||||||
@CurrencyCode | AlphaLength3 | 0..1 | Currency of best available rate using ISO 4217 codes. | ||||||
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 | |||||||
@Amount | Money | 1 | This is the hurdle rate to set for the season sent. | 100.00 | |||||
@CurrencyCode | AlphaLength3 | 1 | Currency 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 | |||||
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. | |||||||
@Amount | Money | 1 | Amount of delta adjustment. | ||||||
@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. | ||||||
@Ceiling | integer | 0..1 | Upper limit on the number of deltas that should be added to the hurdle rate. | ||||||
@MaxSold | integer | 0..1 | Upper limit on the number of transient reservations that should be accepted. | ||||||
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. | |||||||
@Restriction | NMTOKENS | 0..1 | Type of restriction
|
| |||||
@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.
|
| |||||
OTA_HotelAvailNotifRQ | AvailStatusMessages | AvailStatusMessage | LengthsOfStay | 0..1 | Collection 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. | |||||||
@ArrivalDateBased | boolean | 0..1 | True indicates that LOS is based on arrival date. False indicates that LOS is based on stay date. |
| |||||
OTA_HotelAvailNotifRQ | AvailStatusMessages | AvailStatusMessage | LengthsOfStay | LengthOfStay | 0..n | A collection of patterns defining allowable lengths of stay (LOS). | |||||||
@MinMaxMessageType | string | 0..1 | Type of the restriction. |
| |||||
@TimeUnit | TimeUnitType | 0..1 | TimeUnit will be set to “Day”. | ||||||
@Time | integer | 0..1 | Time will be set to the number of days being set. | ||||||
OTA_HotelAvailNotifRQ | AvailStatusMessages | AvailStatusMessage | UniqueID | 0..1 | The unique identifier element allows the trading partners to uniquely identify each AvailStatusMessage for tracing of transactions. | |||||||
@ID | StringLength1to32 | 1 | The ID will transfer an unique ID (throughout the message). | ||||||
@ID_Context | StringLength1to32 | 1 | Used to identify where the ID comes from. | "protelIO" | |||||
@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) |
*:
OTA_HotelAvailNotifRS
Element | @Attribute | Type | Num | Description | Comments + Content outbound | pAIR | OnPrem | Comments + Content inbound | pAIR | OnPrem |
---|---|---|---|---|---|---|---|---|---|
OTA_HotelAvailNotifRS | 1 | Root element of the message. | |||||||
@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. | ||||||
@CorrelationID | StringLength1to64 | 1 | Used to match result messages (*RS) to request messages (*RQ) in asynchronous communication patterns. Therefore mandatory. | ||||||
@TimeStamp | dateTime | 1 | Timestamp of the transaction. | ||||||
@Version | decimal | 0..1 | Version of the message | ||||||
@PrimaryLangID | language | 0..1 | Default language of the property. | ISO 639 codes "en" | |||||
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. | |||||||
OTA_HotelAvailNotifRS | Errors | Error | 1..99 | An error that occurred during the processing of a message. | |||||||
@Type | OTA_CodeType EWT | 1 | Mandatory. Refer to the OTA Code List: Error Warning Type (EWT). | ||||||
@Code | OTA_CodeType ERR | 0..1 | Refers to the OTA Code List: Error Codes (ERR). | ||||||
@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." | ||||||
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. | |||||||
OTA_HotelAvailNotifRS | Warnings | 0..1 | Used when a message has been successfully processed to report any warnings or business errors that occurred. | |||||||
OTA_HotelAvailNotifRS | Warnings | Warning | 1..999 | Used in conjunction with the Success element to define a business error. | |||||||
@Type | OTA_CodeType EWT | 1 | Mandatory. Refer to the OTA Code List: Error Warning Type (EWT). | ||||||
@Code | OTA_CodeType ERR | 0..1 | Refers to the OTA Code List: Error Codes (ERR). | ||||||
@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." | ||||||
OTA_HotelAvailNotifRS | UniqueID | 0..1 | This identifies the system that has processed the restriction details etc. | |||||||
@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. | ||||||
@ID_Context | StringLength1to32 | 1 | Used to identify where the ID comes from. | "protelIO" | “protelIO” | ||||
@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) | "10" = Hotel |