What is it?
This API serves as a beta version of the Booking Management API, which lets you manage your Sabre reservations/bookings by providing a normalized set of services that manage both Sabre Passenger Name Records (PNRs) and Sabre Orders. These implementations are simplified to ensure that experts and novices can integrate and adopt Sabre APIs in the most seamless way possible.
In the beta version of this API, you can expect to preview new methods not yet published to the Booking Management API. Currently, Modify Booking is the only method included in the beta phase.
Modify Booking
Modify Booking provides a single, unified service to modify a booking for different content sources. The current release supports modification of the following types of content:
- CSL hotel bookings
- group bookings
- ATPCO content (limited functionality)
This is achieved by executing internal calls to the specific domains (for example, PNRs, hotels) respectively. The modified Sabre Passenger Name Record (PNR) information is then consolidated into a single normalized response by an internal Get Booking call.
Questions?
Contact your Sabre Account Manager for more information on the Booking Management API and how to get started with beta version testing.
Why use it?
With the recent introduction of new content types such as NDC and CSL in the Sabre system, the Booking Management API will call the appropriate API for managing reservations/bookings within the Sabre portfolio.
Modify Booking
- Simplifies the modification process by removing the need to use individual/granular APIs to modify a reservation
- Validates the current state of the booking prior to applying any changes to it
- Allows the execution of multiple operation types (add/modify/delete) in a single call
- Modifies booking with the CSL hotel, group bookings or ATPCO content (limited functionality)
- Retrieves a normalized view of the modified booking regardless of the content sources
- Adds capability to specify a different target city (Pseudo City Code, or PCC) for booking modification
- Modifies a booking in a stateless way
How it works
Modify Booking
Modify Booking executes the following steps to modify a booking:
- Retrieves reservation data by the given
confirmationID
(PNR locator). - Calls proper downline services to retrieve booking data.
- Validates booking status based on the given
bookingSignature
. - Calls proper downline update services.
- Maps the modified booking data to a normalized data model.
Note:
Modification prerequisites include Get Booking call to verify the booking status by means of bookingSignature
property.
How to use
Modify Booking
Modify booking with CSL hotel content (re-shop not required)
Prerequisite: To modify a booking, first use the Get Booking method to retrieve booking details.
To ensure successful booking modification, the request should contain the following information:
- Add
confirmationId
(PNR Locator) andbookingSignature
elements to verify the booking status and prevent the application of any unexpected changes. - Add hotel details under
before
(original booking details) andafter
(desired booking details) properties to determine the scope of the changes. - Add the hotel
itemId
element to indicate the desired item to change. - Ensure traveler data (
travelers
) is specified in the Modify Booking request and is associated with the hotel booking (travelerIndices
,leadTravelerIndex
,numberOfGuests
) to fulfill requirements regarding lead guest information. - Add
paymentPolicy
information.
Here's an example of the addition of a special instruction:
"bookingSignature": "189465b006b1d1d9d7894b34ca442244da03422ed465af83a693915a8c84fccb22beea36e697d156311a2bf962ae4f946afffabde85ba03e5908b95cd943ee0e",
"confirmationId": "QSGXZJ",
"before": {
"creationDetails": {
"agencyIataNumber": "63211116"
},
"hotels": [
{
"itemId": "26",
"checkInDate": "2022-05-20",
"checkOutDate": "2022-05-23",
"leadTravelerIndex": 1,
"room": {
"travelerIndices": [
1
]
},
"numberOfGuests": 1,
"paymentPolicy": "DEPOSIT"
}
],
"travelers": [
{
"givenName": "JOHN",
"surname": "SMITH",
"passengerCode": "ADT",
"emails": [
"JOHN@SMITH.FAMILY.PRIV"
],
"phones": [
{
"number": "+123456"
}
]
}
],
"payments": {
"formsOfPayment": [
{
"type": "PAYMENTCARD",
"cardTypeCode": "VI",
"cardNumber": "4487971000000006",
"expiryDate": "2022-10"
}
]
}
},
"after": {
"creationDetails": {
"agencyIataNumber": "63211116"
},
"hotels": [
{
"itemId": "26",
"checkInDate": "2022-05-20",
"checkOutDate": "2022-05-23",
"leadTravelerIndex": 1,
"room": {
"travelerIndices": [
1
]
},
"numberOfGuests": 1,
"specialInstructions": "Seaside view",
"paymentPolicy": "DEPOSIT"
}
],
"travelers": [
{
"givenName": "JOHN",
"surname": "SMITH",
"passengerCode": "ADT",
"emails": [
"JOHN@SMITH.FAMILY.PRIV"
],
"phones": [
{
"number": "+123456"
}
]
}
],
"payments": {
"formsOfPayment": [
{
"type": "PAYMENTCARD",
"cardTypeCode": "VI",
"cardNumber": "4487971000000006",
"expiryDate": "2022-10"
}
]
}
}
}
A successful operation will result in no errors, and a normalized view of the reservation will be provided in the API response (if specified in the request). In this case, the new property "specialInstructions": "Seaside view"
will be added to the hotel booking.
Modify booking with CSL hotel content (re-shop required)
Prerequisite: To modify a booking, first use the Get Booking method to retrieve booking details.
To ensure successful booking modification, the request should contain the following information:
- Add
confirmationId
(PNR Locator) andbookingSignature
elements to verify the booking status and to prevent the application of any unexpected changes. - Add hotel details under the
before
(original booking details) andafter
(desired booking details) properties to determine the scope of the changes. - Add the hotel
itemId
element to indicate the desired item to change. - Ensure that traveler data (
travelers
) is specified in the Modify Booking request and is associated with the hotel booking (travelerIndices
,leadTravelerIndex
,numberOfGuests
) to fulfill requirements regarding lead guest information. - Add
paymentPolicy
information. - Add a valid
bookingKey
property for any change that requires a re-shop step.
Here's an example of a modification of the check-out date, outside of the original date range:
"bookingSignature": "cb80557edb226827c227552c5422917194b66dec245c2042be72194df14596ea09db91e17a0e7e785dbc04a659dc75638381dd12193c76315648c121898ecbc8",
"confirmationId": "IKMXZJ",
"before": {
"creationDetails": {
"agencyIataNumber": "63211116"
},
"hotels": [
{
"itemId": "28",
"checkInDate": "2022-05-20",
"checkOutDate": "2022-05-23",
"leadTravelerIndex": 1,
"room": {
"travelerIndices": [
1
]
},
"numberOfGuests": 1,
"paymentPolicy": "GUARANTEE"
}
],
"travelers": [
{
"givenName": "JOHN",
"surname": "SMITH",
"passengerCode": "ADT",
"emails": [
"JOHN@SMITH.FAMILY.PRIV"
],
"phones": [
{
"number": "+123456"
}
]
}
],
"payments": {
"formsOfPayment": [
{
"type": "PAYMENTCARD",
"cardTypeCode": "VI",
"cardNumber": "4487971000000006",
"expiryDate": "2022-10"
}
]
}
},
"after": {
"creationDetails": {
"agencyIataNumber": "63211116"
},
"hotels": [
{
"itemId": "28",
"bookingKey": "ebce2667-fb06-488c-bb57-91eac3b0fadb",
"checkInDate": "2022-05-20",
"checkOutDate": "2022-05-25",
"leadTravelerIndex": 1,
"room": {
"travelerIndices": [
1
]
},
"numberOfGuests": 1,
"paymentPolicy": "GUARANTEE"
}
],
"travelers": [
{
"givenName": "JOHN",
"surname": "SMITH",
"passengerCode": "ADT",
"emails": [
"JOHN@SMITH.FAMILY.PRIV"
],
"phones": [
{
"number": "+123456"
}
]
}
],
"payments": {
"formsOfPayment": [
{
"type": "PAYMENTCARD",
"cardTypeCode": "VI",
"cardNumber": "4487971000000006",
"expiryDate": "2022-10"
}
]
}
}
}
A successful operation will result in no errors, and a normalized view of the reservation will be provided in the API response (if specified in the request). In this case, the modified value of "checkOutDate": "2022-05-25"
will be updated in the hotel booking.
Modify group booking
Prerequisite: To modify a booking, first use the Get Booking method to retrieve booking details.
To ensure successful booking modification, the request should contain the following information:
- Add
confirmationId
(PNR Locator) andbookingSignature
elements to verify the booking status and to prevent the application of any unexpected changes. - Add booking details under the
before
(original booking details) andafter
(desired booking details) properties to determine the scope of the changes. - Ensure that traveler data (
travelers
) specified in the Modify Booking request is associated with the group (isGrouped: true
).
Here's an example of a modification of the travelers in a group booking:
"bookingSignature": "4e92cae5ba6832bc58339a06eca05831745ab29a4cde764552638be6a53c6a88f82759074b1eb7eeb6d708a6b355c665781bbeec243e6b21708fa43fc900a4ce",
"confirmationId": "LSIECT",
"before": {
"travelers": [
{
"givenName": "JOE",
"surname": "DOE",
"type": "ADULT",
"passengerCode": "ADT",
"isGrouped": true,
"phones": [
{
"number": "817-555-1212",
"label": "H"
}
]
},
{
"givenName": "JANE",
"surname": "DOE",
"type": "ADULT",
"passengerCode": "ADT",
"isGrouped": true
},
{
"givenName": "JILL",
"surname": "DOE",
"type": "INFANT",
"passengerCode": "INF",
"isGrouped": true
}
]
},
"after": {
"travelers": [
{
"givenName": "JOE",
"surname": "DOE",
"type": "ADULT",
"passengerCode": "ADT",
"isGrouped": true,
"phones": [
{
"number": "817-555-1212",
"label": "H"
}
]
},
{
"givenName": "JANE",
"surname": "DOE",
"type": "ADULT",
"passengerCode": "ADT",
"isGrouped": true
},
{
"givenName": "MARY",
"surname": "DOE",
"type": "ADULT",
"passengerCode": "ADT",
"isGrouped": true
},
{
"givenName": "JILL",
"surname": "DOE",
"type": "INFANT",
"passengerCode": "INF",
"isGrouped": true
}
]
}
}
A successful operation will result in no errors, and a normalized view of the reservation will be provided in the API response (if specified in the request). In this case, the modified travelers
list (added traveler: Mary Doe) will be stored in the group booking.
Modify booking with ATPCO content
Prerequisite: To modify a booking, first use the Get Booking method to retrieve booking details.
To ensure successful booking modification, the request should contain the following information:
- Add
confirmationId
(PNR Locator) andbookingSignature
elements to verify the booking status and to prevent the application of any unexpected changes. - Add booking details under the
before
(original booking details) andafter
(desired booking details) properties to determine the scope of the changes.
Here's an example of a modification of the traveler details in the ATPCO booking:
"bookingSignature": "3b993288fc63b036a3234725f0ed8b1b34b503fea03ee5aa21734aaced90ecbecc53843af06817bf73c461c9d9b3f4ddc563b82d6b252dda1a0b6b2066b8f0a8",
"confirmationId": "LTXXVC",
"before": {
"travelers": [
{
"givenName": "JOHN",
"surname": "DOE",
"type": "ADULT",
"passengerCode": "ADT",
"emails": [
"JOHN.DOE@EMAIL.PRIV"
],
"phones": [
{
"number": "1-555-123-4567",
"label": "M"
}
]
},
{
"givenName": "MARY",
"surname": "DOE",
"type": "ADULT",
"passengerCode": "ADT"
}
]
},
"after": {
"travelers": [
{
"givenName": "JACK",
"surname": "BROWN",
"type": "ADULT",
"passengerCode": "ADT",
"emails": [
"JACK.BROWN@EMAIL.PRIV"
],
"phones": [
{
"number": "1-333-9877",
"label": "B"
}
]
},
{
"givenName": "MARY",
"surname": "DOE",
"type": "ADULT",
"passengerCode": "ADT"
}
]
}
}
A successful operation will result in no errors, and a normalized view of the reservation will be provided in the API response (if specified in the request). In this case, the new travelers
list (updated traveler: Jack Brown) will be stored in the booking.