Hotel Rate Matching
HotelCreateReservationReq @MandatoryRateMatch
HotelCreateReservationRsp/HotelRateChangedInfo
Indicates if there is a discrepancy between the hotel rate data sent in the Hotel Booking request and the rate data returned in the subsequent Booking response.
When a Hotel Booking is requested, Universal API makes a Hotel Rules request as part of the booking process to retrieve the latest hotel rate data. However, a time discrepancy between the initial Hotel Rate and Rule Search or Hotel Rules response and the subsequent Hotel Booking request may result in a discrepancy in the rate data.
The rate change match indicator (@MandatoryRateMatch) specifies if there is a variance between the room rates sent in the Hotel Booking request and the rates returned response:
- The base rate (excluding taxes and fees) of the booking code (RatePlanType @Base) is compared.
- The total rate (including taxes and fees), RatePlanType @Total, is also compared if available from the supplier.
If @MandatoryRateMatch is set to "true", and there is a variance between the requested and returned hotel rates, the Hotel Booking fails, and an error message is returned. If there is a discrepancy in the rates, it is captured in the Booking response in HotelRateChangedInfo, which indicates the applicable hotel property, the booking code (RatePlanType), and the new rate amounts returned in the Booking response.
Implementation by Provider
See Implemented Transactions for provider functionality specific to each transaction.
Provider |
Implementation |
---|---|
Galileo (1G) | Supports the Rate Match Indicator. |
Apollo (1V) | Supports the Rate Match Indicator. |
Worldspan (1P) | Supports the Rate Match Indicator. |
How To
- Ensure that the same rate modifiers that were sent in the initial Hotel Rate and Rule Search or Hotel Rules are also sent in the Hotel Booking request (HotelCreateReservationReq). Use of different modifiers between the Search or Rules request and the Booking request will negate the matching functionality.
- In HotelCreateReservationRsp for hotel rates (RatePlanType @Total or @Base):
- If @RateMatchIndicator="true" and the requested and returned hotel rates are the same, the booking is completed.
- If @RateMatchIndicator="true" and the requested and returned hotel rates are NOT the same, the booking is stopped and an error message is returned. The supplier's rate information from the Hotel Booking is returned in RateChangedInfo.
- If @RateMatchIndicator="false" and the requested and returned hotel rates are the same, the booking is completed.
- If @RateMatchIndicator="false" and the requested and returned hotel rates are NOT the same, the booking is completed.
Schema
In HotelCreateReservationRsp, the RateChangedInfo child indicates the rate returned in the Hotel Booking response, if applicable.
Element/Attribute | Description |
---|---|
HotelCreateReservationRsp/RateChangedInfo | |
@Reason | The reason value returned is "Rate Change". |
/HotelProperty | @HotelChain and @HotelCode indicate the specific hotel property associated with the changed rate. |
/HotelRateDetail | Contains the booking code and base rate (RatePlanType @Base) returned by the supplier in the Hotel Booking response. If available from the supplier, the total rate (RatePlanType @Total) is also returned. |
Implemented Transactions
HotelCreateReservationReq @MandatoryRateMatch
HotelCreateReservationRsp/HotelRateChangedInfo
Rate Change indication applies only to Hotel Booking.
Error and Warning Responses
Condition | Error/Warning Message |
---|---|
If @RateMatchIndicator="true" and the requested and returned hotel rates are NOT the same, the booking is stopped and an error message is returned. | The following rate information does not match your request. Please adjust rate and resubmit reservation request. hotel:HotelRateDetail RatePlanType="xxxxxxx" Base="CURRENCY###.##" Total="CURRENCY###.##". To override this validation and complete hotel reservation anyway, resubmit your request with MandatoryRateMatch =”false”. |
If the returned hotel rates match the request, but @SourceLink="false", an error is returned. | The Source Link for this request was not available and the returned rate information may not be accurate. Resubmit reservation request. hotel:HotelRateDetail RatePlanType="xxxxxx" Base="CURxxx.xx" Total="CURxxx.xx">. To override this validation and complete hotel reservation anyway, resubmit your request with MandatoryRateMatch =”false”. |
If returned hotel rates do NOT match the request and @SourceLink="false", an error is returned. | The following rate information does not match your request. Please adjust rate and resubmit reservation request. hotel:HotelRateDetail RatePlanType="xxxxxx" Base="CURxxx.xx" Total="CURxxx.xx". To override this validation and complete hotel reservation anyway, resubmit your request with MandatoryRateMatch =”false”. |
If HotelCreateReservationReq @MandatoryRateMatch="true", but no total or base rates are returned, the booking fails. |
No Rates for Total or Base were returned cannot complete booking. |
IF HotelCreateReservationReq @MandatoryRateMatch="true", but values for RatePlanType @Total or @Base were not included in the request. |
No Rate for Total or Base were entered. Cannot complete booking. |
If HotelCreateReservationReq @MandatoryRateMatch="true" and RatePlanType @Total matches in the response, but there is a variance in the @Base values, the booking is completed and a warning message is returned. |
Variance – The Rate Base returned does not match the Rate Base entered in the request. Booking was completed because the Rate Total in the request did match the Rate Total in booking response. |