APIv3 - Booking with Seat Selection

This article will outline the process and request/response structure around setting seat assignments via the booking request in APIv3. It will assume the user is already comfortable with getting travel options in APIv3 and using the response to populate the booking request.

Step 1: Find a seat to assign

As of our 16.12 release, we now support seat charge quotation within the seat map response. The request to use for this is located under the booking service called GetBookingSeatMaps. From the travel options response, pick a travel option that works for the leg of travel you are trying to book. Once you have picked an option, take the fare class identifier as well as all applicable flights and pass it to the GetBookingSeatMaps request. Here is a worked example:

1) Get travel options. Here is a snippet of the portion of the response I will use to populate the GetBookingSeatMaps request:

                  <b:Option>
                     <b:Legs>
                        <b:LegOption>
                           <b:DepartureDate>2016-11-14T00:00:00</b:DepartureDate>
                           <b:FareOptions>
                              <b:Adultfares>
                                 <b:FareOption>
                                    <b:Advancebooking>1</b:Advancebooking>
                                    <b:ChangesAllowed>false</b:ChangesAllowed>
                                    <b:Currency xmlns:c="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
                                       <c:Abbreviation>USD</c:Abbreviation>
                                       <c:Description>US Dollar</c:Description>
                                       <c:ExchangeRate>1.64999997615814</c:ExchangeRate>
                                       <c:Format>#,##0.00</c:Format>
                                    </b:Currency>
                                    <b:Description>One day in advance</b:Description>
                                    <b:DiscountFare>575.95</b:DiscountFare>
                                    <b:DiscountFareTaxes>86.39</b:DiscountFareTaxes>
                                    <b:DiscountFareTotal>662.34</b:DiscountFareTotal>
                                    <b:FareCategory>B</b:FareCategory>
                                    <b:FareCategoryFreeTextRules/>
                                    <b:FareClass>BOW</b:FareClass>
                                    <b:FareClassFreeTextRules/>
                                    <b:FareClassStatus>C</b:FareClassStatus>
                                    <b:FareCost>575.95</b:FareCost>
                                    <b:FareTaxComponents xmlns:c="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
                                       <c:TaxComponent>
                                          <c:Amount>86.39</c:Amount>
                                          <c:Name>HST 05</c:Name>
                                       </c:TaxComponent>
                                    </b:FareTaxComponents>
                                    <b:FareTaxes>86.39</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>true</b:Sale>
                                    <b:SeatCharge>0</b:SeatCharge>
                                    <b:SeatChargeTax>0</b:SeatChargeTax>
                                    <b:SeatChargeTotal>0</b:SeatChargeTotal>
                                    <b:SeatSale>true</b:SeatSale>
                                    <b:SeatTaxComponents xmlns:c="http://schemas.datacontract.org/2004/07/InteliSys.Amelia"/>
                                    <b:SeatsAvailable>16</b:SeatsAvailable>
                                    <b:Totalfare>662.34</b:Totalfare>
                                    <b:Valid>true</b:Valid>
                                    <b:Waitlist>false</b:Waitlist>
                                 </b:FareOption>
                                 <b:FareOption>
                                    <b:Advancebooking>0</b:Advancebooking>
                                    <b:ChangesAllowed>false</b:ChangesAllowed>
                                    <b:Currency xmlns:c="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
                                       <c:Abbreviation>USD</c:Abbreviation>
                                       <c:Description>US Dollar</c:Description>
                                       <c:ExchangeRate>1.64999997615814</c:ExchangeRate>
                                       <c:Format>#,##0.00</c:Format>
                                    </b:Currency>
                                    <b:Description>Full Fare</b:Description>
                                    <b:DiscountFare>874.29</b:DiscountFare>
                                    <b:DiscountFareTaxes>131.14</b:DiscountFareTaxes>
                                    <b:DiscountFareTotal>1005.43</b:DiscountFareTotal>
                                    <b:FareCategory>Y</b:FareCategory>
                                    <b:FareCategoryFreeTextRules/>
                                    <b:FareClass>Y-Fare</b:FareClass>
                                    <b:FareClassFreeTextRules/>
                                    <b:FareClassStatus>C</b:FareClassStatus>
                                    <b:FareCost>874.29</b:FareCost>
                                    <b:FareTaxComponents xmlns:c="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
                                       <c:TaxComponent>
                                          <c:Amount>131.14</c:Amount>
                                          <c:Name>HST 05</c:Name>
                                       </c:TaxComponent>
                                    </b:FareTaxComponents>
                                    <b:FareTaxes>131.14</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>2</b:Option>
                                    <b:PromoCodeID>-1</b:PromoCodeID>
                                    <b:PromoCodeSuffixID>-1</b:PromoCodeSuffixID>
                                    <b:PromoFlag/>
                                    <b:ReasonInvalid/>
                                    <b:Restricted>false</b:Restricted>
                                    <b:Sale>false</b:Sale>
                                    <b:SeatCharge>0</b:SeatCharge>
                                    <b:SeatChargeTax>0</b:SeatChargeTax>
                                    <b:SeatChargeTotal>0</b:SeatChargeTotal>
                                    <b:SeatSale>false</b:SeatSale>
                                    <b:SeatTaxComponents xmlns:c="http://schemas.datacontract.org/2004/07/InteliSys.Amelia"/>
                                    <b:SeatsAvailable>16</b:SeatsAvailable>
                                    <b:Totalfare>1005.43</b:Totalfare>
                                    <b:Valid>true</b:Valid>
                                    <b:Waitlist>true</b:Waitlist>
                                 </b:FareOption>
                              </b:Adultfares>
                              <b:Childfares/>
                           </b:FareOptions>
                           <b:NumberOfStops>2</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>BE1</c:ModelIdent>
                                       <c:ModelName>BECH19D</c:ModelName>
                                    </c:Aircraft>
                                    <c:ArrivalAirport>
                                       <c:Code>YYY</c:Code>
                                       <c:Name>Some Airport</c:Name>
                                    </c:ArrivalAirport>
                                    <c:DepartureAirport>
                                       <c:Code>XXX</c:Code>
                                       <c:Name>Some Airport</c:Name>
                                    </c:DepartureAirport>
                                    <c:ETA>2016-11-14T13:45:00</c:ETA>
                                    <c:ETALocal>2016-11-14T10:15:00</c:ETALocal>
                                    <c:ETD>2016-11-14T12:30:00</c:ETD>
                                    <c:ETDLocal>2016-11-14T08:30:00</c:ETDLocal>
                                    <c:Number>YY100</c:Number>
                                 </b:Flight>
                                 <b:Quality>A/C-CHG 0</b:Quality>
                                 <b:SeatAllocation>16</b:SeatAllocation>
                                 <b:Segdist>552.12</b:Segdist>
                              </b:SegmentOption>
                              <b:SegmentOption>
                                 <b:Flight xmlns:c="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
                                    <c:Aircraft>
                                       <c:ModelIdent>BE1</c:ModelIdent>
                                       <c:ModelName>BECH19D</c:ModelName>
                                    </c:Aircraft>
                                    <c:ArrivalAirport>
                                       <c:Code>ZZZ</c:Code>
                                       <c:Name>Some Airport</c:Name>
                                    </c:ArrivalAirport>
                                    <c:DepartureAirport>
                                       <c:Code>YYY</c:Code>
                                       <c:Name>Some Airport</c:Name>
                                    </c:DepartureAirport>
                                    <c:ETA>2016-11-14T15:05:00</c:ETA>
                                    <c:ETALocal>2016-11-14T11:35:00</c:ETALocal>
                                    <c:ETD>2016-11-14T14:05:00</c:ETD>
                                    <c:ETDLocal>2016-11-14T10:35:00</c:ETDLocal>
                                    <c:Number>YY100</c:Number>
                                 </b:Flight>
                                 <b:Quality>A/C-CHG 0</b:Quality>
                                 <b:SeatAllocation>16</b:SeatAllocation>
                                 <b:Segdist>552.12</b:Segdist>
                              </b:SegmentOption>
                           </b:SegmentOptions>
                           <b:Surcharges>
                              <b:Surcharge>
                                 <b:AllToAllPassengers>true</b:AllToAllPassengers>
                                 <b:Amount>33</b:Amount>
                                 <b:ApplyInfantChargeFlag>N</b:ApplyInfantChargeFlag>
                                 <b:ApplyToAdult>true</b:ApplyToAdult>
                                 <b:ApplyToChild>true</b:ApplyToChild>
                                 <b:ApplyToInfant>false</b:ApplyToInfant>
                                 <b:ChargeTypeID>1</b:ChargeTypeID>
                                 <b:Description>Airport Fee</b:Description>
                                 <b:TaxComponents xmlns:c="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
                                    <c:TaxComponent>
                                       <c:Amount>4.95</c:Amount>
                                       <c:Name>HST 05</c:Name>
                                    </c:TaxComponent>
                                 </b:TaxComponents>
                                 <b:Taxes>4.95</b:Taxes>
                                 <b:Total>37.95</b:Total>
                              </b:Surcharge>
                              <b:Surcharge>
                                 <b:AllToAllPassengers>true</b:AllToAllPassengers>
                                 <b:Amount>11.75</b:Amount>
                                 <b:ApplyInfantChargeFlag>N</b:ApplyInfantChargeFlag>
                                 <b:ApplyToAdult>true</b:ApplyToAdult>
                                 <b:ApplyToChild>true</b:ApplyToChild>
                                 <b:ApplyToInfant>false</b:ApplyToInfant>
                                 <b:ChargeTypeID>5</b:ChargeTypeID>
                                 <b:Description>Security Fee</b:Description>
                                 <b:TaxComponents xmlns:c="http://schemas.datacontract.org/2004/07/InteliSys.Amelia">
                                    <c:TaxComponent>
                                       <c:Amount>1.76</c:Amount>
                                       <c:Name>HST 05</c:Name>
                                    </c:TaxComponent>
                                 </b:TaxComponents>
                                 <b:Taxes>1.76</b:Taxes>
                                 <b:Total>13.51</b:Total>
                              </b:Surcharge>
                           </b:Surcharges>
                        </b:LegOption>
                     </b:Legs>
                     <b:Number>1</b:Number>
                  </b:Option>

