Skip to main content

Booking Management API - Beta

Trip Management
Booking
REST API
Travel Agency
Try Now

Beta Release - Use for test purpose only - Work in progress

This API is for testing purposes only. For the full version, please navigate to the Booking Management API.

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:

  1. Retrieves reservation data by the given confirmationID (PNR locator).
  2. Calls proper downline services to retrieve booking data.
  3. Validates booking status based on the given bookingSignature.
  4. Calls proper downline update services.
  5. 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:

  1. Add confirmationId (PNR Locator) and bookingSignature elements to verify the booking status and prevent the application of any unexpected changes.
  2. Add hotel details under before (original booking details) and after (desired booking details) properties to determine the scope of the changes.
  3. Add the hotel itemId element to indicate the desired item to change.
  4. 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.
  5. 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:

  1. Add confirmationId (PNR Locator) and bookingSignature elements to verify the booking status and to prevent the application of any unexpected changes.
  2. Add hotel details under the before (original booking details) and after (desired booking details) properties to determine the scope of the changes.
  3. Add the hotel itemId element to indicate the desired item to change.
  4. 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.
  5. Add paymentPolicy information.
  6. 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:

  1. Add confirmationId (PNR Locator) and bookingSignature elements to verify the booking status and to prevent the application of any unexpected changes.
  2. Add booking details under the before (original booking details) and after (desired booking details) properties to determine the scope of the changes.
  3. 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:

  1. Add confirmationId (PNR Locator) and bookingSignature elements to verify the booking status and to prevent the application of any unexpected changes.
  2. Add booking details under the before (original booking details) and after (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.