With airline suppliers it is possible to select and purchase a seat via the Travelfusion XML API. This functionality is not currently available for all suppliers, however for suppliers that do support it, the command syntax of the requests and responses is almost identical to those of the existing booking process. This function is controlled by the CustomSupplierParameter (CSP) named "SeatOptions".

Overview

SeatOptions is supported by per passenger and only if seat service is supported, SeatOptions can be found in ProcessDetails response like below:

<RequiredParameter>

    <Name>SeatOptions</Name>

    <DisplayText>Please Select Seat Options: 5477-1A(W|E|1A@12.00GBP@319),5477-1B(N|E|1A@12.00GBP@319),5477-1C(A|E|1A@12.00GBP@319),

5477-1D(A|E|1A@12.00GBP@319),5477-1E(N@12.00GBP@319),5477-1F(W@12.00GBP@319),

5477-2A(W@8.00GBP@319),5477-2B(N@8.00GBP@319),5477-2C(A@8.00GBP@319),......,

5477-26D(A|E|1A@3.00GBP@319),5477-26E(N@3.00GBP@319),5477-26F(W@3.00GBP@319);;5470-22F(W@3.00GBP@319);4550-29F(W@3.00GBP@319);;</DisplayText>

    <PerPassenger>true</PerPassenger>

    <IsOptional>true</IsOptional>

</RequiredParameter>

The above example shows 5 flight segments. This represents all segments on all legs of the journey, for example 3 segments on the outward flight and 2 on the return.

For example 5477-1A(W|E|1A@12.00GBP@319) is one seat where:

The data within SeatOptions is the list of all selectable seats, and also contains positions within the seat map which cannot be selected, such as seats which have already been reserved or have been blocked, and positions which are not seats such as closets, lavatories, galleys, etc.

ProcessTerms request

In general, it's the same to handle the CSP in ProcessTerms, you can check here to find more details on how to handle the Custom Supplier Parameters.

Below will show you how to use this specific parameter in details:

The format for the SeatOptions parameter value should be: flight number-seat number.

A selection must be specified for every segment, followed by ';'. If there were no seat options provided for that segment, OR the user did not select a seat, an empty string should be submitted. Example:

<CustomSupplierParameter>

      <Name>SeatOptions</Name>

      <Value>5477-1A;;;4550-29F;;</Value>

</CustomSupplierParameter>

In this example, the user did not specify a seat for the 3rd segment of the flight (and was not given seat options for segments 2 and 5).

ProcessTerms response

If the selected seats are valid and are subject to charges, then the cost of the selected seats will be found in the ProcessTerms response, in a TaxItem named “Seat charge”:

<Price>

    <Amount>134.26</Amount>

    <Currency>GBP</Currency>

    <TaxItemList>

        <TaxItem>

            <Name>Seat charge</Name>

            <Amount>12.00</Amount>

            <Currency>GBP</Currency>

        </TaxItem>

If the selected seats are not valid then an error will be returned in the ProcessTerms response:

<ProcessTerms ecode="2-2460" etext="Invalid seat options" edetail="5473-2A is not available" edate="08/07/2013-09:18"/>

Seating attributes

This table gives the meaning of the seat attribute codes which can be found within SeatOptions data.