Booking Notification API
ReferenceBooking Notification API

Cancelled reservations

The <OTA_CancelRQ/RS> message pair is used to send notifications for cancellations from Expedia Group to your system.

Request

The <OTA_CancelRQ> message will contain the property's confirmation number and Expedia Group's booking ID in the <UniqueID> element @ID attribute to identify the reservation to cancel. This element identifies the reservation and requests a cancellation.

OTA_CancelRQ element

The <OTA_CancelRQ> element is the root element for cancelled reservations, and it requires the xmlns attribute, which is the namespace to which this message belongs. Current namespace for requests is http://www.opentravel.org/OTA/2003/05. The message also requires additional attributes for the request to be recognized by your system. Notice that the @ResStatus attribute has been replaced by the @CancelType attribute for cancellation request messages.

Root attributes

Name

Description

@EchoToken

A sequence number for additional message identification, assigned by the requesting host system. It must be echoed back in the corresponding response message. In the booking notification request generated by Expedia Group, EchoToken has the same value as the RequestId in the Header. Occurs once; Data type: string, 1-20 characters

@TimeStamp

Date and time when the request message was sent by Expedia Group. Data type: date, time; Timestamp as defined in ISO 8601 extended format.

  • Will always be in the following format:
  • YYYY-MM-DDThh:mm:ssZ

@Target

Indicates the message is a production message. Data type: NMTOKEN, value is always “Production”

@Version

Version of the OTA message. Data type: decimal, n.nnn Value 1.000

@PrimaryLanguageID

Primary language code. Data type: string, value is always en-us.

@CancelType

An enumeration that indicates the action to be taken on the request. Data type: string, value: only “Commit” is supported.

Syntax
1<OTA_CancelRQ xmlns="http://www.opentravel.org/OTA/2003/05" CancelType="Commit" EchoToken="token" PrimaryLangID="en-us" Target="Production" TimeStamp="datetime" Version="1.000">
2<POS>
3<Source>
4<RequestorID ID="A-Expedia" Type="18"/>
5<BookingChannel Primary="true" Type="2">
6<CompanyName>Expedia</CompanyName>
7</BookingChannel>
8</Source>
9</POS>
10<UniqueID ID="13357309" Type="14">
11<CompanyName>Expedia</CompanyName>
12</UniqueID>
13<UniqueID ID="TESTCONF" Type="10">
14<CompanyName>property</CompanyName>
15</UniqueID>
16<Verification>
17<PersonName>
18<GivenName>Etienne</GivenName>
19<Surname>Tester</Surname>
20</PersonName>
21<Vendor Code="1" CodeContext="ChainCode"/>
22<Vendor Code="2" CodeContext="BrandCode"/>
23<Vendor Code="3" CodeContext="HotelCode">1154286</Vendor>
24<ReservationTimeSpan End="date" Start="date"/>
25<AssociatedQuantity Code="1" CodeContext="Number of rooms" Quantity="1"/>
26<AssociatedQuantity Code="2" CodeContext="Number of guests" Quantity="4"/>
27</Verification>
28</OTA_CancelRQ>

UniqueID element

The <UniqueID> element is the unique identifier of the reservation to be cancelled. Like modified reservations, this element will appear twice in cancellation request messages. Once for the Expedia Group booking ID and once for the property’s confirmation number.

Syntax
1<soap-env:Body>
2<OTA_CancelRQ xmlns="http://www.opentravel.org/OTA/2003/05" CancelType="Commit" EchoToken="token" PrimaryLangID="en-us" Target="Production" TimeStamp="datetime" Version="1.000">
3<UniqueID ID="13357309" Type="14">
4<CompanyName>Expedia</CompanyName>
5</UniqueID>
6<UniqueID ID="TESTCONF" Type="10">
7<CompanyName>property</CompanyName>
8</UniqueID>
9</OTA_CancelRQ>
10</soap-env:Body>
Hierarchy
1<UniqueID>
2<CompanyName>
Child elements and attributes

Name

Description

@Type