For this example, I'll choose Y-Fare. Where this is a connecting flight (two flights with the same flight number) I will need to supply both flights to the GetBookingSeatMaps request.

2) Pass the necessary information to the 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


  • If no currency code is passed in the request, the default currency will be used to populate the response totals.

The response of the above operation will contain a list of seats and the charges associated with them. Here is a snippet of that response:

                     <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>


  • Seat charges have multiple components. The total seat cost is a combination of the seat type charge, the booking code charge, and any applicable taxes.
  • There are 4 possibilities for seat type charges depending on the fare chosen:
    1. Booking code charges only
    2. Seat type charges only
    3. Both booking code and seat type charges
    4. Neither (No charges for seat assignment)

Step 2: Select a seat to set

I'll choose seat 1A for the following to keep things simple. In order to tie this seat to a passenger the following must be present under the <BookingPassenger> node for the passenger you wish to seat:

                  <int1:BookingPassenger>
                     <int1:AgeCategory>Adult</int1:AgeCategory>
                     <int1:DateOfBirth>1989-12-12</int1:DateOfBirth>
                     <int1:DestinationTelephone>1234567891</int1:DestinationTelephone>
                     <int1:Firstname>nigel</int1:Firstname>
                     <int1:Gender>Male</int1:Gender>
                     <int1:Lastname>Martin</int1:Lastname>
                     <int1:Middlename>G</int1:Middlename>
                     <int1:SeatSelections>
                        <int1:FlightSeatAssignmentPax>
                           <int1:RowNumber>1</int1:RowNumber>
                           <int1:SeatNumber>A</int1:SeatNumber>
                           <int1:Flights>
                              <int1:Flight>
                                 <int1:ArrivalAirport>
                                    <int1:Code>XXX</int1:Code>
                                 </int1:ArrivalAirport>
                                 <int1:DepartureAirport>
                                    <int1:Code>YYY</int1:Code>
                                 </int1:DepartureAirport>
                                 <int1:ETDLocal>2016-11-11T18:00: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>XXX</int1:Code>
                                 </int1:DepartureAirport>
                                 <int1:ETDLocal>2016-11-11T23:00:00</int1:ETDLocal>
                                 <int1:Number>YY100</int1:Number>
                              </int1:Flight>
                           </int1:Flights>
                        </int1:FlightSeatAssignmentPax>
                     </int1:SeatSelections>
                     <int1:Title>Mr</int1:Title>
                  </int1:BookingPassenger>

