Hotel: Corporate Discounts and Negotiated Rates
Common:CorporateDiscountID
Common:CorporateDiscountID @NegotiatedRateCode
Includes a negotiated (multi-level) rate code between an organization and a vendor. Negotiated rate codes can be created for corporations or other organizations that offered discounts with preferred suppliers. The code identifies properties and rates that apply to a specific organization.
Providers use data tables to store the rates.
- Galileo (1G) and Apollo (1V) support Negotiated Rate Codes using Multi-Level Rate Access Codes.
Note: In 1G and 1V, the maximum length of the text field for the Negotiated Rate code is 6 in the HotelCreateReservationReq. - Wordspan (1P) supports both Negotiated Rate Codes and Corporate Discount IDs using the Hotel RAST table.
Rates in these tables are specific, confidential information that has been loaded by the hotel supplier on behalf of their customer. For example:
ABC Tours, as a consumer of the Travelport Universal API, can display specifically negotiated Corporate Discount or Negotiated Rates that their client, XYZ Widgets Company, has contractually agreed upon with a specific hotel chain or property. The XYZ Widget Company rate access code is passed via the Multi-Level Rate Access Code or Hotel RAST table. These rate access codes are usually for a specific contractual client, term, or length and are provided by the property or hotel supplier to the provider on behalf of the Travel Management Company (TMC).
Implementation by Provider
See Implemented Transactions for provider functionality specific to each transaction.
Provider |
Implementation |
---|---|
Galileo (1G) |
Supports corporate discount IDs and negotiated rate codes. Negotiated rates are Multi-Level Rate Access Codes in Galileo. |
Apollo (1V) |
Supports corporate discount IDs and negotiated rate codes. Negotiated rates are Multi-Level Rate Access Codes in Apollo. |
Worldspan (1P) |
Supports corporate discount IDs and negotiated rate codes. Negotiated Rates are SecuRates in Worldspan. Available functionality varies by transaction. |
Element/Attribute | Description |
---|---|
CorporateDiscountID @NegotiatedRateCode |
One corporate discount ID is supported in a single request for all providers. However, the number of supported Negotiated Rate codes varies by provider. A corporate discount ID can be can combined with one or more negotiated rate codes in a single, up to a maximum number of rate modifiers permitted by that provider. Galileo (1G) and Apollo (1V)
Worldspan (1P)
Supports one Corporate Discount ID and/or a maximum of 30 negotiated rate codes in a request. A corporate Discount ID can be combined with 30 negotiated rate codes for a maximum of 31 rate modifiers in a single request in Hotel v29.0 and greater. For some suppliers, if a negotiated rate code is sent in the request, the corresponding negotiated rate is returned in: HotelDetailItem Name="Negotiated Rate Code(s) Requested" @Text=”aaa”, where “aaa” = 3-character rate code. Example
<hotel:HotelDetailItem Name="Negotiated Rate Code(s) Requested"> <hotel:Text>IBM</hotel:Text> <hotel:Text>AMX</hotel:Text> <hotel:Text>THR</hotel:Text> </hotel:HotelDetailItem> Note that some suppliers also limit the maximum number of negotiated rates. Therefore, an error may be returned from the supplier, even if the requested number of negotiated rate codes is within the provider's maximum limit. HotelDetailsReq/HotelDetailsModifiers @ProcessAllNegoRatesInd overrides the supplier's limit by automatically sending multiple request transactions to Worldspan (1P) until all negotiated rate codes are processed. These multiple requests are performed internally; therefore, a single HotelDetailsReq/Rsp pair is implemented via Universal API.
|
Implemented Transactions
HotelReqRsp.xsd
HotelSearchAvailablityReq/HotelSearchModifiers/CorporateDiscountID
HotelSearchAvailablityRsp/HotelSearchResult/CorporateDiscountID
HotelSearchAvailablityAsynchReq/HotelSearchModifiers/CorporateDiscountID
HotelSearchAvailablityAsynchRsp/HotelSearchResult/CorporateDiscountID
A Hotel Search request can be modified to include Negotiated Rates, Travelport Exclusive Rates, or Corporate Discount IDs, which are determined by a contract or agreement between the supplier and an organization.
The response returns a basic Hotel Search response; however, all of the available room/rates correspond to the requested Rate Codes or Discount IDs. All Rate Codes/Discount IDs in a single request have the same priority in the response.
If no hotel options meet the request parameters, the response may be relaxed to include other hotels. In this instance, any hotel responses that include a Negotiated Rate Code/Discount ID are using the Negotiated Rate/Discount ID parameter.
Exceptions
Supports one Corporate Discount ID and a maximum of four Negotiated Rate codes in a request. Corporate IDs and Negotiated Rates cannot be combined in the same request.
Supports one Corporate Discount ID and a maximum of 30 Negotiated Rate codes in a request. Corporate IDs and Negotiated Rates can be combined in the same request in Hotel v29.0 and greater.
- If more than the provider allowed Negotiated Rates/Discount IDs are sent, only the allowed number are processed by Universal API, and a warning is returned.
- If a specific Negotiated Rate Code or Corporate Discount ID cannot be processed, a warning is returned
HotelReqRsp.xsd
HotelDetailsReq/HotelDetailsModifiers/CorporateDiscountID
HotelDetailsRsp/HotelRateDetail/CorporateDiscountID
The CorporateDiscountID modifier is available in the Hotel Rules request. However, this modifier is optional because rules are requested for a specific Rate Plan Type (RatePlanType), returned from a Hotel Rate and Rule Search, and the Rate Plan Type is already inclusive of any Corporate Discount IDs or Negotiated Rate Codes used for the search.
Exceptions
Supports one Corporate Discount ID and a maximum of four Negotiated Rate codes in a request. Corporate IDs and Negotiated Rates cannot be combined in the same request.
Supports one Corporate Discount ID and a maximum of 30 Negotiated Rate codes in a request. Corporate IDs and Negotiated Rates can be combined in the same request in Hotel v29.0 and greater.
By default, the number of Negotiated Rate Codes that can be sent in Hotel Rate and Rule Search request is limited to the number of rate codes supported by the supplier (hotel chain). IA modifier was added to override the supplier's limit by automatically sending multiple request transactions to Worldspan until all negotiated rate codes are processed. These multiple requests are performed internally; therefore, a single HotelDetailsReq/Rsp pair is implemented via Universal API.
If HotelDetailsReq/HotelDetailsModifiers @ProcessAllNegoRatesInd is:
- "false" (default), the supplier's limit for negotiated rates codes is supported. If the number of negotiated rates exceeds the limit for the supplier, the request fails.
- "true", all negotiated rate codes are processed, even if the number of rate codes exceeds the suppliers limit.
All successful rates are returned in a single aggregated response. Duplicate rates applicable to multiple rate codes are removed in the response.
- If all requested rate codes fail, an error is returned: Your request has returned no rates. Please resubmit your request.
- If any of the internal requests to Worldspan fail, successful rate responses are returned with a warning that not all rates are returned.
HotelReqRsp.xsd
HotelRulesReq/HotelRulesLookup/HotelRulesModifiers/CorporateDiscountID
HotelRulesRsp/HotelRateDetail/CorporateDiscountID
The CorporateDiscountID modifier is available in the Hotel Rules request. However, this modifier is optional because rules are requested for a specific Rate Plan Type (RatePlanType), returned from a Hotel Rate and Rule Search, and the Rate Plan Type is already inclusive of any Corporate Discount IDs or Negotiated Rate Codes used for the search.
The Hotel Rule Search response returns rules for the specified property with availabilities for the requested number of adults.
A warning message is returned:
- If more than one corporate discount is sent in the request: Max. one Corporate Discount is supported by provider. Only the first one has been used.
- If more than one negotiated rate code is sent in the request: Max. one Negotiated Rate Code is supported by provider. Only the first one has been used.
- If a corporate discount or negotiated rate is sent to an unsupported provider, such as Worldspan: Corporate Discount/Negotiated Rate Code not supported for this service for the selected Provider.
Exceptions
Supports one Corporate Discount ID or one Negotiated Rate code in a request. Corporate IDs and Negotiated Rates cannot be combined in the same request.
Corporate Discount IDs and Negotiated Rate codes are not supported for Worldspan for Hotel Rules.
UniversalReqRsp.xsd
HotelCreateReservationReq/HotelRateDetails/CorporateDiscountID
UniversalRecordModifyReq/UniversalModifyCmd/HotelAdd/CorporateDiscountID (in existing Universal Records)
Hotel Booking creates a hotel reservation based on the room and rate results from a Hotel Rate and Rule Search response. Hotel bookings can be created using either:
-
HotelCreateReservationReq, which creates a new PNR for the booking (and a new Universal Record.
-
HotelAdd, which adds a new hotel booking to an existing Universal Record. Only one hotel booking can be associated to a single PNR.
The CorporateDiscountID modifier is technically optional in the Hotel Booking request because the RatePlanType value (room/rate code) is already inclusive of any Corporate Discount IDs or Negotiated Rate code modifiers sent during the search process. However, it is best practice to consistently send the same modifiers throughout the Hotel Shopping and Booking process. Therefore, if applicable to the selected Rate Plan Type, any associated CorporateDiscountID value should be included.
However, this modifier is optional because rules are requested for a specific Rate Plan Type (RatePlanType), returned from a Hotel Rate and Rule Search, and the Rate Plan Type is already inclusive of any Corporate Discount IDs or Negotiated Rate Codes used for the search.
The Hotel Booking response includes the Universal Record, as well as the Hotel Reservation information for this booking in the HotelReservation element. The information is stored in the Universal Record and returned in the Hotel Booking and Universal Record Retrieve responses, and the room/rates correspond to the requested rate codes.
Exceptions
The maximum length of the text field for the Negotiated Rate code is 6, as part of the HotelCreateReservationReq.
Worldspan does not supported a Negotiated Rate Code for Hotel reservations, unless it is tied to a Rate Plan, and warning messages indicate if:
-
A Negotiated Rate Code is included in the request, the following warning is returned: Separate NegotiatedRateCode is not supported in the Book request by the requested provider. NegotiatedRateCode is tied with RatePlan if applicable. Only corporate discount ID is supported for the requested provider.
-
A Corporate Discount ID and Negotiated Rate Code are included in the request, the booking is completed and the following warning is returned: Separate NegotiatedRateCode is not supported in the Book request by the requested provider. NegotiatedRateCode is tied with RatePlan if applicable.
UniversalReqRsp.xsd
UniversalRecordModifyReq/UniversalModifyCmd/HotelUpdate/CorporateDiscountID (in existing Universal Records)
UniversalRecordModifyReq/UniversalModifyCmd/HotelDelete/Element="CorporateDiscountID" (in existing Universal Records)
UniversalRecordModifyRsp/HotelReservation/HotelDelete/Element="CorporateDiscountID"
Corporate Discount IDs and Negotiated Rate codes can be added to or deleted from an existing hotel reservation (PNR) using Universal Record Modify.