Skip to main content

Booking Management API

1.1
trip management
booking
REST API
Travel Agency
Try Now

What is it?

Booking Management API

The Booking Management API is a part of Sabre's Business Services, that allows users to manage their Sabre reservations/bookings in a better way. This API provides a normalized set of services to manage both Sabre Passenger Name Records (PNRs) and Sabre Orders, by simplifying these implementations and ensuring that both expert and novice users can integrate and adopt Sabre APIs in the most seamless way possible.
Currently, it consists of two methods:

  • GetBooking
  • CancelBooking

Get Booking

Get Booking provides a normalized view of reservations by combining both PNRs and orders.
This is achieved by executing internal calls to the PNR and Order domains respectively and then consolidating the information into a single normalized response.
Additionally, this API sources extra content from other Sabre internal domains such as, Ticketing, Pricing etc., to provide a holistic view of the Sabre reservations and support traveler-oriented use-cases (eg. can I change my ticket?).

Cancel Booking

Cancel Booking provides a single, unified service to cancel the entire reservation or a part of the reservation irrespective of what it contains (flight, hotel, car, others) and where it is created (NDC, Sabre, CSL). This includes an option to void corresponding electronic documents for flights (ATPCO).

Why use it?

With the recent introduction of new content types such as NDC and CSL in the Sabre system, the Booking Management API facilitates users to determine the appropriate API for managing reservations/bookings, within the Sabre API portfolio.

Get Booking

  • Simplifies the booking retrieval process by removing the need to use individual/granular APIs to retrieve a reservation
  • Allows to retrieve normalized view of the reservation regardless of the content sources (PNR, NDC Order)
  • Provides additional data relevant for travelers (e.g. fare rules) as well as data elements that are not stored in the Sabre PNR (e.g. ticket details and more)
  • Retrieves reservation in a stateless way

Cancel Booking

  • Simplifies the cancellation process by removing the need to use individual/granular APIs to cancel a reservation
  • Allows to cancel any content from the reservation
  • Allows to cancel the entire reservation
  • Voids corresponding electronic documents for flights (ATPCO)
  • Cancels the reservation in a stateless way
  • Allows the user to specify a different target city (Pseudo City Code, or PCC) for the cancelation of the PNR
  • Provides the ability to define the API's behavior when encountering errors (halt on error or allow partial cancel)

How it works

Get Booking

Get Booking executes the following steps to display a booking:

  • Retrieves reservation data by the given confirmationID (PNR locator and Order ID)
  • Calls proper downline services to retrieve additional data
  • Maps retrieved data to a normalized data model

Cancel Booking

Cancel Booking executes the following steps in order to complete the cancellation process of a specific product:

  • Retrieves reservation data by the given confirmationID (PNR locator and Order ID)
  • Validates cancel the request against reservation content
  • Calls proper cancellation downline services
  • Finalizes/commits the transaction in the event of a success or partial success
  • Retrieves booking details after cancellation (optional)

Additionally, the following steps are executed when using VOID for flightTicketOperation:

  • Retrieves all electronic documents contained in the PNR or Order
  • Matches the coupons of each document to segments
  • Validates the coupon status
  • Validates void period
  • Calls void ticket downline service (includes a recovery strategy in case of failure)
  • Finalizes/commits the transaction in the event of a success or partial success
  • Continues with the steps above

How to use

Get Booking

Display booking

To ensure the successful booking retrieval, the request should contain the below information:

Add confirmationId (PNR Locator or Order Id) in the Get Booking request.

{
    "confirmationId": "XXXXXX"
}

Display booking and validate surname

To ensure the successful booking retrieval with surname validation, the request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id) in the Get Booking Request.
  2. Add surname in the Get Booking Request.

Note: The API will validate if the surname matches with data in the reservation before retrieving it.

{
    "confirmationId": "XXXXXX",
    "surname": "Smith"
}

Display selected elements of the booking

