Seaware OTA API Protocols
Seaware OTA is an application that implements Versonix OTA interface and allows to integrate Seaware system with cruise line trading partners and GDS systems.
At transport level SwOta provides the following interfaces:
- REST Web Services interface
- SOAP Web Services interface
REST (Plain XML)
The REST interface provides a simpler, more modern approach to accessing the SwOTA API. REST requests use Auth0 bearer token authentication and direct XML messaging without SOAP envelopes.
Authentication
REST endpoints use Auth0 token-based authentication. You must obtain a bearer token and include it in the Authorization header of each request.
Token Endpoints:
- Staging:
https://travelhx-backend-stage.eu.auth0.com/oauth/token - Production:
https://partner-travelhx.eu.auth0.com/oauth/token
Audience Values:
- Staging:
https://partner.dev.travelhx.dev/api - Production:
https://partner.travelhx.com/api
Example Token Request:
curl --request POST \
--url https://travelhx-backend-stage.eu.auth0.com/oauth/token \
--header 'content-type: application/json' \
--data '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET","audience":"https://partner.dev.travelhx.dev/api","grant_type":"client_credentials"}'
REST Endpoints
REST endpoints are organized by message type. The pattern is: https://{host}/ota/rest/{MessageName}
Environment URLs:
- Production:
https://bookings.sw.travelhx.com/ota/rest/ - Staging:
https://bookings-stage.sw.travelhx.com/ota/rest/ - Development:
https://bookings-dev.sw.travelhx.com/ota/rest/
Making REST Requests
The REST URLs for specific messages have the message request name in them. The root node in the HTTP POST body must be the *RQ message.
Example REST Request:
POST https://bookings.sw.travelhx.com/ota/rest/OTA_CruiseCategoryAvailRQ
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/xml
<OTA_CruiseCategoryAvailRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="1447052346728.738378"
PrimaryLangID="ENG"
Version="1.481">
<POS>
<Source PseudoCityCode="KK11">
<BookingChannel Type="1">
<CompanyName>SABRE</CompanyName>
</BookingChannel>
</Source>
</POS>
<Guest/>
<Guest/>
<GuestCounts>
<GuestCount Code="10" Quantity="2"/>
</GuestCounts>
<SailingInfo>
<SelectedSailing VoyageID="CS1619">
<CruiseLine ShipCode="CS"/>
</SelectedSailing>
</SailingInfo>
<SelectedFare/>
</OTA_CruiseCategoryAvailRQ>
Supported REST Operations
The following operations are available via REST endpoints at /ota/rest/<MessageName>:
Availability & Search Operations
/ota/rest/OTA_CruiseSailAvailRQ- Search available sailings/ota/rest/OTA_CruiseCategoryAvailRQ- Get cabin categories/ota/rest/OTA_CruiseCabinAvailRQ- Find available cabins/ota/rest/OTA_CruiseFareAvailRQ- Search fare options/ota/rest/OTA_CruiseDiningAvailRQ- Dining availability/ota/rest/OTA_CruiseShorexAvailRQ- Shore excursion options/ota/rest/OTA_CruisePkgAvailRQ- Package (hotel) availability/ota/rest/OTA_CruiseFacilityAvailRQ- Facility availability/ota/rest/OTA_CruiseSpecialServiceAvailRQ- Special services availability
Booking Operations
/ota/rest/OTA_CruiseBookRQ- Create/modify bookings/ota/rest/OTA_CruisePriceBookingRQ- Get detailed pricing/ota/rest/OTA_ReadRQ- Retrieve booking/profile details/ota/rest/OTA_CancelRQ- Cancel reservations/ota/rest/OTA_CruiseFastSellRQ- Fast sell booking
Inventory Operations
/ota/rest/OTA_CruiseCabinHoldRQ- Hold cabin inventory/ota/rest/OTA_CruiseCabinUnholdRQ- Release cabin holds
Payment & Financial
/ota/rest/OTA_CruisePaymentRQ- Process payments/ota/rest/OTA_CruiseCancellationPricingRQ- Get cancellation fees
Profile Management
/ota/rest/OTA_ProfileCreateRQ- Create customer profile/ota/rest/OTA_ProfileModifyRQ- Update profile
Documents & Information
/ota/rest/OTA_CruiseBookingDocumentRQ- Send booking documents/ota/rest/OTA_CruiseInfoRQ- Get cruise information/ota/rest/OTA_CruiseItineraryDescRQ- Get itinerary description/ota/rest/OTA_CruiseCheckInRQ- Check-in operations
Utility
/ota/rest/OTA_PingRQ- Connection test
Unsupported REST Operations
The following operations are NOT available via REST and require SOAP or JMS:
Server-Initiated (Reverse Access) Operations
OTA_CruisePNR_UpdateNotifRQ- Booking update notifications (SOAP/JMS only)- This is a server-to-client push notification for booking changes
- Requires reverse access configuration
- Can be sent via SOAP Web Services or JMS ActiveMQ
SOAP
A SOAP message is an ordinary XML document containing the following elements:
- Envelope - Identifies the XML document as a SOAP message. (Required)
- Header - Contains header information. (Optional)
- Body - Contains call, and response information. (Required)
- Fault - Provides information about errors that occurred while processing the message. (Optional)
Authentication
SOAP endpoints use SSL client certificate authentication. You must have a valid client certificate issued by HX installed in your HTTP client.
SOAP Endpoints
Environment URLs:
- Production:
https://bookings.travelhx.com:8082/ota/ws - UAT:
https://staging.bookings.travelhx.com:8082/ota/ws - Test/Development:
https://dev.bookings.travelhx.com:8082/ota/ws - WSDL:
https://bookings.travelhx.com:8082/ota/sw-ota.wsdl
Example SOAP Message
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:ns="http://www.opentravel.org/OTA/2003/05" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<ns:OTA_CruiseCategoryAvailRQ EchoToken="1447052346728.738378"
PrimaryLangID="ENG" Version="1.481">
<ns:POS>
<ns:Source PseudoCityCode="KK11">
<ns:BookingChannel Type="1">
<ns:CompanyName>SABRE</ns:CompanyName>
</ns:BookingChannel>
</ns:Source>
</ns:POS>
<ns:Guest/>
<ns:Guest/>
<ns:GuestCounts>
<ns:GuestCount Code="10" Quantity="2"/>
</ns:GuestCounts>
<ns:SailingInfo>
<ns:SelectedSailing VoyageID="CS1619">
<ns:CruiseLine ShipCode="CS"/>
</ns:SelectedSailing>
</ns:SailingInfo>
<ns:SelectedFare/>
</ns:OTA_CruiseCategoryAvailRQ>
</soapenv:Body>
</soapenv:Envelope>
WSDL
The WSDL for the SwOTA installation can be found at the /sw-ota.wsdl web path (e.g. https://bookings.travelhx.com:8082/ota/sw-ota.wsdl).
JMS
In reverse access (only) part of SwOTA there is support for JMS ActiveMQ protocol that can be used instead of HTTP (SOAP or REST) to send OTA_CruisePNR_UpdateNotifRQ messages.