Booking API Reference
This topic details the request message payloads and responses in the booking workflow. Endpoints and code examples are in the Booking Workflow topic.
In this topic:
- Workbench Actions
- Booking Workflow
Workbench Actions
Create New Reservation Workbench
Query Parameters
None.
POST Request
Send the POST request to the following resource:
POST book/session/reservationworkbench
Base path:
Pre-production https://api.pp.travelport.com/9/air/
Production https://api.travelport.com/9/air/
Payload
When creating a workbench for a new reservation, send a message payload with the following object. The response returns an identifier for the transaction. This workbench identifier must be sent in almost all subsequent steps in the workflow.
Object | Description | Required | Optional |
---|---|---|---|
ReservationID |
Empty container to request workbench ID. |
None |
None |
Create Post-Commit Workbench
To add to or change an existing reservation, such as to add seats to a booking, you also start by creating a workbench. Use the Locator query parameter per the table below to include the PNR in your POST request. There is no message payload. The response is the same as for a PNR Retrieve, plus a workbench ID in an additional Identifier object at the end of the response. This workbench ID must be sent in the subsequent steps in the flow.
Parameter | Description | Required/Optional |
---|---|---|
Locator |
Use Locator when creating a workbench post-reservation to send the PNR. |
Required only for post-commit workbench. |
Retrieve Workbench Details
Query Parameters
None.
GET Request
Send the GET request to the following resource:
GET book/session/rreservationworkbench/{workbenchID}
Base path:
Pre-production https://api.pp.travelport.com/9/air/
Production https://api.travelport.com/9/air/
Payload
None.
Discard Workbench
Discarding the workbench closes the session and deletes all information added to the workbench. If the workbench was created for an existing PNR, the PNR itself is not affected.
Query Parameters
None.
DEL Request
DEL book/session/reservationworkbench/{workbenchID}
Base path:
Pre-production https://api.pp.travelport.com/9/air/
Production https://api.travelport.com/9/air/
Payload
Object | Description | Required | Optional |
---|---|---|---|
Reservation |
Empty container to ignore the workbench. |
None |
None |
Commit (Generate PNR)
After you have added all travelers and stored a fare, send a POST request with the workbench identifier to book the itinerary and generate a PNR. There is no message payload for the POST request to commit the workbench and generate a PNR. However, you can use the query parameter detailed below to set a purge date for the PNR.
Query Parameters
Parameter | Description | Required/Optional |
---|---|---|
autoDeleteDate |
By default, reservation details are stored for one month after all travel on the itinerary is completed, after which time it is purged and no longer available. To set a longer purge date, add that date in YYYY-MM-DD format as in ?autoDeleteDate=2019-12-12. You can set a purge date that is up to 340 days from the date the reservation was created. Adding a purge date creates a retention segment on the host PNR. |
Optional |
POST Request
Send the POST request to the following resource:
POST book/reservation/reservations/{workbenchID}
Base path:
Pre-production https://api.pp.travelport.com/9/air/
Production https://api.travelport.com/9/air/
Payload
None.
The response for the commit returns all details added to the PNR and is the same as for the PNR Retrieve response.
Booking Workflow
After creating a workbench per above, add an offer and at least one traveler, and commit the workbench per above.
Add Offer and Store Fare - Full Payload (GDS)
Query Parameters
None.
POST Request
Send the POST request to the following resource:
POST book/offer/reservationworkbench/{workbenchID}/offers/buildfromproducts
Base path:
Pre-production https://api.pp.travelport.com/9/air/
Production https://api.travelport.com/9/air/
Payload
The response returns a system-generated identifier for the offer that must be sent in subsequent requests for that traveler, such as seat assignment and ticketing.
Object | Description | Required | Optional |
---|---|---|---|
OfferQueryBuildFromProducts
|
Top level object. Contains BuildFromProductsRequest. |
None
|
None
|
BuildFromProductsRequest |
Top level object. Contains PassengerCriteria and ProductCriteriaAir, PricingModifiersAir (optional), and Brand (optional). |
None |
None |
Defines the type of passenger. Send one PassengerCriteria object for each passenger type code (PTC). For a full list of PTCs, see the Tools page for the SOAP/XML API Reference Data file. |
None |
value: The PTC of the passenger type. Any traveler sent without a PTC value is defaulted to ADT. PTC can be sent or omitted for ADT passenger. AirReservation defaults the PTC to ADT and returns it in the PNR retrieve. number: The number of passengers in that PTC for this request. Default is 1. age: The age of the passenger. Notes on PTC and age
specifiedPassengerTypeCodeOnlyInd:This indicator returns pricing only for the specified PTC:
|
|
ProductCriteriaAir |
Top level object for itinerary details. Includes one or more SpecificFlightCriteria objects. |
Sequence: Place of this segment in the sequence, starting with 0 for the first segment in the sequence. |
None |
SpecificFlightCriteria |
Provides details for one leg of travel on the itinerary to book. Send one instance of SpecificFlightCriteria for each one origin and destination (O&D) pair. |
carrier: Airline carrier code flightNumber: Flight number departureDate: Date of departure in yyyy-mm-dd format (e.g., departureDate="2019-12-06") departureTime: Time of departure in HH:MM:SS format (e.g., departureTime="18:00:00"). arrivalDate: Date of arrival in yyyy-mm-dd format. arrivalTime: Time of departure in hh-mm format. from: Departure city/airport code. to: Arrival city/airport code. cabin: Cabin class to price. classOfService: Class of service to book. segmentSequence: Place of this flight in the segment, starting with 1 for the first flight in the sequence. boundFlightsInd: This indicator is not sent by the user but instead is sent if included in the information stored in the price by the carrier. |
brandTier: Send only if requesting to store brand information at the segment level. You can send brandTier for only one SpecificFlightCriteria or for each instance, if there are multiple. |
PricingModifiersAir
|
Any optional pricing modifiers. Includes FareSelection. When you add an offer, you can store fares with one or more optional pricing modifiers. If a pricing modifier is not added, the auto stored fare is added to the reservation. There is no change in the AirReservation response when pricing modifiers are requested. Not supported for NDC. If the requested modifier does not have any fares associated with it, the workbench commit fails and returns the error message No Fare Found. |
None |
currencyCode: The currency code for overriding the default currency associated with your PCC. |
FareSelection |
Stores fare types including private fares (negotiated), public fares (published), or net fares (consolidator fares, or any negotiated wholesale price that is further marked up for sale to customers). Required only when sending fare modifiers.
|
None |
fareType: Supported values are:
refundableOnlyInd: true stores only refundable fares, false stores only non-refundable fares. prohibitMinStayFaresInd: true stores only fares that do not require a minimum stay; false allows minimum stay fares. prohibitMaxStayFaresInd: true stores only fares that do not require a maximum stay; false allows maximum stay fares. prohibitAdvancePurchaseFaresInd: true stores only fares that do not require advance purchase; false allows fares with advance purchase restrictions. validatingCarrier: Specify a carrier to override the default validating carrier (the airline designator that the ticket is issued against). String to send the IATA code for the carrier to override the default validating carrier. If the validating carrier code is not supported for an itinerary, the response returns the error Ticketing Agreement does not exist. If an invalid validating carrier code is sent in the request, the response returns the error Unknown Carrier. |
FareModifiers |
Top level object for Account. Required only when sending account code. |
None |
None |
Account |
Sends account codes for negotiated fares. |
None |
code: The account code to price. |
Brand |
Send in PricingModifiersAir only if requesting to store a fare with brand details at the offer level. | None | tier: The brand tier. |
Add Offer and Store Fare - Reference Payload (NDC and GDS)
Query Parameters
None.
POST Request
Send the POST request to the following resource:
POST book/offer/reservationworkbench/{workbenchID}/offers/
Base path:
Pre-production https://api.pp.travelport.com/9/air/
Production https://api.travelport.com/9/air/
Payload
The payload sends reference identifiers from the Search response.
The reference payload is required when booking any NDC itinerary. For a GDS itinerary, send either this reference payload or a full payload request per above.
The response returns a system-generated identifier for the offer that must be sent in subsequent requests for that offer, such as ticketing.
Object | Description | Required Attributes | Optional Attributes |
---|---|---|---|
OfferQueryBuildFrom |
Top level object for request. |
None |
None |
BuildFromCatalogOfferingsRequest |
Top level object for identifiers from AirSearch response. Includes CatalogOfferingsIdentifier, CatalogOfferingIdentifier, and ProductIdentifier. |
None |
None |
CatalogOfferingsIdentifier/Identifier |
The CatalogOfferings identifier from the AirSearch response. |
value: The transaction identifier from the search response, in CatalogOfferings. |
None |
CatalogOfferingIdentifier/Identifier |
The CatalogOffering identifier from the AirSearch response. |
value: The offer identifier from the search response. |
None |
ProductIdentifier/Identifier |
The Product identifier from the AirSearch response. |
value: The product identifier from the search response. |
None |
Add Traveler
Query Parameters
None.
POST Request
Send the POST request to the following resource:
POST book/traveler/reservationworkbench/{workbenchID}/travelers
Base path:
Pre-production https://api.pp.travelport.com/9/air/
Production https://api.travelport.com/9/air/
Payload
The table below details the objects to be sent when adding a traveler. Note that the data required for a traveler can vary by carrier.
The response returns a system-generated identifier for the offer that must be sent in subsequent requests for that traveler, such as seat assignment and ticketing.
Object | Description | Required | Optional |
---|---|---|---|
Traveler |
Traveler details such as name and contact information. Contains PersonNameDetail, Telephone, Email, Address, and CustomerLoyalty objects. |
passengerTypeCode: PTC dob: Required only for infant and child PTC types (INF, INS, CHD, UNN). Send in YYYY-MM-DD format, for example, "dob":"2018-02-21" Notes on PTC and age
|
gender: Supported for minimum secure flight information. Supported values are Male, Female, and Unknown. |
PersonNameDetail |
Traveler name details. |
Given: Traveler first or given name. Surname: Traveler last name or surname. |
Prefix: Title such as Mr, Mrs, Ms. Middle: Traveler middle name. Suffix: Traveler name suffix such as Jr or Sr. |
Address |
Traveler address details. Includes Number, Street, City, StateProv, Country, and PostalCode objects. Note: It is optional to send Address, but when sent it must have the role set to Delivery and include at least one of its objects, such as Number or City per below. |
role: Must be set to Delivery. Note that traveler address details are sent as a client delivery remark when Address/role is sent with a value of Delivery. See more in Remarks. |
|
Number
|
The street number of the traveler address. |
value: The street number. |
|
Street
|
The street name of the traveler address. |
value: The street name. |
|
City
|
The city of the traveler address. |
None. |
|
StateProv |
The state or province of the traveler address. |
value: The state or province. |
|
Country |
The country of the traveler address. |
None. |
|
PostalCode |
The postal code of the traveler address. |
None. |
|
Telephone |
Traveler phone information. |
areaCityCode: Area or city code. phoneNumber: Phone number. For NDC and GDS itineraries, phoneNumber supports alphanumeric values as well as numeric, for example: "phoneNumber": "XYZ 770-555-1111 AB"
role: Freeform text identifier for the phone number, e.g., Work, Mobile. |
countryAccessCode: Country code. extension: Any extension. id: Numeric id for the phone number. cityCode: City name. |
|
Traveler email address information. |
value: Email address. |
remark: Any freeform notes about the email address, e.g., Work, Personal. |
CustomerLoyalty |
Customer loyalty program details, such as a frequent flier number. |
supplier: Carrier on which the loyalty program applies. status: Program status. value: Customer loyalty number. |
|
TravelDocument |
Optional details about traveler identification documents such as a passport. Sent as a traveler remark. Includes PersonName object. Some carriers require travel document information for ticketing; the exact data required varies by carrier.
When adding DOCO SSR for visa information, both issueDate and expireDate are required.
|
|
docNumber: Document number. docType: Type of document. e.g., Passport. expireDate: Document expiry date in YYYY-MM-DD format. issueDate: Document issue date in YYYY-MM-DD format. issueCountry: Issuing country for document. Gender: Traveler gender. Nationality: Traveler nationality. |
PersonName |
Name information shown on the travel document. |
Given: Traveler given name on the document. Middle: Traveler middle name. Surname: Traveler last name. |
Middle: Traveler middle name. |