Travelfusion Direct Connect XML API > Guidelines >
Seat Selection
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.
The first segment's options are in blue and it has 12 different seat options
The second has NO SEAT OPTIONS, and is represented by an empty string followed by a ';'
The third is in green and has 1 seat option
The fourth is in red and has 1 seat option
The fifth has NO SEAT OPTIONS, and is represented by an empty string followed by a ';'
For example 5477-1A(W|E|1A@12.00GBP@319) is one seat where:
5477 is the flight number
1A is the seat number
W|E|1A in the bracket are the seating attributes (find details below in Seating Attributes)
@12.00GBP, is the the seat price, which is after the first “@”. The price will be two decimal places, and with currency following, like @12.00EUR. It’s optional, if we can’t get the price for the seat, we will return like 5477-1A(W|E|1A@@319)
@319 is the Aircraft Type, which is similar to the “price”, will be returned after the second “@”
Please note the attribute, price and aircraft Type are optional. So the extreme case will be 5477-1A(@@)
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.