Table of Contents | ||||
---|---|---|---|---|
|
Audience
This document is intended for use by revenue management systems and their development teams that wish to connect to Windsurfer CRS properties in order to send rate and restriction recommendations to be posted through distribution channels.
The reader should be familiar with technologies supporting web services, XML and SOAP.
Overview
The Generic Revenue Management System (GenRMS) Interface is based on HTNG specifications – see Reference Documents – whose foundations are the OTA XML schemas. The interface has not yet been certified by HTNG.
The GenRMS Interface enables the Windsurfer® CRS to communicate with RMS software using OTA-compliant XML message sets over a variety of transport protocols. The interface supports the exchange of:
Availability and Restrictions
Inventory
Rate Amounts
Document Overview
The GenRMS API document is separated into sections that define the various message types and use cases supported by the interface.
The document defines the business rules, supported message formats and corresponding supported data elements and the expected behavior of participating systems and should be used as a guide to developers for the implementation of message sets.
Web Services
The participating partner site/channel will be provided with the web service that enables the partner to send messages to the CRS.
The partner will need to provide a web service with which the CRS can communicate responses to availability requests.
The following is the endpoint for our test environment: https://uat.windsurfercrs.com/rmsweb/GenRMSInteg?HotelCode={HotelCode}.
Authentication
Participating partner sites/channels will be obligated to provide appropriate credentials, as defined in the SOAP header, to utilize the CRS web services. Credentials include:
User Name [ID] – a unique login name for authentication
Password – a secure password corresponding to the user name
Communication Pattern and SOAP Actions and Headers
The GenRMS Interface uses a communication pattern called the “HTNG Asynchronous Communication Process”. This process is described in detail in section 4 of the HTNG Property Web Services Specification Release 2009B.
...
All messages are generated as per the SOAP 1.2 specification using WS-Addressing 1.0 and HTNG 2.1 Headers. WS-Security headers are used. The sending system must provide the mandatory credentials necessary for consuming the Services being offered to the receiving system.
SOAP
SOAP messages are contained within an envelope that, in turn, contains a header and a body. The header contains the communication information of the message whereas the body contains the primary content of the message.
SOAP faults will be provided as the mechanism for handling error conditions.
The payload, which is based on specific OTA 2006B XML schemas, is the business or application content of the message that corresponds to the specific transaction being invoked. One payload per envelope is assumed.
Sample SOAP envelope
The following is an example of a SOAP envelope containing the HTNG header used for authentication:
Code Block | ||
---|---|---|
| ||
<?xml version='1.0' encoding='UTF-8'?> <n1:Envelope xmlns:n1="http://www.w3.org/2003/05/soap-envelope" xmlns:n3="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:n2="http://www.w3.org/2005/08/addressing" xmlns:n4="http://htng.org/PWSWG/2007/02/AsyncHeaders"> <n1:Header> <n2:MessageID>{{MessageID}}</n2:MessageID> <n4:CorrelationID>2b36432943304e8d81ba5618d5df9e5a</n4:CorrelationID> <n2:Action>http://htng.org/PWSWG/2010/12/OTA_HotelResNotifRQ _SubmitRequest</n2:Action> <n2:To>https://uat.windsurfercrs.com/pms/genhtngservice.aspx</n2:To> <n2:ReplyTo> <n2:Address>http://www.w3.org/2005/08/addressing/role/anonymous</n2:Address> </n2:ReplyTo> <n3:Security mustUnderstand="1"> <n3:UsernameToken> <n3:Username>{{UserName}}</n3:Username> <n3:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">{{Password}}</n3:Password> </n3:UsernameToken> </n3:Security> <n4:ReplyTo> <n2:Address>https://api-dev.protel.net/services/ProtelApiService.ProtelApiServiceHttpsSoap12Endpoint</n2:Address> </n4:ReplyTo> </n1:Header> |
SOAP Fault Handling [Errors]
If a SOAP error occurs during processing, the SOAP body must contain a SOAP Fault element. Note that the Fault element can only appear once in a SOAP message. Therefore, only the first error encountered is reported. An accompanying fault string attribute shall contain a detailed description of the specific error.
The following is an example of an “Invalid username” fault:
Code Block | ||
---|---|---|
| ||
<soap:Body> <soap:Fault> <faultcode>soap-env:Client.2008</faultcode> <faultstring>Authentication error – Invalid username</faultstring> </soap-env:Fault> </soap:Body> |
HTNG Compliance
This interface will adhere to the HTNG Product Distribution Specifications Release 2013A, Issue 1 (April 23, 2010) and will support the HTNG 2.1 Framework in the following respects:
...
There is currently no capability to produce a “wsdl” file. Schemas may be obtained from the Open Travel Alliance.
HTNG Asynchronous Communication Process
The pattern is implemented using separate correlated asynchronous web service calls (call) for each HTNG message exchange. HTNG messages are always a request RQ and response (RS) message pair.
The exchange of a message pair starts a 5 stage (if successful) process.
Reference Documents
Description |
HTNG_PropertyWebServices_2009A_Issue1 |
HTNG_Property_Distribution_Solution_2009A_Issue1 |
HTNG_Property_Distribution_Solution_Business_Process_Avaialbility |
HTNG_Property_Distribution_Solution_Business_Process_Rates |
HTNG_Property_Distribution_Solution_Business_Process_Reservations |
HTNG_Property_Distribution_Solution_Usage_Profile_Availability |
HTNG_Property_Distribution_Solution_Usage_Profile_Rates |
HTNG_Property_Distribution_Solution_Usage_Profile_Reservations |
Project ARI Pull* |
OTA 2006B |
OTA 2009A |
The Open Travel Alliance Specifications, published twice yearly and available at: www.opentravel.org. |
...