Things to consider


  • Because the example I chose was a connecting flight, I have to set both seats. Failing to do so will result in errors.

Step 3: Book the reservation

Now that the XML is properly formatted, we're ready to submit the request. Here is a sample of the full booking request with the seat selections:

            <int:Query>
               <int1:Legs>
                  <int1:BookingLeg>
                     <int1:AdultFares>
                        <int1:BookingClassCode>Y</int1:BookingClassCode>
                        <int1:CurrencyCode>USD</int1:CurrencyCode>
                        <int1:FareCode>Y-Fare</int1:FareCode>
                        <int1:PaxCount>2</int1:PaxCount>
                        <int1:TotalCost>1000.00</int1:TotalCost>
                     </int1:AdultFares>
                     <int1:Segments>
                        <int1:BookingSegment>
                           <int1:ArrivalAirportCode>YYY</int1:ArrivalAirportCode>
                           <int1:DepartureAirportCode>XXX</int1:DepartureAirportCode>
                           <int1:ETALocal>2016-11-11T19:20:00</int1:ETALocal>
                           <int1:ETDLocal>2016-11-11T18:00:00</int1:ETDLocal>
                           <int1:FlightCode>YY100</int1:FlightCode>
                        </int1:BookingSegment>
                        <int1:BookingSegment>
                           <int1:ArrivalAirportCode>ZZZ</int1:ArrivalAirportCode>
                           <int1:DepartureAirportCode>YYY</int1:DepartureAirportCode>
                           <int1:ETALocal>2016-11-11T21:20:00</int1:ETALocal>
                           <int1:ETDLocal>2016-11-11T20:00:00</int1:ETDLocal>
                           <int1:FlightCode>YY100</int1:FlightCode>
                        </int1:BookingSegment>
                     </int1:Segments>
                  </int1:BookingLeg>
               </int1:Legs>
               <int1:Passengers>
                  <int1:BookingPassenger>
                     <int1:AgeCategory>Adult</int1:AgeCategory>
                     <int1:DateOfBirth>1989-12-12</int1:DateOfBirth>
                     <int1:DestinationTelephone>1234567891</int1:DestinationTelephone>
                     <int1:Firstname>nigel</int1:Firstname>
                     <int1:Gender>Male</int1:Gender>
                     <int1:Lastname>Martin</int1:Lastname>
                     <int1:Middlename>M</int1:Middlename>
                     <int1:SeatSelections>
                        <int1:FlightSeatAssignmentPax>
                           <int1:RowNumber>1</int1:RowNumber>
                           <int1:SeatNumber>A</int1:SeatNumber>
                           <int1:Flights>
                              <int1:Flight>
                                 <int1:ArrivalAirport>
                                    <int1:Code>YYY</int1:Code>
                                 </int1:ArrivalAirport>
                                 <int1:DepartureAirport>
                                    <int1:Code>XXX</int1:Code>
                                 </int1:DepartureAirport>
                                 <int1:ETDLocal>2016-11-11T18:00: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-11T18:00:00</int1:ETDLocal>
                                 <int1:Number>YY100</int1:Number>
                              </int1:Flight>
                           </int1:Flights>
                        </int1:FlightSeatAssignmentPax>
                     </int1:SeatSelections>
                     <int1:Title>Mr</int1:Title>
                  </int1:BookingPassenger>
               </int1:Passengers>
               <int1:Payment>
                  <int1:Amount>1000.00</int1:Amount>
                  <int1:CurrencyCode>USD</int1:CurrencyCode>
                  <int1:PaymentType>Hold</int1:PaymentType>
                  <int1:ProcessingFee>0</int1:ProcessingFee>
                  <int1:ProcessingFeeTax>0</int1:ProcessingFeeTax>
               </int1:Payment>
            </int:Query>

