Errors must be returned within a 'SOAP Envelope' and use the defined response message container depending on the message being responded to. See the relevant parts of our specification within the Rooms and Rates, Availability and Restrictions and Rates sections for more information about each error response message.
If the error is specifically related to application-level errors, do not respond to any other error types (HTTP, etc.). If you have server-level issues, then it is OK to respond with HTTP standard error codes.
It is expected that your booking channel has a robust error handling process in place. This includes a queuing mechanism and a robust retry strategy.
An error response must contain a short error description to assist our support teams.
Sample Error Response
<SOAP-ENV:Envelopexmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/> <SOAP-ENV:Body> <OTA_HotelAvailNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="9a40291f-24fa-410d-b1c2-b64efab47da4" TimeStamp="2023-04-28T20:46:53+10:00" Version="1.0">
<Errors> <ErrorType="6"Code="392">Hotel not found for HotelCode=XXXXXX</Error> </Errors> </OTA_HotelAvailNotifRS> </SOAP-ENV:Body></SOAP-ENV:Envelope>
Mandatory Error Responses
Building these errors are required. The error descriptions must be the same as shown below.
<OTA_HotelAvailRS xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="9a40291f-24fa-410d-b1c2-b64efab47da4" TimeStamp="2023-04-28T20:46:53+10:00" Version="1.0">
<Errors> <ErrorType="6"Code="392">Hotel not found for HotelCode=XXXXXX</Error> </Errors></OTA_HotelAvailRS>
<OTA_HotelAvailNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="9a40291f-24fa-410d-b1c2-b64efab47da4" TimeStamp="2023-04-28T20:46:53+10:00" Version="1.0">
<Errors> <ErrorType="12"Code="402">Room type code not found for this hotel</Error> </Errors></OTA_HotelAvailNotifRS>
<OTA_HotelAvailNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="9a40291f-24fa-410d-b1c2-b64efab47da4" TimeStamp="2023-04-28T20:46:53+10:00" Version="1.0">
<Errors> <ErrorType="12"Code="249">Rate code not found for this hotel</Error> </Errors></OTA_HotelAvailNotifRS>
Error Description
Mandatory
Invalid Username and/or Password
OTA_HotelAvailRS
OTA_HotelAvailNotifRS
OTA_HotelRateAmountNotifRS
Hotel not found for HotelCode=XXXXXX
OTA_HotelAvailRS
OTA_HotelAvailNotifRS
OTA_HotelRateAmountNotifRS
Room type code not found for this hotel
OTA_HotelAvailNotifRS
OTA_HotelRateAmountNotifRS
Rate code not found for this hotel
OTA_HotelAvailNotifRS
OTA_HotelRateAmountNotifRS
Invalid included occupancy
Required for PDP
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="9a40291f-24fa-410d-b1c2-b64efab47da4" TimeStamp="2023-04-28T20:46:53+10:00" Version="1.0">
<Errors> <ErrorType="12"Code="137">Invalid included occupancy</Error> </Errors></OTA_HotelRateAmountNotifRS>
Optional: the error Invalid included occupancy can be combined with expecting N (e.g. Invalid included occupancy: expecting 2). This provide more detailed information about the correct value that need to be configured in the room rate mapping.
Invalid number of adults
This error will validate against the # of BaseByGuestAmt nodes received in the OTA_HotelRateAmountNotifRQ. If you have set the Max Occupancy to 5, then you must expect 5BaseByGuestAmt indicating the price per pax. If you receive more or less, then the error Invalid number of adults must be sent to alert the hotelier to check the Max Occupancy setting in SiteMinder. BaseByGuestAmt nodes must match the Max Occupancy value for that room rate combo.
Required for OBP
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="9a40291f-24fa-410d-b1c2-b64efab47da4" TimeStamp="2023-04-28T20:46:53+10:00" Version="1.0">
<Errors> <ErrorType="12"Code="397">Invalid number of adults</Error> </Errors></OTA_HotelRateAmountNotifRS>
Optional: the error Invalid number of adults can be combined with expecting N (e.g. Invalid number of adults: expecting 5). This provide more detailed information about the correct value that need to be configured in the room rate mapping.
Responses from SiteConnect
If the response contains an OTA message with an 'Error' element then the reservation can not be processed because some data is invalid. This could be, for example, if required data is missing or if the credentials/hotel code are incorrect and the message will not process until the error is fixed. If the error is that a required element or attributes are missing, the implementation will need to be adjusted to send the required data. If the error is to do with credentials, check that the correct username/password is sent. If the error is an invalid hotel code, contact the hotel to make sure they have the correct hotel code configured in SiteMinder.
<OTA_HotelResNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="9a40291f-24fa-410d-b1c2-b64efab47da4" TimeStamp="2023-04-28T20:46:53+10:00" Version="1.0">
<Errors> <ErrorType="6">Hotel not found for HotelCode=XXXXXX</Error> </Errors></OTA_HotelResNotifRS>
<OTA_HotelResNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="9a40291f-24fa-410d-b1c2-b64efab47da4" TimeStamp="2023-04-28T20:46:53+10:00" Version="1.0">
<Errors> <ErrorType="6">No HotelCodes were found in the message payload. Authorisation cannot proceed.</Error> </Errors></OTA_HotelResNotifRS>
<OTA_HotelResNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="9a40291f-24fa-410d-b1c2-b64efab47da4" TimeStamp="2023-04-28T20:46:53+10:00" Version="1.0">
<Errors> <ErrorType="12">Failed to process reservation with UniqueID XXXXXXXXXX</Error> </Errors></OTA_HotelResNotifRS>
Handling HTTP 500
If the response is a HTTP error response code in the 500 range then it is expected that the connecting OTA will implement a retry strategy until they are successfully delivered or a pre-defined timeout period is reached, for example, 30 minutes. Below we've provided a table that outlines the expected behaviour for each 500 range error. In the case that an update cannot be delivered within the timeout period, a case should be raised with our Application Operations team.