SwOTA API Integration Guide for Travel Partners
Quick Start
SwOTA (Seaware Web OTA) is a cruise booking API that enables travel agencies and partners to search, book, and manage cruise reservations directly integrated with our Seaware reservation system.
New to SwOTA? This guide provides a quick start overview. For comprehensive API documentation, see the SwOTA API Development Guide.
What You Can Do
-
Search & Book: Find available sailings, categories, and cabins
-
Manage Bookings: Create, modify, cancel bookings
-
Handle Payments: Process payments and refunds
-
Manage Profiles: Create and update customer profiles
-
Access Inventory: Real-time availability and pricing
-
Generate Documents: Booking confirmations, invoices
Technical Overview
API Protocols
SwOTA supports both REST and SOAP protocols.
-
Message Format: XML based on OpenTravel Alliance (OTA) standards with Seaware extensions
-
Security: REST uses Auth0 token authentication; SOAP uses SSL client certificate authentication
See API Protocols for detailed protocol comparison.
Environment URLs
REST Endpoints
-
Production:
https://bookings.sw.travelhx.com/ota/rest/<MessageName> -
Staging:
https://bookings-stage.sw.travelhx.com/ota/rest/<MessageName> -
Development:
https://bookings-dev.sw.travelhx.com/ota/rest/<MessageName> -
Example:
https://bookings.sw.travelhx.com/ota/rest/OTA_PingRQ
SOAP Endpoints
-
Production: https://bookings.travelhx.com:8082/ota/ws
-
Test/Development: https://dev.bookings.travelhx.com:8082/ota/ws
Authentication & Security
REST Authentication (Auth0)
REST API access uses Auth0 token-based authentication.
To authenticate with the REST API:
-
Obtain Credentials: Contact your integration manager to get your Auth0 client ID and client secret
-
Get Access Token: Authenticate with Auth0 to receive a bearer token
-
Make Requests: Include the bearer token in the
Authorizationheader
Auth0 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"}'
Making REST Requests with Bearer Token:
curl --request POST \
--url https://bookings-dev.sw.travelhx.com/ota/rest/OTA_PingRQ \
--header 'authorization: Bearer YOUR_ACCESS_TOKEN' \
--header 'content-type: application/xml' \
--data '<OTA_PingRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-01-01T12:00:00Z"><EchoData>Test</EchoData></OTA_PingRQ>'
SOAP Authentication (SSL Client Certificates)
SOAP API access requires a valid SSL client certificate issued by HX.
-
Certificate Request: Contact your integration manager to request client certificates
-
Installation: Install the certificate in your HTTP client/application
-
Validation: Certificates are validated at the load balancer level before reaching the API
Point of Sale (POS) Element
Every request must include a POS element identifying your agency:
<POS>
<Source>
<RequestorID ID="YOUR_AGENCY_ID" Type="5" ID_Context="SEAWARE"/>
<BookingChannel Type="1">
<CompanyName>DIRECT-AGENT</CompanyName>
</BookingChannel>
</Source>
</POS>
Supported ID Types
|
Type |
ID_Context |
Description |
|---|---|---|
|
|
|
Our internal agency ID (Default) |
|
|
|
IATA agency code |
|
|
|
CLIA agency ID |
|
|
|
Travel agent ID |
|
|
|
Direct customer ID |
Core API Messages
We provide the following sample requests for API calls:
|
Request Type |
File |
Description |
|---|---|---|
|
Connection Test |
Basic connectivity test |
|
|
Sailing Search |
Search for available sailings within a given date range. |
|
|
Category Availability |
Get available cabin categories for a specific sailing for a certain number of guests. |
|
|
Cabin Availability |
Get specific, assignable cabins within a chosen category. |
|
|
Price a Booking |
Get an itemized price for a full booking configuration before creating it. |
|
|
Hold a Cabin |
Temporarily reserve one or more cabins without immediate payment. |
|
|
Create a Booking |
Create a (Multi-Cabin) Booking |
|
|
Retrieve a Booking |
Fetch the details of an existing booking using its confirmation ID. |
|
|
Cancel a Booking |
Cancel a confirmed reservation. |
|
|
Unhold a Cabin |
Release a cabin that was previously on hold. |
|
|
Dining Availability |
Query for available dining times and venues on a sailing. |
|
|
Shore Excursion Availability |
Get a list of available tours for a given sailing. |
|
|
Cancellation Pricing |
Check the cancellation fees before cancelling. |
|
|
Booking History |
Get a log of all changes made to a booking. |
|
|
Create a Guest Profile |
Create a guest profile in the system. |
|
|
Read a Guest Profile |
Retrieve a guest profile from the system. |
|
|
Modify a Guest Profile |
Update a guest profile in the system. |
|
|
Fare Availability |
Get a list of available fares for a specific sailing. |
|
|
Make a Payment |
Submit a payment for an existing booking. |
|
|
Send Booking Documents |
Send Booking Documents |
Complete Message Catalog
Availability & Search
-
OTA_CruiseSailAvailRQ/RS- Search available sailings -
OTA_CruiseCategoryAvailRQ/RS- Get cabin categories -
OTA_CruiseCabinAvailRQ/RS- Find available cabins -
OTA_CruiseFareAvailRQ/RS- Search fare options -
OTA_CruiseDiningAvailRQ/RS- Dining availability -
OTA_CruiseShorexAvailRQ/RS- Shore excursion options
Booking Management
-
OTA_CruiseBookRQ/RS- Create/modify bookings -
OTA_CruisePriceBookingRQ/RS- Get detailed pricing -
OTA_ReadRQ/OTA_ResRetrieveRS- Retrieve booking details -
OTA_CancelRQ/RS- Cancel reservations
Inventory Management
-
OTA_CruiseCabinHoldRQ/RS- Hold cabin inventory -
OTA_CruiseCabinUnholdRQ/RS- Release cabin holds
Payment & Financial
-
OTA_CruisePaymentRQ/RS- Process payments -
OTA_CruiseCancellationPricingRQ/RS- Get cancellation fees
Profile Management
-
OTA_ProfileCreateRQ/RS- Create customer profile -
OTA_ProfileModifyRQ/RS- Update profile -
OTA_ReadRQ/OTA_ProfileReadRS- Retrieve profile
Documents & Communication
-
OTA_CruiseBookingDocumentRQ/RS- Send booking documents
Advanced Features
Stateful Mode (Temporary Storage)
Use TransactionActionCode attribute for complex booking scenarios:
-
Initiate- Start temporary booking -
Hold- Update and keep in temporary storage -
Book- Finalize and store booking -
Ignore- Cancel temporary booking
Multi-Cabin Bookings
Book multiple cabins in single request using GuestRefNumbers attribute:
<SelectedCabin CabinNumber="101" GuestRefNumbers="1 2"/>
<SelectedCabin CabinNumber="102" GuestRefNumbers="3 4"/>
Currency Support
Specify preferred currency in POS element:
<Source ISOCurrency="EUR">
Schema & Technical References
WSDL & Schema Files
-
Primary WSDL: SwOTA.wsdl
-
OTA Schemas: Available on request from https://opentravel.org
-
Key Schemas:
-
OTA_CruiseCommonTypes.xsd- Common data types -
OTA_CruiseBookRQ.xsd- Booking request structure -
OTA_CommonTypes.xsd- General OTA types
-
Code Lists
API supports OpenTravel Alliance standard code lists:
-
Guest Types: Code "10" = Adult, "8" = Child, etc.
-
Reservation Types: Type "14" = Booking Reference
-
Payment Types: Type "5" = Credit Card, "1" = Cash
-
Status Codes: "36" = Available, "46" = Waitlisted
Message Patterns
All responses follow standard OTA patterns:
-
Success:
element present -
Warnings:
element with non-blocking issues -
Errors:
element with blocking problems
Support & Resources
Getting Production Access
-
Contact: Your account manager
-
Provide: Company details, expected volume, integration timeline
-
Certificate Request: Request SSL client certificates
-
Receive: Agency setup, client certificates
-
Technical Review: Certificate installation and connectivity verification
-
Certification: Complete booking flow validation
This guide covers the core integration requirements. For detailed technical documentation, see the SwOTA API Development Guide. For specific business rules, advanced features, or custom requirements, please contact our technical team.
Last Updated: December 2025