To ensure a successful booking retrieval with a limited number of the elements in the response, the request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id) in the Get Booking Request.
  2. Add returnOnly element in the Get Booking Request with the selected list of elements you want to retrieve.

Note: The full list of possible returnOnly values can be found in the OpenAPI specification under the Reference Documentation tab.

{
    "confirmationId": "XXXXXX",
    "surname": "Smith",
    "returnOnly":[
    "TRAVELERS", "FLIGHTS"
   ]
}

Cancel Booking

A few examples of using Cancel Booking are mentioned below. Additional examples can be found in the OpenAPI specification under the Reference Documentation tab and the Help tab.

Cancel specific flight/hotels/cars

To ensure the successful cancellation of specific flights/hotels/cars, your request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id).
  2. Add the list of cars/flights/hotels:
    • itemId can be retrieved from GetBookingResponse.(flights|cars|hotels).itemId or GetReservationRS/Reservation/PassengerReservation/Segments/Segment/Product/@id.
{
  "confirmationId": "XXXXXX",
  "cars": [
    {
      "itemId": 1
    }
  ],
  "flights": [
    {
      "itemId": 2
    }
  ],
  "hotels": [
    {
      "itemId": 12
    }
  ]
}

Cancel whole reservation

To ensure the successful cancellation of an entire reservation, your request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id).
  2. Add and set the cancelAll flag to true ("cancelAll": true).
{
  "confirmationId": "XXXXXX",
  "cancelAll": true
}

Cancel specific segments by id or sequence

To ensure the successful cancellation of specific flights/hotels/cars, your request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id).
  2. Add the list of segments:
    • id can be retrieved from GetBookingResponse.flights(cars/hotels).itemId or GetReservationRS/Reservation/PassengerReservation/Segments/Segment/Product/@id.
    • sequence can be retrieved from GetReservationRS/Reservation/PassengerReservation/Segments/Segment/Product/@sequence
{
  "confirmationId": "XXXXXX",
  "segments": [
    {
      "id": 1,
      "sequence": 2
    }
  ]
}

Cancel and retrieve booking

To ensure the successful cancellation of and retrieve the state of the booking after cancellation, your request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id).
  2. Add and set the retrieveBooking flag to true ("retrieveBooking": true).
{
  "confirmationId": "XXXXXX",
  "retrieveBooking": true,
  "flights": [
    {
      "itemId": 2
    }
  ]
}

Cancel with "allow partial cancel" error policy

To ensure successful cancellation with the option to allow a partial cancellation (continue with processing in the event of an error), your request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id).
  2. Add and set the errorHandlingPolicy flag to ALLOW_PARTIAL_CANCEL ("errorHandlingPolicy": "ALLOW_PARTIAL_CANCEL").
{
  "confirmationId": "XXXXXX",
  "errorHandlingPolicy": "ALLOW_PARTIAL_CANCEL",
  "flights": [
    {
      "itemId": 2
    }
  ],
  "hotels": [
    {
      "itemId": 12
    }
  ]
}

Cancel whole reservation and void corresponding tickets

To ensure the successful cancellation of the complete reservation, the request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id).
  2. Add and set the cancelAll flag to true ("cancelAll": "true").
  3. Add and set flightTicketOperation to VOID ("flightTicketOperation": "VOID").
{
  "confirmationId": "XXXXXX",
  "cancelAll": true,
  "flightTicketOperation": "VOID"
}

Cancel specific flight and void corresponding tickets

To ensure the successful cancellation of the complete reservation, the request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id).
  2. Add the list of flights:
    • itemId can be retrieved from GetBookingResponse.(flights|cars|hotels).itemId or GetReservationRS/Reservation/PassengerReservation/Segments/Segment/Product/@id.
  3. Add and set flightTicketOperation to VOID ("flightTicketOperation": "VOID").
{
  "confirmationId": "XXXXXX",
  "flightTicketOperation": "VOID",
  "flights": [
    {
      "itemId": 2
    }
  ]
}