This attribute is a reference to the type of object defined by the <UniqueID> element. Data type: OTA_CodeType. Value will always be either 10=Hotel, to be used to specify the property's confirmation number OR 14=Reservation, to be used to specify the Expedia Group booking ID.

@ID

This attribute is a unique identifying value assigned by the creating system to the reservation. This will be either the property's confirmation number or the Expedia Group booking ID. Single occurrence in each <UniqueID> element. Data type: string, 1 to 64 characters

<CompanyName> element

This is the child element of the <UniqueID> element.

It identifies the company that is associated with the <UniqueID>. For the Expedia Group booking ID, this value will be set to "Expedia". For the property's confirmation number, Expedia Group and the property will determine what identifier should be for the property's system. Data type: string, 1-64 characters

Verification element

The <Verification> element is the container element for the cancellation verification information. This information ensures that the correct booking is being cancelled.

Syntax
1<soap-env:Body>
2<OTA_CancelRQ xmlns="http://www.opentravel.org/OTA/2003/05" CancelType="Commit" EchoToken="token" PrimaryLangID="en-us" Target="Production" TimeStamp="datetime" Version="1.000">
3<Verification>
4<PersonName>
5<GivenName>Etienne</GivenName>
6<Surname>Tester</Surname>
7</PersonName>
8<Vendor Code="1" CodeContext="ChainCode"/>
9<Vendor Code="2" CodeContext="BrandCode"/>
10<Vendor Code="3" CodeContext="HotelCode">1154286</Vendor>
11<ReservationTimeSpan End="date" Start="date"/>
12<AssociatedQuantity Code="1" CodeContext="Number of rooms" Quantity="1"/>
13<AssociatedQuantity Code="2" CodeContext="Number of guests" Quantity="4"/>
14</Verification>
15</OTA_CancelRQ>
16</soap-env:Body>
Hierarchy
1<soap-env:Body>
2<OTA_CancelRQ>
3<Verification>
Child elements and attributes

Name

Description

<PersonName> element

This is a child element of the <Verification> element.

<PersonName> the container element for the full guest name. This is the primary guest of the reservation. This information serves to validate that the correct booking is being cancelled. Single occurrence.

#### Child elements

  • <GivenName> element- The primary guest's first name. Single occurrence. Data type: string, 1-60 characters
  • <MiddleName> element- The primary guest's middle name.Optional, single occurrence when present. Data type: string, 1-60 characters
  • <Surname> element- The primary guest's last name. Single occurrence. Data type: string, 1-60 characters

<Vendor> element

This is a child element of the <Verification> element.

The <Vendor> element is used to send the hotel code. Minimum 1 occurrence for the hotel code (Code=3). Code=1 for chain code and Code=2 for brand code might also be sent, but these will be blank.

Attributes:

  • Code- This attribute is one of the Code values. At least one occurrence per <Vendor> element. Data type: numeric. Values will be “1” for chain code, “2” for brand code, and/or “3” for hotel code. Code=3 must be present.
  • CodeContext- This attribute refers to the context for the @Code above. 1 to 3 occurrences. Data type: string, 1-32 characters. Values will be: “ChainCode” if the @Code value is “1” OR “BrandCode” if the @Code value is “2”.“HotelCode” is the value when the @Code value is “3” - this must be present so the Expedia Group ID can be sent.

<ReservationTimeSpan> element

This is a child element of the <Verification> element.

This element sends the time span that covers the entire room stay. Single occurrence.

Attributes:

  • Start - The start date of the entire room stay, also referred to as the check-in date. Single occurrence. Data type: YYYY-MM-DD
  • End - The end date of the entire room stay, also referred to as the check-out date. Single occurrence. Data type: YYYY-MM-DD

<AssociatedQuantity> element

This is a child element of the <Verification> element.

The <AssociatedQuantity> element is used to send the number of rooms and the number of guests included in the reservation. Occurs 1 or 2 times per <Verification> element. The following information will be sent under this element: “1” for Number of rooms, “2” for Number of guests.

