APIv3 - No longer Supported (Discontinued)

The purpose of this article is to provide information regarding the use of APIv3.

The API reference documentation for this API can be viewed here: https://intelisys-api.intelisys.ca/v3/InteliSys/docs/

Table of contents

The majority of the requests in this article are order sensitive. Most tools will order the request nodes alphabetically which is the format that is expected.


Agency Account Service

GetCompanyDetails

GetCompanyDetails Request - find details about a specific company based on the company code
   <soapenv:Body>
      <tem:GetCompanyDetails>
         <tem:request>
            <int:CompanyCode>AA00011</int:CompanyCode>
         </tem:request>
      </tem:GetCompanyDetails>
   </soapenv:Body>
GetCompanyDetails Response - would be returned by the above request
            <a:CompanyDetails xmlns:b="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
               <b:Address>
                  <b:Addr1/>
                  <b:Addr2/>
                  <b:City/>
                  <b:CountryCode>CDN</b:CountryCode>
                  <b:CountryDescription/>
                  <b:PostalCode></b:PostalCode>
                  <b:ProvinceAbbreviation>NB</b:ProvinceAbbreviation>
                  <b:ProvinceName/>
               </b:Address>
               <b:AgencyType>Travel Agency</b:AgencyType>
               <b:BalanceDue>-1004640.44</b:BalanceDue>
               <b:Code>AA00011</b:Code>
               <b:CreditAvailable>1004640.44</b:CreditAvailable>
               <b:Name>IAS AIR</b:Name>
            </a:CompanyDetails>

Common Errors


Company not found or invalid.

This error speaks for itself. The safest way to avoid getting this error is to run 'GetAgencyCompanyList' and make sure the company you are trying to use comes up in the list.

Booking Service

GetTravelOptions

GetTravelOptions Request

   <soapenv:Body>
      <tem:GetTravelOptions>
         <tem:optionsRequest>
            <int:Query>
               <int1:AdultCount>1</int1:AdultCount>
               <int1:ArrivalAirportCode>XXX</int1:ArrivalAirportCode>
               <int1:ChildCount>0</int1:ChildCount>
               <int1:CurrencyCode>CAN$</int1:CurrencyCode>
               <int1:DaysAfter>7</int1:DaysAfter>
               <int1:DaysBefore>7</int1:DaysBefore>
               <int1:DepartureAirportCode>YYY</int1:DepartureAirportCode>
               <int1:InfantCount>0</int1:InfantCount>
               <int1:OutboundDate>2016-03-23</int1:OutboundDate>
               <int1:PaxCompanyCode></int1:PaxCompanyCode> <----- This must be supplied in order for company specific fares to be returned.
            </int:Query>
         </tem:optionsRequest>
      </tem:GetTravelOptions>
   </soapenv:Body>

Things to consider



  • <int1:OutboundDate> and <int1:InboundDate> should only ever be passed a day value (i.e. 2015-03-29).
  • If you set <int1:DaysAfter> or <int1:DaysBefore> to zero, it will take the date you pass in plus 24 hours and return you results for that window. This is why it is not recommended that you pass in a time as well as a date (i.e. 2015-06-06T12:01:00.000Z) because it will return results for anything that falls into that 24 hour window of time.
  • <int1:DaysAfter> and <int1:DaysBefore> cannot exceed 7 days.

GetTravelOptions Response

The following is a sample travel option pulled from the GetTravelOptions response:

                  <b:Option>
                     <b:Legs>
                        <b:LegOption>
                           <b:DepartureDate>2015-03-23T00:00:00</b:DepartureDate>
                           <b:FareOptions>
                              <b:Adultfares>
                                 <b:FareOption>
                                    <b:Advancebooking>0</b:Advancebooking>
                                    <b:ChangesAllowed>true</b:ChangesAllowed>
                                    <b:Currency xmlns:c="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
                                       <c:Abbreviation>VND</c:Abbreviation>
                                       <c:Description>Vietnam Dong</c:Description>
                                       <c:ExchangeRate>1</c:ExchangeRate>
                                       <c:Format>#,##0 VND</c:Format>
                                    </b:Currency>
                                    <b:Description>Econ</b:Description>
                                    <b:DiscountFare>1260000</b:DiscountFare>
                                    <b:DiscountFareTaxes>126000</b:DiscountFareTaxes>
                                    <b:DiscountFareTotal>1386000</b:DiscountFareTotal>
                                    <b:FareCategory>F</b:FareCategory>
                                    <b:FareCategoryFreeTextRules/>
                                    <b:FareClass>F</b:FareClass>
                                    <b:FareClassFreeTextRules/>
                                    <b:FareClassStatus>C</b:FareClassStatus>
                                    <b:FareCost>1260000</b:FareCost>
                                    <b:FareTaxes>126000</b:FareTaxes>
                                    <b:IsDefaultFare>true</b:IsDefaultFare>
                                    <b:IsRefundable>true</b:IsRefundable>
                                    <b:MaxStayOver>0</b:MaxStayOver>
                                    <b:MinStayOver>0</b:MinStayOver>
                                    <b:OnewayReturn>OnewayFare</b:OnewayReturn>
                                    <b:Option>1</b:Option>
                                    <b:PromoCodeID>-1</b:PromoCodeID>
                                    <b:PromoCodeSuffixID>-1</b:PromoCodeSuffixID>
                                    <b:PromoFlag/>
                                    <b:ReasonInvalid/>
                                    <b:Restricted>true</b:Restricted>
                                    <b:Sale>false</b:Sale>
                                    <b:SeatCharge>20000</b:SeatCharge>
                                    <b:SeatChargeTax>0</b:SeatChargeTax>
                                    <b:SeatChargeTotal>20000</b:SeatChargeTotal>
                                    <b:SeatSale>false</b:SeatSale>
                                    <b:SeatsAvailable>101</b:SeatsAvailable>
                                    <b:Totalfare>1386000</b:Totalfare>
                                    <b:Valid>true</b:Valid>
                                    <b:Waitlist>false</b:Waitlist>
                                 </b:FareOption>
                              </b:Adultfares>
                              <b:Childfares/>
                           </b:FareOptions>
                           <b:NumberOfStops>1</b:NumberOfStops>
                           <b:RouteHours>0</b:RouteHours>
                           <b:SegmentOptions>
                              <b:SegmentOption>                                                                  ____
                                 <b:Flight xmlns:c="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">       |
                                    <c:Aircraft>                                                                     |
                                       <c:ModelIdent>A321</c:ModelIdent>                                             |
                                       <c:ModelName>A321</c:ModelName>                                               |
                                    </c:Aircraft>                                                                    |
                                    <c:ArrivalAirport>                                                               |
                                       <c:Code>XXX</c:Code>                                                          |              
                                       <c:Name>Some Airport</c:Name>                                                 |              This portion of the response would
                                    </c:ArrivalAirport>                                                              |------------- be used as the flight information 
                                    <c:DepartureAirport>                                                             |              in the 'BookReservation' request
                                       <c:Code>YYY</c:Code>                                                          |
                                       <c:Name>Another Airport</c:Name>                                              |
                                    </c:DepartureAirport>                                                            | 
                                    <c:ETA>2015-03-23T13:00:00</c:ETA>                                               |
                                    <c:ETALocal>2015-03-23T20:00:00</c:ETALocal>                                     |
                                    <c:ETD>2015-03-23T11:10:00</c:ETD>                                               |
                                    <c:ETDLocal>2015-03-23T18:10:00</c:ETDLocal>                                     |
                                    <c:Number>YY456</c:Number>                                                       |
                                 </b:Flight>                                                                     ____|
                                 <b:Quality>A/C-CHG 0</b:Quality>
                                 <b:SeatAllocation>144</b:SeatAllocation>  
                                 <b:Segdist>1091.2</b:Segdist>
                              </b:SegmentOption>
                           </b:SegmentOptions>
                           <b:Surcharges>
                              <b:Surcharge>
                                 <b:AllToAllPassengers>true</b:AllToAllPassengers>
                                 <b:Amount>60000</b:Amount>
                                 <b:ApplyInfantChargeFlag>A</b:ApplyInfantChargeFlag>
                                 <b:ApplyToAdult>true</b:ApplyToAdult>
                                 <b:ApplyToChild>false</b:ApplyToChild>
                                 <b:ApplyToInfant>false</b:ApplyToInfant>
                                 <b:ChargeTypeID>1</b:ChargeTypeID>
                                 <b:Description>Airport Tax Domestic</b:Description>
                                 <b:Taxes>0</b:Taxes>  <----------------------------------|            
                                 <b:Total>60000</b:Total>  <------------------------------|
                              </b:Surcharge>                                              |
                              <b:Surcharge>                                               |
                                 <b:AllToAllPassengers>true</b:AllToAllPassengers>        |
                                 <b:Amount>30000</b:Amount>                               |
                                 <b:ApplyInfantChargeFlag>N</b:ApplyInfantChargeFlag>     |----------- During booking these values must be taken into account in the <int1:Amount> section of
                                 <b:ApplyToAdult>true</b:ApplyToAdult>                    |            under the <int1:Payment> tag or the operation will fail
                                 <b:ApplyToChild>true</b:ApplyToChild>                    | 
                                 <b:ApplyToInfant>false</b:ApplyToInfant>                 |
                                 <b:ChargeTypeID>1010</b:ChargeTypeID>                    |
                                 <b:Description>Admin Fee Domestic</b:Description>        |
                                 <b:Taxes>3000</b:Taxes>  <-------------------------------|
                                 <b:Total>33000</b:Total>  <------------------------------|
                              </b:Surcharge>
                           </b:Surcharges>
                        </b:LegOption>
                     </b:Legs>
                     <b:Number>1</b:Number>
                  </b:Option>

BookReservation

BookReservation Request

Things to consider

  • You can add a multi-city booking by adding muliple "BookingLeg" nodes to the booking request.
    Note: This requires running travel options for each booking leg individually.


"On Hold" Booking

