Booking Notification API
ReferenceBooking Notification API

SOAP/HTTP headers

This topic describes the SOAP and HTTP header requirements for Booking Notification requests and responses.

SOAP request header

The common message header structure is used for communication level information to uniquely identify a message and to provide authentication information.

The soap-env:Envelope element must be present and requires the xmlns:soap-env element, which is the namespace to which this message belongs. Current namespace for requests is http://schemas.xmlsoap.org/soap/envelope/.

Request header

Within the soap envelope, the Header element is the root element and includes the Interface element with the xmlns attribute, which is the namespace to which this message belongs. Current namespace for requests is http://www.newtrade.com/expedia/R14/header.

The Header of a request message also includes these data elements:

  • The <PayloadInfo> element with a @RequestID that uniquely identifies the request, and the @RequestorID and @ResponderID that identify the source and destination of the notification.
  • The <CommDescriptor> element with the @SourceID and @DestinationID of the request message and a Retry Indicator.
  • The <Authentication> element with username and password is required in the request message.
  • The <PayloadDescriptor> element with the name of the OTA message in the message body.
  • The <PayloadReference> element with the property identifier.
Syntax
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="644630088" RequestorId="Expedia.com" ResponderId="EQCTest" ExpirationDateTime="2016-05-10T03:59:00+00:00" Location="Body">
5 <CommDescriptor SourceId="ExpediaDC" DestinationId="EQCTest" RetryIndicator="false">
6 <Authentication Username="Test" Password="Pa$$w0rd" />
7 </CommDescriptor>
8 <PayloadDescriptor Name="OTA_HotelResNotifRQ" Version="2003A">
9 <PayloadReference SupplierHotelCode="40512" DistributorHotelId="40512" />
10 </PayloadDescriptor>
11 </PayloadInfo>
12 </Interface>
13 </soap-env:Header>
14 <soap-env:Body>
15 ...
16 </soap-env:Body>
17</soap-env:Envelope>
Child elements

Element

Description

<Interface> element

This the root element within the SOAP header. It includes the xmlns attribute, which is the namespace to which this message belongs. Current namespace for requests is http://www.newtrade.com/expedia/R14/header.

Attributes:

  • Name- This attribute represents the <Interface> name. Data type: string, 1-20 characters. Always set toExpediaDirectConnect.
  • Version- Refers to the API version. Data type: numeric, n.nn format. Only version 4.0 is supported.
  • <PayloadInfo> element- see below

<PayloadInfo> element

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

This element contains the SOAP header information related to the payload (the business message) in the SOAP body. One per message.

Attributes:

  • RequestID- This attribute is an end-to-end communication token used to link a request message to a response message. Occurs once per message. Data type: string, 1-20 characters
  • RequestorID- This attribute is the identifier of the party that is the source of the Request message. Occurs once per message. Data type: string, 1-64 characters
  • ResponderID- Identifier of the party that is the source of the response message. Occurs once per message. Data type: string, 1-64 characters
  • ExpirationDateTime- This attribute sets the notification expiration date and time. Set by Expedia Group in the Booking Notification request.Optional, but only occurs once if present. Data type: dateTime, ISO 8601 extended format YYYY-MM-DDThh:mm:ss[+/-]hh:mm.
  • Location- Indicates the Payload is sent in the SOAP body, and not as an attachment. Occurs once per message. Data type: string, 4 characters. Always set to Body.
  • <CommDescriptor> element- see below for details
  • <PayloadDescriptor> element- see below for details

<CommDescriptor> element

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

This element holds the communication level information about the payload being transferred. Occurs once per message.

Attributes:

  • SourceID- This attribute is the identifier of the party sending the message. Occurs once per message. Data type: string, 1-64 characters
  • DestinationID- This identifies the destination for this message. Occurs once per message. Data type: string, 1-64 characters
  • RetryIndicator- This attribute indicates whether or not this is a retransmission of a given message. It will be set to true if the message is being retried. Occurs once per message. Data type: Boolean, true/false
  • <Authentication> element- see below for details

<Authentication> element

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

This element holds the Information used by Expedia Group to authenticate its ongoing booking notifications to partners. Optional, if present, occurs only once per message.

