Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Overview

All messages exchanged with pmsXchange 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 (this one shows an OTA_ReadRQ message payload)

Code Block
languagexml
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Header>
    <wsse:Security soap:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
      <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:Header>

  <soap:Body>

    <OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" EchoToken="abc123" TimeStamp="2012-03-09T21:32:52+08:00">
      <POS>
        <Source>
          <RequestorID Type="22" ID="PMS1"/>
        </Source>
      </POS>
      <ReadRequests>
        <HotelReadRequest HotelCode="ABC">
          <SelectionCriteria SelectionType="Undelivered" ResStatus="Book"/>
        </HotelReadRequest>
      </ReadRequests>
    </OTA_ReadRQ>

  </soap:Body>
</soap: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 HTTP.

Each connecting pmsXchange partner will be allocated a USERNAME and PASSWORD for use with this header.

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 Fault - Invalid XML

Code Block
languagexml
<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"
				xmlns:xml="http://www.w3.org/XML/1998/namespace">Authentication failed - invalid username</faultstring>
		</SOAP-ENV:Fault>
	</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

...