The following is an example request for booking a reservation 'On Hold':

   <soapenv:Body>
      <tem:BookReservation>
         <tem:bookingRequest>
            <int:Query>
               <int1:Legs>
                  <int1:BookingLeg>                                                  ____
                     <int1:AdultFares>                                                   |
                        <int1:BookingClassCode>F</int1:BookingClassCode>                 |
                        <int1:CurrencyCode>CDN</int1:CurrencyCode>                       |
                        <int1:FareCode>F</int1:FareCode>                                 |
                        <int1:PaxCount>1</int1:PaxCount>                                 |
                        <int1:TotalCost>1386000</int1:TotalCost>                         |
                     </int1:AdultFares>                                                  |
                     <int1:Segments>                                                     |----- These values are all pulled from 'GetTravelOptions' Response
                        <int1:BookingSegment>                                            |
                           <int1:ArrivalAirportCode>YYY</int1:ArrivalAirportCode>        |
                           <int1:DepartureAirportCode>XXX</int1:DepartureAirportCode>    |
                           <int1:ETALocal>2015-03-23T20:00:00</int1:ETALocal>            |
                           <int1:ETDLocal>2015-03-23T18:10:00</int1:ETDLocal>            |
                           <int1:FlightCode>YY456</int1:FlightCode>                      |
                        </int1:BookingSegment>                                       ____| 
                     </int1:Segments>
                  </int1:BookingLeg>
               </int1:Legs>
               <int1:Passengers>
                   <int1:BookingPassenger>
                     <int1:Address>
                        <int1:Addr1>123 anywhere st</int1:Addr1>
                        <int1:Addr2>apt 12</int1:Addr2>
                        <int1:City>saint john</int1:City>
                        <int1:CountryCode>CDN</int1:CountryCode> <-------------------------- This is retrieved from 'GetCountryList' response
                        <int1:CountryDescription>Canada</int1:CountryDescription>
                        <int1:PostalCode>e2e2e2</int1:PostalCode>
                        <int1:ProvinceAbbreviation>nb</int1:ProvinceAbbreviation>
                        <int1:ProvinceName>new brunswick</int1:ProvinceName>
                     </int1:Address>
                     <int1:AgeCategory>Adult</int1:AgeCategory>
                     <int1:DateOfBirth>1950-12-12</int1:DateOfBirth>
                     <int1:DestinationTelephone>5064449999</int1:DestinationTelephone>
                     <int1:Firstname>John</int1:Firstname>
                    <int1:Gender>Female</int1:Gender>
                     <int1:General1>123</int1:General1>
                     <int1:General2>123</int1:General2>
                     <int1:Lastname>Doe</int1:Lastname>
                     <int1:Loyalty/>
                     <int1:Middlename></int1:Middlename>
                     <int1:PersonalContact>
                        <int1:Email>email@email.com</int1:Email>
                        <int1:Extension>444</int1:Extension>
                        <int1:Fax>5067778888</int1:Fax>
                        <int1:Mobile>5064441111</int1:Mobile>
                        <int1:Name>Freedom Adventures</int1:Name>
                        <int1:SpecialNeeds>-1</int1:SpecialNeeds>
                        <int1:Telephone>5064441111</int1:Telephone>
                     </int1:PersonalContact>
                     <int1:ProfilePassword></int1:ProfilePassword>
                     <int1:ProfileUsername></int1:ProfileUsername>
                     <int1:Title>Mrs</int1:Title>
                  </int1:BookingPassenger>
               </int1:Passengers>
               <int1:Payment>
                  <int1:Amount>1644000</int1:Amount>
                  <int1:CurrencyCode>CDN</int1:CurrencyCode>
                  <int1:PaymentType>Hold</int1:PaymentType>
                  <int1:ProcessingFee>0</int1:ProcessingFee>
                  <int1:ProcessingFeeTax>0</int1:ProcessingFeeTax>
               </int1:Payment>
            </int:Query>
         </tem:bookingRequest>
      </tem:BookReservation>
   </soapenv:Body>

Common Errors


Amelia Error: -7777777 - Message: Permission Denied: Web - Payment - On Hold.

This error is caused when the user does not have permission to place on hold payments.

"Credit Card" Booking

The following is an example for booking a reservation with 'Credit Card' payment:

   <soapenv:Body>
      <tem:BookReservation>
         <tem:bookingRequest>
            <int:Query>
               <int1:Legs>
                  <int1:BookingLeg>                                                  ____
                     <int1:AdultFares>                                                   |
                        <int1:BookingClassCode>F</int1:BookingClassCode>                 |
                        <int1:CurrencyCode>CDN</int1:CurrencyCode>                       |
                        <int1:FareCode>F</int1:FareCode>                                 |
                        <int1:PaxCount>1</int1:PaxCount>                                 |
                        <int1:TotalCost>1386000</int1:TotalCost>                         |
                     </int1:AdultFares>                                                  |
                     <int1:Segments>                                                     |----- These values are all pulled from 'GetTravelOptions' Response
                        <int1:BookingSegment>                                            |
                           <int1:ArrivalAirportCode>XXX</int1:ArrivalAirportCode>        |
                           <int1:DepartureAirportCode>YYY</int1:DepartureAirportCode>    |
                           <int1:ETALocal>2015-03-23T20:00:00</int1:ETALocal>            |
                           <int1:ETDLocal>2015-03-23T18:10:00</int1:ETDLocal>            |
                           <int1:FlightCode>YY456</int1:FlightCode>                      |
                        </int1:BookingSegment>                                       ____| 
                     </int1:Segments>
                  </int1:BookingLeg>
               </int1:Legs>
               <int1:Passengers>
                   <int1:BookingPassenger>
                     <int1:Address>
                        <int1:Addr1>123 anywhere st</int1:Addr1>
                        <int1:Addr2>apt 12</int1:Addr2>
                        <int1:City>saint john</int1:City>
                        <int1:CountryCode>CDN</int1:CountryCode>
                        <int1:CountryDescription>Canada</int1:CountryDescription>
                        <int1:PostalCode>e2e2e2</int1:PostalCode>
                        <int1:ProvinceAbbreviation>nb</int1:ProvinceAbbreviation>
                        <int1:ProvinceName>new brunswick</int1:ProvinceName>
                     </int1:Address>
                     <int1:AgeCategory>Adult</int1:AgeCategory>
                     <int1:DateOfBirth>1950-12-12</int1:DateOfBirth>
                     <int1:DestinationTelephone>5064449999</int1:DestinationTelephone>
                     <int1:Firstname>John</int1:Firstname>
                    <int1:Gender>Female</int1:Gender>
                     <int1:General1>123</int1:General1>
                     <int1:General2>123</int1:General2>
                     <int1:Lastname>Doe</int1:Lastname>
                     <int1:Loyalty xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
                     <int1:Middlename></int1:Middlename>
                     <int1:PersonalContact>
                        <int1:Email>mail@email.com</int1:Email>
                        <int1:Extension>444</int1:Extension>
                        <int1:Fax>5067778888</int1:Fax>
                        <int1:Mobile>5064441111</int1:Mobile>
                        <int1:Name>Freedom Adventures</int1:Name>
                        <int1:SpecialNeeds>-1</int1:SpecialNeeds>
                        <int1:Telephone>5064441111</int1:Telephone>
                     </int1:PersonalContact>
                     <int1:ProfilePassword></int1:ProfilePassword>
                     <int1:ProfileUsername></int1:ProfileUsername>
                     <int1:Title>Mrs</int1:Title>
                  </int1:BookingPassenger>
               </int1:Passengers>
               <int1:Payment>
                  <int1:Amount>1644000</int1:Amount>
                  <int1:CreditCardPayment>
                     <int1:Address>
                        <int1:Addr1>123 anywhere st</int1:Addr1>
                        <int1:Addr2>apt 12</int1:Addr2>
                        <int1:City>saint john</int1:City>
                        <int1:CountryCode>CDN</int1:CountryCode>
                        <int1:CountryDescription>Canada</int1:CountryDescription>
                        <int1:PostalCode>e2e2e2</int1:PostalCode>
                        <int1:ProvinceAbbreviation>nb</int1:ProvinceAbbreviation>
                        <int1:ProvinceName>new brunswick</int1:ProvinceName>
                     </int1:Address>
                     <int1:CVV>377</int1:CVV>
                     <int1:Email>email@email.com</int1:Email>
                     <int1:ExpireYear>2017</int1:ExpireYear>
                     <int1:ExpiryMonth>12</int1:ExpiryMonth>
                     <int1:Firstname>Loreta</int1:Firstname>
                     <int1:Lastname>Kemeziene</int1:Lastname>
                     <int1:Number>4111111111111111</int1:Number>
                     <int1:TypeCode>VI</int1:TypeCode>
                  </int1:CreditCardPayment>  
                  <int1:CurrencyCode>CDN</int1:CurrencyCode>
                  <int1:PaymentType>CreditCard</int1:PaymentType>
                  <int1:ProcessingFee>22000</int1:ProcessingFee>
                  <int1:ProcessingFeeTax>0</int1:ProcessingFeeTax>
               </int1:Payment>
            </int:Query>
         </tem:bookingRequest>
      </tem:BookReservation>
   </soapenv:Body>

Common Errors


Amelia Error: -65987 - Message: The booking request failed. The reservation was not created successfully

This error generally manifests when the processing fees for the credit card payment are either not included or incorrect. This can be found by running GetProcessingFee().


Nmbr: 91; Desc: Object variable or With block variable not set

The most common cause of this error is a poorly formatted request. Double check the request information and if the error persists, contact support.

"On Account" Booking

The following is an example for booking a reservation with 'On Account':

   <soapenv:Body>
      <tem:BookReservation>
         <tem:bookingRequest>
            <int:Query>
               <int1:Company>
                  <int1:Code>37378001</int1:Code>  <------------------------------------------- This is found by running 'GetAgencyCompanyList'
               </int1:Company>
               <int1:Legs>
                  <int1:BookingLeg>                                                  ____
                     <int1:AdultFares>                                                   |
                        <int1:BookingClassCode>F</int1:BookingClassCode>                 |
                        <int1:CurrencyCode>VND</int1:CurrencyCode>                       |
                        <int1:FareCode>F</int1:FareCode>                                 |
                        <int1:PaxCount>1</int1:PaxCount>                                 |
                        <int1:TotalCost>1386000</int1:TotalCost>                         |
                     </int1:AdultFares>                                                  |
                     <int1:Segments>                                                     |----- These values are all pulled from 'GetTravelOptions' Response
                        <int1:BookingSegment>                                            |
                           <int1:ArrivalAirportCode>XXX</int1:ArrivalAirportCode>        |
                           <int1:DepartureAirportCode>YYY</int1:DepartureAirportCode>    |
                           <int1:ETALocal>2015-03-23T20:00:00</int1:ETALocal>            |
                           <int1:ETDLocal>2015-03-23T18:10:00</int1:ETDLocal>            |
                           <int1:FlightCode>YY456</int1:FlightCode>                      |
                        </int1:BookingSegment>                                       ____| 
                     </int1:Segments>
                  </int1:BookingLeg>
               </int1:Legs>
               <int1:Passengers>
                   <int1:BookingPassenger>
                     <int1:Address>
                        <int1:Addr1>123 anywhere st</int1:Addr1>
                        <int1:Addr2>apt 12</int1:Addr2>
                        <int1:City>saint john</int1:City>
                        <int1:CountryCode>CDN</int1:CountryCode>
                        <int1:CountryDescription>Canada</int1:CountryDescription>
                        <int1:PostalCode>e2e2e2</int1:PostalCode>
                        <int1:ProvinceAbbreviation>nb</int1:ProvinceAbbreviation>
                        <int1:ProvinceName>new brunswick</int1:ProvinceName>
                     </int1:Address>
                     <int1:AgeCategory>Adult</int1:AgeCategory>
                     <int1:DateOfBirth>1950-12-12</int1:DateOfBirth>
                     <int1:DestinationTelephone>5064449999</int1:DestinationTelephone>
                     <int1:Firstname>John</int1:Firstname>
                    <int1:Gender>Male</int1:Gender>
                     <int1:General1>123</int1:General1>
                     <int1:General2>123</int1:General2>
                     <int1:Lastname>Doe</int1:Lastname>
                     <int1:Loyalty xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
                     <int1:LoyaltyId>123456</int1:LoyaltyId>
                     <int1:Middlename></int1:Middlename>
                     <int1:PersonalContact>
                        <int1:Email>email@email.com</int1:Email>
                        <int1:Extension>444</int1:Extension>
                        <int1:Fax>5067778888</int1:Fax>
                        <int1:Mobile>5064441111</int1:Mobile>
                        <int1:Name>Company</int1:Name>
                        <int1:SpecialNeeds>-1</int1:SpecialNeeds>
                        <int1:Telephone>5064441111</int1:Telephone>
                     </int1:PersonalContact>
                     <int1:ProfilePassword></int1:ProfilePassword>
                     <int1:ProfileUsername></int1:ProfileUsername>
                     <int1:Title>Mrs</int1:Title>
                  </int1:BookingPassenger>
               </int1:Passengers>
               <int1:Payment>
                  <int1:AccountPayment>
                     <int1:CompanyCode>37378001</int1:CompanyCode>
                     <int1:PaymentMethod>ACCT</int1:PaymentMethod>
                  </int1:AccountPayment>
                  <int1:Amount>1644000</int1:Amount>
                  <int1:CurrencyCode>CDN</int1:CurrencyCode>
                  <int1:PaymentType>Account</int1:PaymentType>
                  <int1:ProcessingFee>0</int1:ProcessingFee>
                  <int1:ProcessingFeeTax>0</int1:ProcessingFeeTax>
               </int1:Payment>
            </int:Query>
         </tem:bookingRequest>
      </tem:BookReservation>
   </soapenv:Body>

