APIv3 - UserProfile Service
This article will outline the various functionalities contained in the UserProfile Service for APIv3.
Table of contents |
---|
AddUserProfile
AddUserProfile Request
Here is a sample of the AddUserProfile request:
<soapenv:Body> <tem:AddUserProfile> <tem:request> <int:UserProfile> <int1:ArrivalAirportID>-1</int1:ArrivalAirportID> <int1:DepartureAirportID>-1</int1:DepartureAirportID> <int1:Email>nmartin@intelisys.ca</int1:Email> <int1:IsActive>true</int1:IsActive> <int1:IsVIP>false</int1:IsVIP> <int1:Password>Test123</int1:Password> <int1:PaxProfile> <int1:Addr1>123 somestreet st</int1:Addr1> <int1:Addr2>apt2</int1:Addr2> <int1:AeroplanNumber/> <int1:AgeCategory>Adult</int1:AgeCategory> <int1:BusExt>123</int1:BusExt> <int1:BusFax>1234567891</int1:BusFax> <int1:BusTel>1234567891</int1:BusTel> <int1:City>Saint John</int1:City> <int1:CountryCode>CDN</int1:CountryCode> <int1:DateOfBirth>1990-01-02T00:00:00</int1:DateOfBirth> <int1:Email>nmartin@intelisysaviation.com</int1:Email> <int1:EmployeeNumber/> <int1:Firstname>nigel</int1:Firstname> <int1:Gender>Male</int1:Gender> <int1:GeneralNumber1>1234567891</int1:GeneralNumber1> <int1:GeneralNumber2>1234567891</int1:GeneralNumber2> <int1:HomeFax>5066666688</int1:HomeFax> <int1:HomeTel>5066666868</int1:HomeTel> <int1:IsActive>true</int1:IsActive> <int1:Lastname>martin</int1:Lastname> <int1:LoyaltyPoints>0</int1:LoyaltyPoints> <int1:Middlename>g</int1:Middlename> <int1:Nationality/> <int1:Notes>Some Notes</int1:Notes> <int1:PassportCountryCode>CDN</int1:PassportCountryCode> <int1:PassportExires>2018-01-01T00:00:00</int1:PassportExires> <int1:PassportIssuedCity>saint john</int1:PassportIssuedCity> <int1:PassportIssuedDate>1900-01-01T00:00:00</int1:PassportIssuedDate> <int1:PassportNumber>12345</int1:PassportNumber> <int1:PostalCode>w2w3e3</int1:PostalCode> <int1:PreBoard>false</int1:PreBoard> <int1:ProvinceCode>NB</int1:ProvinceCode> </int1:PaxProfile> <int1:ProfileName>nmartin@intelisys.ca</int1:ProfileName> <int1:SecurityAnswer>123</int1:SecurityAnswer> <int1:SecurityQuestion>123</int1:SecurityQuestion> <int1:UserProfileID>-1</int1:UserProfileID> </int:UserProfile> </tem:request> </tem:AddUserProfile> </soapenv:Body>
Things to consider
- UserProfileID is ignored and any integer value can be passed in that field. When the profile is created, the new user profile identifier will be returned in the response.
- Profile name must be unique to only one active user profile
AddUserProfile Response
Here is a sample of the AssUserProfile response:
<s:Body> <AddUserProfileResponse xmlns="http://tempuri.org/"> <AddUserProfileResult xmlns:a="http://schemas.datacontract.org/2004/07/InteliSys.Amelia.API" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <a:AuditKey>f957606b-22d7-4c50-923c-4e4510e4fa46</a:AuditKey> <a:OperationMessage>OK</a:OperationMessage> <a:OperationSucceeded>true</a:OperationSucceeded> <a:OperationUID>f957606b-22d7-4c50-923c-4e4510e4fa46</a:OperationUID> <a:UserProfile xmlns:b="http://schemas.datacontract.org/2004/07/InteliSys.Amelia"> <b:ArrivalAirportID>-1</b:ArrivalAirportID> <b:DepartureAirportID>-1</b:DepartureAirportID> <b:Email>nmartin@intelisys.ca</b:Email> <b:IsActive>true</b:IsActive> <b:IsVIP>false</b:IsVIP> <b:Password>Test123</b:Password> <b:PaxProfile> <b:Addr1>123 somestreet st</b:Addr1> <b:Addr2>apt2</b:Addr2> <b:AeroplanNumber>VJ000390566</b:AeroplanNumber> <b:AgeCategory>Adult</b:AgeCategory> <b:BusExt>123</b:BusExt> <b:BusFax>1234567891</b:BusFax> <b:BusTel>1234567891</b:BusTel> <b:CategoryID>-1</b:CategoryID> <b:City>Saint John</b:City> <b:CountryCode>CDN</b:CountryCode> <b:CountryID>1</b:CountryID> <b:DateOfBirth>1990-01-02T00:00:00</b:DateOfBirth> <b:Email>nmartin@intelisys.ca</b:Email> <b:EmployeeNumber/> <b:Firstname>nigel</b:Firstname> <b:Gender>Male</b:Gender> <b:GeneralNumber1>1234567891</b:GeneralNumber1> <b:GeneralNumber2>1234567891</b:GeneralNumber2> <b:HomeFax>5066666688</b:HomeFax> <b:HomeTel>5066666868</b:HomeTel> <b:IsActive>true</b:IsActive> <b:Lastname>martin</b:Lastname> <b:LoyaltyPoints>0</b:LoyaltyPoints> <b:Middlename>g</b:Middlename> <b:Nationality/> <b:Notes>Some Notes</b:Notes> <b:PassportCountryCode>CDN</b:PassportCountryCode> <b:PassportExires>2018-01-01T00:00:00</b:PassportExires> <b:PassportIssuedCity>saint john</b:PassportIssuedCity> <b:PassportIssuedDate>1900-01-01T00:00:00</b:PassportIssuedDate> <b:PassportNumber>12345</b:PassportNumber> <b:PaxID>-1</b:PaxID> <b:PostalCode>w2w3e3</b:PostalCode> <b:PreBoard>false</b:PreBoard> <b:ProvinceCode>NB</b:ProvinceCode> <b:ProvinceID>7</b:ProvinceID> <b:SpecialNeeds/> </b:PaxProfile> <b:ProfileName>nmartin@intelisys.ca</b:ProfileName> <b:SecurityAnswer>123</b:SecurityAnswer> <b:SecurityQuestion>123</b:SecurityQuestion> <b:UserProfileID>297745</b:UserProfileID> </a:UserProfile> </AddUserProfileResult> </AddUserProfileResponse> </s:Body>
FindUserProfiles
FindUserProfiles Request
There are many ways to search for user profiles via APIv3. Here is a sample of the request with all search criteria:
<tem:FindUserProfiles> <tem:request> <int:DateOfBirth>?</int:DateOfBirth> <int:Email>?</int:Email> <int:FirstName>?</int:FirstName> <int:GeneralNumber1>?</int:GeneralNumber1> <int:GeneralNumber2>?</int:GeneralNumber2> <int:IgnoreYearOfBirth>?</int:IgnoreYearOfBirth> <int:LastName>?</int:LastName> <int:MiddleName>?</int:MiddleName> <int:ProfileName>?</int:ProfileName> <int:UserProfileId>?</int:UserProfileId> </tem:request> </tem:FindUserProfiles>
If I want to look up all user profiles that have a first name of John, the request would look as follows:
<tem:FindUserProfiles> <tem:request> <int:FirstName>John</int:FirstName> </tem:request> </tem:FindUserProfiles>
The response will contain all user profiles that match the given search criteria.
UpdateUserProfile
When updating a user profile, the general process would move as follows:
- Use FindUserProfiles to retrieve a "fresh copy" of the user profile
- Supply the user profile to the request passing all old fields as well as the fields you wish to update
- Submit the request
UpdateUserProfile Request
Here is a sample of the UpdateUserProfile request:
<tem:UpdateUserProfile> <tem:request> <int:UserProfile> <int1:ArrivalAirportID>-1</int1:ArrivalAirportID> <int1:DepartureAirportID>-1</int1:DepartureAirportID> <int1:Email>nmartin@aviation.com</int1:Email> <int1:IsActive>true</int1:IsActive> <int1:IsVIP>false</int1:IsVIP> <int1:Password>Test123</int1:Password> <int1:PaxProfile> <int1:Addr1>123 somestreet st</int1:Addr1> <int1:Addr2>apt2</int1:Addr2> <int1:AeroplanNumber>?</int1:AeroplanNumber> <int1:AgeCategory>Adult</int1:AgeCategory> <int1:BusExt>123</int1:BusExt> <int1:BusFax>1234567891</int1:BusFax> <int1:BusTel>1234567891</int1:BusTel> <int1:CategoryID>-1</int1:CategoryID> <int1:City>Saint John</int1:City> <int1:CountryCode>CDN</int1:CountryCode> <int1:CountryID>1</int1:CountryID> <int1:DateOfBirth>1990-01-02T00:00:00</int1:DateOfBirth> <int1:Email>nmartin@aviation.com</int1:Email> <int1:EmployeeNumber/> <int1:Firstname>nigel</int1:Firstname> <int1:Gender>Male</int1:Gender> <int1:GeneralNumber1>1234567891</int1:GeneralNumber1> <int1:GeneralNumber2>1234567891</int1:GeneralNumber2> <int1:HomeFax>5066666688</int1:HomeFax> <int1:HomeTel>5066666868</int1:HomeTel> <int1:IsActive>true</int1:IsActive> <int1:Lastname>martin</int1:Lastname> <int1:LoyaltyPoints>0</int1:LoyaltyPoints> <int1:Middlename>g</int1:Middlename> <int1:Nationality/> <int1:Notes>Some Notes</int1:Notes> <int1:PassportCountryCode>CDN</int1:PassportCountryCode> <int1:PassportExires>2018-01-01T00:00:00</int1:PassportExires> <int1:PassportIssuedCity>saint john</int1:PassportIssuedCity> <int1:PassportIssuedDate>1900-01-01T00:00:00</int1:PassportIssuedDate> <int1:PassportNumber>12345</int1:PassportNumber> <int1:PaxID>-1</int1:PaxID> <int1:PostalCode>w2w3e3</int1:PostalCode> <int1:PreBoard>false</int1:PreBoard> <int1:ProvinceCode>NB</int1:ProvinceCode> <int1:ProvinceID>7</int1:ProvinceID> <int1:SpecialNeeds/> </int1:PaxProfile> <int1:ProfileName>nmartin@aviation.com</int1:ProfileName> <int1:SecurityAnswer>123</int1:SecurityAnswer> <int1:SecurityQuestion>123</int1:SecurityQuestion> <int1:UserProfileID>1234</int1:UserProfileID> </int:UserProfile> </tem:request> </tem:UpdateUserProfile>
Things to consider
- UserProfileID is required in order for this operation to succeed
UpdateUserProfile Response
If the request succeeds, the response will contain the updated user profile. Here is a sample of the response structure:
<UpdateUserProfileResult xmlns:a="http://schemas.datacontract.org/2004/07/InteliSys.Amelia.API" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <a:AuditKey>f384a571-9e4d-4ba3-a48b-14185ff28ccf</a:AuditKey> <a:OperationMessage>OK</a:OperationMessage> <a:OperationSucceeded>true</a:OperationSucceeded> <a:OperationUID>f384a571-9e4d-4ba3-a48b-14185ff28ccf</a:OperationUID> <a:UserProfile xmlns:b="http://schemas.datacontract.org/2004/07/InteliSys.Amelia"> <b:ArrivalAirportID>-1</b:ArrivalAirportID> <b:DepartureAirportID>-1</b:DepartureAirportID> <b:Email>nmartin@aviation.com</b:Email> <b:IsActive>true</b:IsActive> <b:IsVIP>false</b:IsVIP> <b:Password>Test123</b:Password> <b:PaxProfile> <b:Addr1>123 somestreet st</b:Addr1> <b:Addr2>apt2</b:Addr2> <b:AeroplanNumber>VJ000390567</b:AeroplanNumber> <b:AgeCategory>Adult</b:AgeCategory> <b:BusExt>123</b:BusExt> <b:BusFax>1234567891</b:BusFax> <b:BusTel>1234567891</b:BusTel> <b:CategoryID>-1</b:CategoryID> <b:City>Saint John</b:City> <b:CountryCode>CDN</b:CountryCode> <b:CountryID>1</b:CountryID> <b:DateOfBirth>1990-01-02T00:00:00</b:DateOfBirth> <b:Email>nmartin@aviation.com</b:Email> <b:EmployeeNumber/> <b:Firstname>nigel</b:Firstname> <b:Gender>Male</b:Gender> <b:GeneralNumber1>1234567891</b:GeneralNumber1> <b:GeneralNumber2>1234567891</b:GeneralNumber2> <b:HomeFax>5066666688</b:HomeFax> <b:HomeTel>5066666868</b:HomeTel> <b:IsActive>true</b:IsActive> <b:Lastname>martin</b:Lastname> <b:LoyaltyPoints>0</b:LoyaltyPoints> <b:Middlename>g</b:Middlename> <b:Nationality/> <b:Notes>Some Notes</b:Notes> <b:PassportCountryCode>CDN</b:PassportCountryCode> <b:PassportExires>2018-01-01T00:00:00</b:PassportExires> <b:PassportIssuedCity>saint john</b:PassportIssuedCity> <b:PassportIssuedDate>1900-01-01T00:00:00</b:PassportIssuedDate> <b:PassportNumber>12345</b:PassportNumber> <b:PaxID>-1</b:PaxID> <b:PostalCode>w2w3e3</b:PostalCode> <b:PreBoard>false</b:PreBoard> <b:ProvinceCode>NB</b:ProvinceCode> <b:ProvinceID>7</b:ProvinceID> <b:SpecialNeeds/> </b:PaxProfile> <b:ProfileName>nmartin@aviation.com</b:ProfileName> <b:SecurityAnswer>123</b:SecurityAnswer> <b:SecurityQuestion>123</b:SecurityQuestion> <b:UserProfileID>1234</b:UserProfileID> </a:UserProfile> </UpdateUserProfileResult>
GetProfileReservationList
GetProfileReservationList Request
The following is a sample of the GetProfileReservationList
request:
<tem:GetProfileReservationList> <tem:request> <int:Query> <int1:AgencyID>?</int1:AgencyID> <int1:AmeliaBookings>?</int1:AmeliaBookings> <int1:BookingFromDate>?</int1:BookingFromDate> <int1:BookingToDate>?</int1:BookingToDate> <int1:CardNumber>?</int1:CardNumber> <int1:CountToReturn>?</int1:CountToReturn> <int1:DepartureAirport>?</int1:DepartureAirport> <int1:FirstName>?</int1:FirstName> <int1:FlightEndDate>?</int1:FlightEndDate> <int1:FlightStartDate>?</int1:FlightStartDate> <int1:GDSBookings>?</int1:GDSBookings> <int1:LastName>?</int1:LastName> <int1:Locator>?</int1:Locator> <int1:OnHoldBookings>?</int1:OnHoldBookings> <int1:RequireExactMatch>?</int1:RequireExactMatch> <int1:ReservationNumber>?</int1:ReservationNumber> <int1:Telephone>?</int1:Telephone> <int1:TicketNumber>?</int1:TicketNumber> <int1:UserProfileID>?</int1:UserProfileID> <int1:WebBookings>?</int1:WebBookings> </int:Query> </tem:request> </tem:GetProfileReservationList>
Things to consider
- The search criteria outlined above is order sensitive
- You can supply multiple search criteria in one request to restrict the returned result set
GetProfileReservationList Response
The response of this operation will be a list of <b:ReservationSearchResult>
including all reservations that match the criteria passed in the request. Here is a sample of the <b:ReservationSearchResult>
structure:
<b:ReservationSearchResult> <b:CancellationNumber>0</b:CancellationNumber> <b:Charges>0</b:Charges> <b:ConfirmationNumber>-1</b:ConfirmationNumber> <b:DistributionChannel> <b:ID>1</b:ID> <b:Name>Call Center</b:Name> </b:DistributionChannel> <b:LegSummary>Oct 24, 2016 YYY - XXX CONF</b:LegSummary> <b:Locator/> <b:OnHold>false</b:OnHold> <b:PaxGroupID>2793</b:PaxGroupID> <b:PaxName>JOHN, DOE</b:PaxName> <b:Payments>0</b:Payments> <b:Refunds>0</b:Refunds> <b:ReservationNumber>202575</b:ReservationNumber> <b:Seats>1</b:Seats> </b:ReservationSearchResult>
Things to consider
- If there are multiple segments on the reservation, the
<b:LegSummary>
will display summary info for all of them. Depending on the tool you are using, the segment summary info may seem "stuck together" (i.e.Oct 24, 2016 YYY - XXX CONFOct 24, 2016 XXX - ZZZ CONF
). These entries are in fact separated by a return character, you may have to turn on "special characters" in order to properly see it.
GetProfilePaxList
This operation will return all pax profiles currently associated a user profile ID.
GetProfilePaxList Request
Here is a sample of the GetProfilePaxList request:
<tem:GetProfilePaxList> <tem:request> <int:ProfileID>123</int:ProfileID> </tem:request> </tem:GetProfilePaxList>
The response will contain a list of all pax profiles associated with the user profile ID passed in the request.
GetProfilePaxList Response
Here is a sample of the response structure:
<a:PaxList xmlns:b="http://schemas.datacontract.org/2004/07/InteliSys.Amelia"> <b:PaxProfile> <b:Addr1>123 Some st</b:Addr1> <b:Addr2/> <b:AeroplanNumber>YY00225588</b:AeroplanNumber> <b:AgeCategory>Adult</b:AgeCategory> <b:BusExt/> <b:BusFax/> <b:BusTel>1234567891</b:BusTel> <b:CategoryID>-1</b:CategoryID> <b:City>Saint John</b:City> <b:CountryCode/> <b:CountryID>-1</b:CountryID> <b:DateOfBirth>1900-01-01T00:00:00</b:DateOfBirth> <b:Email>mail@gmail.com</b:Email> <b:EmployeeNumber/> <b:Firstname>John</b:Firstname> <b:Gender>Male</b:Gender> <b:GeneralNumber1/> <b:GeneralNumber2/> <b:HomeFax/> <b:HomeTel/> <b:IsActive>true</b:IsActive> <b:Lastname>Doe</b:Lastname> <b:LoyaltyPoints>0</b:LoyaltyPoints> <b:Middlename/> <b:Nationality/> <b:Notes/> <b:PassportCountryCode>VNM</b:PassportCountryCode> <b:PassportExires>1900-01-01T00:00:00</b:PassportExires> <b:PassportIssuedCity/> <b:PassportIssuedDate>1900-01-01T00:00:00</b:PassportIssuedDate> <b:PassportNumber>123456</b:PassportNumber> <b:PaxID>123</b:PaxID> <b:PostalCode/> <b:PreBoard>false</b:PreBoard> <b:ProvinceCode/> <b:ProvinceID>-1</b:ProvinceID> <b:SpecialNeeds/> </b:PaxProfile> </a:PaxList>
Related articles