Seat Book API Reference
POST |
book/airoffer/reservationworkbench/{workbenchId}/offers/buildancillaryoffersfromcatalogofferings For {workbenchID} send the workbench identifier returned in ReservationResponse/Identifer/value in the workbench create response. Base path: Pre-production https://api.pp.travelport.com/11/air/ Production https://api.travelport.com/11/air/ |
Related Content: Seats Guide, Seat Map API Reference
After retrieving available seats with a Seat Map request, you send a Seat Book request to add a selected seat to the workbench. See the Seats Guide for the workflow description.
You can include multiple travelers in the same seat book request; however, you must send a separate book request for each flight on the itinerary.
Request
Also see Authorization and Common Headers.
Query Parameters
None.
Request Body
Object |
Description |
Required/Optional |
---|---|---|
OfferQueryBuildAncillaryOffersFromCatalogOfferings |
Top level object. |
Required |
BuildAncillaryOffersFromCatalogOfferings |
Details for one seat on one flight. Send one instance for each traveler on each flight. Includes CatalogOfferingsIdentifier, CatalogOfferingIdentifier, TravelerIdentifierRef, and SeatAssignment objects. |
Required |
CatalogOfferingsIdentifier |
Top level object. |
Required |
CatalogOfferingsIdentifier/Identifier |
The identifier value for the seat map response. Key value pairs:
|
Required |
CatalogOfferingIdentifier |
Top level object. |
Required |
CatalogOfferingIdentifier/Identifier |
The identifier value for the seat map offer in the response. Key value pairs:
|
Required |
TravelerIdentifier |
The traveler for whom to book the seat. |
Required |
TravelerIdentifier/Identifier |
Traveler ID. Key value pairs:
Send the traveler identifier returned in the Add Traveler response. For the post-reservation workflow the traveler identifier is returned in the response when the post-commit workbench is created. |
|
SeatAssignment |
Seat number to book. |
Required |
Response
GDS Seat Book Response
For GDS, the seat book response returns full details for each seat booked.
Object |
Description |
---|---|
OfferListResponse |
Top level object for response. Includes OfferID, Identifier, and ReferenceList objects. |
OfferListResponse/Identifier |
Identifier for response. Key value pairs:
|
OfferID |
Top level object for booked seat details. One instance returned for each booked seat. Key value pairs:
Includes Identifier, Product, Price, and TermsAndConditionsFull objects. |
OfferID/Identifier |
Identifier for booked seat offer. Key value pairs:
|
Product |
Top level object for product (one leg of the itinerary; multiple instances are returned if there are multiple legs). Key value pairs:
Includes Identifier, Ancillary, and SeatAssignment objects. A Quantity object may also be returned to note the number of seats booked. |
Product/Identifier |
Identifier for the product. Key value pairs:
|
Ancillary |
Top level object. Includes FlightRef and SeatAssignment object. |
FlightRef |
Flight reference matching to ReferenceListFlight/Flight/id. |
SeatAssignment |
Includes Seat object. |
Seat |
Row and seat number of assigned seat. |
Price |
Top level object for price details; 0 amounts are free seats. Includes CurrencyCode, Base, TotalTaxes, TotalPrice, and PriceBreakdown objects. |
CurrencyCode |
The currency in which the price is returned. Currency is the default associated with your provisioned PCC from Travelport. Key value pairs:
|
Base |
Base price before taxes and fees; 0 for free seats. |
TotalPrice |
Total price for seat including base price, taxes and fees; 0 for free seats. |
TermsAndConditionsFull |
Any terms and conditions applicable to the seat. Includes ApplicationLimit. |
ApplicationLimit |
Any restrictions on the number of this seat product that can be purchased. Key value pairs:
|
ReferenceList |
Top level object for flight details. Includes Flight object. |
Flight |
One instance per flight. Key value pairs:
Includes Identifier, Departure, Arrival, and Status objects. |
Flight/Identifier |
Internal identifier for the flight. Key value pairs:
|
Departure |
Departure details. Key value pairs are the location, date, time, and terminal of departure. |
Arrival |
Arrival details. Key value pairs are the location, date, time, and terminal of arrival. |
Status |
Returns status of seat booking in the following:
|
NDC Seat Book Response
NDC responses return an identifier for each booked seat. You can send a reservation retrieve request to return booked seat details.
Object |
Description |
---|---|
OfferListResponse |
Top level object for response. Includes OfferID object. |
OfferID |
Top level object for seat confirmation. One instance returned for each seat booked. Includes Identifier. |
OfferID/Identifier |
Internal identifier for seat confirmation:
|
Example Request
You can include multiple travelers in the same seat book request; however, you must send a separate book request for each flight on the itinerary.
The following example sends seat assignments for two travelers on the same flight. This example is for GDS; however, the seat book request is the same for both GDS and NDC, and for both free and paid seats.
{
"OfferQueryBuildAncillaryOffersFromCatalogOfferings": {
"BuildAncillaryOffersFromCatalogOfferings": [
{
"@type": "BuildAncillaryOffersFromCatalogOfferingsAirSeat",
"CatalogOfferingsIdentifier": {
"Identifier": {
"value": "844cf72e-5dcf-4905-959c-ae416ba7a4ea"
}
},
"CatalogOfferingIdentifier": {
"Identifier": {
"value": "8a1072cf-f3e1-4f04-9dcf-db55f60dc487"
}
},
"TravelerIdentifierRef": {
"value": "1b74e411-1eb1-483e-a06b-c9333efd02df"
},
"SeatAssignment": "3A"
},
{
"@type": "BuildAncillaryOffersFromCatalogOfferingsAirSeat",
"CatalogOfferingsIdentifier": {
"Identifier": {
"value": "844cf72e-5dcf-4905-959c-ae416ba7a4ea"
}
},
"CatalogOfferingIdentifier": {
"Identifier": {
"value": "8a1072cf-f3e1-4f04-9dcf-db55f60dc487"
}
},
"TravelerIdentifierRef": {
"value": "1a1269df-44e5-43b3-ab7b-4d6336b9e68f"
},
"SeatAssignment": "3C"
}
]
}
}
Example Response
For GDS, the seat book response returns details for all booked seats, including seat assignments and price details for both paid and free seats.
{"OfferListResponse": {
"@type": "OfferListResponse",
"transactionId": "951ce15b-a2e9-49db-939f-36eeefe8ac92",
"traceId": "7a87fa9f-f21a-4ee8-b1ec-fd65a7d8f51f",
"OfferID": [
{
"@type": "Offer",
"id": "seatOffer_Flight_01_1",
"Identifier": {
"authority": "Travelport",
"value": "e265b566-9ee3-4e0d-aaf7-b9e365503d62"
},
"Product": [
{
"@type": "ProductAncillary",
"id": "product_seat_Flight_01_1",
"Identifier": {
"authority": "Travelport",
"value": "c8b26650-6e12-4d96-b88a-404441828d6d"
},
"Ancillary": {
"@type": "AncillaryAirSeat",
"FlightRef": [
"Flight_01"
],
"SeatAssignment": {
"@type": "SeatAssignment",
"Seat": "003A"
}
}
}
],
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 0,
"TotalPrice": 0
},
"TermsAndConditionsFull": [
{
"@type": "TermsAndConditionsFullAncillary",
"ApplicationLimit": {
"start": "1",
"end": "1",
"value": "PassengerSegment"
}
}
]
},
{
"@type": "Offer",
"id": "seatOffer_Flight_01_2",
"Identifier": {
"authority": "Travelport",
"value": "247b8ec3-5df7-4688-9d46-a754b3f1c9e5"
},
"Product": [
{
"@type": "ProductAncillary",
"id": "product_seat_Flight_01_2",
"Identifier": {
"authority": "Travelport",
"value": "a08a39d5-9f54-4678-8e8c-6c6c764ba687"
},
"Ancillary": {
"@type": "AncillaryAirSeat",
"FlightRef": [
"Flight_01"
],
"SeatAssignment": {
"@type": "SeatAssignment",
"Seat": "003C"
}
}
}
],
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 0,
"TotalPrice": 0
},
"TermsAndConditionsFull": [
{
"@type": "TermsAndConditionsFullAncillary",
"ApplicationLimit": {
"start": "1",
"end": "1",
"value": "PassengerSegment"
}
}
]
}
],
"Identifier": {
"authority": "Travelport",
"value": "844cf72e-5dcf-4905-959c-ae416ba7a4ea"
},
"ReferenceList": [
{
"@type": "ReferenceListFlight",
"Flight": [
{
"@type": "FlightStatus",
"carrier": "QF",
"number": "0419",
"id": "Flight_01",
"Identifier": {
"authority": "Travelport",
"value": "be15852a-963b-491c-85f9-21da034c72eb"
},
"Departure": {
"@type": "DepartureDetail",
"location": "SYD",
"date": "2023-12-20",
"time": "08:00:00"
},
"Arrival": {
"@type": "ArrivalDetail",
"location": "MEL",
"date": "2023-12-20",
"time": "09:35:00"
},
"Status": {
"@type": "StatusDetail",
"ProviderStatus": {
"providerCode": "HS",
"value": "Pending"
}
}
}
]
}
]
}
}
The NDC seat book response returns an identifier for each seat selection instead of seat details. You can send a reservation retrieve request to return booked seat details.
{"OfferListResponse": {
"transactionId": "2b41cc5d-46bb-4c52-b39a-693ed955c68c",
"OfferID": [
{
"@type": "OfferID",
"Identifier": {
"authority": "SQ",
"value": "UFJJQ0U2LVNFRzJ8UEFYMnxTRUcy"
}
},
{
"@type": "OfferID",
"Identifier": {
"authority": "SQ",
"value": "UFJJQ0UzLVNFRzJ8UEFYMXxTRUcy"
}
}
]
}
}