Common Errors


Company not found or invalid.

This error speaks for itself. The safest way to avoid getting this error is to run 'GetAgencyCompanyList' and make sure the company you are trying to use comes up in the list.

 Booking with SSR items

The following is an example of how to book a reservation that includes Flight and/or Airport SSR items. 

How-to

  • The <int1:AirportAllocID> is obtained through running the GetAirportSSRAllocations request, and copying the <b:ID> from an available allocation.
  • <int1:ExtraAllocationIDs> and <int1:FlightAllocID> should be identical, and are obtained through running the GetFlightSSRAllocations request and copying the <b:ExtraAllocationIDs> and <b:ID> from an available allocation.
  • Extra <int1:BookingAirportSSR> and <int1:BookingFlightSSR> tags can be appended to have multiple SSR items.
   <soapenv:Body>
      <tem:BookReservation>
         <tem:bookingRequest>
            <int:Query>
               <int1:Legs>
                   <int1:BookingLeg>                                                  
                  <int1:AdultFares>                                                  
                     <int1:BookingClassCode>Y</int1:BookingClassCode>                 
                     <int1:CurrencyCode>CDN</int1:CurrencyCode>                       
                     <int1:FareCode>YINTR</int1:FareCode>                                 
                     <int1:PaxCount>1</int1:PaxCount>                                 
                     <int1:TotalCost>450</int1:TotalCost>                         
                  </int1:AdultFares>                                                  
                  <int1:Segments>                                                     
                     <int1:BookingSegment>                                            
                        <int1:ArrivalAirportCode>YQM</int1:ArrivalAirportCode>        
                        <int1:DepartureAirportCode>YUL</int1:DepartureAirportCode>    
                        <int1:ETALocal>2015-12-30T14:55:00</int1:ETALocal>            
                        <int1:ETDLocal>2015-12-30T11:15:00</int1:ETDLocal>            
                        <int1:FlightCode>YY234</int1:FlightCode>                      
                     </int1:BookingSegment>                                       
                  </int1:Segments>
               </int1:BookingLeg>
               </int1:Legs>
               <int1:Passengers>
                  <int1:BookingPassenger>
                     <int1:Address>
                        <int1:Addr1>123 anywhere st</int1:Addr1>
                        <int1:Addr2>apt 12</int1:Addr2>
                        <int1:City>saint john</int1:City>
                        <int1:CountryCode>CDN</int1:CountryCode>
                        <int1:CountryDescription>Canada</int1:CountryDescription>
                        <int1:PostalCode>e2e2e2</int1:PostalCode>
                        <int1:ProvinceAbbreviation>nb</int1:ProvinceAbbreviation>
                        <int1:ProvinceName>new brunswick</int1:ProvinceName>
                     </int1:Address>
                     <int1:AgeCategory>Adult</int1:AgeCategory>
              		 <int1:AirportSSRs>
                        <int1:BookingAirportSSR>
                             <int1:AirportAllocID>12778</int1:AirportAllocID> <------------ ID From GetAirportSSRAllocations 
                             <int1:LegNumber>1</int1:LegNumber>
                             <int1:Quantity>1</int1:Quantity>
                         </int1:BookingAirportSSR>
                     </int1:AirportSSRs>
                     <int1:FlightSSRs>
                        <int1:BookingFlightSSR>
                           <int1:ExtraAllocationIDCount>1</int1:ExtraAllocationIDCount>
                           <int1:ExtraAllocationIDs>36508</int1:ExtraAllocationIDs> <------------ ExtraAllocationIDs From GetFlightSSRAllocations 
                           <int1:FlightAllocID>36508</int1:FlightAllocID> <------------ ID From GetFlightSSRAllocations
                           <int1:LegNumber>1</int1:LegNumber>
                           <int1:Quantity>1</int1:Quantity>
                        </int1:BookingFlightSSR>
                    </int1:FlightSSRs>
					<int1:CityPairSSRs>
   						 <int1:BookingCityPairSSR>
           				 	<int1:CityPairAllocID>51</int1:CityPairAllocID> <------------ ID From GetCityPairSSRAllocations
            				<int1:LegNumber>1</int1:LegNumber>
              				<int1:Quantity>1</int1:Quantity>
     					</int1:BookingCityPairSSR>
					</int1:CityPairSSRs>
					 <int1:DateOfBirth>1950-12-12</int1:DateOfBirth>
                     <int1:DestinationTelephone>5064449999</int1:DestinationTelephone>
                     <int1:Firstname>John</int1:Firstname>
                     <int1:Gender>Male</int1:Gender>
                     <int1:General1>123</int1:General1>
                     <int1:General2>123</int1:General2>
                     <int1:Lastname>Doe</int1:Lastname>
                     <int1:Loyalty xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
                     <int1:Middlename>Jane</int1:Middlename>
                     <int1:PersonalContact>
                        <int1:Email>mail@mail.com</int1:Email>
                        <int1:Extension>444</int1:Extension>
                        <int1:Fax>5067778888</int1:Fax>
                        <int1:Mobile>5064441111</int1:Mobile>
                        <int1:Name>Freedom Adventures</int1:Name>
                        <int1:SpecialNeeds>-1</int1:SpecialNeeds>
                        <int1:Telephone>5064441111</int1:Telephone>
                     </int1:PersonalContact>
                     <int1:Title>Mr</int1:Title>
                  </int1:BookingPassenger>
               </int1:Passengers>
               <int1:Payment>
                  <int1:Amount>93.45</int1:Amount>
                  <int1:CurrencyCode>CDN</int1:CurrencyCode>
                  <int1:PaymentType>Hold</int1:PaymentType>
                  <int1:ProcessingFee>1</int1:ProcessingFee>
                  <int1:ProcessingFeeTax>1</int1:ProcessingFeeTax>
               </int1:Payment>
            </int:Query>
         </tem:bookingRequest>
      </tem:BookReservation>
   </soapenv:Body>

Common Errors


Amelia Error: -111 - Message: The booking request failed. The reservation was not created successfully..

This error will occur any time the SSR(s) you're trying to purchase have either sold out or have none allocated. 

General Information

  • When booking a child, ensure there is a child fare node supplied to the request as well as a properly formatted child {{</int1:BookingPassenger>}}. For a male child the title should be 'Master', for a female child the title should be 'Miss'. Supplying the child's title incorrectly may cause unexpected results when booking.
  • The Address 1 and Address 2 fields are limited to 50 characters. Allowing for input larger than that value will cause errors.
  • The booking request is order sensitive.


 Booking with an Infant

How - to

Before executing a booking request with an included infant, run a travel options with the  <int1:InfantCount> parameter > 1

BookReservation w/ Infant
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:int="http://schemas.datacontract.org/2004/07/InteliSys.Amelia.API" xmlns:int1="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
  <soapenv:Header/>
   <soapenv:Body>
      <tem:BookReservation>
        <tem:bookingRequest>
           <int:Query>
           	<int1:Company>
                  <int1:Code>111111</int1:Code>
               </int1:Company>
               <int1:Legs>
                  <int1:BookingLeg>
                     <int1:AdultFares>
                        <int1:BookingClassCode>L</int1:BookingClassCode>
                        <int1:CurrencyCode>CAD</int1:CurrencyCode>
                        <int1:FareCode>L</int1:FareCode>
                        <int1:PaxCount>1</int1:PaxCount>
                        <int1:TotalCost>146.25</int1:TotalCost>
                     </int1:AdultFares>
                     <int1:Segments>
                        <int1:BookingSegment>
                           <int1:ArrivalAirportCode>YQM</int1:ArrivalAirportCode>
                           <int1:DepartureAirportCode>YHM</int1:DepartureAirportCode>
                           <int1:ETALocal>2016-12-19T17:15:00</int1:ETALocal>
                           <int1:ETDLocal>2016-12-19T14:18:00</int1:ETDLocal>
                           <int1:FlightCode>G61100</int1:FlightCode>
                        </int1:BookingSegment>
                     </int1:Segments>
                  </int1:BookingLeg>
               </int1:Legs>
               <int1:Passengers>
                  <int1:BookingPassenger>
                     <int1:Address>
                        <int1:Addr1>260 Princess Street</int1:Addr1>
                        <int1:City>Calgary</int1:City>
                        <int1:CountryCode>CDN</int1:CountryCode>
                        <int1:CountryDescription>CANADA</int1:CountryDescription>
                        <int1:PostalCode>E2L4S8</int1:PostalCode>
                        <int1:ProvinceAbbreviation>NB</int1:ProvinceAbbreviation>
                        <int1:ProvinceName>New Brunswick</int1:ProvinceName>
                     </int1:Address>
                     <int1:AgeCategory>Adult</int1:AgeCategory>
                     <int1:Firstname>Greg</int1:Firstname>
                     <int1:Gender>Male</int1:Gender>
                     <int1:Infants>
                        <int1:Infant>
                           <int1:Firstname>Greg Jr</int1:Firstname>
                           <int1:Gender>M</int1:Gender>
                           <int1:Lastname>Pert</int1:Lastname>
                        </int1:Infant>
                     </int1:Infants>
                     <int1:Lastname>Pert</int1:Lastname>
                     <int1:PersonalContact>
                        <int1:Email>support@intelisysaviation.com</int1:Email>
                     </int1:PersonalContact>
                  </int1:BookingPassenger>
               </int1:Passengers>
               <int1:Payment>
                  <int1:AccountPayment>
                     <int1:CompanyCode>111111</int1:CompanyCode>
                     <int1:PaymentMethod>ACCT</int1:PaymentMethod>
                  </int1:AccountPayment>
                  <int1:Amount>449.01</int1:Amount>
                  <int1:CurrencyCode>CAD</int1:CurrencyCode>
                  <int1:PaymentType>Account</int1:PaymentType>
                  <int1:ProcessingFee>0</int1:ProcessingFee>
                  <int1:ProcessingFeeTax>0</int1:ProcessingFeeTax>
                </int1:Payment>
            </int:Query>
         </tem:bookingRequest>
      </tem:BookReservation>
   </soapenv:Body>
