Table of Contents

Profile Create/Update/Read

The set of Profile messages can be used to manage Client records and to retrieve Travel Agent records.

Creating a Client Record

Simple example of a client record creation using OTA_ProfileCreateRQ:

POST https://bookings-stage.sw.travelhx.com/ota/rest/OTA_ProfileCreateRQ
Content-Type: application/xml
<ns:OTA_ProfileCreateRQ xmlns:ns="http://www.opentravel.org/OTA/2003/05" EchoToken="1450964249386.158329" CorrelationID="999" PrimaryLangID="ENG" Version="1.578">
  <ns:POS>
    <ns:Source>
      <ns:RequestorID Type="5" ID_Context="IATA" ID="33"/>
    </ns:Source>
  </ns:POS>
  <ns:UniqueID ID="999" Type="1"/> <!-- ignored, but a mandatory element per XSD spec. -->
  <ns:Profile>
    <ns:Customer>
      <ns:PersonName>
        <ns:GivenName>Ivan</ns:GivenName>
        <ns:MiddleName>Ivanovich</ns:MiddleName>
        <ns:Surname>Ivanov</ns:Surname>
      </ns:PersonName>
    </ns:Customer>
  </ns:Profile>
</ns:OTA_ProfileCreateRQ>

Many additional elements may be added to the client record:

  • Addresses
  • Phones
  • Email
  • Documents
  • Emergency contact
  • Club accounts

Create Response

Response will contain the ID of the created Client record if successfully created, or errors:

<vx:OTA_ProfileCreateRS xmlns:ns3="http://www.versonix.com/ota" 
  xmlns:ns4="http://schemas.xmlsoap.org/soap/envelope/" 
  xmlns:vx="http://www.opentravel.org/OTA/2003/05" 
  CorrelationID="999" 
  EchoToken="1450964249386.158329" 
  PrimaryLangID="ENG" 
  TargetName="SW_OTA_TEST@ORADEV" 
  TimeStamp="2021-10-13T14:50:49.211" 
  Version="1.999">
  <vx:Success/>
  <vx:UniqueID ID="101" ID_Context="SEAWARE" Type="1"/>
</vx:OTA_ProfileCreateRS>

Modifying Existing Client Record

Use OTA_ProfileModifyRQ to edit a client record.

Note

OTA_CruiseBookRQ also modifies existing client records, in case LoyaltyMembershipID has been provided to identify that record, but it does not support all the Client data as ProfileCreate and ProfileModify messages.

Modify Request Example

POST https://bookings-stage.sw.travelhx.com/ota/rest/OTA_ProfileModifyRQ
Content-Type: application/xml
<ns:OTA_ProfileModifyRQ xmlns:ns="http://www.opentravel.org/OTA/2003/05" EchoToken="1450964249386.158329" PrimaryLangID="ENG" Version="1.578">
  <ns:POS>
  <ns:Source>
  <ns:RequestorID Type="5" ID_Context="IATA" ID="33"/>
  </ns:Source>
  </ns:POS>
  <ns:UniqueID ID="101" Type="1" ID_Context="SEAWARE"/>
  <ns:ProfileModify>
    <ns:Customer>
      <ns:PersonName>
        <ns:GivenName>Ivan</ns:GivenName>
        <ns:MiddleName>Ivanovich</ns:MiddleName>
        <ns:Surname>Ivanov</ns:Surname>
      </ns:PersonName>
      <ns:ContactPerson EmergencyFlag="true">
        <ns:PersonName>
          <ns:GivenName>Vasia</ns:GivenName>
          <ns:Surname>Pupkin</ns:Surname>
        </ns:PersonName>
      </ns:ContactPerson>
    </ns:Customer>
  </ns:ProfileModify>
</ns:OTA_ProfileModifyRQ>

Response OTA_ProfileModifyRS is similar to OTA_ProfileCreateRS, it contains the Success indicator and the client ID, or the errors.

Club Account (Loyalty) Processing

The processing of Club Account input in OTA_ProfileCreateRQ, OTA_ProfileModifyRQ, and OTA_CruiseBookRQ messages depends on the SwOtaClubAccountMode external table configuration in Seaware.

The external table SwOtaClubAccountMode has SwCode containing ClubType, and ExtCode is a space-separated list of possible directives: LINK, UPDATE, CREATE, UNIQUE (e.g. "CREATE UNIQUE", or "LINK UPDATE UNIQUE").

Directives

  • (Default) LINK: SwOTA will never create club accounts, only link client records to existing club account records. If loyalty info is provided in any applicable request then SwOTA will try to link existing club account to the client record. An error will be thrown if no club account exists.
  • UPDATE: Club account record will be linked and updated (change tier level and/or expire/effective dates, if they are provided).
  • CREATE: If no club account with specified parameters exists then SwOTA will create the club account. All six attributes (see example below) must be provided, otherwise an error will be returned. If club account already exists, SwOTA will link the client to the existing account.
  • UNIQUE: If linking to already existing club account record, SwOTA will additionally verify that no other client is already linked to same record. If it is, the operation will be aborted with an error.

Behavior Table

CREATE CREATE UNIQUE CREATE UPDATE LINK LINK UNIQUE LINK UPDATE LINK UPDATE UNIQUE
CLUB ACCOUNT EXISTS link (no update) link if no other client is linked, error otherwise. no update. link, update dates and tier level if provided link, no update link if no other client is linked, error otherwise. no update. link, update dates and tier level if provided link if no other client is linked, error otherwise. update dates and tier level if provided
CLUB ACCOUNT DOES NOT EXIST create and link, must provide all 6 attributes create and link, must provide all 6 attributes create and link, must provide all 6 attributes error error error error

Club Account Example

Example message snippet for passing or retrieving Client's club accounts:

<ns:CustLoyalty ProgramID="MAIN" 
                MembershipID="123123123" 
                LoyalLevel="BRONZE" 
                CustomerType="CLUB ONE" 
                SignupDate="2017-01-01" 
                ExpireDate="2025-01-01"/>

Profile Read

See Retrieving Bookings, Client or Agent Profiles section.

Client Documents / APIS Info

SwOTA uses Customer/Document elements to update or read APIS info documents. It populates all documents into/from OTA message based on configuration (DocType and IDDocType external table mappings) and attribute DocType:

  • 1 (Visa) = Visa with attribute Permanent=false
  • 14 (Permanent resident card) = Visa with attribute Permanent=true
  • Other values = ID Doc and ID2 Doc as per IDDocType external table
Note

The Description/Comment column in IDDocType should be set to "ID" or "ID2" value (without quotation marks) - that will define where the document of this type will be placed in APIS form in Seaware (defaults to "ID").

Document Example

Example (ProfileModify):

<Document DocIssueLocation="USAEV" DocID="12345" DocType="2" DocIssueCountry="US" ExpireDate="2021-05-20" EffectiveDate="2016-05-17"/>
<Document DocIssueLocation="ALTIA" DocID="67890" DocType="14" DocIssueCountry="AL" EffectiveDate="2016-05-17" ExpireDate="2018-05-25"/>
<Document DocIssueLocation="USAGS" DocID="23425345345" DocType="1" DocIssueCountry="US" EffectiveDate="2016-05-17" ExpireDate="2019-05-15"/>