Attributes:

  • Username- The username the requestor is using to authenticate. Occurs once per message. Data type: string, 1-64 characters.
  • Password- The password the requestor uses to authenticate. Occurs once per message. Data type: string, 1-64 characters.

<PayloadDescriptor> element

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

This element holds the business level information about the payload being transferred. Occurs once per message.

Attributes:

  • Name- This attribute is the name of the OTA message being sent in the message body. Data type: string, 1-32 characters
  • Version- Represents the version of the OTA message with respect to the OTA specs release. Data type: string, 5 characters. Always set to 2003A
  • <PayloadReference> element- see details below

<PayloadReference> element

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

This element holds the property identifier information. Optional, but if present, only occurs once per message.

Attributes:

  • SupplierHotelCode- Your hotel code. In many cases, this should be set to the Expedia hotel ID. Data type: string, 1-16 characters
  • DistributorHotelID-Optional. Expedia Hotel ID. If present, only occurs once. Data type: string, 1-10 characters.

Payload name value set

This attribute indicates the name of the OTA message being sent in the XML message. The value set used by the API is defined in the table below.

OTA Payload Name (<PayloadDescriptor>/@Name)

OTA_HotelResNotifRQ

OTA_HotelResNotifRS

OTA_HotelResModifyNotifRQ

OTA_HotelResModifyNotifRS

OTA_CancelRQ

OTA_CancelRS

HTTP request header

The Booking Notification request is sent via HTTP POST and is answered back by the OTA response or Nack via HTTP response.

  • HTTP POST header example:

    POST /ServletDispatcher HTTP/1.1 Host: destinationpartner.com Content-Type: text/xml; charset=UTF-8 Content-Length: 1234SOAPAction: ""

  • HTTP response header for OTA response example:

    HTTP/1.1 200 OK Content-Type: text/xml; charset=UTF-8 Content-Length: 1234

  • HTTP response header for NACK example:

    HTTP/1.1 500 Internal Server Error Content-Type: text/xml; charset=UTF-8 Content-Length: 2291

SOAP response header

The common message header structure is used for communication level information to uniquely identify a message and to provide authentication information.

The soap-env:Envelope element must be present and requires the xmlns:soap-env element, which is the namespace to which this message belongs. Current namespace for requests is http://schemas.xmlsoap.org/soap/envelope/.

Response header - Success or business failure

The header of a response message must include these data elements:

  • The Payload element with the same Request ID, Requestor ID and Responder ID returned in the response message that were received in the request (RQ) message.
  • The CommDescriptor element with the Source ID and Destination ID for the response message. For request messages, the SourceId="ExpediaDC" and the @DestinationId is the partner. In response messages, however, this is reversed and the @SourceId is the partner and the DestinationId="ExpediaDC".
  • The PayloadDescriptor element with the name of the OTA message in the message body.

The PayloadReference element can be sent in the response message but is not required.

Example
1<soap-env:Envelopexmlns: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="644630088" RequestorId="Expedia.com" ResponderId="EQCTest">
5<CommDescriptor DestinationId="ExpediaDC" SourceId="EQCTest" RetryIndicator="false"/>
6<PayloadDescriptor Name="OTA_HotelResNotifRS" Version="2003A">
7<PayloadReference SupplierHotelCode="40512" DistributorHotelId="40512"/>
8</PayloadDescriptor>
9</PayloadInfo>
10</Interface>
11</soap-env:Header>
12<soap-env:Body>
13...
14</soap-env:Body>
15</soap-env:Envelope>
Child elements

Element

Description

<Interface> element

This the root element within the SOAP header. It includes the xmlns attribute, which is the namespace to which this message belongs. Current namespace for requests is http://www.newtrade.com/expedia/R14/header.

Attributes:

  • Name- This attribute represents the <Interface> name. Data type: string, 1-20 characters. Always set toExpediaDirectConnect.
  • Version- Refers to the API version. Data type: numeric, n.nn format. Only version 4.0 is supported.
  • <PayloadInfo> element- see below

<PayloadInfo> element

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

This element contains the SOAP header information related to the payload (the business message) in the SOAP body. One per message.

