SAP Concur is able to handle HTTP errors, but the preference is for the supplier to return an OTA error whenever possible. SAP Concur only ever expects one OTA error per message. Any extra errors will be ignored. Currently OTA Warnings are not supported and will be ignored.
If the error is specifically related to application level errors, please do not respond with any other error types (HTTP etc.). If you have server level issues, then it is OK to respond with HTTP standard error codes.
Errors should always be returned in a response. For example:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" /> <soap:Body> <OTA_HotelSearchRS xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:ns2="http://www.concur.com/webservice/auth" AltLangID="en" EchoToken="11111111-2222-3333-4444-555555555555" PrimaryLangID="en" Version="4"> <Errors> <Error Code="322" ShortText="No availability" Type="13"></Error> </Errors> </OTA_HotelSearchRS> </soap:Body> </soap:Envelope>
If an error is present in any message, then the content of that message is discarded and only the error element is processed. Any text from the supplier will be logged and a SAP Concur message will be displayed to the user.
Currently SAP Concur does not support displaying of supplier generated errors directly in the UI.
SAP Concur only uses the very first Error that is returned, therefore any excess Error elements are dropped. Any Errors without a Type attribute will automatically be treated as ‘1’ meaning Unknown. See the Error Types table below.
|Errors||N||Complex||Element used to hold Error elements. SAP Concur only ever expects one Error element. An empty Errors element will be treated as an Unknown error.|
|Error||Y||Complex||Element to describe a particular error. Extra text can be placed inside this element, however SAP Concur expects the error message to be sent in the ShortText attribute.|
|Type||N||String||An Error Type Code. See the Error Types below.|
|ShortText||Y||String||A description of the error. The content of this attribute will be logged, but never displayed to the user.|
|Code||Y||String||An Error Code for a specific error.|
SAP Concur supports the following Error Type Codes in any of the responses:
|1||Unknown||Indicates an unknown error.|
|2||No implementation||Indicates that the target business system has no implementation for the intended request.|
|13||Application error||Indicates that an involved back-end application returned an error which is passed back in the response message.|
Note: The OTA Error-Type code of 4 - Authentication (indicates the message lacks adequate security credentials) is not expected by SAP Concur. For all authentication errors SAP Concur expects an HTTP 403.
SAP Concur expects the following Errors under the given Error Types:
|188||Transaction error||For errors not specified in other codes. Internal supplier log ID can be provided in ShortText for debugging.|
|1||Not implemented||The supplier can respond with this error if the end point called is not yet implemented.|
|242||Credit card number is invalid or missing||Missing Credit Card number|
|320||Invalid value||Comma separated node or attribute and sent value should be provided in the content of the error element. Example:
|322||No availability||Hotel Codes should be provided in content of the element. Example:
|424||No hotels found which match this input||Search parameters - geo-code and radius should be provided in content of the element and formatted as tokenized list: Latitude, Longitude, Radius, Unit of Measure code. Example:
|95||Booking already cancelled||Booking already cancelled|
|438||Requested rate not available||List of comma separated RatePlanID’s should be provided in content of the element. Example:
|748||Invalid corporate ID||Requestor ID should be provided in the content of the element.|
|400||Invalid property code||List of comma separated Hotel Codes should be provided in content of the element. Example:
|385||Invalid confirmation or cancellation number||Reservation ID should be provided in content of the element.|