Attributes:

  • Code- This attribute is used for the code values. One occurrence per <AssociatedQuantity> element. Data type: numeric. Values will always be either “1” for Number of rooms OR “2” for Number of guests
  • CodeContext- This attribute is used for the context for the code above. One occurrence per <AssociatedQuantity> element. Data type: string, 1-32 characters. Values will always be either “Number of rooms” if the @Code=1 OR “Number of guests” if the @Code=2
  • Quantity- Attribute conveys the number of rooms (Expedia Group reservation is always for 1 room) or the number of guests associated with the reservation. Single occurrence per <AssociatedQuantity> element. Data type: numeric, 1-2 digits

Response

The <OTA_CancelRS> element allows you to confirm successful processing of the cancel message. This message returns a cancellation number after completing the cancel action, or error code(s) if the request could not be processed successfully.

In a positive response <OTA_CancelRS> message, all the IDs will be echoed back in the general UniqueID structure but the property’s cancellation number will be placed in another UniqueID element contained within the <CancelInfoRS> element structure.

If the supplier is not able to cancel the reservation, you send a negative response message with the <OTA_CancelRS> element, but it will contain error information rather than cancellation information.

OTA_CancelRS element

This element returns a confirmation that the booking modification has been successfully received, or includes errors if the request did not succeed. The <OTA_CancelRS> message has a very similar XML structure as the <OTA_HotelResNotifRS> message, but some of the attributes are slightly different.

Expedia Group receives a confirmation number from success responses. Like success response messages for new reservations, the presence of the <Success> element in cancelled reservation responses indicates that the transaction was processed successfully. The <Success> element occurs once per success response message.

The <OTA_CancelRS> element requires the xmlns attribute, which is the namespace to which this message belongs. Current namespace for requests is http://www.opentravel.org/OTA/2003/05. The message also requires additional attributes for the request to be recognized by Expedia Group’s system.

Root attributes

Name

Description

@EchoToken

A sequence number for additional message identification, assigned by the requesting host system. It must be echoed back in the corresponding response message. In the booking notification request generated by Expedia Group, EchoToken has the same value as the RequestId in the Header. Occurs once; Data type: string, 1-20 characters

@TimeStamp

Date and time when the request message was sent by Expedia Group. Data type: date, time; Timestamp as defined in ISO 8601 extended format.

  • Will always be in the following format:
  • YYYY-MM-DDThh:mm:ssZ

@Target

Indicates the message is a production message. Data type: String, value is always “Production”

@Version

Version of the OTA message. Data type: decimal, n.nnn. Value 2.000

@PrimaryLanguageID

Primary language code. Data type: string, value is always “en-us”

@Status

The attribute that indicates the status of the response. This differs from new booking notifications and modification messages.

Data type: string, 9 characters allowed. Value: “Cancelled” used for success responses; “Ignored” used for error responses.

Syntax
1<soap-env:Body>
2<OTA_CancelRS xmlns="http://www.opentravel.org/OTA/2003/05" CancelType="Commit" EchoToken="token" PrimaryLangID="en-us" Target="Production" TimeStamp="datetime" Version="current version" Status="Cancelled">
3<Success/>
4<UniqueID ID="id number" Type="14">
5<CompanyName>Expedia</CompanyName>
6</UniqueID>
7<UniqueID ID="ID" Type="10">
8<CompanyName>company</CompanyName>
9</UniqueID>
10<CancelInfoRS>
11<UniqueID ID="ID" Type="10">
12<CompanyName>company</CompanyName>
13</UniqueID>
14</CancelInfoRS>
15</OTA_CancelRS>
16</soap-env:Body>
Hierarchy
1<soap-env:Body>
2<OTA_CancelRS>

UniqueID element

The <UniqueID> element is the unique identifier of the reservation to be cancelled. There will be two occurrences of this element, one to contain the original Expedia Group booking/reservation number, and another for the property’s confirmation number.