</soapenv:Envelope>



CalculateProcessingFee

CalculateProcessingFee Request

The following is an example request for calculating processing fees for a reservation that is not yet created:

   <soapenv:Body>
      <tem:CalculateProcessingFee>
         <tem:request>
            <int:Query>
               <int1:Legs>
                  <int1:BookingLeg>
                     <int1:AdultFares>
                        <int1:BookingClassCode>F</int1:BookingClassCode>
                        <int1:CurrencyCode>USD</int1:CurrencyCode>
                        <int1:FareCode>F</int1:FareCode>
                        <int1:PaxCount>1</int1:PaxCount>
                        <int1:TotalCost>1386000</int1:TotalCost>
                     </int1:AdultFares>
                     <int1:Segments>
                        <int1:BookingSegment>
                           <int1:ArrivalAirportCode>HAN</int1:ArrivalAirportCode>
                           <int1:DepartureAirportCode>DLI</int1:DepartureAirportCode>
                           <int1:ETALocal>2015-05-23T20:00:00</int1:ETALocal>
                           <int1:ETDLocal>2015-05-23T18:10:00</int1:ETDLocal>
                           <int1:FlightCode>VJ8862</int1:FlightCode>
                        </int1:BookingSegment>
                     </int1:Segments>
                  </int1:BookingLeg>
               </int1:Legs>
               <int1:Passengers>
                  <int1:BookingPassenger>
                     <int1:Address>
                        <int1:Addr1>123 anywhere st</int1:Addr1>
                        <int1:Addr2>apt 12</int1:Addr2>
                        <int1:City>saint john</int1:City>
                        <int1:CountryCode>CDN</int1:CountryCode>
                        <int1:CountryDescription>Canada</int1:CountryDescription>
                        <int1:PostalCode>e2e2e2</int1:PostalCode>
                        <int1:ProvinceAbbreviation>nb</int1:ProvinceAbbreviation>
                        <int1:ProvinceName>new brunswick</int1:ProvinceName>
                     </int1:Address>
                     <int1:AgeCategory>Adult</int1:AgeCategory>
                     <int1:DateOfBirth>1950-12-12</int1:DateOfBirth>
                     <int1:DestinationTelephone>5064449999</int1:DestinationTelephone>
                     <int1:Firstname>Jeff</int1:Firstname>
                     <int1:Gender>Male</int1:Gender>
                     <int1:General1>123</int1:General1>
                     <int1:General2>123</int1:General2>
                     <int1:Lastname>Doe</int1:Lastname>
                     <int1:Loyalty xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
                     <int1:Middlename>Jane</int1:Middlename>
                     <int1:PersonalContact>
                        <int1:Email>test@mail.com</int1:Email>
                        <int1:Extension>444</int1:Extension>
                        <int1:Fax>5067778888</int1:Fax>
                        <int1:Mobile>5064441111</int1:Mobile>
                        <int1:Name>Company</int1:Name>
                        <int1:SpecialNeeds>-1</int1:SpecialNeeds>
                        <int1:Telephone>5064441111</int1:Telephone>
                     </int1:PersonalContact>
                     <int1:Title>Mr</int1:Title>
                  </int1:BookingPassenger>
               </int1:Passengers>
               <int1:Payment>
               <int1:Amount>3288000</int1:Amount>
                  <int1:CreditCardPayment>
                     <int1:Address>
                        <int1:Addr1>123 anywhere st</int1:Addr1>
                        <int1:Addr2>apt 12</int1:Addr2>
                        <int1:City>saint john</int1:City>
                        <int1:CountryCode>CDN</int1:CountryCode>
                        <int1:CountryDescription>Canada</int1:CountryDescription>
                        <int1:PostalCode>e2e2e2</int1:PostalCode>
                        <int1:ProvinceAbbreviation>nb</int1:ProvinceAbbreviation>
                        <int1:ProvinceName>new brunswick</int1:ProvinceName>
                     </int1:Address>
                     <int1:CVV>377</int1:CVV>
                     <int1:Email>mail@mail.com</int1:Email>
                     <int1:ExpireYear>2017</int1:ExpireYear>
                     <int1:ExpiryMonth>12</int1:ExpiryMonth>
                     <int1:Firstname>John</int1:Firstname>
                     <int1:Lastname>Doe</int1:Lastname>
                     <int1:Number>4111111111111111</int1:Number>
                     <int1:TypeCode>VI</int1:TypeCode>
                  </int1:CreditCardPayment>  
                  <int1:CurrencyCode>CDN</int1:CurrencyCode>
                  <int1:PaymentType>CreditCard</int1:PaymentType>
               </int1:Payment>
            </int:Query>
         </tem:request>
      </tem:CalculateProcessingFee>
   </soapenv:Body>

CalculateProcessingFee Response

The following is a snippet from the CalculateProcessingFee response:

               <b:Payment>
                  <b:AccountPayment i:nil="true"/>
                  <b:Amount>3288000</b:Amount>
                  <b:CreditCardPayment>
                     <b:Address>
                        <b:Addr1>123 anywhere st</b:Addr1>
                        <b:Addr2>apt 12</b:Addr2>
                        <b:City>saint john</b:City>
                        <b:CountryCode>CDN</b:CountryCode>
                        <b:CountryDescription>Canada</b:CountryDescription>
                        <b:PostalCode>e2e2e2</b:PostalCode>
                        <b:ProvinceAbbreviation>nb</b:ProvinceAbbreviation>
                        <b:ProvinceName>new brunswick</b:ProvinceName>
                     </b:Address>
                     <b:CVV>377</b:CVV>
                     <b:Email>mail@mail.com</b:Email>
                     <b:ExpireYear>2017</b:ExpireYear>
                     <b:ExpiryMonth>12</b:ExpiryMonth>
                     <b:Firstname>John</b:Firstname>
                     <b:Lastname>Doe</b:Lastname>
                     <b:Number>4111111111111111</b:Number>
                     <b:TypeCode>VI</b:TypeCode>
                  </b:CreditCardPayment>
                  <b:CurrencyCode>VND</b:CurrencyCode>
                  <b:PaymentType>CreditCard</b:PaymentType>
                  <b:ProcessingFee>40000</b:ProcessingFee>    <--------- These values must be put into the appropriate place in
                  <b:ProcessingFeeTax>0</b:ProcessingFeeTax>  <--------- the booking request or the booking will fail
                  <b:RedeemVoucher i:nil="true"/>
                  <b:ThirdPartyPayment i:nil="true"/>
               </b:Payment>

GetAgencyCompanyList

GetAgencyCompanyList Request

The following is a snippet from the GetAgencyCompanyList request:

   <soapenv:Body>
      <tem:GetAgencyCompanyList/>
   </soapenv:Body>

GetAgencyCompanyList Response

The following is a snippet from the GetAgencyCompanyList response:

               <b:PaxCompany>
                  <b:AccountNumber>001</b:AccountNumber>
                  <b:Code>003</b:Code>
                  <b:CreditAvailable>10002144.98</b:CreditAvailable>
                  <b:Currency>
                     <b:Abbreviation>USD</b:Abbreviation>
                     <b:Description>US dollars</b:Description>
                     <b:ExchangeRate>1</b:ExchangeRate>
                     <b:Format>$#,##0.00</b:Format>
                  </b:Currency>
                  <b:IsDefault>true</b:IsDefault>
                  <b:IsGDS>false</b:IsGDS>
                  <b:Name>Intelisys Air</b:Name>
                  <b:RequiresPO>true</b:RequiresPO>
               </b:PaxCompany>
               <b:PaxCompany>

Things to consider


  • Does not require any parameters to be passed
  • Returns list of all agencies that are currently in the system and associated information
  • If your going to book a reservation on account, make sure the company has sufficient credit available or the booking may fail

GetAirport

GetAirport Request

The following is an example of finding an airport by Airport Code:

   <soapenv:Body>
      <tem:GetAirport>
         <tem:airportReq>
            <int:AirportCode>YYZ</int:AirportCode>
         </tem:airportReq>
      </tem:GetAirport>
   </soapenv:Body>

The following is an example of finding an airport by Airport Name:

   <soapenv:Body>
      <tem:GetAirport>     
         <tem:airportReq>
            <int:AirportName>Toronto Pearson Intl</int:AirportName>
         </tem:airportReq>         
      </tem:GetAirport>
   </soapenv:Body>

GetAirport Response

The following is a snippet from the GetAirport response:

            <a:Airport xmlns:b="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
               <b:Code>YYZ</b:Code>
               <b:Name>Toronto Pearson Intl</b:Name>
            </a:Airport>

GetAirportSSRAllocations

GetAirportSSRAllocations Request

The following is an example of finding the available Airport SSR items:

   <soapenv:Body>
      <tem:GetAirportSSRAllocations>
         <tem:allocRequest>
            <int:AirportCode>YUL</int:AirportCode>
            <int:CurrencyCode>CDN</int:CurrencyCode>
            <int:DateOfDepartureOrArrival>2015-12-30T14:55:00</int:DateOfDepartureOrArrival>
            <int:DepartureOrArrivalIndicator>Arrival</int:DepartureOrArrivalIndicator>   
         </tem:allocRequest>
      </tem:GetAirportSSRAllocations>
   </soapenv:Body>

GetAirportSSRAllocations Response

