Booking Notification API
ReferenceBooking Notification API

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 the notification or the check-in date is in the past.

Note that for bookings made past midnight of the check-in date, this error should not be returned. The check-in date's effective date is createDateTime minus one day.

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.

  • Card number is invalid
  • Card effective or expiration date is invalid

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:

  • If the payment type is not permitted by the property, for example credit card payment is not enabled in your system for the given property.
  • If your system cannot handle payment type change to an existing booking, for example a credit card information is sent by Expedia Group for a booking made prior to the Expedia Virtual Card activation.

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 CodeError TextError ConditionData SourceApplicable to
4201Read timed out executing POST {url}. \ Unable to parse.Socket timeout value reached. \ Parsing exception.Internal to ExpediaBooking, Modify, Cancel
4202Expedia 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 ExpediaBooking, Modify, Cancel
4203Unexpected element {element in question}. Expected elements are {correct values}.May refer to incorrect namespace, message type, etc.Internal to ExpediaBooking, Modify, Cancel
4204Unable to send request, interface closed.Connection has been disabled by Expedia.Internal to ExpediaBooking, Modify, Cancel
4205(Depends on the exception thrown.)Unable to establish a handshake.Internal to ExpediaBooking, Modify, Cancel