Syntax
1<UniqueID ID="id number" Type="14">
2<CompanyName>Expedia</CompanyName>
3</UniqueID>
4<UniqueID ID="ID" Type="10">
5<CompanyName>company</CompanyName>
6</UniqueID>
Hierarchy
1<soap-env:Body>
2<OTA_CancelRS>
3<UniqueID>
4<UniqueID>
Child elements

Name

Description

@Type

This attribute is the reference to the type of object defined by the <UniqueID> element. Single occurrence per <UniqueID> element. Data type: OTA_CodeType. Values will always be 10=Hotel, used to specify the property's confirmation number or 14=Reservation, used to specify the Expedia Group booking ID.

@ID

This attribute is a unique identifying value assigned by the creating system to the reservation. This will be either the property's confirmation number or the Expedia Group booking ID. Single occurrence per <UniqueID> element. Data type: string, maximum of 64 characters.

<CompanyName> element

This is a child element of the <UniqueID> element.

It identifies the company associated with the <UniqueID>. Data type: string, 1-64 characters. Values: For the Expedia Group booking ID, this value will be set to "Expedia". For the property's confirmation number, Expedia Group and the property will determine what identifier should be for the property's system.

CancelInfoRS element

In cancelled reservation success messages, the <HotelReservations> element from new booking notification responses is replaced with the<CancelInfoRS> element.

The <CancelInfoRS> element is a container element that represents a collection of modified reservations. Each response message represents a single reservation. It includes the <UniqueID> element, which is the container element that represents the property’s primary cancellation number.

Syntax
1<CancelInfoRS>
2<UniqueID ID="ID" Type="10">
3<CompanyName>company</CompanyName>
4</UniqueID>
5</CancelInfoRS>
Hierarchy
1<soap-env:Body>
2<OTA_CancelRS>
3<CancelInfoRS>
Child elements

Name

Description

<UniqueID> element

This is a child element of the <CancelInfoRS> element. This instance of the <UniqueID> element is the unique identifier that contains the property's primary cancellation number.

Child attributes and element:

  • Type- This attribute is the reference to the type of object defined by the <UniqueID> element. Single occurrence per <UniqueID> element. Data type: numeric, two digits. Values will always be 10=Hotel to specify that it refers to the property's cancellation number
  • ID- This attribute is the primary property cancellation number. Single occurrence per <UniqueID> element. Data type: string, maximum of 32 characters.
  • <CompanyName> element- This is the child element of the <UniqueID> element. It identifies the company associated with the <UniqueID>. Data type: string, 1-64 characters. Values: Expedia Group and the property will determine what identifier should be for the property's system.

Errors element

The presence of the <Errors> element indicates that the transaction failed to process correctly. The <Errors> element is the container element for a collection of error messages. Occurs once per error response message.

An error response for a modified booking is the same as the <OTA_HotelResNotifRS> message, except the root tag will be "<OTA_CancelRS>" instead of "<OTA_HotelResNotifRS>". You must return an explicit error code and a detailed error message must be included in the error response. The list of error codes can be found in the Error Codes for Response Messages table.

Syntax
1<soap-env:Body>
2<OTA_CancelRS xmlns="http://www.opentravel.org/OTA/2003/05" CancelType="Commit" EchoToken="token" PrimaryLangID="en-us" Target="Production" TimeStamp="datetime" Version="current version" Status="Ignored">
3<Errors>
4<Error Language="en-us" Type="3" ShortText="ErrorCode" Code="450">text of error code description</Error>
5</Errors>
6</OTA_CancelRS>
7</soap-env:Body>
Child elements

Name

Description

<Error> element

This element is a child element of the <Errors> element.

The <Error> element is the container element for the error message structure. Occurs at least once per error response message, up to 99 times within each <Errors> element.

Detailed error description is placed directly under this element. Data type: string, up to 512 characters.

Attributes:

  • Language- This attribute represents the language of the textual error message. Single occurrence. Value for this attribute is always “en-us”
  • Type- This attribute is the OTA error type. The DC interface uses a generic error type for all errors. Data type: String 16. Value is always Type 3 = Business error
  • Code- This is the OTA error code. The DC interface uses a generic code for all errors. Data type: String 16. Value is always Code 450 = Unable to process
  • ShortText - This attribute is the 4-digit error code defined by the Direct Connect API. SeeError codes for response messagesfor all supported error codes that can be specified here. Data type: string, 64 characters