The following is a snippet from the GetAirportSSRAllocations response:

 <b:AirportItem>
    <b:ChargeAmount>4.5</b:ChargeAmount>
    <b:Description>Soup1</b:Description>
    <b:ID>12777</b:ID>
    <b:IsMandatory>false</b:IsMandatory>
    <b:MaxQuatityPerPax>2</b:MaxQuatityPerPax>
    <b:Name>Onion Soup</b:Name>
    <b:QuantityAllocated>25</b:QuantityAllocated>
    <b:QuantityAvailable>24</b:QuantityAvailable>
    <b:Airport xmlns:c="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
      <c:Code/>
      <c:Name>Montreal</c:Name>
    </b:Airport>
    <b:DeartureArrival>Arrival</b:DeartureArrival>
 </b:AirportItem>

GetFlightSSRAllocations 

GetFlightSSRAllocations Request

The following is an example of finding the available Flight SSR items:

   <soapenv:Body>
      <tem:GetFlightSSRAllocations>
         <tem:allocRequest>
            <int:CurrencyCode>CDN</int:CurrencyCode>
            <int:Segments>
               <int1:BookingSegment>
                  <int1:ArrivalAirportCode>YQM</int1:ArrivalAirportCode>
                  <int1:DepartureAirportCode>YUL</int1:DepartureAirportCode>
                  <int1:ETALocal>2015-12-30T14:55:00</int1:ETALocal>
                  <int1:ETDLocal>2015-12-30T11:15:00</int1:ETDLocal>
                  <int1:FlightCode>YY234</int1:FlightCode>
               </int1:BookingSegment>
            </int:Segments>
         </tem:allocRequest>
      </tem:GetFlightSSRAllocations>
   </soapenv:Body>

GetFlightSSRAllocations Response

The following is a snippet from the GetFlightSSRAllocations response:

<b:Allocations>
   <b:FlightItem>
      <b:ChargeAmount>2</b:ChargeAmount>
      <b:Description>Wheelchair Electric Powered</b:Description>
      <b:ID>36508</b:ID>
      <b:IsMandatory>false</b:IsMandatory>
      <b:MaxQuatityPerPax>1</b:MaxQuatityPerPax>
      <b:Name>WCEP</b:Name>
      <b:QuantityAllocated>10</b:QuantityAllocated>
      <b:QuantityAvailable>9</b:QuantityAvailable>
      <b:DepartureAirport xmlns:c="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
         <c:Code>YUL</c:Code>
         <c:Name>Montreal</c:Name>
      </b:DepartureAirport>
      <b:ETD_Local>2015-12-30T11:15:00</b:ETD_Local>
      <b:ExtraAllocationIDCount>1</b:ExtraAllocationIDCount>
      <b:ExtraAllocationIDs>36508</b:ExtraAllocationIDs>
      <b:FlightNumber>YY234</b:FlightNumber>
    </b:FlightItem>
</b:Allocations>

GetCityPairSSRAllocations

GetCityPairSSRAllocations Request

The following is an example of finding the available City Pair SSR items:

   <soapenv:Body>
      <tem:GetCityPairSSRAllocations>
         <tem:allocRequest>
            <int:ArrivalAirportCode>XXX</int:ArrivalAirportCode>
            <int:DepartureAirportCode>YYY</int:DepartureAirportCode>
            <int:ETALocal>2016-05-12</int:ETALocal>
            <int:ETDLocal>2016-05-12</int:ETDLocal>
         </tem:allocRequest>
      </tem:GetCityPairSSRAllocations>
   </soapenv:Body>

GetCityPairSSRAllocations Response

The following is a snippet from the response showing the structure of the returned allocations:

            <a:Allocations xmlns:b="http://schemas.datacontract.org/2004/07/InteliSys.Amelia.SSR">
               <b:CityPairItem>
                  <b:ChargeAmount>80000</b:ChargeAmount>
                  <b:Description>Beef</b:Description>
                  <b:ID>4321</b:ID>
                  <b:IsMandatory>false</b:IsMandatory>
                  <b:MaxQuatityPerPax>20</b:MaxQuatityPerPax>
                  <b:Name>Kabab</b:Name>
                  <b:QuantityAllocated>3</b:QuantityAllocated>
                  <b:QuantityAvailable>3</b:QuantityAvailable>
                  <b:ArrivalAirport xmlns:c="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
                     <c:Code>XXX</c:Code>
                     <c:Name>Arrival Airport</c:Name>
                  </b:ArrivalAirport>
                  <b:DepartureAirport xmlns:c="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
                     <c:Code>YYY</c:Code>
                     <c:Name>Departure Airport</c:Name>
                  </b:DepartureAirport>
               </b:CityPairItem>
            </a:Allocations>

GetSeatMapByFlight

GetSeatMapByFlight Request

The following is a sample GetSeatMapByFlight request:

    <soapenv:Body>
      <tem:GetSeatMapByFlight>
         <tem:request>
            <int:FareCategory>B</int:FareCategory>
            <int:FlightList>
               <int1:Flight>
                  <int1:ArrivalAirport>
                     <int1:Code>ABC</int1:Code>
                  </int1:ArrivalAirport>
                  <int1:DepartureAirport>
                     <int1:Code>DEF</int1:Code>
                  </int1:DepartureAirport>
                  <int1:ETDLocal>2015-03-11T02:00:00</int1:ETDLocal>
                  <int1:Number>XY1001</int1:Number>
               </int1:Flight>
            </int:FlightList>
         </tem:request>
      </tem:GetSeatMapByFlight>
   </soapenv:Body>

Things to consider


  • Fare Category and the Flight information are retrieved from the GetTravelOptions response.
<!-- Snippet of GetTravelOptions Response -->
                                 <b:FareOption>
                                    <b:Advancebooking>0</b:Advancebooking>
                                    <b:ChangesAllowed>true</b:ChangesAllowed>
                                    <b:Currency xmlns:c="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
                                       <c:Abbreviation>VND</c:Abbreviation>
                                       <c:Description>Vietnam Dong</c:Description>
                                       <c:ExchangeRate>1</c:ExchangeRate>
                                       <c:Format>#,##0 VND</c:Format>
                                    </b:Currency>
                                    <b:Description>Econ</b:Description>
                                    <b:DiscountFare>1260000</b:DiscountFare>
                                    <b:DiscountFareTaxes>126000</b:DiscountFareTaxes>
                                    <b:DiscountFareTotal>1386000</b:DiscountFareTotal>
--------------------------------->  <b:FareCategory>F</b:FareCategory>
                                    <b:FareCategoryFreeTextRules/>
                                    <b:FareClass>F</b:FareClass>
                                    <b:FareClassFreeTextRules/>
                                    <b:FareClassStatus>C</b:FareClassStatus>
                                    <b:FareCost>1260000</b:FareCost>
                                    <b:FareTaxes>126000</b:FareTaxes>
                                    <b:IsDefaultFare>true</b:IsDefaultFare>
                                    <b:IsRefundable>true</b:IsRefundable>
                                    <b:MaxStayOver>0</b:MaxStayOver>
                                    <b:MinStayOver>0</b:MinStayOver>
                                    <b:OnewayReturn>OnewayFare</b:OnewayReturn>
                                    <b:Option>1</b:Option>
                                    <b:PromoCodeID>-1</b:PromoCodeID>
                                    <b:PromoCodeSuffixID>-1</b:PromoCodeSuffixID>
                                    <b:PromoFlag/>
                                    <b:ReasonInvalid/>
                                    <b:Restricted>true</b:Restricted>
                                    <b:Sale>false</b:Sale>
                                    <b:SeatCharge>20000</b:SeatCharge>
                                    <b:SeatChargeTax>0</b:SeatChargeTax>
                                    <b:SeatChargeTotal>20000</b:SeatChargeTotal>
                                    <b:SeatSale>false</b:SeatSale>
                                    <b:SeatsAvailable>101</b:SeatsAvailable>
                                    <b:Totalfare>1386000</b:Totalfare>
                                    <b:Valid>true</b:Valid>
                                    <b:Waitlist>false</b:Waitlist>
                                 </b:FareOption>
                              </b:Adultfares>
                              <b:Childfares/>
                           </b:FareOptions>
                           <b:NumberOfStops>1</b:NumberOfStops>
                           <b:RouteHours>0</b:RouteHours>
                           <b:SegmentOptions>
                              <b:SegmentOption>                                ________                                                           
                                 <b:Flight ...>                                        |
                                    <c:Aircraft>                                       |                      
                                       <c:ModelIdent>A321</c:ModelIdent>               |         
                                       <c:ModelName>A321</c:ModelName>                 |                    
                                    </c:Aircraft>                                      |                       
                                    <c:ArrivalAirport>                                 |            
                                       <c:Code>XXX</c:Code>                            |            
                                       <c:Name>Some Airport</c:Name>                   |       
                                    </c:ArrivalAirport>                                |                  
                                    <c:DepartureAirport>                               |                           
                                       <c:Code>YYY</c:Code>                            |                             
                                       <c:Name>Another Airport</c:Name>                |                       
                                    </c:DepartureAirport>                              |                         
                                    <c:ETA>2015-03-23T13:00:00</c:ETA>                 |                   
                                    <c:ETALocal>2015-03-23T20:00:00</c:ETALocal>       |                         
                                    <c:ETD>2015-03-23T11:10:00</c:ETD>                 |                        
                                    <c:ETDLocal>2015-03-23T18:10:00</c:ETDLocal>       |                     
                                    <c:Number>YY456</c:Number>                         |                          
                                 </b:Flight>                                   ________|       
                                 <b:Quality>A/C-CHG 0</b:Quality>
                                 <b:SeatAllocation>144</b:SeatAllocation>  
                                 <b:Segdist>1091.2</b:Segdist>
                              </b:SegmentOption>
                           </b:SegmentOptions>

If a specific travel option contains multiple flights, all flights would be passed to the GetSeatMapByFlight request in the FlightList node.

GetSeatMapByFlight Response

The response will contain seats as well as their availability including any seat blocks that may need to be taken into account.

UpdatePassengerWeight

UpdatePassengerWeight Request

   <soapenv:Body>
      <tem:UpdatePassengerWeight>
         <tem:request>
            <int:PaxGroupID>29739</int:PaxGroupID>
            <int:PaxWeight>160</int:PaxWeight>
         </tem:request>
      </tem:UpdatePassengerWeight>
   </soapenv:Body>
  • The PaxGroupID is obtainable through CheckIn services GetReservation.
  • This request supports one passenger update at a time.

UpdatePassengerWeight Response

   <s:Body>
      <UpdatePassengerWeightResponse xmlns="http://tempuri.org/">
         <UpdatePassengerWeightResult xmlns:a="http://schemas.datacontract.org/2004/07/InteliSys.Amelia.API" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
            <a:AuditKey>f61fb2d9-f6ad-4411-a4b1-6db8b86be399</a:AuditKey>
            <a:OperationMessage>SUCCESS</a:OperationMessage>
            <a:OperationSucceeded>true</a:OperationSucceeded>
            <a:OperationUID>f61fb2d9-f6ad-4411-a4b1-6db8b86be399</a:OperationUID>
         </UpdatePassengerWeightResult>
      </UpdatePassengerWeightResponse>
   </s:Body>

