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:

  1. Use FindUserProfiles to retrieve a "fresh copy" of the user profile
  2. Supply the user profile to the request passing all old fields as well as the fields you wish to update
  3. 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