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:
<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
- 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
<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 API can handle loyalty/club accounts in different ways depending on your account configuration. When you provide loyalty information in OTA_ProfileCreateRQ, OTA_ProfileModifyRQ, or OTA_CruiseBookRQ messages, the API behavior depends on your settings:
Typical Behaviors
Link Only (most common): The API will link clients to existing club accounts. If the club account doesn't exist, an error is returned.
Link and Create: The API can create new club accounts if they don't exist. When creating, all six attributes must be provided (see example below).
Link and Update: The API will link to existing accounts and can update tier levels and dates if provided.
Unique Validation: Some configurations prevent multiple clients from sharing the same club account.
Note
Your specific loyalty account handling will be documented in your integration guide. If you need different behavior, contact your integration support team.
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
The API uses Customer/Document elements to manage APIS (Advanced Passenger Information System) documents. Documents are identified by the DocType attribute:
- 1 = Visa (standard visa with
Permanent=false) - 2 = Passport
- 14 = Permanent resident card (visa with
Permanent=true) - 17 = Non-standard documents
- ID and ID2 = Additional identification documents
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"/>