Here are a list of error message that will only occur on a failed UpdatePassengerWeight request.

  • "There was an error while retrieving passenger information associated with the paxGroupID."
    • Verify Pax Group ID is valid.

  • "Requested passenger weight is equal to current weight"

  • "There was an error while attempting to update the passenger weight"
    • This error will not occur if the request is setup correctly and there is a valid PaxGroupID. Ensure the corresponding permissions are granted.

  • "Failed to update passenger weight."
    • This is an overall failure of the request, and no attempt to update the passenger weight was made. Ensure the request is properly formatted, the endpoint is correct and valid credentials are being used.


GetBookingSeatMaps

Note: This operation will be available with the 16.12 release.

GetBookingSeatMaps Request

The following is an example of a GetBookingSeatMaps request:

<soapenv:Body>
   <tem:GetBookingSeatMaps>
      <tem:request>
         <int:CurrencyCode/>
         <int:FareClass>Y-Fare</int:FareClass>
         <int:FlightList>
            <int1:Flight>
               <int1:ArrivalAirport>
                  <int1:Code>YYY</int1:Code>
               </int1:ArrivalAirport>
               <int1:DepartureAirport>
                  <int1:Code>XXX</int1:Code>
               </int1:DepartureAirport>
               <int1:ETDLocal>2016-11-03T08:30:00</int1:ETDLocal>
               <int1:Number>YY100</int1:Number>
            </int1:Flight>
            <int1:Flight>
               <int1:ArrivalAirport>
                  <int1:Code>ZZZ</int1:Code>
               </int1:ArrivalAirport>
               <int1:DepartureAirport>
                  <int1:Code>YYY</int1:Code>
               </int1:DepartureAirport>
               <int1:ETDLocal>2016-11-03T08:30:00</int1:ETDLocal>
               <int1:Number>YY100</int1:Number>
            </int1:Flight>
         </int:FlightList>
      </tem:request>
   </tem:GetBookingSeatMaps>
</soapenv:Body>

Things to consider


  • The fare class and flights are pulled from the travel options response
  • All flights for the travel option you are running this request for should be supplied
  • If no currency code is supplied in the request, the default currency will be used
  • Depending on the flights passed in, the response will be a list of one or many seat maps

GetBookingSeatMaps Response

The response of this operation will return a list of one or more seat maps as well as the charges associated with each seat:

            <a:SeatMapList xmlns:b="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
               <b:BookingSeatMap>
                  <b:Flights>
                     <b:Flight>
                        <b:Aircraft>
                           <b:ModelIdent>Canadair  CRA</b:ModelIdent>
                           <b:ModelName>CRJ7</b:ModelName>
                        </b:Aircraft>
                        <b:ArrivalAirport>
                           <b:Code>YYY</b:Code>
                           <b:Name>Some airport</b:Name>
                        </b:ArrivalAirport>
                        <b:DepartureAirport>
                           <b:Code>XXX</b:Code>
                           <b:Name>Some airport</b:Name>
                        </b:DepartureAirport>
                        <b:ETA>2016-11-14T20:10:00</b:ETA>
                        <b:ETALocal>2016-11-14T15:10:00</b:ETALocal>
                        <b:ETD>2016-11-14T19:15:00</b:ETD>
                        <b:ETDLocal>2016-11-14T14:15:00</b:ETDLocal>
                        <b:Number>YY100</b:Number>
                     </b:Flight>                     
					 <b:Flight>
                        <b:Aircraft>
                           <b:ModelIdent>Canadair  CRA</b:ModelIdent>
                           <b:ModelName>CRJ7</b:ModelName>
                        </b:Aircraft>
                        <b:ArrivalAirport>
                           <b:Code>ZZZ</b:Code>
                           <b:Name>Some airport</b:Name>
                        </b:ArrivalAirport>
                        <b:DepartureAirport>
                           <b:Code>YYY</b:Code>
                           <b:Name>Some airport</b:Name>
                        </b:DepartureAirport>
                        <b:ETA>2016-11-14T20:10:00</b:ETA>
                        <b:ETALocal>2016-11-14T15:10:00</b:ETALocal>
                        <b:ETD>2016-11-14T19:15:00</b:ETD>
                        <b:ETDLocal>2016-11-14T14:15:00</b:ETDLocal>
                        <b:Number>YY100</b:Number>
                     </b:Flight>
                  </b:Flights>
                  <b:Seats>
                     <b:FlightSeat>
                        <b:Availability>Available</b:Availability>
                        <b:BlockReason i:nil="true"/>
                        <b:Flags>
                           <b:SeatFlags>WindowSeat</b:SeatFlags>
                           <b:SeatFlags>Seat</b:SeatFlags>
                        </b:Flags>
                        <b:RowNumber>1</b:RowNumber>
                        <b:SeatNumber>A</b:SeatNumber>
                        <b:Charges>
                           <b:SeatCharge>
                              <b:BookingCodeSeatCharge>10</b:BookingCodeSeatCharge>
                              <b:Currency>
                                 <b:Abbreviation>USD</b:Abbreviation>
                                 <b:Description>US dollars</b:Description>
                                 <b:ExchangeRate>1</b:ExchangeRate>
                                 <b:Format>$#,##0.00</b:Format>
                              </b:Currency>
                              <b:SeatTypeCharge>10</b:SeatTypeCharge>
                              <b:TaxAmountTotal>1</b:TaxAmountTotal>
                              <b:TaxComponents>
                                 <b:TaxComponent>
                                    <b:Amount>1</b:Amount>
                                    <b:Name>Services</b:Name>
                                 </b:TaxComponent>
                              </b:TaxComponents>
                              <b:TotalSeatCost>21</b:TotalSeatCost>
                           </b:SeatCharge>
                        </b:Charges>
                     </b:FlightSeat>
						...
						...
						...
						...
                  <b:Seats/>
               <b:BookingSeatMap/>
            <a:SeatMapList/>


CheckIn Service

CheckIn

CheckIn Request

The following is an example of a CheckIn request:

    <soapenv:Body>
      <tem:CheckIn>
         <tem:request>
            <int:LegNumber>1</int:LegNumber>
            <int:PaxList>
               <int1:CheckInPax>                                    
                  <int1:Firstname>JOHN</int1:Firstname>          
                  <int1:Lastname>DOE</int1:Lastname>                 
                  <int1:Middlename>NOMIDDLENAME</int1:Middlename>     
                  <int1:PassportNumber>12345</int1:PassportNumber>   
               </int1:CheckInPax>
            </int:PaxList>
            <int:ReservationNumber>123456</int:ReservationNumber>
         </tem:request>
      </tem:CheckIn>
   </soapenv:Body>

Things to consider


  • <int1:Firstname>, <int1:Lastname>, <int1:Middlename>, <int1:PassportNumber> must match the passenger information on the reservation or the operation will fail.


CheckIn Response

The following is a snippet from the CheckIn request:

      <CheckInResponse xmlns="http://tempuri.org/">
         <CheckInResult xmlns:a="http://schemas.datacontract.org/2004/07/InteliSys.Amelia.API" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
            <a:AuditKey>57c0f1a3-80db-425f-9520-19fac363793f</a:AuditKey>
            <a:OperationMessage>OK</a:OperationMessage>
            <a:OperationSucceeded>true</a:OperationSucceeded>
            <a:OperationUID>57c0f1a3-80db-425f-9520-19fac363793f</a:OperationUID>
            <a:PaxList xmlns:b="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
               <b:CheckInPax>
                  <b:CheckInResult>Success</b:CheckInResult>
                  <b:CheckInSuccess>true</b:CheckInSuccess>
                  <b:Firstname>CASSIDY</b:Firstname>
                  <b:Lastname>COLLINGS</b:Lastname>
                  <b:Middlename i:nil="true"/>
                  <b:PassportNumber i:nil="true"/>
               </b:CheckInPax>
               <b:CheckInPax>
                  <b:CheckInResult>Success</b:CheckInResult>
                  <b:CheckInSuccess>true</b:CheckInSuccess>
                  <b:Firstname>RICK</b:Firstname>
                  <b:Lastname>ALLEN</b:Lastname>
                  <b:Middlename i:nil="true"/>
                  <b:PassportNumber i:nil="true"/>
               </b:CheckInPax>
            </a:PaxList>

			...
			...

Common Errors


1 of 1 passengers were not checked-in. Review the response pax list for details.

For more detail check the <b:CheckInResult> node in the response.

The following are common failure cases:

            <a:PaxList xmlns:b="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
               <b:CheckInPax>
                  <b:CheckInResult>Not found</b:CheckInResult>
                  <b:CheckInSuccess>false</b:CheckInSuccess>
                  <b:Firstname>fname</b:Firstname>
                  <b:Lastname>lname</b:Lastname>
                  <b:Middlename/>
                  <b:PassportNumber/>
               </b:CheckInPax>
            </a:PaxList>

This error usually occurs when the passenger information in the request does not match the passenger information on the reservation.

            <a:PaxList xmlns:b="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
               <b:CheckInPax>
                  <b:CheckInResult>You do not have permission to modify check in status</b:CheckInResult>
                  <b:CheckInSuccess>false</b:CheckInSuccess>
                  <b:Firstname>fname</b:Firstname>
                  <b:Lastname>lname</b:Lastname>
                  <b:Middlename/>
                  <b:PassportNumber/>
               </b:CheckInPax>
            </a:PaxList>

This error occurs when the user does not have permission to checkin a passenger.

GetSeatMap

GetSeatMap Request

The following is an example of a GetSeatMap request:

   <soapenv:Body>
      <tem:GetSeatMap>
         <tem:request>
            <int:Query>
               <int1:LegNumber>1</int1:LegNumber>
               <int1:ReservationNumber>123123</int1:ReservationNumber>
            </int:Query>
         </tem:request>
      </tem:GetSeatMap>
   </soapenv:Body>

GetSeatMap Response