Things to consider


  • The total seat charge quoted in the seat map response must be taken into consideration while calculating the total for the reservation. Not including these charges as well as any applicable surcharges will cause the booking request to fail.
  • Always run GetBookingSeatMaps to view which seats are available to be set. Attempting to set a seat that either does not exist on the seat map or one that is already taken/blocked will cause unexpected results.
  • If a segment contains multiple flights on different aircraft, a separate <FlightSeatAssignmentPax> entry must be supplied for each.
    Example:
    We'll use the following fictional segment: YY100 - YY100 - YY200
    The <BookingPassenger> node would look as follows:

                      <int1:BookingPassenger>
                         <int1:AgeCategory>Adult</int1:AgeCategory>
                         <int1:DateOfBirth>1989-12-12</int1:DateOfBirth>
                         <int1:DestinationTelephone>1234567891</int1:DestinationTelephone>
                         <int1:Firstname>nigel</int1:Firstname>
                         <int1:Gender>Male</int1:Gender>
                         <int1:Lastname>Martin</int1:Lastname>
                         <int1:Middlename>M</int1:Middlename>
                         <int1:SeatSelections>
                            <int1:FlightSeatAssignmentPax>
                               <int1:RowNumber>1</int1:RowNumber>
                               <int1:SeatNumber>A</int1:SeatNumber>
                               <int1:Flights>
                                  <int1:Flight>
                                     <int1:ArrivalAirport>
                                        <int1:Code>YYY</int1:Code>
                                     </int1:ArrivalAirport>
                                     <int1:DepartureAirport>
                                        <int1:Code>XXX</int1:Code>
                                     </int1:DepartureAirport>
                                     <int1:ETDLocal>2016-11-11T18:00: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-11T18:00:00</int1:ETDLocal>
                                     <int1:Number>YY100</int1:Number>
                                  </int1:Flight>
                               </int1:Flights>
                            </int1:FlightSeatAssignmentPax>
                            <int1:FlightSeatAssignmentPax>
                               <int1:RowNumber>5</int1:RowNumber>
                               <int1:SeatNumber>A</int1:SeatNumber>
                               <int1:Flights>
                                  <int1:Flight>
                                     <int1:ArrivalAirport>
                                        <int1:Code>YYY</int1:Code>
                                     </int1:ArrivalAirport>
                                     <int1:DepartureAirport>
                                        <int1:Code>XXX</int1:Code>
                                     </int1:DepartureAirport>
                                     <int1:ETDLocal>2016-11-11T18:00:00</int1:ETDLocal>
                                     <int1:Number>YY200</int1:Number>
                                  </int1:Flight>
                               </int1:Flights>
                            </int1:FlightSeatAssignmentPax>
                         </int1:SeatSelections>
                         <int1:Title>Mr</int1:Title>
                      </int1:BookingPassenger>

