Overview
The Hotel Reservation Notification provides a request/response pair of messages to support the functionality of updating the receiving system with reservation data.
The business model assumes that the sending system either has the authority to take a reservation or is passing along a message from such a system. The message is a notification of the creation, modification, or cancellation before that reservation has been ended and does not require the receiving system to confirm the booking, only to acknowledge receipt of the message. The responding system may add its own data (such as its own confirmation ID) and include that data in the response message.
Supported Operations
The CRS uses this message to update the PMS for reservation creation, modification and cancellation.
The PMS uses this message to update the CRS for reservation creation, modification and cancellation.
Business Rules
For both reservation creation and modification, the OTA_HotelResNotifRQ must contain complete reservation data. The modification message is a full overlay of the creation message.
The referenced rate plan, room type, guarantee code and payment method in the message need to exist on the target system, which should not reject the message if any of those entities is not found on the target system. Instead, the target system should use a default value to replace a missing entity.
The CRS system generates and accepts one reservation per message and one message per reservation.
If the reservation has more than one room, then the occupancy specified by the GuestCounts element applies to each room.
For messages sent from the CRS to the PMS, the POS.Source.RequestID.Type is always 14.
The GuaranteeCode typically has the following values “6P”, “CC”, “DP”. The value in this field needs to be supported by both systems. [“6P” (6.00 PM) is a time of day, local hotel time, variable by which a reservation must be guaranteed to continue holding a reservation beyond that time].
Currently, the CRS supports only one room type and rate plan per reservation.
OTA_HotelResRQ Elements & Attributes
Element | @Attribute | Num | Description/Contents | Origin | Value |
OTA_HotelResNotifRQ | 1 | Root element of the message. |
|
@EchoToken | 0..1 | As per OTA Specifications. |
|
@ResStatus | 1 | Of all the enumerations listed by OpenTravel Alliance, the one recommended by HTNG for this message should be: “Commit” |
|
@Version | 1 | Version is a mandatory attribute in OTA; therefore, it must remain Mandatory in HTNG to be able to use the same message. | 1.00 |
@TimeStamp | 1 | Time of the transaction. | Date and time of message creation |
OTA_HotelResNotifRQ / POS / Source / RequestorID | 1 | This identifies the system which is the reservation. |
|
@Type |
1 | Type attribute uses the OpenTravel Alliance code list UIT and ID is used for the name or ID of the requestor. For example, type 22 – ERSP (Electronic reservation service provider) and ID: TrustCRS. | From CRS: “22” To CRS: Not mapped |
@ID | 1 | The ID used will be agreed by the partners and remain the same the messages. | From CRS: “CRS” To CRS: Not mapped |
OTA_HotelResNotifRQ / POS / Source / BookingChannel | 1..2 | This element is used to pass the booking source for the reservation. To send secondary booking channel information, an additional Source element needs to be sent. | From PMS: 1 element To PMS: Process primary element only. See below |
@Type | 1 | Type is mandatory in OTA and indicates the type of booking channel. Refers to OTA code list BCT (Booking C )
|
|
@Primary | 1 | Primary attribute would be set to “true” if only one booking channel is transferred. Only one source should be marked “true” if multiple sources are sent. | Map only the Primary |
OTA_HotelResNotifRQ/ POS / Source / BookingChannel /Company Name | 0 | The name of the booking source. |
|
@Code | 0..1 | Code is optional and can be used to transfer the code of the Booking such code is a recognized industry standard – the name, however, should always be sent as well as the code. |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation | 1 | Must be sent for the message to have meaning. |
|
@CreatorID | 1 | The CreatorID is the identifier of the Reservation Clerk or, in its absence, the office that created the reservation. | |
| |||
| |||
@CreateDateTime | 1 | This is the date when the reservation was first made. | Reservation Date, Time |
@ResStatus | 0..1 | Indicates the status of the reservation. Valid values are dependent on the roles: Reservation Server
Reservation Bk
| From PMS: If transaction subtype is “CANCEL” or “DELETE”, send “Cancelled”, if subtype is “NOSHOW”, send “No- show”, ifsubtype is “CHKIN”, send “In-house”, if subtype is “CHKOUT” send “Checked-out”, otherwise send “Reserved”. To PMS: Ignored because “Cancelled” – duplicates the previous Cancellation status given by the ResStatus attribute in the first element of the document, and “Reserved” – is Anything that is not cancelled |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / UniqueID | 1 | The unique ID is the product of the which sent the messages. For the message is generated by the this field would contain the PMS confirmation number; if the system is a CRS, the CRS confirmation number. |
|
@Type | 1 | Type is assigned codes from the UIT (Unique ID Type) code list. If the originator is a CRS, the recommended value for this message is 14 – Reservation. | From PMS: “10” for PMS To PMS: Expect “14” for CRS |
@ID | 1 | ID is the actual confirmation number. | To PMS: Source Res Number From PMS: Source Reservation Number, which is 7 digits or less for e4W, 8 digits for HMS OR by option e4W/e4N long number, which is 11 digits long. |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay | 1..n | One instance of RoomStay per Room booked. |
|
@MarketCode | 0..1 | This is the code that relates to the being sold and may be needed by the PMS for tracking purposes. | Market Segment |
@SourceOfBusiness | 0..1 | Used to specify where the business from; e.g., radio, newspaper ad, or it be a referring property. | Source of Business |
@PromotionCode | 0..1 | This is the promotion code indicating, instance, a specific marketing not the rate code | Not mapped |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RatePlans | 0..1 | The RatePlans element is not required can be sent to give further details on rates booked in this reservation. |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RatePlans / RatePlan | 1..n | The RatePlan to be booked |
|
@RatePlanCode | 1 | This is the code of the rate booked. |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / | 1 | Defines charges that are included in rate plan. | Not mapped |
@TaxInclusive | 1 | Boolean. Defines if the rate booked is tax inclusive or not. | Not mapped |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RoomRates / RoomRate | 1..n | One instance of RoomRate per room/rate booked. If more than one Rate plan can be booked in one reservation the entire “RoomRate” element must be repeated for each room/rate combination. In addition, all RoomRate elements MUST share the same | From CRS: At least 1. To CRS: Must have at least 1. |
@RatePlanCategory | 0..1 | This is the category or segment to the rate being booked belongs | Not mapped |
@RoomTypeCode | 1 | This is the room type code booked in reservation. |
|
@InvBlockCode | 0..1 | If the room booked is part of a block block code or suitable default string by the implementing partners should transferred in this field. | Group number if group reservation |
@NumberOfUnits | 1 | This is the number of rooms booked for room type code listed in the RoomTypeCode attribute. In the case of shared reservations, value will always be "1". |
|
@RatePlanCode | 1 | This is the rate booked for the room code listed in the RoomTypeCode attribute. |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomRates / RoomRate / Rates / Rate | 1..n | At least one instance of Rate per Rate plan. Multiple instances of the Rate element must be sent if rate changes to the booking. | 1 or more, depending on number of Rate elements. |
@RateTimeUnit | 1 | The RateTimeUnit is an enumeration of time units upon which the rate amount is based (e.g., daily, weekly, single rate for full stay) | Must be “DAY” |
@EffectiveDate | 1 | The Effective date attribute indicates starting date of when a specific rate is applied. This is needed when during stay there are some rate changes and therefore, one instance of the Base element applies to part of the stay and | Start Date |
@ExpireDate | 1 | The Expire date indicates the day the specific value of the rate is changed another value. | End Date |
@UnitMultiplier | 1 | UnitMultiplier is the number of RateTimeUnits that the rate amount is based upon (e.g., rate for one day in case of nightly rates). | Ignored |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomRates / RoomRate / Rates / Rate / Base | 1 | Mandatory in both Open Travel Alliance and HTNG if an instance of RoomRate is passed. |
|
@CurrencyCode | 1 | CurrencyCode used ISO 4217 codes indicate the currency of the rate that is being booked. |
|
@AmountBeforeTax | 1 | AmountBeforeTax if available can be for each @NumberOfGuests. |
|
@AmountAfterTax | 0..1 | AmountAfterTax is Mandatory for each @NumberOfGuests. | Not mapped |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RoomRates / RoomRate / Rates / Rate / Base / Taxes | 0..1 |
| Not mapped |
@Amount | 0..1 | Total Amount of Taxes applied to the booking. |
|
@CurrencyCode | 0..1 | Currency of the total Amount of Taxes |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RoomRates / RoomRate Rates / Rate / Base / Taxes / Tax | 0..99 |
| Not mapped |
@Type | 0..1 | The Type attribute is an enumeration indicate whether the tax is “inclusive”, “exclusive”, or “cumulative”. |
|
@Code | 0..1 | The Code attribute refers to OTA list (fee tax type) and is used to indicate specific tax or fee that is being transferred. |
|
@Amount | 0..1 | Amount of the specific tax/fee transferred. |
|
@CurrencyCode | 0..1 | Currency for the amount of the tax/fee transferred. |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / GuestCounts | 1 | Contains the guest counts of the booking. |
|
@IsPerRoom | 0..1 | Indicates that the guest count on a per room basis. | Always send “true” |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / GuestCounts / GuestCount | 1..n | Contains the type and number of guests included in the reservation. |
|
@AgeQualifyingCode | 1 | The two codes used from the OTA code list are: 8-Child, 10-Adult. | “8” = Child “10” = Adult |
@Count | 1 | Count will include the number and will repeated for each Type of guest. |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / TimeSpan | 1 | These are the in and out date of the booking. |
|
@Start | 1 | Check in date. | Arrival Date |
@End | 1 | Check out date. | Departure Date |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / Guarantee | 0..5 | Guarantee provided with the reservation. | |
@GuaranteeType | 1 | This is the attribute that indicates what guarantee is provided with the The enumerated values can be: "GuaranteeRequired" "None" "CC / DC / Voucher" "Profile" "Deposit" "PrePay" |
|
@GuaranteeCode | 0..1 | This is the guarantee code used in the CRS. |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / Guarantee / GuaranteesAccepted / GuaranteeAccepted / PaymentCard | 1 |
|
|
@CardType | 0..1 | Optional field. However, if it is used, the sub-elements and attributes listed below will also need to be sent. This is code of the card used as guarantee for booking. CardType uses an OTA list. Only item of the CDT list to be used is: – Credit to indicate we are passing a card. |
|
@CardCode | 0..1 | The Card code is the 2-letter code indicative of the card (VS, MC, AX, etc.). | |
@CardNumber | 0..1 | Mandatory if credit card guarantee info passed. This is the actual number of passed. This is the actual number of credit card used as guarantee. | |
@SeriesCode | 0..1 | The SeriesCode attribute is used (Optionally) for the security number of the card. | Not mapped |
@ExpireDate | 0..1 | Mandatory if credit card guarantee info passed. This is the expiry date of the card used as guarantee. |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / Guarantee / GuaranteesAccepted / GuaranteeAccepted / PaymentCard / CardHolderName | 0..1 | Mandatory if credit card guarantee info passed. This is the name of the card holder. If the system transmitting the does not hold the cc holder name, it not be passed rather than passing incorrect details. | Card Holder, if this and CC Number field populated. |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / Guarantee / GuaranteeDescription / Text | 0..1 | Optional. This can be used to pass details of the guarantee if the used is not cc or deposit. | Not mapped |
@Name | 0..1 | Used in conjunction with Text element above. Name could be used to Voucher and the Text could be used indicate the voucher number, for instance |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / DepositPayments / GuaranteePayment / AcceptedPayments / Accepted Payment | 0..n | Used if deposit or prepayment is transferred with the booking. All below this path are only Mandatory IF element is used at all. |
|
@PaymentTransactionTypeCode | 1 | Mandatory if anything is passed in the AcceptedPayment element. This is an enumeration that indicates whether we are talking about a deposit or a charge. The two options are: charge or reserve (deposit). Would be Optional in the schema. |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / DepositPayments / GuaranteePayment / AcceptedPayments / AcceptedPayment / PaymentCard | 1 | Mandatory if an instance of AcceptedPayment is passed and no sub-element is used. This is the card which the deposit or prepayment for booking must be charged. |
|
@CardType | 0..1 | Optional field. However, if it is used, the sub-elements and attributes listed below will also need to be sent. This is code of the card used as guarantee for booking. CardType uses an OTA list. Only item of the CDT list to be used is: – Credit to indicate we are passing a card. |
|
@CardCode | 0..1 | The Card Code is the 2-letter code indicative of the card (VS, MC, AX, etc.). |
|
@CardNumber | 0..1 | This is the actual number of the credit card used for the deposit/prepayment |
|
@SeriesCode | 0..1 | The SeriesCode attribute is used (Optionally) for the security number of the card. | Not mapped |
@ExpireDate | 0..1 | This is the expiry date of the credit used for deposit/prepayment. |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / DepositPayments / GuaranteePayment / AmountPercent | 1 | Mandatory if something is passed in DepositPayment element. In this case, the amount must be specified. |
|
@Amount | 0..1 | This is the amount charged as a for the booking. At least one between Amount, Percent, and must be transferred. |
|
@CurrencyCode | 0..1 | Currency used. Should be sent in conjunction with Amount. |
|
@Percent | 0..1 | This is the percentage charged as adeposit for the booking. At least one between Amount, Percent, and NumberOfNights must be transferred. |
|
@NumberOfNights | 0..1 | This is the Number of nights charged deposit for the booking. At least one between Amount, Percent, and NumberOfNights must be transferred. |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / DepositPayments / GuaranteePayment / Deadline | 0..1 | Indicates when the deposit is due if not the time of booking. |
|
@AbsoluteDeadline | 0..1 | Used as per OTA schema. |
|
@OffsetTimeUnit | 0..1 | Used as per OTA schema. |
|
@OffsetUnitMultiplier | 0..1 | Used as per OTA schema. |
|
@OffsetDropTime | 0..1 | Used as per OTA schema. |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / DepositPayments / GuaranteePayment / AcceptedPayments / AcceptedPayment / DirectBill | 1 | Mandatory if an instance of AcceptedPayment is passed and no sub-element is used. This is the direct information for the booking. | Not mapped |
@DirectBillID | 0..1 | Identifier for the organization to be directly for travel services. |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / DepositPayments / GuaranteePayment / AcceptedPayments / AcceptedPayment / Voucher | 1 | Mandatory if an instance of AcceptedPayment is passed and no sub-element is used. This is the information for the booking. | Not mapped |
@SeriesCode | 0..1 | Identification of a series of coupons or vouchers identified by serial number(s). |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / Total | 0..1 | This is the total amount for the stay. | 1 element |
@CurrencyCode | 1 | CurrencyCode uses ISO 4217 codes to indicate the currency of the total rate. |
|
@AmountBeforeTax OR @AmountAfterTax | 1 | Either @AmountBeforeTax or AmountAfterTax is Mandatory for each @NumberOfGuests. Partners must select whether to send either the @AmountBeforeTax or @AmountAfterTax (or both) attributes. | @AmountBeforeTax required |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / Total / Taxes | 0..1 | Optional. Can be used for Total Pricing | Not mapped |
@Amount | 0..1 | Total Amount of Taxes applied in the booking. |
|
@CurrencyCode | 0..1 | Currency for the total Amount of Taxes |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / Total / Taxes / Tax | 0..99 | Optional. Can be used for Total Pricing. | Not mapped |
@Type | 0..1 | The Type attribute is an enumberation indicate whether the tax is “inclusive”, “exclusive”, or “cumulative”. |
|
@Code | 0..1 | The Code attribute refers to the OTA FTT (fee tax type) and is used to the specific tax or fee that is being transferred. |
|
@Amount | 0..1 | Amount of the specific tax/fee transferred. |
|
@CurrencyCode | 0..1 | Currency for the amount of the tax/fee transferred. |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / BasicPropertyInfo | 1 |
|
|
@HotelCode | 1 | This is the property for which the reservations are being transferred. |
|
@ChainCode | 0..1 | ChainCode indicates the chain to which the property belongs. |
|
@BrandCode | 0..1 | BrandCode indicates the Brand within Chain to which the property belongs. | Not mapped |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / ResGuestRPHs / ResGuestRPH / | 1..n |
|
|
@RPH | 1 | This is used to link the various profiles the reservation. | One record with a unique number, starting at one, should be sent for each guest whose profile is sent. |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / Memberships / Membership | 0..n | The element Membership is Optional both attributes would need to be Mandatory. |
|
@ProgramCode | 1 | The loyalty program to which the ID belongs to. | Frequent Traveler ProgramCode |
@AccountID | 1 | The account that needs to be credited points for the stay booked. | Frequent Traveler Program Number |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / Comments / Comment | 1 |
|
|
@Name | 0..1 | Allows types of Comments to be differentiated. Valid values would be determined by Trader-Partners | “GUEST” expected. |
@GuestViewable | 0 | This indicates that the comment can actually be seen by the guest, and is necessary when two different types of comments are passed: one which is viewable and one that isn’t. The value is of Boolean nature. |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / Comments / Comment / Text | 1 | Comment text |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / SpecialRequests / SpecialRequest / | 0..n |
|
|
@RequestCode | 1 | Indicates the special requests to the reservation. If a special request passed it must be passed with the RequestCode attribute, which is conditionally Mandatory. If no code is available the partners should agree on code to be transferred in conjunction the TEXT element below. | Special Request Code |
@CodeContext | 0..1 | If the system sending the information differentiates the request codes in groups (for instance, room features special requests, etc.), the context of code should be sent to indicate the request sent is indeed a room or a special request or belongs to any other grouping – must be agreed upon implementing partners based on the functionality of the systems involved. | Not mapped |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / SpecialRequests / SpecialRequest / Text | 0..1 | Provides more information about the request code or provides description requests that are yet uncoded. | Not mapped |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / BillingInstructionCode | 0..n | Billing codes that apply to a set of instructions for a set of transactions that are routed to a designated folio. | Not mapped |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / BillingInstructionCode / BillingCode | 1 | The individual billing code that applies to a set of instructions that are routed to a designated folio. |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / BillingInstructionCode / BillingType | 0..1 | Used to define the type of the BillingCode, such as group, corporate and casino. Refer to OpenTravel Code List Reservation Billing Type (RBT). |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / BillingInstructionCode / AuthorizationCode | 0..1 | The authorization code associated with the billing code. |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / BillingInstructionCode / Description | 0..1 | A short description of the billing code or instructions. |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / BilliingInstructionCode / Start | 0..1 | The starting value of the time span. |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / BilliingInstructionCode / End | 0..1 | The ending value of the time span. |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / BilliingInstructionCode / AccountNumber | 0..1 | Identifies the account number where the charges will be routed. |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / BilliingInstructionCode / ResGuestRPH | 0..n | A reference to a guest ID object that may be defined in ResGuests/ResGuest | |
@RPH | 1 | A unique reference to the guest ID. | |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / | 1..n |
| |
@ResGuestRPH | 1 | For simple reservations: If profiles for guest, travel agency, and company available, they would all be linked to a single ResGuestRPH. A comment has been entered with OTA for phase 2 to accomodate more complex scenarios. | |
@PrimaryIndicator | 0..1 | New attribute in OTA 2007A. This indicates the primary guest on a reservation. In the case of multiple on a reservation, the guest responsible payment, etc. will be marked true. Currently Optional in OTA schema but needs to be Mandatory to support of multiple guests on a reservation (Additional Profile). | |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / UniqueID | 0..9 | Used to allow additional ids for reporting purposes | |
@ Type | 1 | The Type attribute refers to OTA code type UIT and the choices recommended by HTNG should be: 1 – Customer 4 – Company 5 –Travel Agency | |
@ID | 1 | The actual ID. | |
@ID_Context | 0..1 | ID_Context is Optional and would be used to identify the source of the ID (forinstance, for a Travel agency ID we could have IATA or ABTA, etc.). | |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / UniqueID / CompanyName | 0..1 | Further identifier |
OTA_HotelResRQ Message Sample
<?xml version="1.0" encoding="utf-8"?> <OTA_HotelResRQ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ResStatus="Book" EchoToken="20160508175004" xmlns="http://www.opentravel.org/OTA/2003/05"> <POS> <Source> <RequestorID Type="1" ID="VISIT" ID_Context="Booking Channel"/> <BookingChannel Type="ADS"> <CompanyName CompanyShortName="ABC" Code="ABC"/> </BookingChannel> </Source> </POS> <HotelReservations> <HotelReservation RoomStayReservation="true"> <RoomStays> <RoomStay> <RoomTypes> <RoomType RoomID="64338" InvBlockCode="" RoomTypeCode="STD0001K" IsRoom="true"/> </RoomTypes> <RatePlans> <RatePlan RatePlanID="UDB02APR" RatePlanCode="UDB02APR"/> </RatePlans> <RoomRates> <RoomRate NumberOfUnits="1" RatePlanCode="UDB02APR" EffectiveDate="2016-06-17" ExpireDate="2016-06-19" RoomTypeCode="STD0001K"> <Rates> <Rate EffectiveDate="2016-06-17" ExpireDate="2016-06-17"> <Base CurrencyCode="USD" AmountAfterTax="167.13" AmountBeforeTax="148.58"> <Taxes Amount="18.55"/> </Base> </Rate> <Rate EffectiveDate="2016-06-18" ExpireDate="2016-06-18"> <Base CurrencyCode="USD" AmountAfterTax="167.13" AmountBeforeTax="148.58"> <Taxes Amount="18.55"/> </Base> </Rate> </Rates> <Total CurrencyCode="USD" AmountAfterTax="334.27" AmountBeforeTax="297.16"> <Taxes Amount="37.11"/> </Total> </RoomRate> </RoomRates> <GuestCounts> <GuestCount AgeQualifyingCode="10" Count="2"/> </GuestCounts> <TimeSpan Start="2016-06-17" End="2016-06-19"/> <Guarantee GuaranteeCode="DX"> <GuaranteesAccepted> <GuaranteeAccepted> <PaymentCard ExpireDate="0420" CardCode="VISA" CardNumber="****************"> <CardHolderName>CC Holder</CardHolderName> </PaymentCard> </GuaranteeAccepted> </GuaranteesAccepted> </Guarantee> <Total CurrencyCode="USD" AmountAfterTax="334.27" AmountBeforeTax="297.16"> <Taxes Amount="37.11"/> </Total> <BasicPropertyInfo HotelCode="AAABBBCCC01" ChainCode="ABC"/> <Comments> <Comment Name="" CommentOriginatorCode="Guest" GuestViewable="true"> <Text>5% Loyalty discount USD17.59 applied</Text> </Comment> </Comments> </RoomStay> </RoomStays> <Services/> <ResGuests> <ResGuest> <Profiles> <ProfileInfo> <Profile ProfileType="1"> <Customer> <PersonName> <GivenName>Test</GivenName> <Surname>Test</Surname> </PersonName> <Telephone PhoneNumber="832-863-1111" FormattedInd="false"/> <Email ShareMarketInd="No">sam@whiteboardlabs.com</Email> <Address> <AddressLine>12431 Test Dr</AddressLine> <CityName>Houston</CityName> <PostalCode>77082</PostalCode> <StateProv StateCode="TX"/> <CountryName Code="USA"/> </Address> <CustLoyalty MembershipID="123"/> </Customer> </Profile> </ProfileInfo> <ProfileInfo> <Profile ProfileType="3"> <CompanyInfo> <CompanyName CompanyShortName="ZODI2014" Code="ZODI2014" CodeContext="CRS"/> </CompanyInfo> </Profile> </ProfileInfo> </Profiles> </ResGuest> </ResGuests> </HotelReservation> </HotelReservations> </OTA_HotelResRQ>
OTA_HotelResNotifRS Elements & Attributes
Level | Occurrence | Type | Element Name Attribute Name | Mandatory (M) Optional (O) | Data Type | “Sample Value” Usage |
0 | 1 | E | OTA_HotelResNotifRS |
|
|
|
|
| A | ResStatus | O | Codes | "Book", "Modify", "Cancel" |
|
| A | EchoToken | O | String (128) | The same EchoToken in the request message |
|
| A | TimeStamp | M | Datetime | Indicates the creation date and time of the message in UTC using the following format specified by ISO 8601: YYYYMMDDThh:mm:ssZ with time values using the 24 hour clock (e.g. 20 November 2009, 1:59:38 pm UTC becomes 20091120T13:59:38Z). |
|
| A | Version | M | Decimal | “1.00” |
1 | 1 | E | HotelReservations | M |
| A collection of hotel reservations. |
2 | 1 | E | HotelReservation | M |
| The Reservation class contains the current reservation being created or altered. |
3 | 1 | E | ResGlobalInfo | O |
| A container for information that affects the Reservation as a whole, including global comments, counts, reservation IDs, loyalty programs, and payment methods. |
4 | 1 | E | HotelReservationIDs | O |
| A collection of HotelReservationID objects for a given reservation. The collection of all ReservationIDs can include Passenger Name Record (PNR), Guest Name Record (GNR) and Guest Folio numbers. A confirmation number which is usually given to the guest can be associated with each. |
5 | 1.. n | E | HotelReservationID | M |
| Contains various unique (ReservationID) and non unique (ConfirmationID, CancellationID) identifiers that the trading partners associate with a given reservation. |
|
| A | ResID_Type | O | Codes | Defines the type of Reservation ID i.e., reservation number, cancellation number). Refer to OTA Code List Unique ID Type (UIT). |
|
| A | ResID_Value | O | String (64) | The actual value associated with ResID_Type as generated by the system that is the source of the ResID_Type. |
|
| A | ResID_Date | O | Datetime | Date of the creation of this reservation. |
|
| A | ResGuestRPH | O | String (1,8) [09] | A reference placeholder used as an index for this guest in this reservation. In the ResGuest object, it is used like all other RPH attributes to send the delta of a reservation and used by the RoomStay and Service objects to indicate which guests are associated with that room stay or service. It is also used to link a guest with a ReservationID |
|
| A | CancelOriginatorCode | O | String (64) | Identifying code of the system that initiated the cancel of this reservation. |
|
| A | CancellationDate | O | Datetime | Date this reservation was cancelled. |
1 | 1 | E | Success | O |
| The presence of the empty Success element explicitly indicates that the OTA versioned message succeeded. |
1 | 1 | E | Warnings | O |
| Used in conjunction with the Success element to define one or more business errors. |
2 | 1..9 9 | E | Warning | M | String | Standard way to indicate successful processing of an OTA message, but one in which warnings are generated |
|
| A | Type | M | Codes | The Warning element MUST contain the Type attribute that uses a recommended set of values to indicate the warning type. The validating XSD can expect to accept values that it has NOT been explicitly coded for and process them by using Type ="Unknown". Refer to OTA Code List Error Warning Type (EWT). |
|
| A | Code | O | Codes | If present, this refers to a table of coded values exchanged between applications to identify errors or warnings. Refer to OTA Code List Error Codes (ERR). |
1 | 1 | E | Errors | O |
| Errors are returned if the request was unable to be processed. |
2 | 1..9 9 | E | Error | M | String | Standard way to indicate that an error occurred during the processing of an OTA message |
|
| A | Type | M | Codes | The Warning element MUST contain the Type attribute that uses a recommended set of values to indicate the warning type. The validating XSD can expect to accept values that it has NOT been explicitly coded for and process them by using Type ="Unknown". Refer to OTA Code List Error Warning Type (EWT). |
|
| A | Code | O | Codes | If present, this refers to a table of coded values exchanged between applications to identify errors or warnings. Refer to OTA Code List Error Codes (ERR). |
OTA_HotelResRS Message Sample
<?xml version="1.0" encoding="utf-8"?> <OTA_HotelResRS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" EchoToken="20160508175004" TimeStamp="2016-05- 08T11:58:40.59375-06:00" xmlns="http://www.opentravel.org/OTA/2003/05"> <POS> <Source> <RequestorID Type="1" ID="VISIT" ID_Context="Booking Channel"/> <BookingChannel Type="ADS"> <CompanyName CompanyShortName="ABC" Code="ABC"/> </BookingChannel> </Source> </POS> <HotelReservations> <HotelReservation RoomStayReservation="true"> <RoomStays> <RoomStay> <RoomTypes> <RoomType RoomID="64338" InvBlockCode="" RoomTypeCode="STD0001K" IsRoom="true"/> </RoomTypes> <RatePlans> <RatePlan RatePlanID="UDB02APR" RatePlanCode="UDB02APR"/> </RatePlans> <RoomRates> <RoomRate NumberOfUnits="1" RatePlanCode="UDB02APR" EffectiveDate="2016-06-17" ExpireDate="2016-06- 19" RoomTypeCode="STD0001K"> <Rates> <Rate EffectiveDate="2016-06-17" ExpireDate="2016-06-17"> <Base CurrencyCode="USD" AmountAfterTax="167.13" AmountBeforeTax="148.58"> <Taxes Amount="18.55"/> </Base> </Rate> <Rate EffectiveDate="2016-06-18" ExpireDate="2016-06-18"> <Base CurrencyCode="USD" AmountAfterTax="167.13" AmountBeforeTax="148.58"> <Taxes Amount="18.55"/> </Base> </Rate> </Rates> <Total CurrencyCode="USD" AmountAfterTax="334.27" AmountBeforeTax="297.16"> <Taxes Amount="37.11"/> </Total> </RoomRate> </RoomRates> <GuestCounts> <GuestCount AgeQualifyingCode="10" Count="2"/> </GuestCounts> <TimeSpan Start="2016-06-17" End="2016-06-19"/> <Guarantee GuaranteeCode="DX"> <GuaranteesAccepted> <GuaranteeAccepted> <PaymentCard ExpireDate="0420" CardCode="VISA" CardNumber="************2945"> <CardHolderName>CC Holder</CardHolderName> </PaymentCard> </GuaranteeAccepted> </GuaranteesAccepted> </Guarantee> <Total CurrencyCode="USD" AmountAfterTax="334.27" AmountBeforeTax="297.16"> <Taxes Amount="37.11"/> </Total> <BasicPropertyInfo HotelCode="AAABBBCCC01" ChainCode="ABC"/> <Comments> <Comment Name="" CommentOriginatorCode="Guest" GuestViewable="true"> <Text>5% Loyalty discount USD17.59 applied</Text> </Comment> </Comments> </RoomStay> </RoomStays> <Services/> <ResGuests> <ResGuest> <Profiles> <ProfileInfo> <Profile ProfileType="1"> <Customer> <PersonName> <GivenName>First</GivenName> <Surname>Last</Surname> </PersonName> <Telephone PhoneNumber="3104157019" FormattedInd="false"/> <Email ShareMarketInd="No">abc@gmail.com</Email> <Address> <AddressLine>123 Anywhere</AddressLine> <CityName>New York</CityName> <PostalCode>10009</PostalCode> <StateProv>NY</StateProv> <CountryName Code="US">United States</CountryName> </Address> <CustLoyalty ProgramID="" MembershipID="000000000000017"/> </Customer> </Profile> </ProfileInfo> </Profiles> </ResGuest> </ResGuests> <ResGlobalInfo> <HotelReservationIDs> <HotelReservationID ResID_Type="14" ResID_Value="418ZAGP54"/> </HotelReservationIDs> </ResGlobalInfo> </HotelReservation> </HotelReservations> <Success/> </OTA_HotelResRS>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Header> <HTNGHeader xmlns="http://htng.org/2009B"> <From> </From> </HTNGHeader> </soap:Header> <soap:Body> <Credential> <userName>TestShopping</userName> <password>2MFfdaLGEr</password> </Credential> <GetHotelReservation xmlns="http://htng.org/2009B"> <OTA_HotelGetMsgRQ Version="0" xmlns="http://www.opentravel.org/OTA/2003/05"> <Messages> <Message HotelCodeContext="WEB" ReasonForRequest="Get Reservation" ConfirmationID="4V87526FA"/> </Messages> </OTA_HotelGetMsgRQ> </GetHotelReservation> </soap:Body> </soap:Envelope>
<?xml version="1.0" encoding="utf-8"?> <OTA_HotelGetMsgRS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" TimeStamp="2016-06-17T10:45:33.0981435-05:00" Version="0"> <Messages xmlns="http://www.opentravel.org/OTA/2003/05"> <Message> <MessageContent> <OTA_HotelResRS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" EchoToken="1347620160617094533" TimeStamp="2016-06- 17T09:45:33.0981435-06:00" xmlns="http://www.opentravel.org/OTA/2003/05"> <HotelReservations> <HotelReservation CreatorID="CRS" CreateDateTime="2016-06- 09T12:45:18.7150736-06:00" RoomStayReservation="true"> <UniqueID Type="14" ID="4V87526FA" ID_Context="CRSConfirmationID"/> <UniqueID Type="15" ID="179588714.955259" ID_Context="IDSConfirmationID"/> <UniqueID Type="16" ID="4V87526FA" ID_Context="CRSCancelID"/> <RoomStays> <RoomStay> <RoomTypes> <RoomType RoomTypeCode="STD0001S" NumberOfUnits="1" IsRoom="true"/> </RoomTypes> <RatePlans> <RatePlan RatePlanCode="UDB1323R" EffectiveDate="2016-06-10" ExpireDate="2016-06-11"/> </RatePlans> <RoomRates> <RoomRate NumberOfUnits="1" RatePlanCode="UDB1323R" EffectiveDate="2016-06-10" ExpireDate="2016-06-11" RoomTypeCode="STD0001S"> <Rates/> <Rate UnitMultiplier="1" EffectiveDate="2016-06-10" ExpireDate="2016-06-11" RateTimeUnit="Day"/> <Base CurrencyCode="GBP" AmountBeforeTax="100"/> <Total CurrencyCode="GBP" AmountBeforeTax="100"/> </RoomRate> </RoomRates> <GuestCounts IsPerRoom="true"> <GuestCount AgeQualifyingCode="10" Count="1"/> </GuestCounts> <TimeSpan Start="2016-06-10" Duration="P1N" End="2016-06-11"/> <Total CurrencyCode="GBP" AmountAfterTax="120" AmountBeforeTax="100"/> <BasicPropertyInfo HotelCode="MAYMIL01" ChainCode="MM"/> </RoomStay> </RoomStays> <ResGuests> <ResGuest> <Profiles> <ProfileInfo> <Profile ProfileType="1"> <Customer> <PersonName> <GivenName>Test</GivenName> <Surname>Test</Surname> </PersonName> <Telephone PhoneTechType="1" PhoneUseType="3" PhoneNumber="832-863-1111" FormattedInd="false"/> <Email ShareMarketInd="No" DefaultInd="true">sam@whiteboardlabs.com</Email> <Address> <AddressLine>12431 Test Dr</AddressLine> <CityName>Houston</CityName> <PostalCode>77082</PostalCode> <StateProv StateCode="TX"/> <CountryName Code="USA"/> </Address> </Customer> </Profile> </ProfileInfo> </Profiles> </ResGuest> </ResGuests> <ResGlobalInfo> <Guarantee> <GuaranteesAccepted> <GuaranteeAccepted PaymentTransactionTypeCode="charge"> <PaymentCard ExpireDate="0618" CardType="1" CardCode="145" CardNumber="4444333322221111"> <CardHolderName>SHR Test</CardHolderName> </PaymentCard> </GuaranteeAccepted> </GuaranteesAccepted> </Guarantee> <Total CurrencyCode="GBP" AmountAfterTax="120" AmountBeforeTax="100"/> <HotelReservationIDs> <HotelReservationID ResID_Type="14" ResID_Value="4V87526FA" ResID_Source="CRS" ResID_SourceContext="CrsConfirmNumber"/> <HotelReservationID ResID_Type="15" ResID_Value="1812996" ResID_Source="CRS" ResID_SourceContext="CrsCancellationNumber"/> </HotelReservationIDs> <Profiles> <ProfileInfo> <UniqueID Type="5" ID="ZODI2014" ID_Context="IATA"/> <Profile ProfileType="4"> <CompanyInfo> <CompanyName CompanyShortName="ZODI2014" Code="ZODI2014" CodeContext="IATA"/> <TelephoneInfo PhoneTechType="1" PhoneUseType="3" PhoneNumber=" " FormattedInd="false"/> </CompanyInfo> </Profile> </ProfileInfo> </Profiles> </ResGlobalInfo> </HotelReservation> </HotelReservations> </OTA_HotelResRS> </MessageContent> </Message> </Messages> </OTA_HotelGetMsgRS>