Modify Booking
Overview
The Modify Booking method is designed for modifying various content exposed by Sabre. The current version supports modification of the following types of content:
- CSL hotel bookings
- NDC bookings (limited functionality)
- traditional content:
- group bookings
- ATPCO content (limited functionality)
The service executes internal calls to individual product domains (PNR, Hotels) and then consolidates updated information into a single normalized response.
Technical overview
Modify Booking is available in the RPC/JSON format. This API is designed to operate in a stateless way, and accepts both sessionless (ATK) and session-based (ATH) tokens. If a call is made via a session-based token, the session (AAA) is cleared before and after execution.
General logic
Modify Booking contains internal logic that determines when to call specific downstream APIs based on request qualifiers. During the orchestration process, if a failure of a domain service call prevents the API from modifying a booking, the system will stop processing and return an error.
Modify Booking allows you to execute multiple types of operations at once, such as addition, modification, and deletion, depending on the information specified in your request:
- The
before
object is used to pass details regarding the original state of a chosen booking. - The
after
object is used to pass information about the target state of the booking, after changes are applied.
Note: The Modify Booking request is designed based on the preexisting Get Booking and Create Booking structures, which makes it possible to easily construct modification instructions.
Prior to applying any changes to a booking, the service verifies the booking status using the value specified under the bookingSignature
parameter. It is a mandatory step that requires you to execute a Get Booking call to obtain this information.
The purpose of the bookingSignature
property is to check if any unexpected updates have been made to the booking in the short timeframe between the reading call (Get Booking) and the modification request (Modify Booking). This guarantees that the API introduces requested changes only on the condition that it is working with an up-to-date booking.
To ensure a smooth modification process, it is essential to include valid data in the before
and after
objects. This way the application can identify the set of desired changes and act accordingly.
Modify Booking also uses automatic special service request (SSR) logic for infant travelers. When infant traveler information is modified, the API automatically creates an associated INFT
SSR.
Internal orchestration
The APIs orchestrated in Modify Booking include:
Supported operations
The table below presents the capabilities of the Modify Booking method related to updating information within CSL bookings:
Information | Addition | Modification | Deletion |
---|---|---|---|
flight arrival/departure details | Supported | Supported | Supported |
check-in/checkout date outside date range | N/A | Supported | N/A |
check-in/checkout date within date range | N/A | Supported | N/A |
corporate ID number | Supported | Supported | Supported |
form of payment | Supported | Supported | N/A |
frequent traveler number | Supported | Supported | Supported |
guest loyalty ID | Supported | Supported | Supported |
guest number | N/A | Supported | N/A |
IATA number | N/A | Supported | N/A |
lead guest | N/A | Supported | N/A |
special instructions | Supported | Supported | Supported |
room product code | N/A | Supported | N/A |
Note: Modification of the bolded data above requires an additional re-shop step. Use one of the CSL shopping APIs, REST or SOAP, followed by the Hotel Price Check API, REST or SOAP. Once you obtain a new booking key, provide it in your call to Modify Booking.
Important! It is possible to modify only those bookings that have been previously committed and confirmed.
The following table presents the capabilities of the Modify Booking method in terms of updating information within traditional bookings:
Information | Addition | Modification | Deletion |
---|---|---|---|
traveler details | N/A | Supported | N/A |
traveler details: group bookings | Supported | Supported | Supported |
associated phones/emails | Supported | Supported | Supported |
frequent traveler number | Supported | Supported | Supported |
identity documents | Supported | Supported | Supported |
travel agency customer identifier (DK number) | Supported | Supported | N/A |
special services | Supported | Supported | Supported |
retention date | Supported | Supported | Supported |
Note: Modification of the bolded details above may be limited due to airline policies.
For NDC bookings, the Modify Booking method supports the following types of operations:
Information | Addition | Modification | Deletion |
---|---|---|---|
traveler details (e.g. date of birth) | Supported | Supported | Supported |
associated phones/emails | Supported | Supported | Supported |
loyalty programs | Supported | Supported | Supported |
identity documents | Supported | Supported | Supported |
Note: Modification of NDC orders may be limited due to specific airline policies.
Limitations
Limitations regarding CSL hotel content:
- Modification of hotel bookings containing child or infant guests is currently not supported.
- Form of payment changes to a virtual payment are currently restricted.
- Only payment card information is saved after booking modification when used as the desired hotel payment method. The remaining forms of payment supported by the hotel are passed to the hotel vendor "on the fly."
Request
Modify Booking can be used to add, modify, or delete information stored in an existing booking. To successfully introduce desired changes, the following mandatory elements should be included in your request:
bookingSignature
: A unique booking identifier obtained via the Get Booking method. Used to verify the state of the booking prior to a modification.confirmationId
: Represents the booking reference ID as shown in the source supplier/vendor system. For SABRE, this is the PNR Record Locator (RECLOC) value.bookingSource
: Identifies the source of the booking. Defaults toSABRE
.
Note: Modify Booking currently only supports PNRs that contain CSL bookings.
before
: Contains the original booking details present before the requested modification.after
: Contains desired booking details after finalized modification.
Since the Modify Booking structure is dependent on other Booking Management methods, you may recycle majority of the elements from a Get Booking response. For example, the travelers
array can be copied and pasted with all details. Alternatively, you may also adjust your Modify Booking request to minimize its size and keep only those properties that are currently supported. To check the current structure of the Modify Booking method, go to the "Reference documentation" tab.
The parameters listed below are optional and allow for a more granular control of the call:
retrieveBooking
specifies if full booking details should be included in the response.receivedFrom
passes information on the entity that authorized the creation of the booking.targetPcc
changes the context to a desired pseudo city code (PCC). It may be particularly useful for agencies that separate their booking flow across different PCCs.
Response
The Modify Booking response is mainly composed of the response structure found in Get Booking and provides the following data:
booking
: Contains details of the modified booking. Refer to the Get Booking section for more information.errors
: Includes all errors returned by the API. This array is not displayed in successful responses.request
: A copy of the original request sent to the API.
Error handling
This section illustrates the current error handling logic for Modify Booking. Errors are structured as demonstrated in the table below:
Field | Type | Description |
---|---|---|
category | String | Indicates the error category. |
description | String | Provides a detailed error description. |
type | String | Indicates the error type. |
fieldPath | String | The request field path if the error has been caused by a bad request. |
fieldName | String | The request field name if the error has been caused by a bad request. |
fieldValue | String | The request field value if the error has been caused by a bad request. |
Error codes
If an error occurs, Modify Booking returns a non-empty errors
list. Each item in the list contains three fields:
category
description
type
To view a complete list errors returned by Modify Booking, go to the Modify Booking – Error List section.