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 |
---|
Agency Account Service
GetCompanyDetails
<soapenv:Body> <tem:GetCompanyDetails> <tem:request> <int:CompanyCode>AA00011</int:CompanyCode> </tem:request> </tem:GetCompanyDetails> </soapenv:Body>
<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>
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>
"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>
"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>
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>
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.
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
<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.
- 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.
- 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> ... ...
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> ... ...
SetSeatAssignmentsByFlight
Getting the Required Information
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.
Run GetReservation() under either the CheckIn service or the ReservationInvoice service.
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).
Populate the GetSeatMapByFlight() request with the information retrieved above.
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.
Populate the SetSeatAssignmentsByFlight() request with the flight information retrieved from GetSeatMapByFlight().
- 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>true</int1:PayAllPassengers> <int1:PayBalance>false</int1:PayBalance> <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"> ... ...
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