Step 4: Review the response

The <InvoiceSegment> node under the <Segments> node in the BookReservation response will show the seats set for each segment:

                     <b:Segments>
                        <b:InvoiceSegment>
                           <b:AircraftIdent>BE1</b:AircraftIdent>
                           <b:AircraftName>BECH19D</b:AircraftName>
                           <b:ArrivalAirportCode>YYY</b:ArrivalAirportCode>
                           <b:ArrivalAirportName>Some airport</b:ArrivalAirportName>
                           <b:ArrivalLocal>2016-11-14T10:15:00</b:ArrivalLocal>
                           <b:ArrivalZulu>2016-11-14T13:45:00</b:ArrivalZulu>
                           <b:DepartureAirportCode>XXX</b:DepartureAirportCode>
                           <b:DepartureAirportName>Some airport</b:DepartureAirportName>
                           <b:DepartureLocal>2016-11-14T08:30:00</b:DepartureLocal>
                           <b:DepartureZulu>2016-11-14T12:30:00</b:DepartureZulu>
                           <b:Flight>YY100</b:Flight>
                           <b:Gate/>
                           <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>Y-Fare</b:FareIdent>
                                 <b:Firstname>nigel</b:Firstname>
                                 <b:Lastname>Martin</b:Lastname>
                                 <b:Middlename>G</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>
                           <b:ReportToGateMinutes>60</b:ReportToGateMinutes>
                           <b:ResStatus>Confirmed</b:ResStatus>
                           <b:SkedDetailStatus>Y</b:SkedDetailStatus>
                        </b:InvoiceSegment>
                        <b:InvoiceSegment>
                           <b:AircraftIdent>BE1</b:AircraftIdent>
                           <b:AircraftName>BECH19D</b:AircraftName>
                           <b:ArrivalAirportCode>ZZZ</b:ArrivalAirportCode>
                           <b:ArrivalAirportName>Some airport</b:ArrivalAirportName>
                           <b:ArrivalLocal>2016-11-14T11:35:00</b:ArrivalLocal>
                           <b:ArrivalZulu>2016-11-14T15:05:00</b:ArrivalZulu>
                           <b:DepartureAirportCode>YYY</b:DepartureAirportCode>
                           <b:DepartureAirportName>Some airport</b:DepartureAirportName>
                           <b:DepartureLocal>2016-11-14T10:35:00</b:DepartureLocal>
                           <b:DepartureZulu>2016-11-14T14:05:00</b:DepartureZulu>
                           <b:Flight>YY100</b:Flight>
                           <b:Gate/>
                           <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>Y-Fare</b:FareIdent>
                                 <b:Firstname>nigel</b:Firstname>
                                 <b:Lastname>Martin</b:Lastname>
                                 <b:Middlename>G</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>
                           <b:ReportToGateMinutes>60</b:ReportToGateMinutes>
                           <b:ResStatus>Confirmed</b:ResStatus>
                           <b:SkedDetailStatus>Y</b:SkedDetailStatus>
                        </b:InvoiceSegment>
                     </b:Segments>

