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 three methods:
- GetBooking
- CancelBooking
- CancelFlightTickets
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).
Cancel Flight Tickets
Cancel Flight Tickets provides a single, unified service to void a list of electronic documents (ATPCO). This includes electronic tickets as well as electronic miscellaneous documents (EMD).
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)
Cancel Flight Ticket
- Simplifies the ticket cancellation process by removing the need to use individual/granular APIs to void an electronic document
- Allows to cancel multiple electronic documents (up to 12) from one reservation in a single call
- Voids the electronic documents and updates 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 electronic document
- 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
Cancel Flight Tickets
- Retrieves all electronic documents by the given
electronic Document Number
- 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
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:
- Add
confirmationId
(PNR Locator or Order Id) in the Get Booking Request. - 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:
- Add
confirmationId
(PNR Locator or Order Id) in the Get Booking Request. - 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:
- Add
confirmationId
(PNR Locator or Order Id). - Add the list of cars/flights/hotels:
itemId
can be retrieved fromGetBookingResponse.(flights|cars|hotels).itemId
orGetReservationRS/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:
- Add
confirmationId
(PNR Locator or Order Id). - Add and set the
cancelAll
flag totrue
("cancelAll": true
).
"confirmationId": "XXXXXX",
"cancelAll": true
}
Cancel whole reservation and sign change with specific entry
To ensure the successful cancellation of an entire reservation and signature with the desired entry, your request should contain the below information:
- Add
confirmationId
(PNR Locator or Order Id). - Add and set the
cancelAll
flag totrue
("cancelAll": true
). - Add
receivedFrom
"confirmationId": "XXXXXX",
"cancelAll": true,
"receivedFrom": "DOE"
}
Cancel specific segments by id or sequence
To ensure the successful cancellation of specific flights/hotels/cars, your request should contain the below information:
- Add
confirmationId
(PNR Locator or Order Id). - Add the list of segments:
id
can be retrieved fromGetBookingResponse.flights(cars/hotels).itemId
orGetReservationRS/Reservation/PassengerReservation/Segments/Segment/Product/@id
.sequence
can be retrieved fromGetReservationRS/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:
- Add
confirmationId
(PNR Locator or Order Id). - Add and set the
retrieveBooking
flag totrue
("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:
- Add
confirmationId
(PNR Locator or Order Id). - Add and set the
errorHandlingPolicy
flag toALLOW_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:
- Add
confirmationId
(PNR Locator or Order Id). - Add and set the
cancelAll
flag totrue
("cancelAll": "true"
). - Add and set
flightTicketOperation
toVOID
("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:
- Add
confirmationId
(PNR Locator or Order Id). - Add the list of flights:
itemId
can be retrieved fromGetBookingResponse.(flights|cars|hotels).itemId
orGetReservationRS/Reservation/PassengerReservation/Segments/Segment/Product/@id
.
- Add and set
flightTicketOperation
toVOID
("flightTicketOperation": "VOID"
).
"confirmationId": "XXXXXX",
"flightTicketOperation": "VOID",
"flights": [
{
"itemId": 2
}
]
}
Cancel Flight Tickets
A few examples of using Cancel Flight Tickets are mentioned below. Additional examples can be found in the OpenAPI specification under the Reference Documentation tab and the Help tab.
Cancel single electronic document with "allow partial cancel" error policy
To ensure the successful cancellation of the document, the request should contain the below information:
- Add
tickets
(13 digit electronic document number). - Add and set the
errorHandlingPolicy
flag toALLOW_PARTIAL_CANCEL
("errorHandlingPolicy": "ALLOW_PARTIAL_CANCEL"
).
"tickets": [
"6071237616558"
],
"errorHandlingPolicy": "ALLOW_PARTIAL_CANCEL"
}
The electronic document was voided and the reservation was updated:
TKT/TIME LIMIT
1.T-06AUG-AB12*A12
2.TE 6071237616558-AT ABC/D AB12*A12 0427/06AUG*
TV 6071237616558-AT *VOID* AB12*A12 0428/06AUG*E
Cancel multiple electronic document with "halt on error" error policy
To ensure the successful cancellation of the document, the request should contain the below information:
- Add
tickets
(13 digit electronic document number). - Add and set the
errorHandlingPolicy
flag toHALT_ON_ERROR
("errorHandlingPolicy": "HALT_ON_ERROR"
).
"tickets": [
"6071237616558",
"6074567616559",
"6077897616560"
],
"errorHandlingPolicy": "ALLOW_PARTIAL_CANCEL"
}
The electronic documents were voided and the reservation was updated:
TKT/TIME LIMIT
1.T-06AUG-AB12*A12
2.TE 6071237616558-AT ABC/D AB12*A12 0427/06AUG*
3.TE 6074567616559-AT ABC/D AB12*A12 0427/06AUG*
4.TE 6077897616560-AT ABC/D AB12*A12 0427/06AUG*
TV 6071237616558-AT *VOID* AB12*A12 0429/06AUG*E
TV 6074567616559-AT *VOID* AB12*A12 0429/06AUG*E
TV 6077897616560-AT *VOID* AB12*A12 0429/06AUG*E