Examples

Here are request and response examples for cancelled reservations.

Cancelled Hotel Collect reservation with children and extra charges

Request:

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="22922850" RequestorId="Expedia.com" ResponderId="EQCSpecTest" ExpirationDateTime="2016-05-17T21:33:00+00:00" Location="Body">
5 <CommDescriptor SourceId="ExpediaDC" DestinationId="EQCSpecTest" RetryIndicator="false">
6 <Authentication Username="Expedia" Password="Password"/>
7 </CommDescriptor>
8 <PayloadDescriptor Name="OTA_CancelRQ" Version="2003A">
9 <PayloadReference SupplierHotelCode="1154286" DistributorHotelId="1154286"/>
10 </PayloadDescriptor>
11 </PayloadInfo>
12 </Interface>
13 </soap-env:Header>
14 <soap-env:Body>
15 <OTA_CancelRQ xmlns="http://www.opentravel.org/OTA/2003/05" CancelType="Commit" EchoToken="22922850" PrimaryLangID="en-us" Target="Production" TimeStamp="2016-05-17T12:03:00-07:00" Version="1.000">
16 <POS>
17 <Source>
18 <RequestorID ID="A-Expedia" Type="18"/>
19 <BookingChannel Primary="true" Type="2">
20 <CompanyName>Expedia</CompanyName>
21 </BookingChannel>
22 </Source>
23 </POS>
24 <UniqueID ID="13357309" Type="14">
25 <CompanyName>Expedia</CompanyName>
26 </UniqueID>
27 <UniqueID ID="TESTCONF" Type="10">
28 <CompanyName>EQCSpecTest</CompanyName>
29 </UniqueID>
30 <Verification>
31 <PersonName>
32 <GivenName>Etienne</GivenName>
33 <Surname>Tester</Surname>
34 </PersonName>
35 <Vendor Code="1" CodeContext="ChainCode"/>
36 <Vendor Code="2" CodeContext="BrandCode"/>
37 <Vendor Code="3" CodeContext="HotelCode">1154286</Vendor>
38 <ReservationTimeSpan End="2016-06-03" Start="2016-05-29"/>
39 <AssociatedQuantity Code="1" CodeContext="Number of rooms" Quantity="1"/>
40 <AssociatedQuantity Code="2" CodeContext="Number of guests" Quantity="4"/>
41 </Verification>
42 </OTA_CancelRQ>
43 </soap-env:Body>
44</soap-env:Envelope>

Response:

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 Location="Body" RequestId="22922850" RequestorId="Expedia.com" ResponderId="EQCSpecTest" ExpirationDateTime="2016-05-17T21:28:00+00:00">
5 <CommDescriptor DestinationId="ExpediaDC" SourceId="EQCSpecTest" RetryIndicator="false"/>
6 <PayloadDescriptor Name="OTA_CancelRS" Version="2003A">
7 <PayloadReference SupplierHotelCode="1154286"/>
8 </PayloadDescriptor>
9 </PayloadInfo>
10 </Interface>
11 </soap-env:Header>
12 <soap-env:Body>
13 <OTA_CancelRS xmlns="http://www.opentravel.org/OTA/2003/05" Target="Production" TimeStamp="2016-05-17T02:57:35-04:00+00:00" Version="2.000" status="Cancelled">
14 <Success/>
15 <UniqueID ID="13357309" Type="14">
16 <CompanyName>Expedia</CompanyName>
17 </UniqueID>
18 <UniqueID ID="TESTCONF" Type="10">
19 <CompanyName>EQCSpecTest</CompanyName>
20 </UniqueID>
21 <CancelInfoRS>
22 <UniqueID ID="TESTCANCEL" Type="10">
23 <CompanyName>EQCSpecTest</CompanyName>
24 </UniqueID>
25 </CancelInfoRS>
26 </OTA_CancelRS>
27 </soap-env:Body>
28</soap-env:Envelope>

