Seats Guide

The Seats APIs support the optional selection and booking of free and paid seats for both GDS and NDC content.

Related Content:JSON APIs Guide, Booking Guide, Seat Map API Reference, Seat Book API Reference

In this guide:

Basic Concepts

An assigned seat included in the price of the fare is a free seat. The customer must still select the seat but no separate payment is required. When a seat assignment must be purchased in addition to the fare, if desired, that's a paid seat.

Key points about paid seats:

  • Paid seats are a type of ancillary, which is any paid optional service filed for a flight. Other industry examples are paid baggage, carbon offsets, pet transport fees, and unaccompanied minor charges. Paid seats are detailed here instead of with other ancillaries such as paid baggage because they use the seat map and book requests that are also used for free seats instead of the ancillary shop and book requests.

  • Paid seats are paid for separately from the fare. For paid seats you must add a separate payment either before or during ticketing, and an electronic miscellaneous document (EMD) is issued for that payment. See Ancillary Payment & EMDs in the Ancillary Guide for more about EMDs, including payment requirements for specific NDC carriers.

Both free and paid seats follow the same workflow: You first send a seat map request to return a list of available seats and prices as applicable, followed by a seat book request to select the chosen seat and add it to the workbench.

You can send a seat map request to check availability at various points in the workflow, per the support table below.

The seat map response returns seat offers for each traveler segment, along with the status and characteristics of each seat. These seat offers are similar to offers in a Search response. In the JSON Search APIs, an offer is a product available at a specific price under a set of terms and conditions. A product is the flight or connecting flights for one leg of the itinerary, plus a service level that includes the cabin class and any fare codes that may apply. At booking, the selected offer from the Search response - including the flight/s, service level, price, terms and conditions, and brand if applicable - is converted into a single Offer object that is subsequently returned for that booking.Free seats are returned in an offer with a price point of zero. Paid seats are returned in one or more offers, with seats in each offer available at the same price.

The following seat status codes are commonly returned by airlines:

  • A: Available

  • O: Occupied

  • R: Restricted

  • N: No Seat

The seat book request is sent in a workbench session to add the selected seat to the workbench. Commit the workbench to book the seat.

Bundled Fares

If a seat is combined with an air offer, that offer is called a bundled fare and is returned in the Search API response. No additional price is charged for a seat in a bundled fare. For any traveler who has selected an ancillary bundle with a seat, a paid seat offer with price 0 00 is returned in the seat map response. At this time bundled fares are supported only for NDC in Search and AirPrice, and only for UA dynamic bundled fares.

Seats Support

The JSON APIs support requesting seat maps and booking seats at various points in the workflows per below. Also see Canceling Seats later in this topic.

The NDC Instant Pay workflow (book and issue ticket in the same session) and the Add Product workflow do not support ancillaries or seats. These can be added after the reservation is created.

For differences in support between GDS and NDC in the JSON APIs, see the support tables for seats, ancillaries, fare rules, and exchanges. Also see the NDC Carrier-Specific Notes and the NDC and GDS Functionality Comparison Chart.
For carrier-specific NDC differences, see NDC capabilities by airline through JSON API in the Travelport Knowledge Base. If you need login assistance, see Knowledge Base NDC Resources.
For GDS, you can add some paid seats during one workflow session and add more seats in a subsequent session. For NDC, you must select all seats in the same booking session; you cannot add them later.
Ancillaries 24.11.32 & 33 and later. For an existing multi-offer booking only, you can book ancillaries and/or seats by sending one book request for each offer. For ancillaries, the workflow is Initiate Workbench > Ancillary Shop > Ancillary Book for offer 1 > Ancillary Book for offer 2 > Commit Workbench. For seats, the workflow is Initiate Workbench > Seat Maps > Seat Book for offer 1 > Seat Book for offer 2 > Commit Workbench. The book requests can be sent in any order: first and second offer or second and first offer. Not supported in the initial booking workflow. GDS only; multi- offers not supported for NDC.

Seat Type

Standalone Seat Map (full payload)

Request seat map after Search*

Request seat map after AirPrice**

 

Seat map and book in the initial booking workflow Seat map and book for an existing reservation Seat map and book in NDC Instant Pay flow

Change seat (cancel & rebook seat)

Cancel seat

GDS

NDC

GDS

NDC

GDS

NDC

GDS

NDC

GDS

NDC

NDC only

GDS

NDC

GDS

NDC

Paid seats

Yes

No

Yes

Temporarily unavailable

Yes

Yes

No

Yes

Yes

Yes

Yes

Yes

Supported only for existing reservation, not during initial booking

Yes

Yes

Supported only for existing reservation, not during initial booking

Yes

Free seats

Yes

No

Yes

No

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

*When requesting seat maps after Search, results are cached. The seat map request does not need to be repeated in a subsequent booking workbench.
**When requesting seat maps after Price, results are not cached. The seat map request must be repeated during booking.

Seats Workflows

Seat Availability before Booking

You can send the Seat Map request, which sends identifiers from a previous search or price request, to check availability at various points in the JSON APIs workflow, per the support table above.

