Seats Guide

The Seats APIs - Seat Map, Seat Book, and Standalone Seat Map - 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 assignment but no separate payment is required. When a seat assignment must be purchased separately from 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 for a flight. Other industry examples are paid baggage, carbon offsets, pet transport, and unaccompanied minors. Paid seats are detailed here instead of in the Ancillary and EMD Guide because both paid and free seats use the seat map and book requests, not the ancillary shop and book requests.

  • Paid seats are purchased 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.

  • GDS and NDC carriers handle EMDs differently: NDC carriers issue their own EMDs while GDS EMDs are issued by the GDS

  • See Ancillary Payment and EMDs in the Ancillary Guide for more about EMDs.

Both free and paid seats follow the same workflow: You send a seat map request to return a list of available seats along with prices if applicable, followed by a seat book request to select the chosen seat and add it to the workbench. Free seats do not require payment, and no EMD is issued for them.

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 how the JSON APIs support GDS and NDC content, see the support tables for seats, ancillaries, fare rules, and exchanges. Also see the NDC and GDS Functionality Comparison.
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.
To add ancillaries or seats to a multi-offer booking, send one book request for each offer. Supported only for an existing booking, not in the initial booking workflow. For ancillaries: Create Post-Commit Workbench > Ancillary Shop > Ancillary Book for offer 1 > Ancillary Book for offer 2 > Commit Workbench. For seats: Create Post-Commit Workbench > Seat Map > Seat Book for offer 1 > Seat Book for offer 2 > Commit Workbench. You can send the book requests in any order: first and second offer, or second and first offer. GDS only; multi-offers not supported for NDC.

Seat type

Standalone Seat Map
(before or during booking)

Seat Map after Search*
(before booking)

Seat Map after AirPrice**
(before booking)

Seat Map and Book
(for new booking)

Seat Map and Book
(for existing booking)

Seat Map & Book in NDC Instant Pay flow

Modify Seat (book but hold existing seat until confirmation)

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

No

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

No

Yes

Yes

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

Seats Workflows

 

Seat Map before Booking

To check seat availability at various points in the JSON APIs workflow, and prior to starting a workbench session, you can send any of the following, but first check the support table above for GDS/NDC and free/paid seat support:

  • After either Search or AirPrice, send the Seat Map request with identifiers from that Search or AirPrice response.

  • At any point before or during booking, send the Standalone Seat Map request. This is a full payload request sending all flight details. It can be sent on its own, either within or outside of a workbench session.

To book a seat, you must create a workbench session per the following sections.

Seat Map and Selection for New Booking

Use the following workflow to add seats in the same session in which you book a reservation. Be sure to check the support table above for GDS/NDC and free/paid seat support in this workflow.

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.
Payments and EMDs for Seats and Ancillaries
Sending payment and issuing an EMD in the same workbench as shopping and booking is supported only for specific NDC carriers. For other NDC carriers and all GDS carriers, you must commit the booking workbench to confirm the booking, and then send payment and issue the EMD in a separate workbench. For ancillary payment requirements by NDC carrier, see NDC capabilities by airline through JSON API in the Travelport Knowledge Base. (If you need login assistance, see Knowledge Base NDC Resources.)
Step #

Seats Workflow Step

Description and Notes

API Reference

1

Create workbench for new reservation (after Search and optional AirPrice steps)

Create the workbench. Returns a system-generated identifier for the workbench that must be sent in subsequent requests for that workbench.

Create New Workbench API Reference

2

Add offer

Adds flight/s to workbench.

Add Offer API Reference

3

Add traveler/s

Adds traveler/s to workbench.

Add Traveler API Reference

4

Seat Map request

Returns a list of available seats and their characteristics. You can request seat maps for any of the following, so repeat the Seat Map request as necessary:

  • all flights within an offer (all flights on the itinerary)
  • all flights within a product (all flights on one leg of an itinerary)
  • one or more individual flights
If you sent a Seat Map request after Search for GDS, you do not need to repeat that request.

Seat Map API Reference

5

Seat book request per segment

Adds selected seat/s to workbench.

Send one seat book request for each segment. You can include multiple travelers in each request.

Seat Book API Reference

6

Add form of payment (FOP) for paid seats (optional, supported in same workbench only for specific NDC carriers)

For specific NDC carriers, you can choose to pay and issue the EMD for paid seat/s in the same workbench in which you shop and book the seat/s.

Send the details for the form of payment (FOP) to be used to pay for the seat assignment. The response returns a system-generated identifier for the FOP that must be sent in the Add Payment request next.

Payments and EMDs for Seats and Ancillaries
Sending payment and issuing an EMD in the same workbench as shopping and booking is supported only for specific NDC carriers. For other NDC carriers and all GDS carriers, you must commit the booking workbench to confirm the booking, and then send payment and issue the EMD in a separate workbench. For ancillary payment requirements by NDC carrier, see NDC capabilities by airline through JSON API in the Travelport Knowledge Base. (If you need login assistance, see Knowledge Base NDC Resources.)

Add Form of Payment API Reference

7

