SOAP Message Structure

Overview

All messages exchanged with SMX are SOAP messages. They include a SOAP Security header for authentication purposes and contain the SOAP Body contains the OTA message. The following example is a complete SOAP message with the SOAP Security header.

<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
	<soap-env:Header xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
		<wsse:Security xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soap:mustunderstand="1">
			<wsse:UsernameToken>
				<wsse:Username>username</wsse:Username>
				<wsse:Password type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#passwordtext">secret</wsse:Password>
			</wsse:UsernameToken>
		</wsse:Security>
	</soap-env:Header>
	<soap-env:Body xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
		<OTA_HotelResNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.001" EchoToken="879791878" ResStatus="Commit" TimeStamp="2014-10-09T18:51:45">
      ...
    </OTA_HotelResNotifRQ>
	</soap-env:Body>
</soap-env:Envelope>

SOAP Security Header

The Security Header structure conveys authentication information. It is mandatory and both the /wsse:UsernameToken/wsse:Username and /wsse:UsernameToken/wsse:Password elements are mandatory. The only acceptable value for the Password/@Type attribute is http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText, indicating a plain text password. Plain text password are acceptable as all communication is done over encrypted HTTPS.

Credential Requirements

Partners will need to provide SMX with a single username and password to be used authentication. These details must be global for all hotels using the connection, not for each individual hotel.

Error Handling

It is expected that your application has a robust error handling process in place. Please refer to the Error Handling section of the Reservation API documentation for more information.

SOAP Faults

Generally OTA messages transmit "business logic" failures in the <Errors> element structure. However a SOAP fault can be returned in case of an unexpected error caused by for example a SOAP message where the xml cannot be parsed. The SOAP Fault will identify the party at fault (CLIENT/SERVER).

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
	<SOAP-ENV:Header/>
	<SOAP-ENV:Body>
		<SOAP-ENV:Fault>
			<faultcode>SOAP-ENV:Client</faultcode>
			<faultstring xml:lang="en">Authentication failed - Invalid username</faultstring>
		</SOAP-ENV:Fault>
	</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Last Updated: 5/15/2019, 2:43:27 PM