For the flight in this example, you can see seat 1A is booked straight through so the request has successfully set the seats.

Other possible scenarios

There are far more complex scenarios involving multi-stop flights and multiple passengers. Here is a sample of how the booking request would look for 2 passengers on a flight with a return trip:

            <int:Query>
               <int1:Legs>
                  <int1:BookingLeg>
                     <int1:AdultFares>
                        <int1:BookingClassCode>Y</int1:BookingClassCode>
                        <int1:CurrencyCode>USD</int1:CurrencyCode>
                        <int1:FareCode>Y</int1:FareCode>
                        <int1:PaxCount>2</int1:PaxCount>
                        <int1:TotalCost>110</int1:TotalCost>
                     </int1:AdultFares>
                     <int1:Segments>
                        <int1:BookingSegment>
                           <int1:ArrivalAirportCode>YHZ</int1:ArrivalAirportCode>
                           <int1:DepartureAirportCode>YQM</int1:DepartureAirportCode>
                           <int1:ETALocal>2016-11-14T05:00:00</int1:ETALocal>
                           <int1:ETDLocal>2016-11-14T04:00:00</int1:ETDLocal>
                           <int1:FlightCode>YY256</int1:FlightCode>
                        </int1:BookingSegment>
                        <int1:BookingSegment>
                           <int1:ArrivalAirportCode>YUL</int1:ArrivalAirportCode>
                           <int1:DepartureAirportCode>YHZ</int1:DepartureAirportCode>
                           <int1:ETALocal>2016-11-14T05:55:00</int1:ETALocal>
                           <int1:ETDLocal>2016-11-14T05:20:00</int1:ETDLocal>
                           <int1:FlightCode>YY836</int1:FlightCode>
                        </int1:BookingSegment>
                     </int1:Segments>
                  </int1:BookingLeg>
                  <int1:BookingLeg>
                     <int1:AdultFares>
                        <int1:BookingClassCode>Y</int1:BookingClassCode>
                        <int1:CurrencyCode>USD</int1:CurrencyCode>
                        <int1:FareCode>Y</int1:FareCode>
                        <int1:PaxCount>2</int1:PaxCount>
                        <int1:TotalCost>110</int1:TotalCost>
                     </int1:AdultFares>
                     <int1:Segments>
                        <int1:BookingSegment>
                           <int1:ArrivalAirportCode>YQM</int1:ArrivalAirportCode>
                           <int1:DepartureAirportCode>YUL</int1:DepartureAirportCode>
                           <int1:ETALocal>2016-11-20T12:00:00</int1:ETALocal>
                           <int1:ETDLocal>2016-11-20T10:00:00</int1:ETDLocal>
                           <int1:FlightCode>YY101010</int1:FlightCode>
                        </int1:BookingSegment>
                     </int1:Segments>
                  </int1:BookingLeg>
               </int1:Legs>
               <int1:Passengers>
                  <int1:BookingPassenger>
                     <int1:AgeCategory>Adult</int1:AgeCategory>
                     <int1:DateOfBirth>1989-12-12</int1:DateOfBirth>
                     <int1:DestinationTelephone>1234567891</int1:DestinationTelephone>
                     <int1:Firstname>nigel</int1:Firstname>
                     <int1:Gender>Male</int1:Gender>
                     <int1:Lastname>Martin</int1:Lastname>
                     <int1:Middlename>M</int1:Middlename>
                     <int1:SeatSelections>
                        <int1:FlightSeatAssignmentPax>
                           <int1:RowNumber>6</int1:RowNumber>
                           <int1:SeatNumber>A</int1:SeatNumber>
                           <int1:Flights>
                              <int1:Flight>
                                 <int1:ArrivalAirport>
                                    <int1:Code>YHZ</int1:Code>
                                 </int1:ArrivalAirport>
                                 <int1:DepartureAirport>
                                    <int1:Code>YQM</int1:Code>
                                 </int1:DepartureAirport>
                                 <int1:ETDLocal>2016-11-14T04:00:00</int1:ETDLocal>
                                 <int1:Number>YY256</int1:Number>
                              </int1:Flight>
                              <int1:Flight>
                                 <int1:ArrivalAirport>
                                    <int1:Code>YUL</int1:Code>
                                 </int1:ArrivalAirport>
                                 <int1:DepartureAirport>
                                    <int1:Code>YHZ</int1:Code>
                                 </int1:DepartureAirport>
                                 <int1:ETDLocal>2016-11-14T05:20:00</int1:ETDLocal>
                                 <int1:Number>YY836</int1:Number>
                              </int1:Flight>
                           </int1:Flights>
                        </int1:FlightSeatAssignmentPax>
                        <int1:FlightSeatAssignmentPax>
                           <int1:RowNumber>6</int1:RowNumber>
                           <int1:SeatNumber>A</int1:SeatNumber>
                           <int1:Flights>
                              <int1:Flight>
                                 <int1:ArrivalAirport>
                                    <int1:Code>YQM</int1:Code>
                                 </int1:ArrivalAirport>
                                 <int1:DepartureAirport>
                                    <int1:Code>YUL</int1:Code>
                                 </int1:DepartureAirport>
                                 <int1:ETDLocal>2016-11-20T10:00:00</int1:ETDLocal>
                                 <int1:Number>YY101010</int1:Number>
                              </int1:Flight>
                           </int1:Flights>
                        </int1:FlightSeatAssignmentPax>
                     </int1:SeatSelections>
                     <int1:Title>Mr</int1:Title>
                  </int1:BookingPassenger>
                  <int1:BookingPassenger>
                     <int1:AgeCategory>Adult</int1:AgeCategory>
                     <int1:DateOfBirth>1989-12-12</int1:DateOfBirth>
                     <int1:DestinationTelephone>1234567891</int1:DestinationTelephone>
                     <int1:Firstname>nolan</int1:Firstname>
                     <int1:Gender>Male</int1:Gender>
                     <int1:Lastname>Martin</int1:Lastname>
                     <int1:Middlename>M</int1:Middlename>
                     <int1:SeatSelections>
                        <int1:FlightSeatAssignmentPax>
                           <int1:RowNumber>7</int1:RowNumber>
                           <int1:SeatNumber>A</int1:SeatNumber>
                           <int1:Flights>
                              <int1:Flight>
                                 <int1:ArrivalAirport>
                                    <int1:Code>YHZ</int1:Code>
                                 </int1:ArrivalAirport>
                                 <int1:DepartureAirport>
                                    <int1:Code>YQM</int1:Code>
                                 </int1:DepartureAirport>
                                 <int1:ETDLocal>2016-11-14T04:00:00</int1:ETDLocal>
                                 <int1:Number>YY256</int1:Number>
                              </int1:Flight>
                              <int1:Flight>
                                 <int1:ArrivalAirport>
                                    <int1:Code>YUL</int1:Code>
                                 </int1:ArrivalAirport>
                                 <int1:DepartureAirport>
                                    <int1:Code>YHZ</int1:Code>
                                 </int1:DepartureAirport>
                                 <int1:ETDLocal>2016-11-14T05:20:00</int1:ETDLocal>
                                 <int1:Number>YY836</int1:Number>
                              </int1:Flight>
                           </int1:Flights>
                        </int1:FlightSeatAssignmentPax>
                        <int1:FlightSeatAssignmentPax>
                           <int1:RowNumber>7</int1:RowNumber>
                           <int1:SeatNumber>A</int1:SeatNumber>
                           <int1:Flights>
                              <int1:Flight>
                                 <int1:ArrivalAirport>
                                    <int1:Code>YQM</int1:Code>
                                 </int1:ArrivalAirport>
                                 <int1:DepartureAirport>
                                    <int1:Code>YUL</int1:Code>
                                 </int1:DepartureAirport>
                                 <int1:ETDLocal>2016-11-20T10:00:00</int1:ETDLocal>
                                 <int1:Number>YY101010</int1:Number>
                              </int1:Flight>
                           </int1:Flights>
                        </int1:FlightSeatAssignmentPax>
                     </int1:SeatSelections>
                     <int1:Title>Mr</int1:Title>
                  </int1:BookingPassenger>
               </int1:Passengers>
               <int1:Payment>
                  <int1:Amount>756.88</int1:Amount>
                  <int1:CurrencyCode>USD</int1:CurrencyCode>
                  <int1:PaymentType>Hold</int1:PaymentType>
                  <int1:ProcessingFee>0</int1:ProcessingFee>
                  <int1:ProcessingFeeTax>0</int1:ProcessingFeeTax>
               </int1:Payment>
            </int:Query>