Cancelled booking with Expedia Virtual Card details

The following is a sample Booking Notification request and response pair for a cancelled booking. One cancelled booking is returned, which was originally payable to the property with an Expedia Virtual Card.

Request:

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="22922954" RequestorId="Expedia.com" ResponderId="EQCSpecTest" ExpirationDateTime="2016-05-17T22:02:00+00:00" Location="Body">
5 <CommDescriptor SourceId="ExpediaDC" DestinationId="EQCSpecTest" RetryIndicator="false">
6 <Authentication Username="Expedia" Password="Password"/>
7 </CommDescriptor>
8 <PayloadDescriptor Name="OTA_CancelRQ" Version="2003A">
9 <PayloadReference SupplierHotelCode="1154286" DistributorHotelId="1154286"/>
10 </PayloadDescriptor>
11 </PayloadInfo>
12 </Interface>
13 </soap-env:Header>
14 <soap-env:Body>
15 <OTA_CancelRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="22922954" TimeStamp="2016-05-17T12:32:00-07:00" Target="Production" Version="1.000" PrimaryLangID="en-us" CancelType="Commit">
16 <POS>
17 <Source>
18 <RequestorID Type="18" ID="Expedia"/>
19 <BookingChannel Type="2" Primary="true">
20 <CompanyName>Expedia</CompanyName>
21 </BookingChannel>
22 </Source>
23 </POS>
24 <UniqueID Type="14" ID="13357395">
25 <CompanyName>Expedia</CompanyName>
26 </UniqueID>
27 <UniqueID Type="10" ID="ModifyConf123">
28 <CompanyName>EQCSpecTest</CompanyName>
29 </UniqueID>
30 <Verification>
31 <PersonName>
32 <GivenName>Etienne</GivenName>
33 <Surname>Beaulne-Dury</Surname>
34 </PersonName>
35 <Vendor Code="1" CodeContext="ChainCode"/>
36 <Vendor Code="2" CodeContext="BrandCode"/>
37 <Vendor Code="3" CodeContext="HotelCode">1154286</Vendor>
38 <ReservationTimeSpan Start="2016-06-01" End="2016-06-04"/>
39 <AssociatedQuantity Code="1" CodeContext="Number of rooms" Quantity="1"/>
40 <AssociatedQuantity Code="2" CodeContext="Number of guests" Quantity="5"/>
41 </Verification>
42 </OTA_CancelRQ>
43 </soap-env:Body>
44</soap-env:Envelope>

Response:

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 Location="Body" RequestId="22922954" RequestorId="Expedia.com" ResponderId="EQCSpecTest" ExpirationDateTime="2016-05-17T21:28:00+00:00">
5 <CommDescriptor DestinationId="ExpediaDC" SourceId="EQCSpecTest" RetryIndicator="false"/>
6 <PayloadDescriptor Name="OTA_CancelRS" Version="2003A">
7 <PayloadReference SupplierHotelCode="1154286"/>
8 </PayloadDescriptor>
9 </PayloadInfo>
10 </Interface>
11 </soap-env:Header>
12 <soap-env:Body>
13 <OTA_CancelRS xmlns="http://www.opentravel.org/OTA/2003/05" Target="Production" TimeStamp="2016-05-17T02:57:35.247-04:00" Version="1.000" PrimaryLangID="en-us" Status="Cancelled">
14 <Success/>
15 <UniqueID ID="13357395" Type="14">
16 <CompanyName>Expedia</CompanyName>
17 </UniqueID>
18 <UniqueID ID="TestModifyConf" Type="10">
19 <CompanyName>EQCSpecTest</CompanyName>
20 </UniqueID>
21 <CancelInfoRS>
22 <UniqueID ID="TestCancel2" Type="10">
23 <CompanyName>EQCSpecTest</CompanyName>
24 </UniqueID>
25 </CancelInfoRS>
26 </OTA_CancelRS>
27 </soap-env:Body>
28</soap-env:Envelope>