Error handling
Errors occurring at the acknowledgement level will be reported as a negative acknowledgment using a Fault element. Errors occurring afterwards should be communicated to Expedia by returning an OTA response with the "Errors" element in it. If Expedia Group receives a Nack on the request post, Expedia Group will perform a retry.
Since Expedia Group bookings are guaranteed, in most cases you should accept the booking notification and return a confirmation number. You can only reject the notification for a limited number of reasons, which correspond to the list of error codes defined by this API.
In general, you can reject the notification if mandatory data elements or attributes are missing or some elements or attribute have invalid values according to this specification. However, we encourage you to build your interfaces to handle as many exceptional cases as possible by putting the notification into your systems and returning positive responses with confirmation numbers. The goal is to reduce the number of emails resulting from failed notifications because in the end, one way or another, the notification will be entered in your systems.
The only acceptable errors in the OTA content that may justify an error response message concern the guest name, the check-in or check-out date, the property ID, the room type code, the rate plan code, number of guests, and for modification and cancellation requests, the original supplier confirmation number.
Only a response with a confirmation number is considered a successful notification. Otherwise, Expedia Group will consider the notification failed, and a email notification will be sent to you.
Connectivity errors
These errors are reported when communication disruption occurs between Expedia Group and your software.
To avoid issues with certificate signing authorities, anyone developing in Java should use version 1.4.2_13 or newer.
If you prefer to use an older version of Java or an in-house SSL library, you will need to import the Entrust CA certificate.
- Entrust CA common name CN = Entrust.net Certification Authority (2048).
- To manually import the Entrust.net Certification Authority (2048) Certificate, download the CA certificate.
Error flow 1: Nack for request
Initial condition: you are not able to read the request header or the request header is not valid or you cannot store the request message.
Step | Expedia | DC Partner |
---|---|---|
5 | You validate the message header, and store the request message. | |
6 | You return a negative acknowledgement, indicating that the message has not been received correctly and will not be processed by your system. Detailed information on Nack error codes . |
Final condition: Expedia Group received a negative acknowledgement. After a retry delay Expedia Group will resend the request with retry indicator set to "true" until a response is received or maximum number of retries is reached. Expedia will retry until the expiration time is reached. If Expedia Group cannot get a valid response, the notification will be flagged as "failed", and then automatically fall back to email.
Error flow 2: No response for request
Initial condition: Expedia Group is not able to read the response you returned for the request post, or not able to get a response before a connection timeout.
Step | Expedia | DC Partner |
---|---|---|
6 | You return an acknowledgement of receipt of the request message, or a response if protocol is synchronous. | |
Expedia Group is not able to read the acknowledgement or connection timeout |
Final condition: after a retry delay, Expedia Group will resend the request with retry indicator set to "true" until an Acknowledgement/Response is received or expiration time of the notification is reached.
If Expedia Group cannot get a valid response after the maximum number of retries, the notification will be flagged as "failed", and then automatically fall back to email.
Error flow 3: Error response
Initial condition: you are not able to process the request. You reject the notification by sending back a response with the appropriate error message indicating why the request cannot be processed.
You can only reject the notification for a limited number of reasons. The error codes allowed in booking notification responses are listed in the section below. Expedia Group will automatically send failed bookings by email if you return a negative response.
Step | Expedia | DC Partner |
---|---|---|
7 | Your system is not able to process the request. | |
8 | You generate and send back a response with the appropriate error message, indicating the notification failed and for what reason. | |
9 | Main flow resumes at this step. Expedia Group validates the message header, and stores the response message. | |
Expedia Group then triggers a failover mechanism to issue a email notification to you to manually process the booking. |
Final condition: Expedia Group received a response with OTA error. The notifications will automatically fallback to email when a response with OTA error is received.
Notification identifier
A notification is identified by a RequestID. For booking notification, this ID is generated by Expedia Group and Expedia Group guarantees the ID is unique in all notifications sent by Expedia Group.
This ID is mandatory in all message requests and responses. You must return the RequestID in the response message with the same value sent in the request by Expedia Group.
Sample error message
A sample error response message for the error scenarios above.
1<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">2 <soap-env:Header>3 <Interface xmlns="http://www.newtrade.com/expedia/R14/header" Name="ExpediaDirectConnect" Version="4.0">4 <PayloadInfo RequestId="33196136" RequestorId="Expedia.com" ResponderId="PartnerID" Location="Body">5 <CommDescriptor SourceId="PartnerID" DestinationId="ExpediaDC" RetryIndicator="false">6 <Authentication Username="user" Password="pass"/>7 </CommDescriptor>8 <PayloadDescriptor Name="OTA_HotelResNotifRS">9 <PayloadReference SupplierHotelCode="OH167" DistributorHotelId="18827"/>10 </PayloadDescriptor>11 </PayloadInfo>12 </Interface>13 </soap-env:Header>14 <soap-env:Body>15 <OTA_HotelResNotifRS EchoToken="33196136" TimeStamp="2007-06-29T15:57:48-07:00" Target="Production" Version="2.000" PrimaryLangID="en-us" ResResponseType="Ignored" xmlns="http://www.opentravel.org/OTA/2003/05">16 <Errors>17 <Error Language="en-us" Type="3" ShortText="3203" Code="450">The Room Type Code is missing or invalid</Error>18 </Errors>19 </OTA_HotelResNotifRS>20 </soap-env:Body>21</soap-env:Envelope>
Nack error codes
Error codes for Nack are generated by your system upon receiving the Booking Notification request from Expedia Group.
After receiving a Nack error from you, Expedia Group will retry to send the request until a response (success or OTA error) is received or the maximum number of retries is reached. Expedia Group will retry the message until it expires.
Error Code | Error Description | Explanation and Partner Action |
---|---|---|
2000 | Missing header | The message receiver detected that mandatory attribute value is missing |
2001 | Invalid header | The message receiver detected that invalid values are sent in the message header. |
2002 | Parsing error: Unable to parse the message | The message receiver is not able to parse the message header. |
4000 | Software error | The message receiver encountered an internal software error while processing the message. |
5000 | Database error | The message receiver encountered a database error while processing the message. |
6000 | Unknown error | The message receiver encountered an unknown error while processing the message. |
Response message error codes
Upon receiving one of these error responses, the notification will fall back to email notification automatically. This means that Expedia Group will send the notification to you by email. Request messages that receive these errors will not be retried.
Note: Only these error codes are allowed in Booking Notification response messages.
For mapping errors (error codes 3202, 3203, and 3204), whether an error needs to be actioned by you or Expedia Group depends on who is responsible for the mapping.
Error Code | Error Description | Explanation and Partner Action |
---|---|---|
2002 | Unable to parse the message | The message receiver is not able to parse the message body. |
3200 | The booking was already cancelled | Your system could not perform the cancellation because the booking is already cancelled or does not exist anymore in your system. Applies to Cancel feature only. Expedia Group recommends that instead of using this code, you return a successful response with the cancellation number of the existing cancellation. |
3201 | Your confirmation number is missing or invalid | Applies to Modify and Cancel features. Your system could not modify or cancel the booking because it cannot find the original booking for the confirmation number sent in the notification. |
3202 | The property identifier is missing or invalid | Applies to Booking and Modify features. The property cannot be identified by the chain code, brand code, and property (hotel) code set in the notification. Verify if there is a mapping issue in your system. If the mapping is correct, please verify that the user configured for the API has access to update this property (i.e. the user is able to access this property through Partner Central). |
3203 | The Room Type Code is missing or invalid | Applies to Booking and Modify features. Your system could not create or modify the booking because no match was found in your system for the room type code sent in the notification. |
3204 | The Rate Plan Code is missing or invalid | Applies to Booking and Modify features. Your system could not create or modify the booking because no match was found in your system for the rate plan code sent in the notification. |
3205 | The guest name is missing | Applies to Booking and Modify features. Your system could not create or modify the booking because the guest name was not sent in the notification. |
3206 | The check-in date is missing or invalid | Applies to Booking, Modify, and Cancel features. Your system could not create, modify or cancel the booking because the check-in date was not sent in notification or the check-in date is in the past. |
3207 | The check-out date is missing or invalid. | Applies to Booking, Modify, and Cancel features. Your system could not create, modify or cancel the booking because the check-out date was not sent in notification or the check-out date is in the past. |
3208 | The guest count is missing or invalid | Applies to Booking and Modify features. Your system could not create or modify the booking because guest count was not sent in the notification, or the guest count exceeds max occupancy. |
3209 | Duplicate booking | Your system detected a duplicate booking based on its duplicate checking logic. |
3300 | Unable to process the credit card information | Applies to Booking and Modify features. Generated by the property for errors encountered when processing the credit card information sent in the XML.
|
3301 | Payment type not accepted or payment type change not allowed | Applies to Booking and Modify features. Generated by you for the following error scenarios:
|
Error codes in reporting
Some connection errors or malformed responses can result in an error code being generated and logged by Expedia; these will only show in the error reporting sent by Expedia. The below table references such codes. These do not have to be coded to as they will never appear in the notification RQ/RS.
Error Code | Error Text | Error Condition | Data Source | Applicable to |
---|---|---|---|---|
4201 | Read timed out executing POST {url}. \ Unable to parse. | Socket timeout value reached. \ Parsing exception. | Internal to Expedia | Booking, Modify, Cancel |
4202 | Expedia Connect generated this error response: The notification expired before a response was received. | Can occur if Expedia receives a NACK, malformed response, or is unable to confirm the booking upstream before retries are exhausted. | Internal to Expedia | Booking, Modify, Cancel |
4203 | Unexpected element {element in question}. Expected elements are {correct values}. | May refer to incorrect namespace, message type, etc. | Internal to Expedia | Booking, Modify, Cancel |
4204 | Unable to send request, interface closed. | Connection has been disabled by Expedia. | Internal to Expedia | Booking, Modify, Cancel |
4205 | (Depends on the exception thrown.) | Unable to establish a handshake. | Internal to Expedia | Booking, Modify, Cancel |