IDS Reservations
- 1 Overview
- 2 OTA_HotelResRQ Elements & Attributes
- 3 OTA_HotelResRQ Message Sample
- 4 OTA_HotelResNotifRQ Sample (Payment Processed by Third Party, No Points Redeemed)
- 5 OTA_HotelResNotifRQ (Payment Processed by Third Party, Points Redeemed)
- 6 OTA_HotelResNotifRQ (Payment not Accepted by Third Party, SHR to Process Payment, but not Points)
- 7 OTA_HotelResNotifRQ (Payment Not Accepted by Third Party, SHR to Process Payment and Points)
- 8 OTA_HotelResNotifRQ (Payment Accepted by Third Party, SHR to Redeem Points)
- 9 OTA_HotelResNotifRQ (Payment Processed by Third Party, SHR to Redeem Points, Masked Card)
- 10 OTA_HotelResNotifRQ (Modify Reservation, Payment Processed by Third Party, SHR to Redeem Points)
- 11 OTA_HotelResNotifRQ (Cancel Reservation, Payment Processed by Third Party, Points Redeemed by SHR, Masked Card)
- 12 OTA_HotelResNotifRQ (Cancel Reservation, Payment Processed by Third Party, Points Redeemed by SHR, Plaintext Card)
- 13 OTA_HotelResNotifRS Elements & Attributes
- 14 OTA_HotelResRS Message Sample
Overview
The Hotel Reservation Notification provides a request/response set of messages in which a system – i.e. online booking channel – has the ability to create, modify, or cancel a reservations and for the receiving system – i.e., the CRS – to respond with a corresponding confirmation upon successful processing of the request.
Assumptions:
The message set assumes a push model where the channel pushes the reservation data to the CRS.
The channel either has the authority to add, modify, or cancel a reservation or is passing a reservation message from a secondary channel authorized to do so.
The request message is a notification of the creation, modification, or cancellation of a reservation, requiring the CRS to confirm the booking or return an error response. The CRS will include a unique confirmation ID in a successful response message.
Supported Operations
Creation, modification, or cancellation of a reservation from the channel to the CRS.
Confirmation of the message by the VRS to the channel.
Business Rules
For reservation creation and modification, the OTA_HotelResRQ message must contain complete reservation data.
o 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 CRS system.
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.
In the respond message OTA_HotelResRS, the target system will append its own confirmation number by adding a new HotelReservationID element.
The GuaranteeCode typically has the following values “XX”, “DX”, “PP”, “GX”.
o XX: No Guarantee Required
o GX: Guarantee Required
o DX: Deposit required
o PP: Prepaid required by credit card at the time of booking
In the event that a payment card is tokenized by a third party before submitting the reservation to Allora CRS (formerly Windsurfer) TokenProviderID can have one of the following values:
“ElavonFusebox”
“FreedomPay”
“AdyenV2”
“PlanetPayment”
“RedDotPayment”
“Shift4”
OTA_HotelResRQ Elements & Attributes
Level | Occurrence |
| Element Name Attribute Name | Mandatory (M) Optional (O) | Data Type | “Sample Value” Usage |
0 | 1 | E | OTA_HotelResRQ |
|
|
|
|
| A | ResStatus | O | Codes | "Book", "Modify", "Cancel" |
|
| A | EchoToken | O | String (128) | A reference for message identification assigned by the requesting host system. |
|
| A | TimeStamp | M | Datetime | Indicates the creation date and time of the message in UTC using the following format specified by ISO 8601: YYYY-MM-DDThh:mm:ssZ with time values using the 24 hour clock (e.g. 20 November 2009, 1:59:38 pm UTC becomes 2009-11-20T13:59:38Z). |
|
| A | Version | M | Decimal | “1.00” |
1 | 1 | E | POS | O |
|
|
2 | 1 | E | Source | M |
| This holds details regarding the requestor. It may be repeated to also accommodate the delivery systems. |
3 | 1..5 | E | RequestorID | M |
| An identifier of the entity making the request – i.e., ATA/IATA/ID number, Electronic Reservation Service Provider (ERSP), Association of British Travel Agents (ABTA), etc. |
|
| A | Type | M | Codes | A reference to the type of object defined by the RequestID element. Refer to OTA Code List Unique ID Type (UIT). |
|
| A | ID | M | String (32) | ID Value of the object defined by the RequestiD element. |
|
| A | ID Context | M | String (32) | Used to identify the source of the identifier – i.e., IATA, Open Hospitality, HBSi, etc. |
|
|
| BookingChannel | M |
| Specifies the booking channel and whether or not it is the primary means of connectivity of the source. Identifies the company that is associated to the booking channel. |
|
|
|
Primary | M | Boolean | Indicates whether the enumerated booking channel is the primary means of connectivity used by the sources. Always =”true”. |
|
|
| Type | M | Code | The type of booking channel. OTA Code List Booking Channel Type (BCT). Always =”ADS”. |
|
|
| CompanyName | O |
| Identifies the secondary channel that is associated with the booking channel. Identifies the secondary channel by code and name. |
|
|
| Code | O | String (16) | The secondary booking channel identifying code. |
|
|
|
CompanyShortName | O | String (32) | The secondary booking channel short name. |
1 | 1 | E | HotelReservations | M |
| Only 1 element allowed per message. |
2 | 1 | E | HotelReservation | M |
| The Reservation class contains the current reservation being created or altered. Only 1 element allowed per HotelReservations |
3 | 1 | E | RoomStays | O |
| A collection of RoomStay |
4 | 1 | E | RoomStay | M |
| Details on the Room Stay including Guest Counts, Time Span of this Room Stay, pointers to Res Guests. |
5 | 1 | E | RoomTypes | M |
| A collection of Room Types associated with a particular Room Stay. Only 1 element allowed per RoomStay |
6 | 1 | E | RoomType | M |
| The RoomType element is used to contain all the room type information for a single RateType Code – i.e., A1K – for a given date range. Only 1 element allowed per RoomTypes |
|
| A | RoomTypeCode | M | String (16) | Specific system room type code – i.e., “A1K”, “10480”, etc. |
|
| A | InvBlockCode | O | String (32) | Code that identifies an inventory block. Used to indicate a group booking. |
5 | 1 | E | RatePlans | O |
| A collection of Rate Plans associated with a particular Room Stay. |
6 | 1 | E | RatePlan | O |
| Used to contain all the rate information for a single Rate Plan Code – RACK – for a given date range. |
|
| A | RatePlanCode | O | String (16) | Specific system rate plan code – i.e., “RAC”, “SPCL”, etc. |
|
|
| BookingCode | O | String (16) | This is used to indicate the item booked and is primarily used to exchange information with GDSs. Will be saved in Windsurfer as the RateAccessCode. |
|
|
| RatePlanID | O | String (16) | A text field used to provide a special ID code that is associated with the rate and is required in the reservation request in order to obtain the rate. Examples are a corporate ID number, a promotion code or a membership number. |
5 | 1 | E | RoomRates | M |
| A collection of Room Rates associated with a particular Room Stay. Each Room Rate combination can have multiple rates – i.e., King room, Rack rate plan, Monday through Thursday, weekday amount, Friday and Saturday, weekend amount, etc. |
6 | 1..n | E | RoomRate | M |
| Individual rate amount. This rate is valid for a range of number of occupants and an occupant type. Only 1 element allowed per RoomRates in version 1.00 |
|
|
| NumberOfUnits | M |
| Number of Rooms |
|
| A | EffectiveDate | O | Date | Indicates the start date: YYYY-MM-DD |
|
| A | ExpireDate | O | Date | Indicates the end date: YYYY-MM-DD |
7 | 1 | E | Rates | M |
|
|
8 | 1..n | E | Rate | M |
| Base charge and additional charges related to a room that includes such things as additional guest amounts, cancel fees, etc. Also includes discount percentages, total amount, and the rate description. |
|
| A | EffectiveDate | O | Date | Indicates the start date: YYYY-MM-DD |
|
| A | ExpireDate | O | Date | Indicates the end date: YYYY-MM-DD |
9 | 1 | E | Base | M |
| The base amount charged for the accommodation or service per unit of time – i.e., Nightly, Weekly, etc. If TaxInclusive is set to True, then taxes are included in the base amount. Note that any additional charges should be itemized in the other elements. |
|
| A | AmountBeforeTax | M | Money |
|
9 | 1 | E |
AdditionalGuestAmounts | O |
| A collection of charges that apply to additional occupants, guests or service users (over and above the rate’s MaxGuest Applicable) |
1 0 | 1..n | E |
AdditionalGuestAmount | M |
| Collection of incremental charges per age qualifying code for additional guests. Amount charged for additional occupant is with respect to age group of the base guests. Charges related to additional guests. |
1 1 | 1 | E | Amount | M |
| The amount charged for an additional guest. The total amount charged for the service including additional amounts and fees. |
|
| A | AmountBeforeTax | M | Money | The total amount not including any associated tax (e.g., sales tax, VAT, GST or any associated tax). |
|
| A | AgeQualifyingCode | O | Codes | Defines an age range or age category of a guest – i.e., under 21, over 65, teen, infant, etc. Refer to OTA Code List Age Qualifying Code (AQC). For any Inbound reservation via IDS we are supporting below: |
|
| A | CurrencyCode | O | String (3) | Use ISO 4217: three-character alpha code. |
5 | 1 | E | GuestCounts | M |
| A collection of Guest Counts associated with Room Stay. A child Guest Count element is required for each distinct age group. |
6 | 1..99 | E | GuestCount | M |
| A recurring element that identifies the number of guests and ages of the guests in the request that determines the rates based on business rules for occupancy at each property. |
|
| A | AgeQualifyingCode | O | Codes | Defines an age range or age category of a guest – i.e., under 21, over 65, teen, infant). Refer to OTA Code List Age Qualifying Code (AQC). |
|
| A | Count | O | Numeric 099 | Number of guests |
5 | 1 |
| Timespan | M |
| The Time Span which covers the Room Stay. Used to specify a time window range by either specifying an earliest and latest date for the start date and end date or by giving a date with a time period that can be applied before and/or after the start date. |
|
| A | Start | O | Date | Indicates the start date: YYYY-MM-DD |
|
| A | End | O | Date | Indicates the end date: YYYY-MM-DD |
5 | 1 |
| Total | M |
| The total for the specified Roomstay. |
|
| A | AmountBeforeTax | M | Money |
|
|
| A | CurrencyCode | O | String | Use ISO 4217: three-character alpha code. |
6 | 1 | E | Taxes | M |
| In version 1.00, this element is the final tax amount for the Roomstay. |
|
| A | Amount | M | Money | Consolidated tax amount for the roomstay. |
5 | 1 | E | Comments | O |
| A collection of Comment objects. |
6 | 1..n | E | Comment | M |
| Used to store further information (comments) pertaining to a reservation. Comments appended to the reservation may be retained as the reservation passes through multiple channels. |
7 | 1 | E | Text | M | String |
|
5 | 1 | E | Guarantee | O |
| The guarantee information associated to the Reservation or a particular Room Stay or Service. |
|
| A | GuaranteeCode | M | String (32) | Guarantee Code |
6 | 1 | E |
GuaranteesAccepted | O |
|
|
7 | 1 | E | GuaranteeAccepted | M |
| Guarantee Detail |
8 |
| E | PaymentCard | O |
| Details of a debit or credit card |
|
| A | CardType | O | Codes | Indicates the type of magnetic striped card. Refer to OTA Code List Card Type (CDT). Always “1” |
|
|
| CardCode | O | Codes | Pre-defined credit card types: “AMEX”, “VISA”, “MASTER”, “DISCOVER”. “ENROUTE”, “DINERSCLUB”, “BANKCARD”, “CARTEBLANCHE”,”JCB”. |
|
| A | CardNumber | O | String (19) | Credit card number embossed on the card |
|
| A | ExpireDate | O | Date (MMYY) | Expiration date on the card – “0212” |
9 | 1 | E | CardHolderName | O | String (64) |
|
5 | 1 | E | Total | M |
| The total amount charged for the Room Stay including additional occupant amounts and fees. If TaxInclusive is set to True, then taxes are included in the total amount. The total amount charged for the service including additional amounts and fees. |
|
| A | CurrencyCode | M |
| An ISO 4217 (3) alpha character code that specifies a monetary unit. |
|
| A | AmountAfterTax | M |
| The total amount including all associated taxes (e.g., sales tax, VAT, GST or any associated tax). |
|
| A | AmounBeforeTax | M |
| The total amount not including any associated tax (e.g., sales tax, VAT, GST or any associated tax). |
5 | 1 | E | BasicPropertyInfo | M |
| Property Information for the Room Stay. |
5 |
|
| SpecialRequests | O |
| Contains Guest Preferences with a Request Code and Text element for each. |
6 |
|
| SpecialRequest | M |
| Contains RequestCode element pertaining to the preference. |
7 |
|
| Text | M | String | Text code of the preference option that was selected. |
|
| A | HotelCode | M | String | The CRS code that uniquely identifies a single hotel property. The cross-reference table that translates the chain ID of one system into the chain ID of another system must currently be maintained in the source booking channel. Length 1 to 16. |
|
|
| ChainCode | M | String | The code that identifies a hotel chain or management group. The hotel chain code is decided between vendors. |
3 | 1 | E | ResGuests | O |
| A collection of ResGuest objects, identifying the guests associated with this reservation. Which guests are in which room is determined by each RoomStays ResGuestRPHs collection. |
4 | 1..n | E | ResGuest | M |
| The ResGuest object contains the information about a guest associated with a reservation. Sending multiple guest names, while supported in CRS, may not be reflected in the PMS if the client PMS does not support this feature. |
5 | 1 | E | Profiles | O |
|
|
6 | 1..n | E | ProfileInfo | M |
|
|
7 | 1 | E | Profile | M |
|
|
|
| A | ProfileType | M |
| Code to specify a profile such as customer, corporations, etc. Refer to OpenTravel Code List Profile Type Codes. |
8 | 1 | E | CompanyInfo |
|
| Company information related to the profile. Detailed information about a company. |
9 | 1 | E | CompanyName |
|
| Detailed name information for the company. Identifies a company by name. |
|
| A | CompanyShortName |
|
| Used to provide the company common name. |
|
| A | Code |
|
| Identifies a company by the company code. |
|
| A | CodeContext |
|
| Identifies the context of the identifying code, such as DUNS, IATA or internal code, etc. |
8 | 1 | E | Customer | O |
| Contains basic data on the customer's identity, location, relationships, finances, memberships, etc. |
9 | 1 | E | PersonName | O |
|
|
1 0 | 0..5 | E | GivenName | O | String (64) | Given, or first, name(s) |
1 0 | 1 | E | Surname | M | String (64) | Family, or last, name |
9 | 0..5 | E | Telephone | O |
|
|
|
| A | PhoneNumber | M | String (32) | Telephone number assigned to a single location. |
|
| A | FormattedInd | M | Boolean | Specifies if the associated data is formatted or not. When true, then it is formatted; when false, then not formatted. |
9 | 0..5 | E | O | String (128) | Electronic email addresses in IETF specified format. | |
|
| A | ShareMarketInd | M | Boolean | Permission for sharing data for marketing purposes. If the value=Inherit, specifies data sharing permissions for marketing purposes. |
9 | 0..5 | E | Address | O |
|
|
1 0 | 0..5 | E | AddressLine | O | String (255) | When the address is unformatted (FormattedInd="false"), these lines will contain free form address details. When the address is formatted, the street number and street name must be sent independently. The street number will be sent using StreetNmbr, and the street name will be sent in the first AddressLine occurrence. |
1 0 | 1 | E | CityName | O | String (64) | City (e.g., Dublin), town, or postal station – i.e., a postal service territory, often used in a military address. |
1 0 | 1 | E | PostalCode | O | String (16) | Postal/Zip Code number. |
1 0 | 1 | E | StateProv | O | String (64) | State or Province name – i.e., Texas, Alberta |
|
| A | StateCode | O | String (2,8) | The standard code or abbreviation for the state, province, or region. |
1 0 | 1 | E | CountryName | O | String (64) | Country name – i.e., Ireland. |
|
| A | Code | O | Codes | ISO 3166 code for a country. |
|
|
| CustLoyalty | O |
| Loyalty program information for the customer. |
|
|
| MembershipID | O | String (64) | Unique identifier of the member in the program (membership number, account number, etc.). |
3 | 1 | E | ResGlobalInfo | O |
| ResGlobalInfo is a container for information that affects the Reservation as a whole, including global comments, counts, reservation IDs, loyalty programs, and payment methods. |
4 |
|
| DepositPayments | O |
| Container for DepositPayments tokenized by third party prior to requesting reservation |
5 |
|
| GuaranteePayment | O |
| Container for Guarantee Payment |
6 |
|
| AcceptedPayments | O |
| Container for Accepted Payment elements |
7 |
|
| AcceptedPayment | O |
| Container for Accepted Payment details |
8 |
|
| PaymentCard | O |
| Payment Card details |
|
|
| @CardCode | O | String | Two-letter card code; e.g. “VS” |
|
|
| @CardType | O | String | The name/type of the card; e.g. “Visa” |
|
|
| @ExpireDate | O |
| Four-digit expiration date for the card in MMYY format |
|
|
| @SecureInd | O | Boolean |
|
9 |
|
| CardHolderName | O | String | Name of the card holder |
9 |
|
| CardNumber | O |
| Card number/token details |
|
|
| @MaskedCardNumber | O | String | Masked card number with only last four digits of card; e.g. “x..x0000” |
|
|
| @Token | O | String | Token provided by payment processor |
|
|
| @TokenProviderID | O | String | ID of the token provider/payment processor. |
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). Will be saved in Windsurfer as the ExtResvID. |
|
| 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: YYY-MM-DD |
|
| 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. |
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"/>
<SpecialRequests>
<SpecialRequest RequestCode="529">
<Text>ALLER</Text>
</SpecialRequest>
</SpecialRequests>
<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_HotelResNotifRQ Sample (Payment Processed by Third Party, No Points Redeemed)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:b="http://htng.org/2009B" xmlns:ns="http://www.opentravel.org/OTA/2003/05">
<soapenv:Header>
<b:HTNGHeader>
<b:From>
<b:systemId />
<b:Credential>
<b:userName>UserNameGoesHere</b:userName>
<b:password>PasswordGoesHere</b:password>
</b:Credential>
</b:From>
<b:To>
<b:systemId />
</b:To>
<b:timestamp />
<b:echoToken />
<b:transactionId />
<b:action />
</b:HTNGHeader>
</soapenv:Header>
<soapenv:Body>
<b:ProcessHotelReservation>
<ns:OTA_HotelResRQ ResStatus="Book">
<ns:POS>
<ns:Source>
<ns:RequestorID Type="1" ID="WEB" URL="data.windsurfercrs.com" ID_Context="WindSurfer" />
<ns:BookingChannel Type="GOO" />
</ns:Source>
</ns:POS>
<ns:HotelReservations>
<ns:HotelReservation>
<ns:RoomStays>
<ns:RoomStay>
<ns:RoomTypes>
<ns:RoomType RoomTypeCode="DOUBLE" />
</ns:RoomTypes>
<ns:RatePlans>
<ns:RatePlan RatePlanCode="RateDX10%RF" BookingCode="RateDX10%RF" />
</ns:RatePlans>
<ns:RoomRates>
<ns:RoomRate NumberOfUnits="1" RoomTypeCode="DOUBLE" EffectiveDate="2022-12-29" ExpireDate="2022-12-30">
<ns:Rates>
<ns:Rate EffectiveDate="2022-12-29" ExpireDate="2022-12-30">
<ns:Base AmountBeforeTax="100.02" AmountAfterTax="110.02" />
</ns:Rate>
</ns:Rates>
</ns:RoomRate>
</ns:RoomRates>
<ns:GuestCounts>
<ns:GuestCount AgeQualifyingCode="10" Count="1" />
</ns:GuestCounts>
<ns:TimeSpan Start="2022-12-29" End="2022-12-30" />
<ns:Guarantee GuaranteeCode="DX">
<!-- <ns:GuaranteesAccepted><ns:GuaranteeAccepted><ns:PaymentCard ExpireDate="03/30" CardType="1" CardCode="4" CardNumber="4917610000000000"><ns:CardHolderName>Tester McTesterson</ns:CardHolderName></ns:PaymentCard>
</ns:GuaranteeAccepted>
</ns:GuaranteesAccepted> -->
</ns:Guarantee>
<ns:Total AmountBeforeTax="90.02" AmountAfterTax="100.02" />
<ns:BasicPropertyInfo HotelCode="HOTELCODEGOESHERE" />
</ns:RoomStay>
</ns:RoomStays>
<ns:Services>
<ns:Service Quantity="1" Inclusive="false" ServiceInventoryCode="" ServiceRPH="">
<ns:Price>
<ns:Base AmountAfterTax="80" AmountBeforeTax="70">
<ns:Taxes Amount="1" />
</ns:Base>
<ns:Total AmountAfterTax="80" AmountBeforeTax="70">
<ns:Taxes Amount="1" />
</ns:Total>
</ns:Price>
<ns:ServiceDetails>
<ns:TimeSpan Start="2022-12-26" />
</ns:ServiceDetails>
</ns:Service>
</ns:Services>
<ns:ResGuests>
<ns:ResGuest>
<ns:Profiles>
<ns:ProfileInfo>
<ns:Profile ProfileType="1">
<ns:Customer>
<ns:PersonName>
<ns:GivenName>Testofferson</ns:GivenName>
<ns:Surname>Testofer</ns:Surname>
</ns:PersonName>
<ns:Telephone PhoneNumber="2134567845" />
<ns:Email>example@shr.global</ns:Email>
<ns:Address>
<ns:AddressLine>1234 Test Drive</ns:AddressLine>
<ns:CityName>Testerville</ns:CityName>
<ns:PostalCode>77058</ns:PostalCode>
<ns:StateProv StateCode="TX">Texas</ns:StateProv>
<ns:CountryName Code="US">United States</ns:CountryName>
</ns:Address>
</ns:Customer>
</ns:Profile>
</ns:ProfileInfo>
<ns:ProfileInfo>
<ns:Profile ProfileType="3">
<ns:CompanyInfo>
<ns:CompanyName CompanyShortName="GSV" Code="GSV" CodeContext="CRS" />
</ns:CompanyInfo>
</ns:Profile>
</ns:ProfileInfo>
<ns:ProfileInfo>
<ns:UniqueID ID="123456" ID_Context="IATA" />
<ns:Profile ProfileType="4">
<ns:CompanyInfo>
<ns:CompanyName Code="123456" CodeContext="CRS" />
</ns:CompanyInfo>
</ns:Profile>
</ns:ProfileInfo>
</ns:Profiles>
</ns:ResGuest>
</ns:ResGuests>
<ns:ResGlobalInfo>
<ns:DepositPayments>
<ns:GuaranteePayment>
<ns:AcceptedPayments>
<!-- for PaymentCard Payment, -->
<ns:AcceptedPayment>
<ns:PaymentCard CardCode="VS" CardType="Visa" ExpireDate="0330" SecureInd="true">
<ns:CardHolderName>John Test</ns:CardHolderName>
<ns:CardNumber>
<ns:PlainText>4917610000000000</ns:PlainText>
</ns:CardNumber>
<!-- Card Number -->
<ns:SeriesCode>
<ns:PlainText>737</ns:PlainText>
<!-- CVV -->
</ns:SeriesCode>
</ns:PaymentCard>
<!-- data about amount and whether payment was already processed externally or WS is supposed to process it-->
<ns:TPA_Extensions>
<ns:PaymentProcessingDetails PaymentProcessed="true" Amount="200" MerchantReference="jdhlkfsh4jfewhf" PspReference="fdestddjKKfjoi">
</ns:PaymentProcessingDetails>
</ns:TPA_Extensions>
</ns:AcceptedPayment>
</ns:AcceptedPayments>
</ns:GuaranteePayment>
</ns:DepositPayments>
</ns:ResGlobalInfo>
</ns:HotelReservation>
</ns:HotelReservations>
</ns:OTA_HotelResRQ>
</b:ProcessHotelReservation>
</soapenv:Body>
</soapenv:Envelope>
OTA_HotelResNotifRQ (Payment Processed by Third Party, Points Redeemed)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:b="http://htng.org/2009B" xmlns:ns="http://www.opentravel.org/OTA/2003/05">
<soapenv:Header>
<b:HTNGHeader>
<b:From>
<b:systemId />
<b:Credential>
<b:userName>UsernameMcUsernameson</b:userName>
<b:password>Password123</b:password>
</b:Credential>
</b:From>
<b:To>
<b:systemId />
</b:To>
<b:timestamp />
<b:echoToken />
<b:transactionId />
<b:action />
</b:HTNGHeader>
</soapenv:Header>
<soapenv:Body>
<b:ProcessHotelReservation>
<ns:OTA_HotelResRQ ResStatus="Book">
<ns:POS>
<ns:Source>
<ns:RequestorID Type="1" ID="WEB" URL="data.windsurfercrs.com" ID_Context="WindSurfer" />
<ns:BookingChannel Type="GOO" />
</ns:Source>
</ns:POS>
<ns:HotelReservations>
<ns:HotelReservation>
<ns:RoomStays>
<ns:RoomStay>
<ns:RoomTypes>
<ns:RoomType RoomTypeCode="KNBI" />
</ns:RoomTypes>
<ns:RatePlans>
<ns:RatePlan RatePlanCode="LOYALPOINTRT" BookingCode="LOYALPOINTRT" />
</ns:RatePlans>
<ns:RoomRates>
<ns:RoomRate NumberOfUnits="1" RoomTypeCode="KNBI" EffectiveDate="2022-12-29" ExpireDate="2022-12-30">
<ns:Rates>
<ns:Rate EffectiveDate="2022-12-29" ExpireDate="2022-12-30">
<ns:Base AmountBeforeTax="180" AmountAfterTax="190" />
</ns:Rate>
</ns:Rates>
</ns:RoomRate>
</ns:RoomRates>
<ns:GuestCounts>
<ns:GuestCount AgeQualifyingCode="10" Count="1" />
</ns:GuestCounts>
<ns:TimeSpan Start="2022-12-29" End="2022-12-30" />
<ns:Guarantee GuaranteeCode="DX">
<!-- <ns:GuaranteesAccepted><ns:GuaranteeAccepted><ns:PaymentCard ExpireDate="03/30" CardType="1" CardCode="4" CardNumber="4917610000000000"><ns:CardHolderName>Tester McTesterson</ns:CardHolderName></ns:PaymentCard>
</ns:GuaranteeAccepted>
</ns:GuaranteesAccepted> -->
</ns:Guarantee>
<ns:Total AmountBeforeTax="180" AmountAfterTax="190" />
<ns:BasicPropertyInfo HotelCode="VH06" />
</ns:RoomStay>
</ns:RoomStays>
<ns:Services>
<ns:Service Quantity="1" Inclusive="false" ServiceInventoryCode="" ServiceRPH="">
<ns:Price>
<ns:Base AmountAfterTax="110" AmountBeforeTax="90">
<ns:Taxes Amount="1" />
</ns:Base>
<ns:Total AmountAfterTax="110" AmountBeforeTax="90">
<ns:Taxes Amount="1" />
</ns:Total>
</ns:Price>
<ns:ServiceDetails>
<ns:TimeSpan Start="2022-12-28" />
</ns:ServiceDetails>
</ns:Service>
</ns:Services>
<ns:ResGuests>
<ns:ResGuest>
<ns:Profiles>
<ns:ProfileInfo>
<ns:Profile ProfileType="1">
<ns:Customer>
<ns:PersonName>
<ns:GivenName>Testerman</ns:GivenName>
<ns:Surname/>
</ns:PersonName>
<ns:Telephone PhoneNumber="2134567845" />
<ns:Email>example@shr.global</ns:Email>
<ns:Address>
<ns:AddressLine>1234 Test Drive</ns:AddressLine>
<ns:CityName>Testerville</ns:CityName>
<ns:PostalCode>77058</ns:PostalCode>
<ns:StateProv StateCode="TX">Texas</ns:StateProv>
<ns:CountryName Code="US">United States</ns:CountryName>
</ns:Address>
</ns:Customer>
</ns:Profile>
</ns:ProfileInfo>
<ns:ProfileInfo>
<ns:Profile ProfileType="3">
<ns:CompanyInfo>
<ns:CompanyName CompanyShortName="GSV" Code="GSV" CodeContext="CRS" />
</ns:CompanyInfo>
</ns:Profile>
</ns:ProfileInfo>
<ns:ProfileInfo>
<ns:UniqueID ID="123456" ID_Context="IATA" />
<ns:Profile ProfileType="4">
<ns:CompanyInfo>
<ns:CompanyName Code="123456" CodeContext="CRS" />
</ns:CompanyInfo>
</ns:Profile>
</ns:ProfileInfo>
</ns:Profiles>
</ns:ResGuest>
</ns:ResGuests>
<ns:ResGlobalInfo>
<ns:DepositPayments>
<ns:GuaranteePayment>
<ns:AcceptedPayments>
<!-- for PaymentCard Payment, -->
<ns:AcceptedPayment>
<ns:LoyaltyRedemption RedemptionQuantity="120" MemberNumber="200566551" ProgramName="Maverick">
</ns:LoyaltyRedemption>
<!-- data about amount and whether payment was already processed externally or WS is supposed to process it-->
<ns:TPA_Extensions>
<ns:PaymentProcessingDetails Amount="150" LoyaltyTransactionCode="sfjjshvfssdshjv" PaymentProcessed="true">
</ns:PaymentProcessingDetails>
</ns:TPA_Extensions>
</ns:AcceptedPayment>
</ns:AcceptedPayments>
</ns:GuaranteePayment>
</ns:DepositPayments>
</ns:ResGlobalInfo>
</ns:HotelReservation>
</ns:HotelReservations>
</ns:OTA_HotelResRQ>
</b:ProcessHotelReservation>
</soapenv:Body>
</soapenv:Envelope>
OTA_HotelResNotifRQ (Payment not Accepted by Third Party, SHR to Process Payment, but not Points)
OTA_HotelResNotifRQ (Payment Not Accepted by Third Party, SHR to Process Payment and Points)
OTA_HotelResNotifRQ (Payment Accepted by Third Party, SHR to Redeem Points)
OTA_HotelResNotifRQ (Payment Processed by Third Party, SHR to Redeem Points, Masked Card)
OTA_HotelResNotifRQ (Modify Reservation, Payment Processed by Third Party, SHR to Redeem Points)
OTA_HotelResNotifRQ (Cancel Reservation, Payment Processed by Third Party, Points Redeemed by SHR, Masked Card)
OTA_HotelResNotifRQ (Cancel Reservation, Payment Processed by Third Party, Points Redeemed by SHR, Plaintext Card)
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