Skip to main content

Booking Management API

1.0
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).

Why use it?

Booking Management API

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.
  • Cancels 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 behavior when encountering error (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 the 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 request against reservation content.
  • Calls proper cancellation downline services.
  • Finalizes/commits transaction in case of success or partial success.
  • Retrieves booking details after cancellation (optional).

How to use

Get Booking

Display booking

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

  1. 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
    • API validates if the surname matches with data in the reservation before retrieving it.
{
    "confirmationId": "XXXXXX",
    "surname": "Smith"
}

Display selected elements of the booking

To ensure the successful booking retrieval with 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
    • Full list of the possible returnOnly values can be found in the swagger spec.
{
    "confirmationId": "XXXXXX",
    "surname": "Smith",
    "returnOnly":[
    "TRAVELERS", "FLIGHTS"
   ]
}

Cancel Booking

Few examples of using Cancel Booking are mentioned below. Additional examples can be found in the .yaml file and the help section.

Cancel specific flight/hotels/cars

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

  1. Add confirmationId (PNR Locator or Order Id)
  2. Add 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 the complete reservation, request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id)
  2. Add and set 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, request should contain the below information:

  1. Add confirmationId (PNR Locator or Order Id)
  2. Add 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 and to retrieve the state of booking after cancellation, request should contain the below information:

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

Cancel with "allow partial cancel" error policy

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

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