The Create Booking method is designed for booking various content exposed by Sabre, and provides the capability to create Sabre Orders (refer to the New Distribution Capability page). Alternatively, the method can also create a Sabre PNR that includes traditional air (ATPCO) or low-cost carrier (LCC) content, book hotel content, book a combination of flight and hotel content, or book car content.
The hotel booking options include:
- Book an aggregator hotel as a CSL segment
- Book a Sabre GDS hotel as a CSL segment, or as a legacy segment
Note: Refer to Content Services For Lodging for more information.
Car booking options include:
- Book car content via booking key.
The Booking Management API flow consists of a number of internal calls to individual product domains (PNR, Pricing, Profiles, Order) with added business logic that aims for simple implementation.
Create Booking is available in RPC/JSON format.
This API is designed to operate in a stateless way, and accepts both sessionless (ATK) and session-based (ATH) tokens. When a call is made to this API via a session-based token, the session (AAA) is cleared before and after execution.
Create Booking will attempt to create a Sabre PNR that contains either a Sabre Order or traditional air content (including LCC). If, during the orchestration process, a failure of a domain service call prevents the API from completing a booking, the system will stop processing and pass an error.
The APIs orchestrated in Create Booking include:
- Order Management
Create Booking request structure
Since this method supports both types of air content (NDC or traditional) you can choose the following mandatory request parameters:
flightOfferis used to pass details of a chosen NDC offer to be booked and populates chosen
selectedOfferItemsreturned by the Offer Price API.
flightDetailsis used to pass full details for a traditional air booking. It is necessary to provide all information on chosen
flightsand, if needed, define the air booking error strategy and/or chosen pricing options. The pricing options include price validation (
priceComparison) and a plethora of optional
qualifiersthat may affect the final price for the booking.
Passing traveler information
Another mandatory step requires you to pass traveler information. Choose the
travelers request element to pass details for each person. You may also expand on the travelers' details with information about their travel documents (
identityDocuments) and/or loyalty programs (
loyaltyPrograms). It is possible to request additional ancillary services (
ancillaries), as well as send a special service request(s) to the airline (
specialServices). Contact information associated with a name (
phones) can also be specified under a traveler object.
- NDC bookings currently support only adult travelers.
- Currently, ancillary services are supported only for ATPCO/traditional bookings.
Instead of passing traveler information, you may retrieve the Sabre profile to instead populate traveler information (including travel documents and/or loyalty programs) by using
profiles. This is applicable for both types of air content.
The remaining parameters are optional and allow for more granular control over the new booking:
errorHandlingPolicyallows you to define the API's behavior in the event of an error. Available options are:
HALT_ON_ERROR(default): Stop processing upon encountering any error from downline APIs.
DO_NOT_HALT_ON_FLIGHT_PRICING_ERROR: Continue upon encountering a pricing error (only ATPCO/traditional booking).
DO_NOT_HALT_ON_HOTEL_BOOKING_ERROR: Continue upon encountering a hotel booking error.
DO_NOT_HALT_ON_CAR_BOOKING_ERROR- continue upon encountering a car booking error.
HALT_ON_INVALID_MINIMUM_CONNECTING_TIME_ERROR: Stop if the minimum connecting time between the flights is not met (only ATPCO/traditional booking).
targetPccchanges the context to a desired pseudo city code. This is particularly useful for agencies that separate their booking, fulfillment, and shopping across different pseudo city codes (PCCs).
receivedFromis an optional property that passes information on the entity that authorized the creation of the booking.
agencyis used to pass agency related information, like agency address or the ticketing policy selected.
contactInfois used to pass contact information for the booking, like e-mail address (or addresses) or phone number (or phone numbers).
paymentis mainly used to associate different forms of payment to the booking. These can be chosen as a booking method during pricing (
remarksis used to add various booking related remarks.
notificationscontains actions that are to be performed after the booking has been completed, such as sending itinerary information to an e-mail address.
otherServicescontains other service information (OSI) sent to an airline. It is not possible to send other service request to a hotel chain and/or car rental vendor.
Booking hotel content
If you wish to use this method to book hotel content, choose from the following request elements:
agencyis used to pass agency-related information, such as agency address. Agency information is required to complete hotel bookings.
travelersis used to pass details for each traveler.
hotel.useCsldefines if the booking should be made as CSL hotel or legacy GDS content.
hotel.bookingKeyis a required value obtained as part of the response of the Hotel Price Check API.
createBookingwill automatically decode the booking key, obtain the hotel property ID, rate details, and determine the source (GDS or Aggregator) in order to execute the booking through the appropriate vendor.
hotel.roomsdefines the rooms to be booked and assign them to travelers.
hotel.formOfPaymentdefines the form of payment to complete the booking.
v1.9 of the Booking Management API, the Create Booking method supports Payment Service Directive 2 (PSD2) compliant Strong Customer Authentication (SCA) for payment cards. When using payment cards for hotel bookings, specify SCA information under the request element:
Booking car content
car.bookingKey is returned in the Vehicle Price Check API response and is a mandatory value to book cars with the Booking Management API.
Create Booking response structure
The Create Booking response is mainly comprised of the response structure found in Get Booking and contains details of the newly made booking.
bookingcontains the details of the booking. Refer to the Get Booking section for detailed information.
requestincludes a copy of the request sent to the API.
errorsincludes all errors/warnings returned by the API.
This section illustrates the current error handling logic for Create Booking:
|category||String||Indicates error category.|
|description||String||Provides detailed description.|
|type||String||Indicates error type.|
|fieldPath||String||Request’s field path if error caused by bad request.|
|fieldName||String||Request’s field name if error caused by bad request.|
|fieldValue||String||Request’s field value if error caused by bad request.|
In the event an error(s) occurs, Create Booking returns a non-empty
errors list. Each item in the collection contains three fields with the following possible values:
Note: Refer to Create Booking - Error List for additional details on possible errors returned by Create Booking.