The following is an snippet from a successful GetSeatMap request:

      <GetSeatMapResponse xmlns="http://tempuri.org/">
         <GetSeatMapResult xmlns:a="http://schemas.datacontract.org/2004/07/InteliSys.Amelia.API" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
            <a:AuditKey>1233d54e-f242-40f6-8e22-74306a4cdf37</a:AuditKey>
            <a:OperationMessage>OK</a:OperationMessage>
            <a:OperationSucceeded>true</a:OperationSucceeded>
            <a:OperationUID>1233d54e-f242-40f6-8e22-74306a4cdf37</a:OperationUID>
            <a:Seatmap xmlns:b="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
               <b:Flights>
                  <b:Flight>
                     <b:Aircraft>
                        <b:ModelIdent>A123</b:ModelIdent>
                        <b:ModelName>A123</b:ModelName>
                     </b:Aircraft>
                     <b:ArrivalAirport>
                        <b:Code>ABC</b:Code>
                        <b:Name>Some Airport</b:Name>
                     </b:ArrivalAirport>
                     <b:DepartureAirport>
                        <b:Code>DEF</b:Code>
                        <b:Name>Another Airport</b:Name>
                     </b:DepartureAirport>
                     <b:ETA>2015-06-17T10:35:00</b:ETA>
                     <b:ETALocal>2015-06-17T17:35:00</b:ETALocal>
                     <b:ETD>2015-06-17T08:45:00</b:ETD>
                     <b:ETDLocal>2015-06-17T15:45:00</b:ETDLocal>
                     <b:Number>YZ12345</b:Number>
                  </b:Flight>
               </b:Flights>
               <b:LegNumber>1</b:LegNumber>
               <b:ReservationNumber>12345678</b:ReservationNumber>
               <b:Seats>
                  <b:Seat>
                     <b:Availability>Available</b:Availability>
                     <b:BlockReason i:nil="true"/>
                     <b:Flags>
                        <b:SeatFlags>WindowSeat</b:SeatFlags>
                        <b:SeatFlags>BulkheadFront</b:SeatFlags>
                        <b:SeatFlags>Seat</b:SeatFlags>
                     </b:Flags>
                     <b:RowNumber>1</b:RowNumber>
                     <b:SeatNumber>A</b:SeatNumber>
                  </b:Seat>
                  <b:Seat>
                     <b:Availability>Available</b:Availability>
                     <b:BlockReason i:nil="true"/>
                     <b:Flags>
                        <b:SeatFlags>BulkheadFront</b:SeatFlags>
                        <b:SeatFlags>Seat</b:SeatFlags>
                     </b:Flags>
                     <b:RowNumber>1</b:RowNumber>
                     <b:SeatNumber>B</b:SeatNumber>
                  </b:Seat>

					...
					...

Common Errors


There was an error getting the seatmap. Object reference not set to an instance of an object.

The most common cause of this error is that the reservation that you're trying to view a seatmap for is canceled.

NOTE: This operation does not currently support connecting flights.

SetSeatAssignmentsByFlight

Getting the Required Information

  1. Get the seat map for the passenger you wish to set seat assignments for. This can be done in a few different ways, but i will explain the most straightforward first.

    1. Run GetReservation() under either the CheckIn service or the ReservationInvoice service.

    2. In the response, the information you are interested in is under the <b:Legs> → <b:InvoiceLeg> → <b:Segments> → <b:InvoiceSegment> nodes. You will need to collect all relevant flight information required to retrieve the seat map(s).

    3. Populate the GetSeatMapByFlight() request with the information retrieved above.

    4. Run the request. The response will have one or many seat maps depending on the flight information you passed in. Now that you can see which seats are available, pick one for the passenger you wish to seat.

  2. Populate the SetSeatAssignmentsByFlight() request with the flight information retrieved from GetSeatMapByFlight().

  3. Run the request and verify in the response under the <b:InvoiceSegment> nodes that the seats were successfully set.
 

SetSeatAssignmentsByFlightRequest

The following is a sample request for SetSeatAssignmentsByFlight:

   <soapenv:Body>
      <tem:SetSeatAssignmentsByFlight>
         <tem:request>
            <int:PaxList>
               <int1:FlightSeatAssignmentPax>
                  <int1:PaxGroupID>31868</int1:PaxGroupID>
                  <int1:RowNumber>1</int1:RowNumber>
                  <int1:SeatNumber>B</int1:SeatNumber>
                  <int1:Flights>
                     <int1:Flight>
                        <int1:ArrivalAirport>
                           <int1:Code>YUL</int1:Code>
                        </int1:ArrivalAirport>
                        <int1:DepartureAirport>
                           <int1:Code>YQM</int1:Code>
                        </int1:DepartureAirport>
                        <int1:ETDLocal>2016-09-26T08:30:00</int1:ETDLocal>
                        <int1:Number>YY435</int1:Number>
                     </int1:Flight>
                     <int1:Flight>
                        <int1:ArrivalAirport>
                           <int1:Code>YUL</int1:Code>
                        </int1:ArrivalAirport>
                        <int1:DepartureAirport>
                           <int1:Code>YQM</int1:Code>
                        </int1:DepartureAirport>
                        <int1:ETDLocal>2016-09-26T012:30:00</int1:ETDLocal>
                        <int1:Number>YY435</int1:Number>
                     </int1:Flight>
                  </int1:Flights>
               </int1:FlightSeatAssignmentPax>
               <int1:FlightSeatAssignmentPax>
                  <int1:PaxGroupID>31868</int1:PaxGroupID>
                  <int1:RowNumber>1</int1:RowNumber>
                  <int1:SeatNumber>B</int1:SeatNumber>
                  <int1:Flights>
                     <int1:Flight>
                        <int1:ArrivalAirport>
                           <int1:Code>YOW</int1:Code>
                        </int1:ArrivalAirport>
                        <int1:DepartureAirport>
                           <int1:Code>YUL</int1:Code>
                        </int1:DepartureAirport>
                        <int1:ETDLocal>2016-09-26T10:00:00</int1:ETDLocal>
                        <int1:Number>YY111</int1:Number>
                     </int1:Flight>
                  </int1:Flights>
               </int1:FlightSeatAssignmentPax>
               <int1:FlightSeatAssignmentPax>
                  <int1:PaxGroupID>31868</int1:PaxGroupID>
                  <int1:RowNumber>1</int1:RowNumber>
                  <int1:SeatNumber>C</int1:SeatNumber>
                  <int1:Flights>
                     <int1:Flight>
                        <int1:ArrivalAirport>
                           <int1:Code>YYZ</int1:Code>
                        </int1:ArrivalAirport>
                        <int1:DepartureAirport>
                           <int1:Code>YOW</int1:Code>
                        </int1:DepartureAirport>
                        <int1:ETDLocal>2016-09-26T11:20:00</int1:ETDLocal>
                        <int1:Number>YY902</int1:Number>
                     </int1:Flight>
                  </int1:Flights>
               </int1:FlightSeatAssignmentPax>
            </int:PaxList>
            <int:ReservationNumber>12345678</int:ReservationNumber>
         </tem:request>
      </tem:SetSeatAssignmentsByFlight>
   </soapenv:Body>

Things to consider

  • Each passenger will need a separate FlightSeatAssignmentPax entry for each flight on the reservation.

  • You can seat all passengers using one request or split them up into several individual requests.
  • The available seats returned via GetSeatMapByFlight() must be considered when choosing a seat for a passenger.

  • Due to the nature of the way APIv3 sets seat assignments, it allows for seats to be set even if they are flagged as emergency exit or any other seat “block”. This means that it is up to the consumer of the API to take precautions around which seats to set for each passenger.
  • If the flight in which you are tyring to set a seat is a connecting flight, all flights must be supplied in the request or it will fail.

SetSeatAssignments

SetSeatAssignments Request

The following is a sample request for SetSeatAssignments:

   <soapenv:Body>
      <tem:SetSeatAssignments>
         <tem:request>
            <int:LegNumber>1</int:LegNumber>
            <int:PaxList>
               <int1:SeatAssignmentPax>
                  <int1:Firstname>JOHN</int1:Firstname>
                  <int1:Lastname>DOE</int1:Lastname>
                  <int1:Middlename>NOMIDDLENAME</int1:Middlename>
                  <int1:PassportNumber>12345</int1:PassportNumber>
                  <int1:RowNumber>1</int1:RowNumber>
                  <int1:SeatNumber>A</int1:SeatNumber>
               </int1:SeatAssignmentPax>
            </int:PaxList>
            <int:ReservationNumber>123456</int:ReservationNumber>
         </tem:request>
      </tem:SetSeatAssignments>
   </soapenv:Body>

SetSeatAssignments Response

The following is a snippet from the SetSeatAssignments response:

                           <b:PaxList>
                              <b:InvoiceSegmentPax>
                                 <b:Balance>0</b:Balance>
                                 <b:BoardingPassNumber/>
                                 <b:Charges>0</b:Charges>
                                 <b:CheckinStatus>Not Checked-in</b:CheckinStatus>
                                 <b:FareIdent>C</b:FareIdent>
                                 <b:Firstname>JOHN</b:Firstname>
                                 <b:Lastname>DOE</b:Lastname>
                                 <b:Middlename/>
                                 <b:PaxGroupID>123</b:PaxGroupID>
                                 <b:Payments>0</b:Payments>
                                 <b:Refunds>0</b:Refunds>
                                 <b:RowNumber>1</b:RowNumber>
                                 <b:SeatNumber>A</b:SeatNumber>
                                 <b:StatusCode>Confirmed</b:StatusCode>
                              </b:InvoiceSegmentPax>
                           </b:PaxList>

Things to consider


  • This request will search for the passenger based on First Name, Middle Name, Last Name, and Passport Number. If any of this information does not match the desired passenger on the reservation, the request will fail with:

    <a:OperationMessage>There was an error assigning seats: Please verify passenger information is correct.</a:OperationMessage>

Reservation Payment Service

GetPaymentMethodList

GetPaymentMethodList Request

The following is an example of a GetPaymentMethodList request:

    <soapenv:Body>
      <tem:GetPaymentMethodList>
         <tem:request>
         <int:CurrencyCode>CDN</int:CurrencyCode></tem:request>
      </tem:GetPaymentMethodList>
   </soapenv:Body>
</soapenv:Envelope>

Things to consider


  • This request only takes a single parameter (CurrencyCode)
  • If the payment method you wish to use is not displayed when running this operation, it may not currently be configured. In this case, contact support. 


GetPaymentMethodList Response

The following is a snippet from the GetPaymentMethodList response:

                <b:PaymentMethod>
                  <b:Code>CA</b:Code>
                  <b:CreditCardVerificationType/>
                  <b:Description>Cash</b:Description>
                  <b:Flag>T</b:Flag>
                  <b:PaymentType>Other</b:PaymentType>
                  <b:ProcessingCharge>0</b:ProcessingCharge>
                  <b:ProcessingChargeCurrencyCode>CDN</b:ProcessingChargeCurrencyCode>
                  <b:ProcessingChargeMax>0</b:ProcessingChargeMax>
                  <b:ProcessingChargeMin>0</b:ProcessingChargeMin>
                  <b:ProcessingChargeType>Value</b:ProcessingChargeType>
               </b:PaymentMethod>
               <b:PaymentMethod>
                  <b:Code>AG</b:Code>
                  <b:CreditCardVerificationType/>
                  <b:Description>Agency Credit</b:Description>
                  <b:Flag>O</b:Flag>
                  <b:PaymentType>Account</b:PaymentType>
                  <b:ProcessingCharge>0</b:ProcessingCharge>
                  <b:ProcessingChargeCurrencyCode>CDN</b:ProcessingChargeCurrencyCode>
                  <b:ProcessingChargeMax>0</b:ProcessingChargeMax>
                  <b:ProcessingChargeMin>0</b:ProcessingChargeMin>
                  <b:ProcessingChargeType>Value</b:ProcessingChargeType>
               </b:PaymentMethod>