Add payment for paid seats (optional, supported in same workbench only for specific NDC carriers)

If you sent FOP per the preceding step, send the IDs for the offer/s to pay for and the FOP to use.

Add Payment API Reference

8

Commit the workbench

Final step in the workflow.

Depending on payment, one of the following occurs:

  • If no payment was sent, or for free seats, the commit updates the held booking with the seat assignment.

  • If FOP and payment for the paid seat/s were sent, the commit updates the held booking with the seat assignment and issues an EMD for the ancillary.

Commit Workbench API Reference

 

Seat Map and Selection for Existing Booking

Use the following workflow to add seats to an existing reservation. Be sure to check the support table above for GDS/NDC and free/paid seat support in this workflow.

Step #

Seats Workflow Step

Description and Notes

API Reference

1

Create workbench for existing reservation

Returns a system-generated identifier for the workbench that must be sent in subsequent requests for that workbench.

Create Post-Commit Workbench API Reference

2

Seat Map request

Returns a list of available seats and their characteristics.

Seat Map API Reference

3

Seat book request per segment

Adds selected seat/s to workbench.

Send one seat book request for each flight (aka segment). You can include multiple travelers in each request.

Seat Book API Reference

4

Add form of payment (FOP) for paid seats (optional, supported in same workbench only for NDC)

For specific NDC carriers, you can choose to pay and issue the EMD for paid seat/s in the same workbench in which you shop and book the seat/s.

Send the details for the form of payment (FOP) to be used to pay for the seat assignment. The response returns a system-generated identifier for the FOP that must be sent in the Add Payment request next.

Payments and EMDs for Seats and Ancillaries
Sending payment and issuing an EMD in the same workbench as shopping and booking is supported only for specific NDC carriers. For other NDC carriers and all GDS carriers, you must commit the booking workbench to confirm the booking, and then send payment and issue the EMD in a separate workbench. For ancillary payment requirements by NDC carrier, see NDC capabilities by airline through JSON API in the Travelport Knowledge Base. (If you need login assistance, see Knowledge Base NDC Resources.)

Add Form of Payment API Reference

5

Add payment for paid seats (optional, supported in same workbench only for NDC)

For NDC only, if you sent FOP in the preceding step, send the IDs for the seat offer/s to pay for and the FOP to use.

Add Payment API Reference

6

Commit the workbench

Final step in the workflow.

Depending on payment, one of the following occurs:

  • If no payment was sent, or for free seats, the commit updates the held booking with the seat assignment.

  • If FOP and payment for the paid seat/s were sent, the commit updates the held booking with the seat assignment and issues an EMD for the ancillary.

Commit Workbench API Reference

 

Seats Workflow Diagrams

In the following diagrams, for paid seats, note that sending Form of Payment and Payment for paid seats in the same workbench session is supported only for NDC. For GDS, you must first commit the workbench to confirm the paid seats before you can issue the EMD.

 

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.

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.

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.

See Seats Support above for NDC and GDS support in the workflows.

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 Workflow during New Booking

The following full workflow cancels one seat booked in that workflow.

Step #

Seats Workflow Step

Description and Notes

API Reference

1

Create workbench for new reservation (after Search and optional AirPrice steps)

Create the workbench. Returns a system-generated identifier for the workbench that must be sent in subsequent requests for that workbench.

Create New Workbench API Reference

2

Add offer

Adds flight/s to workbench.

Add Offer API Reference

3

Add traveler/s

Adds traveler/s to workbench.

Add Traveler API Reference

4

Seat Map request

Returns a list of available seats and their characteristics.

Seat Map API Reference

5

Seat book request per segment

Adds selected seat/s to workbench.

Send one seat book request for each segment. You can include multiple travelers in each request.

Seat Book API Reference

6

Ancillary Cancel request

Cancels one seat. You can cancel only one seat per workbench session. To cancel multiple seats, send one seat cancel request, commit the workbench, and start a new workbench session to cancel the next seat, and so on.

Ancillary Cancel API Reference

7

Commit the workbench

Final step in the workflow.

Commit Workbench API Reference

 

Seat Cancel Workflow for Existing Booking

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

You can also cancel seats added in the same workflow session.

Step #

Seats Workflow Step

Description and Notes

API Reference

1

Create workbench for existing reservation

Returns a system-generated identifier for the workbench that must be sent in subsequent requests for that workbench.

Create Post-Commit Workbench API Reference

2

Ancillary Cancel request

Cancels one seat. You can cancel only one seat per workbench session. To cancel multiple seats, send one seat cancel request, commit the workbench, and start a new workbench session to cancel the next seat, and so on.

Ancillary Cancel API Reference

3

Seat Map request (optional)

If you want to book another seat in this session, send Seat Map to returns a list of available seats and their characteristics.

Seat Map API Reference

4

Seat book request per segment (optional)

If you want to book another seat in this session, add selected seat/s to workbench.

Send one seat book request for each flight (aka segment). You can include multiple travelers in each request.

Seat Book API Reference

5

Commit the workbench

Final step in the workflow.

Commit Workbench API Reference