Seats Guide
The Seats APIs, Seat Map, Standalone Seat Map, Seat Book, 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 segment or flight requested, along with the status and characteristics of each seat. 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
After checking the seat map, send one or more Seat Book requests to add selected seat/s to the workbench. Send a separate Seat Book request for each flight, including all travelers on that flight, and repeat as necessary. Commit the workbench to book the seat/s.
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 availability and booking seats at various points in the workflows per below.
The NDC Instant Pay workflow (book and issue ticket in the same session) does not support booking ancillaries, and the Add Product workflow does not support booking ancillaries or seats. These can be added after the reservation is created.
Seat type |
Standalone Seat Map |
Seat Map after Search* |
Seat Map after AirPrice** |
Seat Map and Book |
Seat Map and Book |
Seat Map & Book in NDC Instant Pay flow |
Modify Seat (book but hold existing seat until confirmation) |
||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 |
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 Book 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.
Step # |
Seats Workflow Step |
Description and Notes |
API Reference |
---|---|---|---|
1 |
Create workbench for new reservation (after Search and optional AirPrice steps) |
Creates the workbench. Returns a system-generated identifier for the workbench that must be sent in subsequent requests for that workbench. |
|
2 |
Add offer |
Adds flight/s to workbench. |
|
3 |
Add traveler/s |
Adds traveler/s to workbench. |
|
4 |
Seat Map request |
Returns a list of available seats and their characteristics. You can request seat maps for any of the following, and repeat the Seat Map request as necessary:
If you sent a Seat Map request after Search for GDS, you do not need to repeat that request.
|
|
5 |
Seat book request per segment/flight |
Adds selected seat/s to workbench. Send one seat book request for each segment, aka flight. You can include multiple travelers in each request. |
|
6 |
Add form of payment (FOP) for paid seats (optional, supported in same workbench only for specific NDC carriers) |
Some NDC carriers support paying for paid seat/s and issuing the EMD in the same workbench as the Seat Map and Book requests. Sends 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 for a seat or ancillary in the same workbench as shopping and booking that seat/ancillary is supported only for specific NDC carriers. For some NDC carriers and all GDS carriers, you must commit the booking workbench to confirm the seat/ancillary, and 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.)
|
|
7 |
Add payment for paid seats (optional, supported in same workbench only for specific NDC carriers) |
If FOP was sent per the preceding step, sends the IDs for the offer/s to pay for and the FOP to use. |
|
8 |
Commit the workbench |
Final step in the workflow. Depending on payment, one of the following occurs:
|
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. |
|
2 |
Seat Map request |
Returns a list of available seats and their characteristics. |
|
3 |
Seat book request per segment/flight |
Adds selected seat/s to workbench. Send one seat book request for each flight (aka segment). You can include multiple travelers in each request. |
|
4 |
Add form of payment (FOP) for paid seats (optional, supported in same workbench only for NDC) |
Some NDC carriers support paying for paid seat/s and issuing the EMD in the same workbench as the Seat Map and Book requests. Sends 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 for a seat or ancillary in the same workbench as shopping and booking that seat/ancillary is supported only for specific NDC carriers. For some NDC carriers and all GDS carriers, you must commit the booking workbench to confirm the seat/ancillary, and 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.)
|
|
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. |
|
6 |
Commit the workbench |
Final step in the workflow. Depending on payment, one of the following occurs:
|
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
You can modify a seat assignment by sending the Seat Map and Seat Book requests for a flight with an existing seat assignment. Upon successfully booking the new seats at workbench commit, the previous seats are released and the new seats confirmed. In case of booking failure, the existing seat assignments are retained on the booking.
Per Canceling Seats below, 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 Seat Book are requested for flight/s that already have a seat assignment, the responses change as follows:
-
The Seat Map response returns the HeldAncillary object to provide the current seat assignment on that flight.
-
The Seat Book response returns OfferID with @type OfferAncillaryModify for the new seat/s, and includes the ModifyPrice object, which notes any price difference.
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.
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. |
|
2 |
Add offer |
Adds flight/s to workbench. |
|
3 |
Add traveler/s |
Adds traveler/s to workbench. |
|
4 |
Seat Map request |
Returns a list of available seats and their characteristics. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
5 |
Commit the workbench |
Final step in the workflow. |
Commit Workbench API Reference
|