Things to Consider


  • The response will contain all currently configured payment methods
  • Within each PaymentMethod node will be information about the various charges including any applicable processing fees

ReservationPayment

ReservationPayment Request

"On Account" Payment

The following is an example of a ReservationPayment request paying on account:

    <soapenv:Body>
      <tem:ReservationPayment>
         <tem:reservationPaymentRequest>
           <int:Payment>
               <int1:Company>
                  <int1:Code>11000001</int1:Code>
               </int1:Company>
               <int1:CurrencyCode>VND</int1:CurrencyCode>
               <int1:PayAllPassengers>true</int1:PayAllPassengers>
               <int1:PayBalance>true</int1:PayBalance>
               <int1:Payment>
                  <int1:AccountPayment>
                     <int1:CompanyCode>11000001</int1:CompanyCode>
                     <int1:PaymentMethod>AG</int1:PaymentMethod>
                     <int1:PurchaseOrder>717103694</int1:PurchaseOrder>
                  </int1:AccountPayment>
                  <int1:Amount>550000</int1:Amount>
                  <int1:CurrencyCode>VND</int1:CurrencyCode>
                  <int1:PaymentType>Account</int1:PaymentType>
                  <int1:ProcessingFee>0</int1:ProcessingFee>
                  <int1:ProcessingFeeTax>0</int1:ProcessingFeeTax>
               </int1:Payment>
               <int1:ReservationNumber>1234567</int1:ReservationNumber>
            </int:Payment>
         </tem:reservationPaymentRequest>
      </tem:ReservationPayment>
   </soapenv:Body>
"Credit Card" Payment

The following is an example of a ReservationPayment request paying with credit card:

   <soapenv:Body>
      <tem:ReservationPayment>
         <tem:reservationPaymentRequest>
            <int:Payment>
               <int1:CurrencyCode>VND</int1:CurrencyCode>
               <int1:PayAllPassengers>true</int1:PayAllPassengers>
               <int1:PayBalance>true</int1:PayBalance>
               <int1:Payment>
                  <int1:Amount>550000</int1:Amount>
                   <int1:CreditCardPayment>
                     <int1:Address>
                        <int1:Addr1>123 anywhere st</int1:Addr1>
                        <int1:Addr2>apt 12</int1:Addr2>
                        <int1:City>saint john</int1:City>
                        <int1:CountryCode>CDN</int1:CountryCode>
                        <int1:CountryDescription>Canada</int1:CountryDescription>
                        <int1:PostalCode>e2e2e2</int1:PostalCode>
                        <int1:ProvinceAbbreviation>nb</int1:ProvinceAbbreviation>
                        <int1:ProvinceName>new brunswick</int1:ProvinceName>
                     </int1:Address>
                     <int1:CVV>377</int1:CVV>
                     <int1:Email>mail@mail.com</int1:Email>
                     <int1:ExpireYear>2017</int1:ExpireYear>
                     <int1:ExpiryMonth>12</int1:ExpiryMonth>
                     <int1:Firstname>John</int1:Firstname>
                     <int1:Lastname>Doe</int1:Lastname>
                     <int1:Number>4111111111111111</int1:Number>
                     <int1:TypeCode>VI</int1:TypeCode>
                  </int1:CreditCardPayment>  
                  <int1:CurrencyCode>VND</int1:CurrencyCode>
                  <int1:PaymentType>CreditCard</int1:PaymentType>
                  <int1:ProcessingFee>0</int1:ProcessingFee>
                  <int1:ProcessingFeeTax>0</int1:ProcessingFeeTax>
               </int1:Payment>
               <int1:ReservationNumber>1234567</int1:ReservationNumber>
            </int:Payment>
         </tem:reservationPaymentRequest>
      </tem:ReservationPayment>
   </soapenv:Body>
"Voucher" Payment

The following is an example of a ReservationPayment request paying with a voucher:

<int:Payment>
   <int1:CurrencyCode>USD</int1:CurrencyCode>
   <int1:PayAllPassengers>false</int1:PayAllPassengers>
   <int1:PayBalance>false</int1:PayBalance>  <---- Set to true if the full balance of the reservation will be paid with a voucher.
   <int1:Payment>
   	  <int1:Amount>5.00</int1:Amount>
      <int1:PaymentType>VoucherOnly</int1:PaymentType>
      <int1:ProcessingFee>0</int1:ProcessingFee>
      <int1:ProcessingFeeTax>0</int1:ProcessingFeeTax>
      <int1:RedeemVoucher>
      	 <int1:CurrencyCode>USD</int1:CurrencyCode>
       	 <int1:Firstname>John</int1:Firstname>
       	 <int1:Lastname>Doe</int1:Lastname>
       	 <int1:PIN>123</int1:PIN>
       	 <int1:Password>123</int1:Password>
       	 <int1:RedeemAmount>5.00</int1:RedeemAmount>
       	 <int1:SerialNumber>J68PKUAB4X</int1:SerialNumber>
   	  </int1:RedeemVoucher>
   </int1:Payment>
   <int1:ReservationNumber>1013101</int1:ReservationNumber>
</int:Payment>


The response will be similar to a BookReservation response. The "Payments" and "ResStatus" will contian information related to the voucher payment.

<b:Payments>
   <b:Payment>
  	 <b:CurrencyAmount>5</b:CurrencyAmount>
   	<b:DatedLocal>2017-01-24T09:39:00</b:DatedLocal>
   	<b:DatedZulu>2017-01-24T14:39:00</b:DatedZulu>
   	<b:Description/>
   	<b:Firstname>John</b:Firstname>
   	<b:Lastname>Doe</b:Lastname>
   	<b:Payer>Bobby, Bouchee</b:Payer>
   	<b:PaymentMethodCode>VO</b:PaymentMethodCode>
   	<b:ReceiptNumber>13938</b:ReceiptNumber>
   	<b:TakenBy>WEBUSER</b:TakenBy>
  </b:Payment>
</b:Payments>
  <b:ResStatus>
  	<b:Balance>93.52</b:Balance>
  	<b:CancelledDate>1900-01-01T00:00:00</b:CancelledDate>
  	<b:Charges>98.52</b:Charges>
  	<b:HoldExpiry>1900-01-01T00:00:00</b:HoldExpiry>
  	<b:IsCancelled>false</b:IsCancelled>
  	<b:OnHold>false</b:OnHold>
  	<b:Payments>5</b:Payments>
  	<b:Refunds>0</b:Refunds>
  	<b:StatusCode>Active</b:StatusCode>
</b:ResStatus>


ReservationPayment Response

The following is a snippet from the ReservationPayment response:

         <ReservationPaymentResult xmlns:a="http://schemas.datacontract.org/2004/07/InteliSys.Amelia.API" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
            <a:AuditKey>fd23abef-9fce-47fd-9a00-f42cb95464ce</a:AuditKey>
            <a:OperationMessage>OK</a:OperationMessage>
            <a:OperationSucceeded>true</a:OperationSucceeded>
            <a:OperationUID>fd23abef-9fce-47fd-9a00-f42cb95464ce</a:OperationUID>
            <a:PaymentResult xmlns:b="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
               <b:Auth/>
               <b:PaymentAmount>550000</b:PaymentAmount>
               <b:PaymentMessage>ACCOUNTCHARGED</b:PaymentMessage>
               <b:Receipt>123456</b:Receipt>
               <b:ReservationNumber>1234567</b:ReservationNumber>
               <b:SaveAmount>0</b:SaveAmount>
               <b:ThirdPartyInfo i:nil="true"/>
            </a:PaymentResult>
            <a:Reservation xmlns:b="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
             ...
             ...

Common Errors


The reservation could not be found or permission denied.

This error presents itself when the reservation number provided is either invalid or does not exist.


Further information about errors can be found in the <a:OperationMessage> node. Examples of these messages are as follows:


<a:OperationMessage>Balance is already zero.</a:OperationMessage>

This occurs when trying to make a payment on a reservation which has a balance of zero.


<a:OperationMessage>Company not found or invalid.</a:OperationMessage>

This occurs when the company account you are trying to pay as is either not currently configured, or does not exist. To avoid this error, always run GetAgencyCompanyList to be sure the company you wish to pay as is present.


<a:OperationMessage>Payment method not found or invalid.</a:OperationMessage>

This error occurs when the payment method you have chosen is not currently configured. To avoid getting this error run GetPaymentMethodList to ensure the payment method you wish to use is available.

Shop Service

PurchaseItems Request

   <soapenv:Body>
      <tem:PurchaseItems>
         <tem:req>
            <int:Payment>
               <int1:Amount>2.5</int1:Amount>
               <int1:CreditCardPayment>
                  <int1:Address>
                     <int1:Addr1>164 Anyhere</int1:Addr1>
                     <int1:City>Saint John</int1:City>
                     <int1:CountryCode>CDN</int1:CountryCode>
                     <int1:CountryDescription>Canada</int1:CountryDescription>
                     <int1:PostalCode>e2e2e2</int1:PostalCode>
                     <int1:ProvinceAbbreviation>NB</int1:ProvinceAbbreviation>
                     <int1:ProvinceName>New Brunswick</int1:ProvinceName>
                  </int1:Address>
                   <int1:CVV>377</int1:CVV>
                  <int1:Email>email@email.com</int1:Email>
                  <int1:ExpireYear>2017</int1:ExpireYear>
                  <int1:ExpiryMonth>12</int1:ExpiryMonth>
                  <int1:Firstname>John</int1:Firstname>
                  <int1:Lastname>Doe</int1:Lastname>
                  <int1:Number>4111111111111111</int1:Number>
                  <int1:TypeCode>VI</int1:TypeCode>
  			</int1:CreditCardPayment> 
               <int1:CurrencyCode>USD</int1:CurrencyCode>
               <int1:PaymentType>CreditCard</int1:PaymentType>
               <int1:ProcessingFee>0</int1:ProcessingFee>
               <int1:ProcessingFeeTax>0</int1:ProcessingFeeTax>
            </int:Payment>
            <int:RequestedItems>
               <int2:PurchaseRequestItem>
               <int2:LegNumber>1</int2:LegNumber>
                  <int2:AirportAllocID>15263</int2:AirportAllocID> <----- Obtained through GetAirportAllocations()
				  <int2:PaxGroupID>24403</int2:PaxGroupID>         <----- Obtained through GetReservation()
               </int2:PurchaseRequestItem>
            </int:RequestedItems>
            <int:ReservationNumber>1007151</int:ReservationNumber>
         </tem:req>
      </tem:PurchaseItems>
   </soapenv:Body>

UserProfile Service



Related articles