The Standalone Seat Map request is a full payload request that sends flight details including a booking code without needing a previous request. It returns a view-only seat map and can be sent on its own, either within or outside of a workbench session. (GDS only; not supported for NDC.)

The seat booking workflow, however, must take place in a reservation workbench session per the following sections.

Seat Map and Selection Workflow during Booking

When selecting seats as part of the initial booking workflow, send the seat map and book requests during the workflow as follows. This creates a held booking with assigned seats.

  1. Create a reservation workbench.
  2. Add offer.
  3. Add traveler.
  4. Send a seat map request if not already requested prior to the workbench session (cached only for GDS and only after a Search request).
  5. Send one seat book request for each segment. You can include multiple travelers in each request.
  6. Commit the workbench.

Seat Map and Selection Workflow for Existing Reservation

Take the following steps to add seats to an existing reservation. This flow updates the held booking by adding assigned seats.

  1. Create a post-commit workbench.
  2. Send a seat map request if not already requested prior to the workbench session.
  3. Send one seat book request for each segment. You can include multiple travelers in each request.
  4. Commit the workbench.
For GDS only, you can add some paid seats during one workflow session and add more seats in a later session. For example, you could book paid seats for one passenger in one workbench session, and add paid seats for a second passenger later. For NDC you must select all seats in the same booking session; you cannot add them later.

Seats Workflow Diagrams

Seats APIs Diagrams

Seat Map Layout Diagram

You can request seat availability by any of the following:

  • offer (all flights on the itinerary)

  • product (all flights on one leg of an itinerary)

  • segment sequence number/s (one or more individual flights).

The following diagram illustrates the general structure of the Seat Map request and response, including most high-level objects. This diagram shows the payload format sent during a workbench session. Seat map requests sent outside a workbench session use the same endpoint and a slightly different message payload. See the Seat Map API Reference for endpoint and reference details and examples.

The Seat Map response is the same regardless of where in the workflow the request is sent. The response returns one offer for each price level of seats. Each instance of CatalogOffering includes a Price object with a value of zero for free seats and a positive value for paid seats.

For example, a response might return one instance of CatalogOffering for seats costing 10 USD, another for seats costing 25 USD, and another for free seats at 0 USD. Information across those seats is consolidated in the ReferenceList object, which lists for each row in the cabin each seat number and the characteristics for that seat.

Seat Book Layout Diagram

After retrieving a list of available seats, you can send a seat book request for any available seat to add it to the workbench. For endpoints and references see the Seat Book API Reference.

The seat book response returns an identifier for the transaction.

The following diagram illustrates the general structure of the Seat Book request and response, including most high-level objects.

Canceling Seats

You can use the Ancillary Cancel request to cancel a seat that was booked in the same or a previous workbench session. If desired, you can then select new seats in the same or a subsequent workbench session.

Only one seat per workbench session can be canceled. If you need to cancel multiple seats, send one seat cancel request at a time, commit the workbench, and start a new workbench session to cancel the next seat, and so on.
You cannot cancel seats from a ticketed itinerary.

Seat Cancel Support

Free and paid seat cancellation is supported in the booking and post-booking workflows as follows:

Seat Type

Can be canceled out of the initial booking workflow for

 

 

Can be canceled for an existing reservation (cancels seats booked in the same or a previous workbench session):

GDS

NDC

GDS

NDC

Paid seats

No

Yes

Yes

Yes

Free seats

Yes

Yes

Yes

Yes

Seat Cancel during Initial Booking

The following full workflow includes canceling the seats selected in that workflow.

  1. Create a reservation workbench.
  2. Add offer.
  3. Add traveler.
  4. Send a seat map request.
  5. Send a seat book request for each segment. You can include a seat assignment for multiple travelers on the same segment in the same request.
  6. Send a seat cancel request.
  7. Optional: Repeat steps 4 and 5 above to select new seats if desired.
  8. Complete the reservation workflow as necessary, and then commit the workbench.

Seat Cancel for Existing Reservation

The following full workflow includes canceling the seats selected in a previous workflow.

You can also send a seat cancel request for seats added in the same post-booking workflow session.

  1. Create a post-commit workbench.
  2. Send a seat cancel request.
  3. Optional: Send seat map and seat book requests per above to select new seats, if desired.
  4. Complete the reservation workflow as necessary, and then commit the workbench.

Modifying Seats

Ancillaries 24.11.32 and later. GDS only; not supported for NDC.

You can send Seat Map and Seat Book to replace a seat on an existing booking and hold the existing seat assignment until the new seat book request is successful at commit. Per Seat Cancel above, you can cancel, commit, and rebook a seat assignment, but the seat assignment is lost if the subsequent seat book request is not successful at commit.

When seat map and book are requested for a flight that already has a seat assignment, the responses change as follows:

  • The Seat Map response includes the HeldAncillary object to return the current seat assignment on that flight.

  • The Seat Book response returns OfferID with @type OfferAncillaryModify, and includes the ModifyPrice object, which notes any price difference for the new seat.

Supported in the initial booking workflow only for free seats; supported for existing reservations for both free and paid seats. Not supported for changing a paid seat to a free seat, or modifying a seat when the current workbench contains any other seat book request. You must add payment and issue tickets at commit; you cannot hold the booking with the modified seats.