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

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.

If any pricing modifier sent in the Add Offer full payload request does not have any fares associated with it, the commit will fail and return the error message No Fare Found. Pricing happens at the commit, not the Add Offer step.

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}

Priceline customers should instead use the following endpoint, which is for use only by Priceline and will be deprecated in the future and replaced with the endpoint above:
receipt/reservations/{workbenchID}/receipts/buildfromlocator?ReservationLocator={PNR}

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

PassengerCriteria

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
  • Travelport recommends that age be sent only with PTCs that require age for pricing.
  • Travelport recommends sending the PTC CNN for a child instead of CHD, in which NN is the child's age; e.g., C08, C10. Many fares cannot be quoted for code CHD.
  • The age for CNN is generally between 2 and 11 inclusive, with ADT fares returned for ages 12 and up; however, this can vary by airline and country.
  • The age for INF must be either 0 or 1.
  • In the Search and Price requests, when sending specifiedPassengerTypeCodeOnlyInd as true for a child, also send the PTC CNN along with the age of the child. (This indicator is used to return offers for only the specified PTC.)
  • During booking, date of birth is required for all child and infant PTCs (Add Traveler payload in Traveler/birthDate).

specifiedPassengerTypeCodeOnlyInd:This indicator returns pricing only for the specified PTC:

  • true: Returns pricing only for the specified PTC.
  • false: Returns pricing only for the specified PTC and if no fares are available for the PTC, returns fares for the default ADT (adult) 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:

  • PublicFaresOnly: Only public fares for specified itinerary.
  • PrivateFaresOnly: Only private fares for the itinerary.
  • Private&PublicFares: Lowest of all public and private fares.
  • NetFaresOnly: Only net fares.

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
CatalogOfferings

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
  • Travelport recommends that age be sent only with PTCs that require age for pricing.
  • Travelport recommends sending the PTC CNN for a child instead of CHD, in which NN is the child's age; e.g., C08, C10. Many fares cannot be quoted for code CHD.
  • The age for CNN is generally between 2 and 11 inclusive, with ADT fares returned for ages 12 and up; however, this can vary by airline and country.
  • The age for INF must be either 0 or 1.
  • In the Search and Price requests, when sending specifiedPassengerTypeCodeOnlyInd as true for a child, also send the PTC CNN along with the age of the child. (This indicator is used to return offers for only the specified PTC.)
  • During booking, date of birth is required for all child and infant PTCs (Add Traveler payload in Traveler/birthDate).

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.

Email

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.