Attributes:

  • RequestID- This attribute is an end-to-end communication token used to link a request message to a response message. Occurs once per message. Data type: string, 1-20 characters
  • RequestorID- This attribute is the identifier of the party that is the source of the Request message. Occurs once per message. Data type: string, 1-64 characters
  • ResponderID- Identifier of the party that is the source of the response message. Occurs once per message. Data type: string, 1-64 characters
  • ExpirationDateTime- This attribute sets the notification expiration date and time. Set by Expedia Group in the Booking Notification request.Optional, but only occurs once if present. Data type: dateTime, ISO 8601 extended format YYYY-MM-DDThh:mm:ss[+/-]hh:mm.
  • Location- Indicates the Payload is sent in the SOAP body, and not as an attachment. Occurs once per message. Data type: string, 4 characters. Always set to Body.
  • <CommDescriptor> element- see below for details
  • <PayloadDescriptor> element- see below for details

<CommDescriptor> element

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

This element holds the communication level information about the payload being transferred. Occurs once per message.

Attributes:

  • SourceID- This attribute is the identifier of the party sending the message. Occurs once per message. Data type: string, 1-64 characters
  • DestinationID- This identifies the destination for this message. Occurs once per message. Data type: string, 1-64 characters
  • RetryIndicator- This attribute indicates whether or not this is a retransmission of a given message. It will be set to true if the message is being retried. Occurs once per message. Data type: Boolean, true/false
  • <Authentication> element- see below for details

<Authentication> element

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

This element holds the Information used by Expedia Group to authenticate its ongoing booking notifications to you. Optional, if present, occurs only once per message.

Attributes:

  • Username- The username the requestor is using to authenticate. Occurs once per message. Data type: string, 1-64 characters.
  • Password- The password the requestor uses to authenticate. Occurs once per message. Data type: string, 1-64 characters.

<PayloadDescriptor> element

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

This element holds the business level information about the payload being transferred. Occurs once per message.

Attributes:

  • Name- This attribute is the name of the OTA message being sent in the message body. Data type: string, 1-32 characters
  • Version- Represents the version of the OTA message with respect to the OTA specs release. Data type: string, 5 characters. Always set to 2003A
  • <PayloadReference> element- see details below

<PayloadReference> element

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

This element holds the property identifier information. Optional, but if present, only occurs once per message.

Attributes:

  • SupplierHotelCode- Your hotel code. In many cases, this should be set to the Expedia hotel ID. Data type: string, 1-16 characters
  • DistributorHotelID-Optional. Expedia Hotel ID. If present, only occurs once. Data type: string, 1-10 characters.

Response header - Temporary system failure

If you are experiencing temporary issues with a request sent by Expedia Group, you can return a negative acknowledgement with an empty <Header> element. The <Fault> element will still be a child of the <Body> element.

Example
1<?xml version="1.0" encoding="UTF-8"?>
2<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
3<soap-env:Header/>
4<soap-env:Body>
5<soap-env:Fault>
6<faultcode>soap-env:Client.2002</faultcode>
7<faultstring>SOAP envelope was not found.</faultstring>
8<faultactor>MessageReceiver.MessageParser</faultactor>
9</soap-env:Fault>
10</soap-env:Body>
11</soap-env:Envelope>

When a partner uses SOAP faults, Expedia Group will retry the message until the expiration time is reached.

Child elements

Name

Description

Body

Container element for the business message or the Fault element. One occurrence per message.

Fault

Optional. Container element for fault details.

Child elements:

  • Faultcode- Code for the error. Must be present if the <Fault> element is used. SeeError Codes forNack for all supported codes. See Error Handlingfor more details around error handling. Data type: string, 1-11 characters
  • Faultstring- This element contains the description of the error. This attribute must be present if the <Fault> element is used. Data type: string, 1-128 characters
  • Faultactor-Optional. This element provides more information about the source of the fault. Data type: string, 1-128 characters

HTTP response header

The Booking Notification request is sent via HTTP Post, and is answered back by the OTA response or Nack via HTTP response.

  • HTTP POST header example:

    POST /ServletDispatcher HTTP/1.1 Host: destinationpartner.com Content-Type: text/xml; charset=UTF-8 Content-Length: 1234 SOAPAction: ""

  • HTTP response header for OTA response example:

    HTTP/1.1 200 OK Content-Type: text/xml; charset=UTF-8 Content-Length: 1234

  • HTTP response header for NACK example:

    HTTP/1.1 500 Internal Server Error Content-Type: text/xml; charset=UTF-8 Content-Length: 2291