Seat Maps and Booking

The Seats API supports the optional selection and booking of free seats for both GDS and NDC content.

A seat map request returns seat availability on a selected flight, while the seat book request adds a seat selection to the reservation workbench.

Seats for both GDS and NDC can be added as part of the AirReservation workflow after the Add Offer and Add Traveler steps. For NDC itineraries only, seats can also be added to an existing reservation before ticketing.

Use these requests to select free seats only. Paid seats are not supported in versions of the JSON APIs prior to v11.

In this topic:

Seats Workflow

Note that for Seats in both flows:

  • Request seat availability for one segment at a time.
  • Send a separate seat book request for each segment. You can include multiple travelers in the same seat book request.

Seats Workflow at Booking

When selecting seats as part of the initial reservation workflow, for both GDS and NDC, the seat availability and seat booking steps happen after the Add Offer and Add Traveler steps and before Commit:

  1. Create a reservation workbench (this and following unlinked steps are part of the AirReservation workflow).
  2. Add offer.
  3. Add traveler.
  4. Send a seat availability request per below for one segment.
  5. Send a seat book request per below for one segment. This adds the seat offer to the workbench.
  6. Repeat seat availability and seat book steps as necessary for additional segments.
  7. Commit workbench.

Post-Reservation Seats Workflow (NDC only)

When adding seats to an existing PNR (supported only for NDC), take the following steps:

  1. Create a post-commit workbench (this and following unlinked steps are part of the AirReservation workflow).
  2. Send a seat availability request per below for one segment.
  3. Send a seat book request per below for one segment. This adds the seat offer to the workbench.
  4. Repeat seat availability and seat book steps as necessary for additional segments.
  5. Commit workbench.

Seat Map

After initiating a workbench per either workflow above, request seat availability for each segment on the itinerary as follows.

Seat Map Request

Request seat availability for one segment at a time. Send additional requests as necessary for additional segments.

See Seats API Reference for the endpoint. There is no message payload.

The following example shows the GET request with the placeholders populated:

...reservations/00cb3f3b-8a04-4d1d-89fd-113034dcb14d/offers/offer_1/productAirs/p0/segments/s3

Seat Map Response

The response returns basic flight and traveler details, and a list of all seats grouped by availability status (Available, Reserved, etc.). The response consolidates information across those seats into the ReferenceList object, which lists for each row in the cabin each seat number and the characteristics for that seat.

Seat Booking

After verifying seat availability, send a request to book a seat or seats.

Seat Book Request

After retrieving a list of available seats, you can send a seat book request for any available seat.

See Seats API Reference for the endpoint and all payload objects.

You can include multiple travelers in the same seat book request.
Send a separate book request for each segment.

Seat Book Response

The response returns an identifier for the transaction.

{
  "ReservationResponse": {
    "Identifier": {
      "authority": "Travelport",
      "value": "13e6ea95-2f56-4fb2-99ec-ce664f8e9530"
    }
  }
}

Commit

If you are selecting seats as part of a new reservation, complete any remaining steps in the reservation workflow.

The last step in either workflow is to commit the workbench; see the commit step in the AirReservation Workflow for details.

If the seat book request is not confirmed, an error message with status code 1005 is returned along with the error message "Error while invoking : Could not find Seat connector".

Commit Response Example with Seat

When you commit the workbench with a seat selection, the response returns a second instance of Offer with the seat offer and selected seat. The Offer object in the example below has the id of seatOffer_1.