Skip Navigation

Booking Management API

Trip Management
Booking
REST API
Travel Agency
  • Get Booking now returns information about SSRs present in NDC bookings in a cohesive form.
  • Get Booking now supports multiple hidden stops.
  • Create Booking and Get Booking now support the corporate loyalty program type (`CORPORATE_LOYALTY_ID`) for NDC bookings with American Airlines.
  • Get Booking and Modify Booking now allow displaying and changing room product code details.
  • An additional identity document type `FISCAL_ID`, which is applicable to NDC bookings, is now supported in Create Booking and Get Booking.
  • Create Booking and Get Booking now support creation and display of name reference code.
  • Create Booking and Get Booking now allow passing and displaying information about the ancillary vendor.
  • Get Booking now returns the `bookingId`, which allows you to identify your booking type (for example NDC order or Sabre PNR locator).
  • Cancel Booking now allows performing partial air content cancellation.
  • Get Booking now returns a price quote expiration indicator via the `hasValidPricing` property.
  • Get Booking now returns the IATA number of the ticket issuing agency, the ID associated with the traveler, as well as CSL hotel commission information.
  • Further enhancements to the error handling logic – additional scenarios are now covered across all BM API methods. Refer to the BM API error lists for more details.

API Information

Format
JSON
Endpoint
/v1/trip/orders/
Current Version
1.21
Environment
Production

What's New

  • Get Booking now returns information about SSRs present in NDC bookings in a cohesive form.
  • Get Booking now supports multiple hidden stops.
  • Create Booking and Get Booking now support the corporate loyalty program type (`CORPORATE_LOYALTY_ID`) for NDC bookings with American Airlines.
  • Get Booking and Modify Booking now allow displaying and changing room product code details.
  • An additional identity document type `FISCAL_ID`, which is applicable to NDC bookings, is now supported in Create Booking and Get Booking.
  • Create Booking and Get Booking now support creation and display of name reference code.
  • Create Booking and Get Booking now allow passing and displaying information about the ancillary vendor.
  • Get Booking now returns the `bookingId`, which allows you to identify your booking type (for example NDC order or Sabre PNR locator).
  • Cancel Booking now allows performing partial air content cancellation.
  • Get Booking now returns a price quote expiration indicator via the `hasValidPricing` property.
  • Get Booking now returns the IATA number of the ticket issuing agency, the ID associated with the traveler, as well as CSL hotel commission information.
  • Further enhancements to the error handling logic – additional scenarios are now covered across all BM API methods. Refer to the BM API error lists for more details.

Business Value

  • Users can now review special service requests stored within an NDC booking. For instance, it is possible to check special meals selected for a particular flight.
  • Exposing the ` hiddenStops` array in the Get Booking method allows users to verify whether a selected flight has any hidden stops, as well as obtain more information regarding these stops if applicable.
  • Corporate loyalty programs for American Airlines NDC content can now be submitted using the Create Booking method. This information is also returned by Get Booking.
  • Users can now display the room product code and modify it via the Get Booking and Modify Booking methods respectively. This new parameter makes it possible to match information from the booking key when it is needed during hotel re-shop.
  • A new identity document type is now supported for NDC content in the Create Booking and Get Booking methods. `FISCAL_ID` can be submitted for tax identification numbers of Argentina, Bolivia and Ecuador. To enable this functionality in the Get Booking method, `returnFIscalId` must be set to `true` within the `extraFeatures` object.
  • Traveler information is now expanded in the Create Booking and Get Booking methods. Users can provide a `nameReferenceCode` that might be required to complete a booking, for instance by Abacus agencies.
  • It is now possible to specify an ancillary vendor code in the Create Booking method. This information is also available in the Get Booking response.
  • The `bookingId` is now returned in the Get Booking response. This parameter currently returns either the PNR locator for traditional flight content or the NDC `orderId` for NDC/mixed content.
  • Partial air cancellation is now permitted. For example, our API allows cancellation of selected traditional flight segments or all NDC content, leaving some traditional segments and car or hotel details.
  • Users can now verify whether the price quote information is valid by checking the expiration indicator under the `hasValidPricing` parameter.
  • The agency IATA number of the ticket issuer is now available in the Get Booking response. This allows for an easy identification of issuer details, especially for users who rely on branch infrastructure.
  • The ID associated with a traveler is now supported by the Get Booking method. It may be used for reference purposes after a PNR divide operation of the booking or a traveler name change have been performed.
  • Get Booking now returns information about CSL hotel commission in addition to the already supported flight commission types.

New Features

In the Response

Optional

Parameter: GetBookingResponse.flights.hiddenStops

Type: Array

Description: Lists details of hidden stops that are part of the flight.

Sample Value:

"hiddenStops": [{
                    "airportCode": "PNI",
                    "departureDate": "2024-05-06",
                    "departureTime": "13:25",
                    "arrivalDate": "2024-05-06",
                    "arrivalTime": "12:45",
                    "durationInMinutes": 40
                }, {
                    "airportCode": "KSA",
                    "departureDate": "2024-05-06",
                    "departureTime": "15:20",
                    "arrivalDate": "2024-05-06",
                    "arrivalTime": "14:40",
                    "durationInMinutes": 40
                }, {
                    "airportCode": "KWA",
                    "departureDate": "2024-05-06",
                    "departureTime": "18:15",
                    "arrivalDate": "2024-05-06",
                    "arrivalTime": "17:35",
                    "durationInMinutes": 40
                }, {
                    "airportCode": "MAJ",
                    "departureDate": "2024-05-06",
                    "departureTime": "20:10",
                    "arrivalDate": "2024-05-06",
                    "arrivalTime": "19:20",
                    "durationInMinutes": 50
                }
            ]
Note:

In the Response

Optional

Parameter: GetBookingResponse.travelers.nameReferenceCode

Type: String

Description: An additional code associated with the traveler (the so-called MAN number or statement information) used for accounting or identification purposes.

Sample Value:

"travelers": [{
            "givenName": "JOHN",
            "surname": "DOE",
            "type": "ADULT",
            "passengerCode": "ADT",
            "nameReferenceCode": "101"
        }, {
            "givenName": "JANE",
            "surname": "DOE",
            "type": "ADULT",
            "passengerCode": "ADT",
            "nameReferenceCode": "C08"
        }, {
            "givenName": "MIKE",
            "surname": "DOE",
            "type": "INFANT",
            "passengerCode": "INF",
            "nameReferenceCode": "I08"
        }
    ]
Note:

In the Request

Optional

Parameter: CreateBookingRequest.travelers.nameReferenceCode

Type: String

Description: An additional code associated with the traveler (the so-called MAN number or statement information) used for accounting or identification purposes.

Sample Value:

"travelers": [{
                    "givenName": "JOHN",
                    "surname": "SMITH",
                    "type": "ADULT",
                    "passengerCode": "ADT",
                    "nameReferenceCode": "123"
                }
            ]
Note:

In the Request

Optional

Parameter: CreateBookingRequest.travelers.ancillaries.vendorCode

Type: String

Description: The two-letter IATA designator code of the airline providing the service. Mutually exclusive with the `source` property.

Sample Value:

"ancillaries": [{
                        "reasonForIssuance": "SURFACE_TRANSPORTATION_NON_AIR_SERVICES",
                        "subcode": "0BR",
                        "airlineCode": "EY",
                        "electronicMiscellaneousDocumentType": "FLIGHT_COUPON_ASSOCIATED",
                        "basePrice": "650.50",
                        "currencyCode": "USD",
                        "groupCode": "GT",
                        "vendorCode": "EY",
                        "flightIndices": [1]
                    }
                ]
Note:

In the Response

Optional

Parameter: GetBookingResponse.travelers.ancillaries.vendorCode

Type: String

Description: The two-letter IATA designator code of the airline providing the service. Mutually exclusive with the `source` property.

Sample Value:

"ancillaries": [{
                    "commercialName": "UP TO 22KG BG IN 1PC",
                    "numberOfItems": 1,
                    "reasonForIssuanceCode": "C",
                    "reasonForIssuanceName": "BAGGAGE",
                    "subcode": "0C3",
                    "airlineCode": "LS",
                    "vendorCode": "LS",
                    "isRefundable": true,
                    "isCommissionable": true,
                    "flights": [{
                            "itemId": "20"
                        }
                    ],
                    "statusCode": "HN",
                    "statusName": "Pending",
                    "totals": {
                        "subtotal": "42.95",
                        "taxes": "0.00",
                        "total": "42.95",
                        "currencyCode": "EUR"
                    }
                }
            ]
Note:

In the Response

Optional

Parameter: GetBookingResponse.fares.hasValidPricing

Type: Boolean

Description: If `true`, the fare pricing is valid for the agency. If `false`, the agency's local date exceeds the purchase date.

Sample Value:

"fares": [{
                "creationDetails": {
                    "creationUserSine": "HMT",
                    "creationDate": "2024-01-10",
                    "creationTime": "01:59",
                    "userWorkPcc": "U9PK",
                    "userHomePcc": "FSG"
                },
                "airlineCode": "LH",
                "fareCalculationLine": "FRA LH LON600.62NUC600.62END ROE0.92403",
                "isNegotiatedFare": false,
                "fareConstruction": [{
                        "fareBasisCode": "YEUCLSP9",
                        "baseRate": {
                            "amount": "600.62",
                            "currencyCode": "NUC"
                        },
                        "isCurrentItinerary": false,
                        "checkedBaggageAllowance": {
                            "maximumPieces": 1
                        }
                    }
                ],
                "taxBreakdown": [{
                        "taxCode": "YQ",
                        "taxAmount": {
                            "amount": "195.59",
                            "currencyCode": "PLN"
                        }
                    }, {
                        "taxCode": "YR",
                        "taxAmount": {
                            "amount": "106.49",
                            "currencyCode": "PLN"
                        }
                    }, {
                        "taxCode": "DE",
                        "taxAmount": {
                            "amount": "43.47",
                            "currencyCode": "PLN"
                        }
                    }, {
                        "taxCode": "RA",
                        "taxAmount": {
                            "amount": "165.69",
                            "currencyCode": "PLN"
                        }
                    }, {
                        "taxCode": "OY",
                        "taxAmount": {
                            "amount": "54.25",
                            "currencyCode": "PLN"
                        }
                    }
                ],
                "totals": {
                    "subtotal": "2413.00",
                    "taxes": "565.49",
                    "total": "2978.49",
                    "currencyCode": "PLN"
                },
                "pricingTypeCode": "S",
                "pricingTypeName": "System",
                "pricingStatusCode": "A",
                "pricingStatusName": "Active",
                "hasValidPricing": false,
                "requestedTravelerType": "ADT",
                "pricedTravelerType": "ADT",
                "recordTypeCode": "PQ",
                "recordTypeName": "Price Quote",
                "recordId": "1"
            }
        ]
Note:

In the Response

Optional

Parameter: GetBookingResponse.flightTickets.agencyIataNumber

Type: String

Description: The unique identifier of an IATA-accredited agency that issued the ticket.

Sample Value:

"flightTickets": [
        {
            "number": "0017560806047",
            "date": "2024-01-09",
            "agencyIataNumber": "99999999",
            "travelerIndex": 1,
            "flightCoupons": [
                {
                    "itemId": "13",
                    "couponStatus": "Not Flown",
                    "couponStatusCode": "I"
                },
                {
                    "itemId": "14",
                    "couponStatus": "Not Flown",
                    "couponStatusCode": "I"
                }
            ],
            "payment": {
                "subtotal": "1540.46",
                "taxes": "145.73",
                "total": "1686.19",
                "currencyCode": "USD"
            },
            "ticketStatusName": "Issued",
            "ticketStatusCode": "TE",
            "ticketingPcc": "G7HE"
        }
    ]
Note:

In the Response

Optional

Parameter: GetBookingResponse.travelers.nameAssociationId

Type: String

Description: The ID associated with the traveler. Used for reference purposes after a booking PNR divide operation or traveler name change have been performed.

Sample Value:

"travelers": [
        {
            "givenName": "JOHN",
            "surname": "DOE",
            "type": "ADULT",
            "passengerCode": "ADT",
            "nameAssociationId": "1",
            "nameReferenceCode": "ABC123",
            "emails": [
                "JOHN.DOE@SABRE.COM"
            ]
        }
    ]
Note:

In the Request

Optional

Parameter: ModifyBookingRequest.after.hotels.room.productCode

Type: String

Description: The inventory block code of the room. An ID returned by the hotel supplier for all unique room+rate combinations.

Sample Value:

"hotels": [{
                    "itemId": "25",
                    "bookingKey": "3c8778bc-0b19-4f9a-8ff4-b64d13e9ab7c",
                    "checkInDate": "2024-09-21",
                    "checkOutDate": "2024-09-23",
                    "leadTravelerIndex": 1,
                    "room": {
                        "quantity": 1,
                        "travelerIndices": [1],
                        "productCode": "XMID00"
                    },
                    "paymentPolicy": "GUARANTEE",
                    "numberOfGuests": 1,
                    "formOfPaymentIndex": 1
                }
            ]
Note:

In the Response

Required

Parameter: GetBookingResponse.bookingId

Type: String

Description: The booking reference ID as shown in the source supplier/vendor system. For `SABRE`, this is the PNR Locator or NDC `orderId` value, depending on content type.

Sample Value:

{
    "bookingId": "1SXXXC62D29YS",
    "startDate": "2024-02-17",
    "endDate": "2024-02-19",
    "isTicketed": false
    }
Note:

In the Response

Optional

Parameter: GetBookingResponse.hotels.room.agencyCommission

Type: Object

Description: Contains commission details applicable to the hotel rate.

Note:

Functional Updates And Enhancements

In the Response

Optional

Parameter: GetBoookingResponse.specialServices

Type: Array

Description: Lists all special services associated with a traveler.

Sample Value:

"specialServices": [{
            "travelerIndices": [2],
            "flights": [{
                    "itemId": "10"
                }, {
                    "itemId": "11"
                }, {
                    "itemId": "12"
                }
            ],
            "code": "BLND",
            "name": "Blind Passenger",
            "message": "BLIND",
            "statusCode": "HK",
            "statusName": "Confirmed"
        }, {
            "travelerIndices": [1],
            "flights": [{
                    "itemId": "10"
                }, {
                    "itemId": "11"
                }
            ],
            "code": "KSML",
            "name": "Kosher meal",
            "statusCode": "HK",
            "statusName": "Confirmed"
        }
    ]
Note: SSRs are now returned for NDC bookings.

In the Request

Optional

Parameter: CancelBookingRequest.flights

Type: Object

Description: Lists flights to cancel.

Sample Value:

{
    "confirmationId": "ABCDEF",
    "flights": [
        {
            "itemId": "2"
        },
        {
            "itemId": "3"
        },
        {
            "itemId": "4"  
        }
    ]
}
Note: Partial air segment cancellation is now possible. All NDC content must be cancelled at once.

In the Request

Optional

Parameter: CreateBookingRequest.travelers.identityDocuments.documentType

Type: String

Description: Identifies the type of passenger document.

Sample Value:

        {
            "id": "{{price_passenger_id}}",
            "givenName": "John",
            "surname": "Doe",
            "birthDate": "1970-01-23",
            "passengerCode": "ADT",
            "customerNumber": "1234567",
            "identityDocuments": [
                {
                    "documentType": "FISCAL_ID",
                    "documentSubType": "NIT",
                    "documentNumber": "123456789"
                }
            ]
        }
Note: An additional identity document type `FISCAL_ID`, applicable to NDC bookings, is now supported.

In the Request

Optional

Parameter: CreateBookingRequest.travelers.loyaltyPrograms.programType

Type: String

Description: Identifies the type of loyalty program.

Sample Value:

        {
            "id": "{{price_passenger_id}}",
            "givenName": "John",
            "surname": "Doe",
            "birthDate": "1970-01-23",
            "passengerCode": "ADT",
            "customerNumber": "1234567",
            "loyaltyPrograms": [
                {
                    "supplierCode": "AA",
                    "programNumber": "BX654123C",
                    "programType": "CORPORATE_LOYALTY_ID"
                }
            ]
        }
Note: The corporate loyalty program type `CORPORATE_LOYALTY_ID`, applicable to NDC American Airlines bookings, is now supported.

Resolved Issues

In the Response

Optional

Description: US1823987: Fixed a Get Booking bug which prevented from displaying commission details stored in the price quote.

In the Request

Optional

Description: US1831014: Fixed a bug in the Void Flight Tickets error handling logic which caused irrelevant errors to be returned due to an automatic end transaction (AUTO-END) setting for Abacus travel agencies.

In the Request

Optional

Description: US1832997: Fixed a Check Flight Tickets bug which prevented Abacus travel agencies in India and Pakistan from using the API.

In the Response

Optional

Description: US1834473: Modify Booking error handling logic updated. It previously caused interruptions due to a mismatch between the hotel room type stored in the `bookingKey` parameter and the one specified in the request.

In the Response

Optional

Description: DE283559: Fixed a Get Booking bug which prevented proper seat assignation for NDC bookings.


  • The Booking Management API now supports miscellaneous (OTH) segments to keep the booking active beyond the date of the last travel segment.
  • Get Booking now supports a new `returnOnly` option (`RETENTION_DATE`).
  • Create Booking now allows for NDC booking creation for multiple traveler types other than `ADT`.
  • Additional error handling scenarios are now covered across all BM API methods related to retention date and label. Refer to the BM API error lists for more details.

API Information

Format
JSON
Endpoint
/v1/trip/orders/
Current Version
1.20
Environment
Production

What's New

  • The Booking Management API now supports miscellaneous (OTH) segments to keep the booking active beyond the date of the last travel segment.
  • Get Booking now supports a new `returnOnly` option (`RETENTION_DATE`).
  • Create Booking now allows for NDC booking creation for multiple traveler types other than `ADT`.
  • Additional error handling scenarios are now covered across all BM API methods related to retention date and label. Refer to the BM API error lists for more details.

Business Value

  • Users can now add retention date and retention label details during booking creation (via Create Booking), as well as perform post-booking add, update, and delete operations (using Modify Booking). It is also possible to include a retention date during booking cancellation (via Cancel Booking). If present in the booking, retention date and label information are displayed using the Get Booking method.
  • The limitation of the `ADT` traveler type is now lifted when creating NDC bookings via the Create Booking method. However, it is still not possible to book infant travelers.
  • By exposing a `returnOnly` option for the `RETENTION_DATE` property in the Get Booking method, users can now restrict the set of received information to retention date and label only, or use it in combination with other `returnOnly` options.

New Features

In the Request

Optional

Parameter: CreateBookingRequest.retentionEndDate

Type: String

Description: The retention date of the booking. Used optionally to keep the booking active past the date of the last itinerary item (flight, hotel, car, etc.). After this date, the booking is set for purging.

Sample Value:

"retentionEndDate": "2023-12-26"
Note:

In the Request

Optional

Parameter: CreateBookingRequest.retentionLabel

Type: String

Description: The label associated with the retention date.

Sample Value:

"retentionLabel": "Retention label text"
Note:

In the Response

Optional

Parameter: GetBookingResponse.retentionEndDate

Type: String

Description: The retention date of the booking. Used optionally to keep the booking active past the date of the last itinerary item (flight, hotel, car, etc.). After this date, the booking is set for purging.

Sample Value:

"retentionEndDate": "2023-12-26"
Note:

In the Response

Optional

Parameter: GetBookingResponse.retentionLabel

Type: String

Description: The label associated with the retention date.

Sample Value:

"retentionLabel": "Retention label text"
Note:

In the Request

Optional

Parameter: CancelBookingRequest.retentionEndDate

Type: String

Description: The retention date of the booking. Used optionally to keep the booking active past the date of the last itinerary item (flight, hotel, car, etc.). After this date, the booking is set for purging.

Sample Value:

"retentionEndDate": "2023-12-26"
Note:

In the Request

Optional

Parameter: CancelBookingRequest.retentionLabel

Type: String

Description: The label associated with the retention date.

Sample Value:

"retentionLabel": "Retention label text"
Note:

In the Request

Optional

Parameter: ModifyBookingRequest.after.retentionEndDate

Type: String

Description: The retention date of the booking. Used optionally to keep the booking active past the date of the last itinerary item (flight, hotel, car, etc.). After this date, the booking is set for purging.

Sample Value:

"retentionEndDate": "2023-12-26"
Note:

In the Request

Optional

Parameter: ModifyBookingRequest.after.retentionLabel

Type: String

Description: The label associated with the retention date.

Sample Value:

"retentionLabel": "Retention label text"
Note:

Functional Updates And Enhancements

In the Request

Optional

Parameter: CreateBoookingRequest.travelers.passengerCode

Type: String

Description: Identifies the type (age) of the traveler. To book a flight that includes infant travelers, pass `INF`. Pass `INY` to indicate an infant without an assigned seat, or pass `INS` to indicate an infant with a seat. Used for flights and hotel bookings respectively.

Sample Value:

"travelers": [
        {
            "id": " Passenger1",
            "givenName": "John",
            "surname": "Doe",
            "birthDate": "1970-01-23",
            "passengerCode": "STU"
        }
    ]
Note: Additional traveler types (except for infant passenger codes) are now supported during NDC booking creation.

In the Request

Optional

Parameter: GetBoookingRequest.returnOnly

Type: Array

Description: Lists the response sections returned by the service. If this array is empty or not provided, the full response structure is returned. By using this option, the application may exclude or simplify calls of downline APIs, which usually results in a significant performance boost.

Sample Value:

{
    "confirmationId": "AABBCC",
    "returnOnly": ["RETENTION_DATE"]
}
Note: A new `RETENTION_DATE` option is available to display retention date and label information.

  • Get Booking logic is enhanced to return car loyalty and vehicle quantity information.
  • Get Booking now supports a new `extraFeatures` functionality to preserve backward compatibility. Additional changes to some of the existing endpoint capabilities are also introduced.
  • Get Booking now displays additional flight details – marketing and operating airline names.
  • The cancellation logic for hotel segments has been improved in the Cancel Booking method.
  • Get Booking now supports displaying Secure Flight Passenger Data (SFPD) for NDC bookings.
  • Modify Booking now permits NDC booking modifications (limited functionality).
  • Further enhancements to the error handling logic – additional scenarios are now covered across all BM API methods. Refer to the BM API error lists for more details.

API Information

Format
JSON
Endpoint
/v1/trip/orders/
Current Version
1.19
Environment
Production

What's New

  • Get Booking logic is enhanced to return car loyalty and vehicle quantity information.
  • Get Booking now supports a new `extraFeatures` functionality to preserve backward compatibility. Additional changes to some of the existing endpoint capabilities are also introduced.
  • Get Booking now displays additional flight details – marketing and operating airline names.
  • The cancellation logic for hotel segments has been improved in the Cancel Booking method.
  • Get Booking now supports displaying Secure Flight Passenger Data (SFPD) for NDC bookings.
  • Modify Booking now permits NDC booking modifications (limited functionality).
  • Further enhancements to the error handling logic – additional scenarios are now covered across all BM API methods. Refer to the BM API error lists for more details.

Business Value

  • You may now check the vehicle quantity in the Get Booking response, as well as verify car loyalty information.
  • With `extraFeatures` exposed in Get Booking, you can take advantage of additional functionalities in a backward-compatible manner. This is a temporary solution to further expand Get Booking capabilities.
  • Flight information is now expanded in the Get Booking method, which allows you to obtain the marketing and operating airline names both for ATPCO and NDC bookings.
  • Additional logic added to the Cancel Booking method supports hotel segment cancellation, providing a workaround for scenarios in which downline APIs do not contain product information for hotel bookings.
  • Secure Flight Passenger Data document details are now available for NDC bookings in the Get Booking response. You may verify if SFPD details are present in your NDC bookings.
  • With Modify Booking permitting modifications of NDC bookings, you can update traveler-related details allowed by the airline.

New Features

In the Request

Optional

Parameter: GetBookingRequest.extraFeatures

Type: Object

Description: Contains a set of additional features whose usage requires explicit indication to maintain backward compatibility. These functionalities will be seamlessly incorporated into a future major version of this API.

Sample Value:

"extraFeatures": {
    "returnFrequentRenter": true
  }
Note:

In the Response

Optional

Parameter: GetBookingResponse.cars.numberOfVehicles

Type: Integer

Description: The number of requested cars.

Sample Value:

"cars": [{
            "itemId": "13",
            "confirmationId": "211232292DE4-",
            "vendorName": "AVIS",
            "vendorCode": "ZI",
            "pickUpLocationCode": "LAS",
            "pickUpAddress": {
                "street": "7135 GILESPIE ST",
                "city": "LAS VEGAS",
                "stateProvince": "NV",
                "postalCode": "89119-4267",
                "countryCode": "US",
                "name": "HARRY REID INTL AIRPORT"
            },
            "pickUpDate": "2023-09-20",
            "pickUpTime": "14:00:00",
            "pickUpContactInfo": {
                "phones": ["702-531-1500"],
                "faxes": ["702-614-8740"],
                "emergencyPhones": ["800-354-2847"]
            },
            "dropOffLocationCode": "LAS",
            "dropOffAddress": {
                "street": "7135 GILESPIE ST",
                "city": "LAS VEGAS",
                "stateProvince": "NV",
                "postalCode": "89119-4267",
                "countryCode": "US",
                "name": "HARRY REID INTL AIRPORT"
            },
            "dropOffDate": "2023-09-21",
            "dropOffTime": "14:00:00",
            "dropOffContactInfo": {
                "phones": ["702-531-1500"],
                "faxes": ["702-614-8740"],
                "emergencyPhones": ["800-354-2847"]
            },
            "isRefundable": false,
            "carStatusCode": "HK",
            "carStatusName": "Confirmed",
            "vehicleTypeCode": "ICAR",
            "vehicleTypeName": "Two/Four Door",
            "numberOfVehicles": 2,
            "rateCode": "J6",
            "distanceAllowance": "UNL",
            "payment": {
                "subtotal": "34.75",
                "taxes": "19.07",
                "total": "53.82",
                "currencyCode": "USD"
            }
        }
    ]
Note:

In the Response

Optional

Parameter: GetBookingResponse.flghts.airlineName

Type: String

Description: The name of the marketing airline.

Sample Value:

"flights": [
        {
            "itemId": "3",
            "confirmationId": "EBTYSR",
            "sourceType": "ATPCO",
            "flightNumber": 6972,
            "airlineCode": "AA",
            "airlineName": "AMERICAN AIRLINES",
            "operatingFlightNumber": 180,
            "operatingAirlineCode": "BA",
            "operatingAirlineName": "BRITISH AIRWAYS",
            "fromAirportCode": "EWR",
            "toAirportCode": "LHR",
            "departureDate": "2024-03-25",
            "departureTime": "08:55:00",
            "departureTerminalName": "TERMINAL B",
            "departureGate": "B",
            "arrivalDate": "2024-03-25",
            "arrivalTime": "19:35:00",
            "arrivalTerminalName": "TERMINAL 5",
            "arrivalGate": "5",
            "numberOfSeats": 1,
            "cabinTypeName": "ECONOMY",
            "cabinTypeCode": "Y",
            "aircraftTypeCode": "777",
            "aircraftTypeName": "BOEING 777",
            "bookingClass": "Y",
            "meals": [
                {
                    "code": "M",
                    "description": "Meal"
                }
            ],
            "flightStatusCode": "HK",
            "flightStatusName": "Confirmed",
            "durationInMinutes": 400,
            "distanceInMiles": 3458,
            "travelerIndices": [
                1
            ]
        }
    ]
Note:

In the Response

Optional

Parameter: GetBookingResponse.flghts.operatingAirlineName

Type: String

Description: The name of the operating airline.

Sample Value:

"flights": [
        {
            "itemId": "3",
            "confirmationId": "EBTYSR",
            "sourceType": "ATPCO",
            "flightNumber": 6972,
            "airlineCode": "AA",
            "airlineName": "AMERICAN AIRLINES",
            "operatingFlightNumber": 180,
            "operatingAirlineCode": "BA",
            "operatingAirlineName": "BRITISH AIRWAYS",
            "fromAirportCode": "EWR",
            "toAirportCode": "LHR",
            "departureDate": "2024-03-25",
            "departureTime": "08:55:00",
            "departureTerminalName": "TERMINAL B",
            "departureGate": "B",
            "arrivalDate": "2024-03-25",
            "arrivalTime": "19:35:00",
            "arrivalTerminalName": "TERMINAL 5",
            "arrivalGate": "5",
            "numberOfSeats": 1,
            "cabinTypeName": "ECONOMY",
            "cabinTypeCode": "Y",
            "aircraftTypeCode": "777",
            "aircraftTypeName": "BOEING 777",
            "bookingClass": "Y",
            "meals": [
                {
                    "code": "M",
                    "description": "Meal"
                }
            ],
            "flightStatusCode": "HK",
            "flightStatusName": "Confirmed",
            "durationInMinutes": 400,
            "distanceInMiles": 3458,
            "travelerIndices": [
                1
            ]
        }
    ]
Note:

Functional Updates And Enhancements

In the Response

Optional

Parameter: GetBoookingResponse.travelers.loyaltyPrograms

Type: Array

Description: Lists loyalty programs a traveler participates in.

Sample Value:

"travelers": [{
            "givenName": "JOE",
            "surname": "DOE",
            "type": "ADULT",
            "passengerCode": "ADT",
            "loyaltyPrograms": [{
                    "programType": "FREQUENT_RENTER",
                    "programNumber": "2TC70K"
                }
            ]
        }
    ]
Note: This functionality is conditionally activated via the `GetBookingRequest.extraFeatures.returnFrequentRenter` property.

In the Request

Optional

Parameter: ModifyBookingRequest.after.travelers

Type: Array

Description: Lists personal traveler infomation.

Sample Value:

"after": {
        "travelers": [
            {
                "givenName": "John",
                "surname": "Smith",
                "birthDate": "1970-01-23",
                "type": "ADULT",
                "passengerCode": "ADT",
                "emails": [
                    "travel@sabre.com"
                ],
                "phones": [
                    {
                        "number": "123456"
                    }
                ],
                "loyaltyPrograms": [
                    {
                        "supplierCode": "AA",
                        "programType": "FREQUENT_FLYER",
                        "programNumber": "54322111"
                    }
                ]
            }
        ]
    }
]
Note: Modification of travelers' contact details (phones and emails), loyalty programs, and identity documents is now permitted for NDC bookings (airline-dependent changes).

In the Request

Optional

Parameter: CancelBookingRequest.hotels

Type: Array

Description: Lists hotels to cancel.

Sample Value:

{
    "confirmationId": "WDKIFS",
    "retrieveBooking": true,
    "hotels": [{
            "itemId": "1"
        }
    ]
}
Note: A workaround for scenarios in which downline APIs do not contain product information for hotel bookings.

In the Response

Optional

Parameter: GetBookingResponse.travelers.identityDocuments

Type: Array

Description: Lists identity documents applicable to a traveler.

Sample Value:

"travelers": [{
            "givenName": "John",
            "surname": "Smith",
            "birthDate": "1970-01-23",
            "type": "ADULT",
            "passengerCode": "ADT",
            "emails": ["travel@sabre.com"],
            "phones": [{
                    "number": "123456"
                }
            ],
            "identityDocuments": [{
                    "documentType": "SECURE_FLIGHT_PASSENGER_DATA",
                    "birthDate": "1970-01-23",
                    "gender": "MALE"
                }
            ]
        }
    ]
Note: SFPD information returned for NDC bookings.

Resolved Issues

In the Request

Optional

Description: DE273372: Cancel Booking validation expanded to check multiple objects of the `designatePrinters` array.

In the Request

Optional

Description: DE277365: Create Booking issue fixed. Contact information duplication logic is now limited to the first traveler in case of NDC bookings with multiple passengers.


  • Get Booking now supports new hotel-related capabilities, i.e., city location code, passive hotel segments, and loyalty details for legacy bookings.
  • The Get Booking logic is enhanced to return additional traveler details, such as phones and remarks associated with a name.
  • Significant changes are made to the Check Flight Ticket method to support additional information for the refund operation.
  • Check Flight Ticket now returns new details regarding exchange eligibility.
  • Create Booking now allows you to specify asynchronous wait time to mitigate the issue with finalized bookings being redisplayed.
  • Create Booking now supports adding Secure Flight Passenger Data (SFPD) to NDC bookings.
  • Further enhancements to the error handling logic – additional scenarios are now covered across all BM API methods with more descriptive information for our users. Refer to the BM API error lists for more details.

API Information

Format
JSON
Endpoint
/v1/trip/orders/
Current Version
1.18
Environment
Production

What's New

  • Get Booking now supports new hotel-related capabilities, i.e., city location code, passive hotel segments, and loyalty details for legacy bookings.
  • The Get Booking logic is enhanced to return additional traveler details, such as phones and remarks associated with a name.
  • Significant changes are made to the Check Flight Ticket method to support additional information for the refund operation.
  • Check Flight Ticket now returns new details regarding exchange eligibility.
  • Create Booking now allows you to specify asynchronous wait time to mitigate the issue with finalized bookings being redisplayed.
  • Create Booking now supports adding Secure Flight Passenger Data (SFPD) to NDC bookings.
  • Further enhancements to the error handling logic – additional scenarios are now covered across all BM API methods with more descriptive information for our users. Refer to the BM API error lists for more details.

Business Value

  • Users can now check the hotel location as well as loyalty information (for legacy hotel bookings) in the Get Booking response. Moreover, passive hotel segments now contain much more details in the `allSegments` section of the Get Booking response.
  • Information about phones and remarks associated with a given name is now available in the Get Booking response to agencies with the Passenger Name Association (PNAPNR) option active in their TJR settings.
  • Refundability information is expanded in the Check Flight Ticket method. Users can verify eligibility for Automated Refunds and obtain details regarding refund penalties if they are applicable.
  • Users can now verify whether tickets can be exchanged using the Check Flight Ticket method. If any exchange penalties apply, this information is also available in the API response.
  • Adding the `asynchronousUpdateWaitTime` property to the Create Booking method helps mitigate the issue of booking redisplay delay related to asynchronous processing in downline systems (applicable primarily to NDC bookings).
  • A new NDC functionality is added to the Create Booking method, allowing our users to include a Secure Flight Passenger Data loyalty document during booking creation. This makes it easier to meet the fulfillment requirements.

New Features

In the Response

Optional

Parameter: GetBookingResponse.hotels.address.cityCode

Type: String

Description: The three-letter IATA city code of the hotel location.

Sample Value:

"hotels": [
          {
            "itemId": "44",
            "confirmationId": "22342007309-",
            "hotelName": "TEST PROPERTY",
            "address": {
                "street": "123 TEST STREET TEST CITY TX 76092",
                "city": "TEST CITY",
                "stateProvince": "TX",
                "postalCode": "76092",
                "countryCode": "US",
                "cityCode": "DFW"
            },
            ...
        }
    ]

In the Request

Optional

Parameter: CreateBookingRequest.asynchronousUpdateWaitTime

Type: Integer

Description: The maximum wait time in milliseconds applied to asynchronous updates related to booking creation. Mainly used for the redisplay operation of NDC bookings.

Sample Value:

{
    "flightOffer": {
        "offerId": "test_offer_id",
        "selectedOfferItems": ["test_price_offer_item_id"]
    },
    "travelers": [{
            "id": "Passenger1",
            "givenName": "John",
            "surname": "Doe",
            "birthDate": "1970-01-23",
            "passengerCode": "ADT",
        }
    ],
    "contactInfo": {
        "emails": ["travel@sabre.com"],
        "phones": ["123456"]
    },
    "asynchronousUpdateWaitTime": 10000
}

In the Response

Optional

Parameter: GetBookingResponse.travelers.remarks

Type: Array

Description: Lists all remarks associated with a traveler.

Sample Value:

"travelers": [
        {
            "givenName": "JOHN",
            "surname": "DOE",
            "type": "ADULT",
            "passengerCode": "ADT",
            "remarks": [
                {
                    "type": "GENERAL",
                    "text": "REMARK GOES HERE"
                }
            ]
        }
    ]

In the Response

Optional

Parameter: CheckTicketsResponse.tickets

Type: Array

Description: Lists information about cancellation eligibility and refundable amounts per ticket in the order from the request.

Sample Value:

"tickets": [
  {
    "number": "1609786666807",
    "isVoidable": true,
    "isRefundable": true,
    "isAutomatedRefundsEligible": true,
    "refundPenalties": [
      {
        "applicability": "BEFORE_DEPARTURE",
        "conditionsApply": false,
        "penalty": {
          "amount": "50.0",
          "currencyCode": "USD"
        },
        "hasNoShowCost": true,
        "noShowPenalty": {
          "penalty": {
            "amount": "20.0",
            "currencyCode": "USD"
          },
          "source": "Category 33"
        },
        "source": "Category 33"
      }
    ],
    "refundTaxes": [
      {
        "taxCode": "YR",
        "amount": "84.02"
      },
      {
        "taxCode": "HK",
        "amount": "62.61"
      },
      {
        "taxCode": "G3",
        "amount": "46.96"
      },
      {
        "taxCode": "I5",
        "amount": "28.70"
      },
      {
        "taxCode": "G8",
        "amount": "1.76"
      },
      {
        "taxCode": "E7",
        "amount": "4.11"
      }
    ],
    "refundTotals": {
      "subtotal": "139.50",
      "taxes": "10.50",
      "total": "150.00",
      "currencyCode": "USD"
    }
  }
]
Note: New properties `isAutomatedRefundsEligible`, `refundPenalties`, and `refundTaxes` contain additional information regarding potential refund conditions applicable to a particular ticket.

In the Response

Optional

Parameter: CheckTicketsResponse.tickets

Type: Array

Description: Lists information about cancellation eligibility and refundable amounts per ticket in the order from the request.

Sample Value:

"tickets": [
  {
    "number": "1609786953818",
    "isVoidable": true,
    "isRefundable": false,
    "isChangeable": true,
    "exchangePenalties": [
      {
        "applicability": "BEFORE_DEPARTURE",
        "conditionsApply": false,
        "penalty": {
          "amount": "150.0",
          "currencyCode": "USD"
        },
        "hasNoShowCost": true,
        "noShowPenalty": {
          "penalty": {
            "amount": "50.0",
            "currencyCode": "USD"
          },
          "source": "Category 31"
        },
        "source": "Category 31"
      }
    ]
  }
]
Note: New properties `exchangePenalties` and `isChangeable` contain information regarding potential exchange conditions applicable to a particular ticket.

In the Response

Optional

Parameter: GetBookingResponse.flightTickets.allCoupons

Type: Array

Description: Lists all coupons of booked and ticketed flights. The corresponding flight `itemId` is provided if available. If a coupon cannot be associated with any flight present in the booking (e.g. due to schedule change), the `itemId` is hidden, however the coupon status details are still returned.

Sample Value:

"allCoupons": [
                {
                    "couponStatus": "Not Flown",
                    "couponStatusCode": "I"
                },
                {
                    "couponStatus": "Not Flown",
                    "couponStatusCode": "I",
                    "itemId": "21"
                },
                {
                    "couponStatus": "Not Flown",
                    "couponStatusCode": "I",
                    "itemId": "22"
                }
            ]

Functional Updates And Enhancements

In the Request

Optional

Parameter: CreateBoookingRequest.travelers.identityDocuments

Type: Array

Description: Contains details of identity documents (such as passport or SFPD).

Sample Value:

"travelers": [
        {
            "id": "Passenger1",
            "givenName": "John",
            "surname": "Doe",
            "birthDate": "1970-01-23",
            "passengerCode": "ADT",
            "identityDocuments": [
                {
                    "documentType": "SECURE_FLIGHT_PASSENGER_DATA",
                    "gender": "MALE"
                }
            ]
        }
    ]
Note: Create Booking now supports SFPD documents for NDC bookings.

In the Response

Optional

Parameter: GetBookingResponse.travelers.phones

Type: Array

Description: Lists all phone numbers associated with a traveler.

Sample Value:

"travelers": [
        {
            "givenName": "JOHN",
            "surname": "DOE",
            "type": "ADULT",
            "passengerCode": "ADT",
            "phones": [
                {
                    "number": "434343456646",
                    "label": "B"
                },
                {
                    "number": "76543543425"
                }
            ]
        }
    ]

In the Response

Optional

Parameter: GetBookingResponse.allSegments

Type: Array

Description: Lists all booking segments which overlap with contextual booking elements such as flights, hotels, cars, or trains. This list also contains non-product related segments that exist in the underlying booking system.

Sample Value:

"allSegments": [
        {
            "id": "19",
            "type": "HOTEL",
            "text": "11FE77-",
            "vendorCode": "RD",
            "locationCode": "SANDIEGO",
            "address": {
                "street": "STREET CITY STATE ZIP",
                "city": "SANDIEGO"
            },
            "startDate": "2023-07-07",
            "startTime": "00:00",
            "endDate": "2023-07-08",
            "endTime": "00:00"
        }
    ]
Note: More details are now available for passive hotel segments.

In the Response

Optional

Parameter: GetBookingResponse.travelers.loyaltyPrograms

Type: Array

Description: Lists the loyalty programs applicable to a traveler.

Sample Value:

"travelers": [
            {
                "givenName": "JOHN",
                "surname": "DOE",
                "type": "ADULT",
                "passengerCode": "ADT",
                "emails": [
                    "JOHN@DOE.FAMILY.PRIV"
                ],
                "phones": [
                    {
                        "number": "+123456"
                    }
                ],
                "loyaltyPrograms": [
                    {
                        "programType": "LOYALTY_ID",
                        "programNumber": "987654321"
                    }
                ]
            }
        ]
Note: Hotel loyalty details returned for legacy hotel bookings.

Resolved Issues

In the Response

Optional

Description: DE269004: Get Booking issue fixed. Missing ticket-to-traveler association in the case of travelers whose names contain additional space characters.

In the Response

Optional

Description: DE269868: Get Booking bug fixed, which prevented information about ticket coupons from being displayed once a flight schedule change had occurred. A new property named `allCoupons` has been introduced.

In the Request

Optional

Description: DE269887: Create Booking issue fixed. The postal code is now validated when billing address information is passed.

In the Request

Optional

Description: DE270100: Cancel Booking issue fixed. The validation step that prevented voiding of tickets with coupons in the ACTL status is now lifted.


  • Create Booking and Get Booking now support new NDC capabilities, i.e. multi-adult traveler bookings, contact information associated with a name, and additional identity document types (Visa, Known Traveler Number, and Redress Number).
  • Get Booking logic is enhanced to return additional brand details for NDC bookings.
  • Additional mappings are added to the Get Booking method to return extra information about identity documents (lap-child indicator, residence country code).
  • Information on the issuing country for the Known Traveler Number and Redress Number documents as well as the expiration date for VISA documents (DOCO formats) are now required when using the Create Booking method.
  • Get Booking now returns information about the purchase deadline stored in the Price Quote (PQ).
  • The default logic for unmapped passenger types returned in Get Booking is now updated – the passenger code is always returned.
  • Create Booking now supports adding endorsement details as a new pricing qualifier.
  • Modify Booking now supports modification of identity documents.
  • Further enhancements to the error handling logic – additional scenarios are now covered across all BM API methods with more descriptive information for the users. Refer to the BM API error lists for further details.

API Information

Format
JSON
Endpoint
/v1/trip/orders/
Current Version
1.17
Environment
Production

What's New

  • Create Booking and Get Booking now support new NDC capabilities, i.e. multi-adult traveler bookings, contact information associated with a name, and additional identity document types (Visa, Known Traveler Number, and Redress Number).
  • Get Booking logic is enhanced to return additional brand details for NDC bookings.
  • Additional mappings are added to the Get Booking method to return extra information about identity documents (lap-child indicator, residence country code).
  • Information on the issuing country for the Known Traveler Number and Redress Number documents as well as the expiration date for VISA documents (DOCO formats) are now required when using the Create Booking method.
  • Get Booking now returns information about the purchase deadline stored in the Price Quote (PQ).
  • The default logic for unmapped passenger types returned in Get Booking is now updated – the passenger code is always returned.
  • Create Booking now supports adding endorsement details as a new pricing qualifier.
  • Modify Booking now supports modification of identity documents.
  • Further enhancements to the error handling logic – additional scenarios are now covered across all BM API methods with more descriptive information for the users. Refer to the BM API error lists for further details.

Business Value

  • New NDC functionalities are added to the Create Booking and Get Booking methods. Customers can now create and display multi-adult traveler NDC bookings. Travelers can have dedicated contact information (phones and emails) assigned to them. Support for new types of identity documents (Visa, Known Traveler Number, Redress Number) is added as well.
  • Information about additional branded fare (Price Class) attributes is now available in the Get Booking response for NDC bookings.
  • Mapping for identity documents is expanded to support residence country code and lap child indicator details in the Get Booking method, for multiple DOCS, DOCO, and DOCA documents.
  • Industry mandate regarding mandatory information (expiration date for visa documents; issuing country details for Redress Number and Known Traveler Number documents) is incorporated in the Create Booking method.
  • Customers can now verify in the Get Booking response when a stored fare must be ticketed. This is an additional piece of information to plan fulfillment operations accordingly.
  • Get Booking now allows for identification of traveler code details even if the specific mapping logic is missing. Instead of the ‘SPECIAL’ text, the traveler code always contains a 3-letter code (https://central.sabre.com/s/article/passenger-type-codes-index).
  • Endorsement information is now supported in the Create Booking method. Customers can specify desired details as one of the pricing qualifiers.
  • Additional functionality is implemented to let customers add, update, and delete identity documents (such as passports), secure flight passenger data, visa documents, and more.

New Features

In the Request

Optional

Parameter: CreateBookingRequest.flightDetails.flightPricing.qualifiers.endorsements.description

Type: String

Description: The original text for the endorsements field.

Sample Value:

"flightPricing": [
    {
        "qualifiers": {
            "endorsements": {
                "description": "REF AGY ONLY"
            }
        }
    }
]
Note:

In the Request

Optional

Parameter: CreateBookingRequest.flightDetails.flightPricing.qualifiers.endorsements.useOverride

Type: Boolean

Description: If true, override all pre-programmed endorsements in order to print special required endorsements of the fare.

Sample Value:

"flightPricing": [
    {
        "qualifiers": {
            "endorsements": {
                "description": "REF AGY ONLY",
                "useOverride": true
            }
        }
    }
]
Note: The `useOverride` property cannot be used without providing `description` details.

In the Response

Optional

Parameter: GetBookingResponse.fares.fareConstruction.brandAttributes

Type: Array

Description: Lists Branded Fare (Price Class) attributes from NDC offers.

Sample Value:

"fareConstruction": [
    {
        "flights": [
            {
                "itemId": "9"
            }
        ],
        "flightIndices": [
            1
        ],
        "fareBasisCode": "W13SGRPO",
        "brandFareCode": "FF31-PCID",
        "brandFareName": "Economy Standard",
        "brandAttributes": [
            {
                "itemId": "AWARDUPGRADE",
                "description": "KrisFlyer Upgrade Awards on Singapore Airlines & SilkAir: Allowed. Star Alliance Upgrade Awards on Singapore Airlines: Not allowed. Codeshare flights are not eligible for upgrades."
           },
           {
               "itemId": "CANCEL",
               "description": "With payment of SGD 270, subject to currency conversion and your bank's exchange rate."
           },
           {
               "itemId": "CHECKBAGS",
               "description": "30kg"
           },
           {
               "itemId": "EARNMILES",
               "description": "SINGAPORE AIRLINES & SILKAIR OPERATED FLIGHTS KrisFlyer: 75% of actual flown distance. Partner frequent flyer programmes: Accrual levels may differ on Singapore Airlines operated flights; not accruable on SilkAir operated flights. For ticket(s) partially paid for using KrisFlyer miles, the miles earned are proportionate to the amount paid using credit/debit card. These miles can only be credited to KrisFlyer membership accounts. FLIGHTS OPERATED BY OTHER AIRLINES\nKrisFlyer mileage accrual levels on flights operated by KrisFlyer partner airlines may differ. Codeshare flights operated by non-KrisFlyer partner airlines are not accruable to KrisFlyer. For details, visit http://www.singaporeair.com/en_UK/sg/ppsclub-krisflyer/earn-miles/earn-when-you-fly/"
            },
            {
                "itemId": "NOSHOW",
                "description": "SGD 130, subject to currency conversion and your bank's exchange rate. If the ticket is cancelled, no show fee will not apply and cancellation/refund conditions will apply."
            },
            {
                "itemId": "REBOOK",
                "description": "With payment of SGD 70 and any fare difference, subject to currency conversion and your bank's exchange rate."
            },
            {
                "itemId": "SELECTSEAT",
                "description": "Complimentary (Standard Seats)"
            },
            {
                "itemId": "TRAVELITINERARYSEQUENCE",
                "description": "Fares are valid only if all flight coupons / sectors in the ticket are used in sequence. If passenger only commences his journey at any stopover or agreed stopping place, Carrier can recompute fares based on actual flight sequence used and passenger must pay any fare difference."
            }
        ]
    },
    {
        "fareBasisCode": "Q35SGRZPO",
        "brandFareCode": "FF41-PCID",
        "brandFareName": "Economy Value",
        "brandAttributes": [
            {
                "itemId": "AWARDUPGRADE",
                "description": "KrisFlyer Upgrade Awards on Singapore Airlines & SilkAir: Not allowed. Star Alliance Upgrade Awards on Singapore Airlines: Not allowed."
           },
           {
               "itemId": "CANCEL",
               "description": "With payment of SGD 400, subject to currency conversion and your bank's exchange rate."
           },
           {
               "itemId": "CHECKBAGS",
               "description": "25kg"
           },
           {
               "itemId": "EARNMILES",
               "description": "SINGAPORE AIRLINES & SILKAIR OPERATED FLIGHTS KrisFlyer: 50% of actual flown distance. Partner frequent flyer programmes: Accrual levels may differ on Singapore Airlines operated flights; not accruable on SilkAir operated flights. For ticket(s) partially paid for using KrisFlyer miles, the miles earned are proportionate to the amount paid using credit/debit card. These miles can only be credited to KrisFlyer membership accounts. FLIGHTS OPERATED BY OTHER AIRLINES\nKrisFlyer mileage accrual levels on flights operated by KrisFlyer partner airlines may differ. Codeshare flights operated by non-KrisFlyer partner airlines are not accruable to KrisFlyer. For details, visit http://www.singaporeair.com/en_UK/sg/ppsclub-krisflyer/earn-miles/earn-when-you-fly/"
            },
            {
                "itemId": "NOSHOW",
                "description": "SGD 400, subject to currency conversion and your bank's exchange rate. If the ticket is cancelled, no show fee will not apply and cancellation/refund conditions will apply."
            },
            {
                "itemId": "REBOOK",
                "description": "With payment of SGD 200 and any fare difference, subject to currency conversion and your bank's exchange rate."
            },
            {
                "itemId": "SELECTSEAT",
                "description": "From USD 15"
            },
            {
                "itemId": "TRAVELITINERARYSEQUENCE",
                "description": "Fares are valid only if all flight coupons / sectors in the ticket are used in sequence. If passenger only commences his journey at any stopover or agreed stopping place, Carrier can recompute fares based on actual flight sequence used and passenger must pay any fare difference."
            }
        ]
    }
]
Note:

In the Response

Optional

Parameter: GetBookingResponse.fares.creationDetails.purchaseDeadlineDate

Type: String

Description: The date in the `YYYY-MM-DD` format by which the stored fare must be ticketed.

Sample Value:

"fares": [
        {
            "creationDetails": {
                "creationUserSine": "AWV",
                "creationDate": "2023-03-17",
                "creationTime": "03:53",
                "purchaseDeadlineDate": "2023-04-16",
                "purchaseDeadlineTime": "23:59",
                "userWorkPcc": "E7B1",
                "userHomePcc": "E7B1"
            },
        …
        }
      ]
Note:

In the Response

Optional

Parameter: GetBookingResponse.fares.creationDetails.purchaseDeadlineTime

Type: String

Description: The time in the `HH:MM` format by which the stored fare must be ticketed.

Sample Value:

"fares": [
        {
            "creationDetails": {
                "creationUserSine": "AWV",
                "creationDate": "2023-03-17",
                "creationTime": "03:53",
                "purchaseDeadlineDate": "2023-04-16",
                "purchaseDeadlineTime": "23:59",
                "userWorkPcc": "E7B1",
                "userHomePcc": "E7B1"
            },
        …
        }
      ]
Note:

In the Request

Optional

Parameter: ModifyBookingRequest.after.travelers.identityDocuments

Type: Array

Description: Lists identity documents applicable to a traveler.

Sample Value:

"after": {
        "travelers": [
            {
                "givenName": "JOHN",
                "surname": "DOE",
                "type": "ADULT",
                "passengerCode": "ADT",
                "identityDocuments": [
                    {
                        "documentNumber": "987765452",
                        "documentType": "PASSPORT",
                        "expiryDate": "2024-07-09",
                        "issuingCountryCode": "US",
                        "residenceCountryCode": "GB",
                        "givenName": "JOHN",
                        "surname": "DOE",
                        "birthDate": "1970-01-23",
                        "gender": "MALE",
                        "isPrimaryDocumentHolder": false
                    }
                ]
            }
        ]
    }
Note:

Functional Updates And Enhancements

In the Request

Required

Parameter: CreateBoookingRequest.travelers

Type: Array

Description: Contains detailed information on the travelers.

Sample Value:

"travelers": [
        {
            "id": "Passenger1",
            "givenName": "John",
            "surname": "Smith",
            "birthDate": "1970-01-23",
            "passengerCode": "ADT",
            "loyaltyPrograms": [
                {
                    "supplierCode": "QF",
                    "programType": "FREQUENT_FLYER",
                    "programNumber": "5747352352352"
                }
            ]
        },
        {
            "id": "Passenger2",
            "givenName": "Jill",
            "surname": "Smith",
            "birthDate": "1971-02-23",
            "passengerCode": "ADT",
            "loyaltyPrograms": [
                {
                    "supplierCode": "QF",
                    "programType": "FREQUENT_FLYER",
                    "programNumber": "4532523524345"                
                }
            ]
        },
        {
            "id": ""Passenger3",
            "givenName": "Jack",
            "surname": "Smith",
            "birthDate": "1972-03-23",
            "passengerCode": "ADT"
        }
    ]
Note: Create Booking now supports multi-adult traveler NDC bookings.

In the Request

Optional

Parameter: CreateBoookingRequest.travelers.identityDocuments

Type: Array

Description: Contains details of identity documents (such as a passport or SFPD).

Sample Value:

"travelers": [
        {
            "id": "Passenger1",
            "givenName": "John",
            "surname": "Smith",
            "birthDate": "1970-01-23",
            "passengerCode": "ADT",
            "identityDocuments": [
                {
                    "documentNumber": "543535242",
                    "documentType": "VISA",
                    "hostCountryCode": "US",
                    "residenceCountryCode": "GB",
                    "placeOfBirth": "NYC",
                    "birthDate": "1970-01-23",
                    "placeOfIssue": "US",
                    "issueDate": "2021-12-02",
                    "expiryDate": "2050-07-09",
                    "gender": "MALE",
                    "givenName": "John",
                    "surname": "Smith"
                },
                {
                    "documentNumber": "876543456432",
                    "documentType": "KNOWN_TRAVELER_NUMBER",
                    "issuingCountryCode": "GB"
                }
            ]        
        },
        {
            "id": "Passenger2",
            "givenName": "Jill",
            "surname": "Smith",
            "birthDate": "1971-02-23",
            "passengerCode": "ADT",
            "identityDocuments": [
                {
                    "documentNumber": "7654354635",
                    "documentType": "REDRESS_NUMBER",
                    "issuingCountryCode": "GB"
                }
            ]
        }
    ]
Note: Create Booking now supports additional identity document types for NDC bookings. Newly added document types: visa, Known Traveler Number, and Redress Number.

In the Request

Optional

Parameter: GetBookingResponse.travelers

Type: Array

Description: Lists the traveler(s) associated with the booking.

Sample Value:

"travelers": [
        {
            "givenName": "John",
            "surname": "Smith",
            "birthDate": "1970-01-23",
            "type": "ADULT",
            "passengerCode": "ADT",
            "emails": [
                "travel@sabre.com"
            ],
            "phones": [
                {
                    "number": "123456"
                }
            ],
            "identityDocuments": [
                {
                    "documentNumber": "45790106",
                    "documentType": "VISA",
                    "expiryDate": "2050-07-09",
                    "residenceCountryCode": "GB",
                    "placeOfIssue": "US",
                    "placeOfBirth": "NYC",
                    "hostCountryCode": "GB",
                    "issueDate": "2021-12-02",
                    "givenName": "John",
                    "surname": "Smith",
                    "birthDate": "1970-01-23",
                    "gender": "MALE",
                    "itemId": "504d338690d96e8c9f8476d8dc883b460b0d7afd33ecb68d3e0b99336106ecd6f95ecaa511213b94e46d381d29462d32da03fa7ee6a2a454502617581400b8a1"
                }
            ],
            "loyaltyPrograms": [
                {
                    "supplierCode": "QF",
                    "programType": "FREQUENT_FLYER",
                    "programNumber": "42302027"
                }
            ]
        },
        {
            "givenName": "Jill",
            "surname": "Smith",
            "birthDate": "1971-02-23",
            "type": "ADULT",
            "passengerCode": "ADT",
            "emails": [
                "travel@sabre.com"
            ],
            "phones": [
                {
                    "number": "123456"
                }
            ],
            "identityDocuments": [
                {
                    "documentNumber": "26033853",
                    "documentType": "KNOWN_TRAVELER_NUMBER",
                    "issuingCountryCode": "CA",
                    "itemId": "06497062a70fb1c08b6bc6e7df8223513d3f05761ee7cb74099d0aa683ad8632158c47f35a60a57bb9c4abf67f090e4df106da353dcd4599bef8e3320cb6166c"
                },
                {
                    "documentNumber": "44250493",
                    "documentType": "REDRESS_NUMBER",
                    "issuingCountryCode": "CA",
                    "itemId": "24e3045b5509ec9a6d5c1c5a6db18f5293cc6bf8f107c601f99758889d531fa726beffbd4048dda8dcba93fd52127ca0aa0894107ba746cf9782f5ba8e6aba31"
                }
            ],
            "loyaltyPrograms": [
                {
                    "supplierCode": "QF",
                    "programType": "FREQUENT_FLYER",
                    "programNumber": "33062566"
                }
            ]
        }
    ]
Note: Mappings in the Get Booking methods now support multi-adult traveler NDC bookings as well as new identity document types: visa, Known Traveler Number, and Redress Number.

In the Response

Optional

Parameter: GetBookingResponse.travelers.passengerCode

Type: String

Description: The ATPCO code of the passenger type used for pricing, ticketing, or fare rules of booked flights.

Sample Value:

"travelers": [
        {
            "givenName": "JOE",
            "surname": "DOE",
            "type": "SPECIAL",
            "passengerCode": "SPT"
        }
    ]
Note: The default logic for unmapped passenger types is now updated – the passenger code is always returned.

In the Request

Required

Parameter: CreateBookingRequest.travelers.identityDocuments.expiryDate

Type: String

Description: The expiration date of the identity document.

Sample Value:

"identityDocuments": [
                {
                    "documentNumber": "0123456789",
                    "documentType": "VISA",
                    "placeOfIssue": "FR",
                    "issueDate": "2019-07-09",
                    "expiryDate": "2024-07-09",
                    "givenName": "John",
                    "surname": "Smith"
                }
            ]
Note: The `expiryDate` property is now mandatory for visa documents.

In the Request

Required

Parameter: CreateBookingRequest.travelers.identityDocuments.issuingCountryCode

Type: String

Description: The country issuing the passenger document provided as a two- or three-letter ISO code. Not applicable to the 'VISA' document type.

Sample Value:

 "identityDocuments": [
            {
                    "documentNumber": "67676767",
                    "documentType": "KNOWN_TRAVELER_NUMBER",
                    "issuingCountryCode": "US"
            }
]
Note: The `issuingCountryCode` property is now mandatory for the Known Traveler Number and Redress Number documents.

Resolved Issues

In the Request

Optional

Description: DE258629: Create Booking issue fixed. The `isPrimaryDocumentHolder` property added to an identity document other than "PASSPORT" no longer generates an error.

In the Request

Optional

Description: DE260255: Create Booking issue fixed. Error description for an invalid issuing country code and/or residence country code is now correct.

In the Request

Optional

Description: DE260663: Cancel Booking bug fixed, preventing processing ticketing operation (void/refund) for NDC bookings.

In the Request

Optional

Description: DE261390: Create Booking issue fixed. Phone numbers containing the "+" sign are now processed correctly.

In the Request

Optional

Description: DE261478: Create Booking bug fixed, affecting pricing of requests containing both a brand code and a specific fare code.

In the Response

Optional

Description: DE262858: Get Booking bug fixed. Issuing country code for the Known Traveler Number and Redress Number documents is no longer returned under the incorrect `hostCountryCode` property.

In the Request

Optional

Description: Create Booking issue fixed. The `travelerIndex` property is no longer required for the OSI special services.


  • Get Booking now supports unmasking of payment card details for customers with a specific EPR keyword (CCVIEW).
  • Get Booking now returns two additional passenger type codes: LBR and LNN.
  • BM API methods contain timestamp information about when a specific request was processed by the Sabre systems.
  • Check Flight Tickets logic is enhanced to properly identify tickets eligible for the void operation in case of bookings containing surface segments (ARNK).
  • Modify Booking now supports modifications of special service requests (SSRs) associated with flights.
  • Error handling improvements – additional scenarios are now covered across all BM API methods with more descriptive information for the users. Refer to BM API error lists for further details.

API Information

Format
JSON
Endpoint
/v1/trip/orders/
Current Version
1.16
Environment
Production

What's New

  • Get Booking now supports unmasking of payment card details for customers with a specific EPR keyword (CCVIEW).
  • Get Booking now returns two additional passenger type codes: LBR and LNN.
  • BM API methods contain timestamp information about when a specific request was processed by the Sabre systems.
  • Check Flight Tickets logic is enhanced to properly identify tickets eligible for the void operation in case of bookings containing surface segments (ARNK).
  • Modify Booking now supports modifications of special service requests (SSRs) associated with flights.
  • Error handling improvements – additional scenarios are now covered across all BM API methods with more descriptive information for the users. Refer to BM API error lists for further details.

Business Value

  • The Get Booking method allows returning of unmasked payment card information for the customers that have EPRs with the CCVIEW keyword.
  • Customers can now obtain information regarding LBR and LNN passenger types, which are used by Air New Zealand for their SEAT ONLY fares.
  • Timestamp details added to BM API responses improve troubleshooting of potential customer issues by helping locate the API call within internal logging applications.
  • Additional logic is added to the Check Flight Tickets method, allowing customers to properly validate by means of `isVoidable` property whether tickets issued for an itinerary with ARNK segments are eligible for the void operation.
  • Additional logic is implemented to let customers add, update, and delete flight-associated special service requests.

New Features

In the Request

Optional

Parameter: GetBookingRequest.unmaskPaymentCardNumbers

Type: Boolean

Description: If true, the application unmasks payment card information stored in the booking. To display this data, the Employee Profile Record (EPR) needs to include the CCVIEW keyword.

Sample Value:

"formsOfPayment": [
{
"type": "PAYMENTCARD",
"expiryDate": "2022-10",
"cardNumber": "4111111111111111",
"cardTypeCode": "VI"
}
]

In the Response

Optional

Parameter: GetBookingResponse.timestamp

Type: String

Description: Provides the exact point in time when the response was generated. The timestamp is expressed in UTC and presented in the YYYY-MM-DDTHH:MM:SS format.

Sample Value:

"timestamp": "2022-10-28T11:11:21"

Functional Updates And Enhancements

In the Response

Optional

Parameter: GetBoookingResponse.travelers.passengerCode

Type: String

Description: The ATPCO code of the passenger type is used for pricing, ticketing, or fare rules of booked flights.

Sample Value:

"travelers": [
        {
            "type": "SPECIAL",
            "surname": "DOE",
            "givenName": "JOHN",
            "passengerCode": "LBR"
        },
        {
            "type": "SPECIAL",
            "surname": "DOE",
            "givenName": "JANE",
            "passengerCode": "LNN"
        }
    ]
Note: The two newly supported codes are LBR and LNN.

In the Response

Optional

Parameter: CheckTicketsResponse.tickets.isVoidable

Type: Boolean

Description: If true, the electronic document meets void procedure requirements.

Sample Value:

"tickets": [{
            "number": "1606721193277",
            "isVoidable": true,
            "isRefundable": true,
            "refundTotals": {
                "subtotal": "3848.00",
                "taxes": "555.55",
                "total": "4403.55",
                "currencyCode": "PLN"
            }
        }
    ]
Note: This enhancement makes it possible to properly identify tickets eligible for the void operation within bookings that contain surface segments (ARNK).

In the Request

Optional

Parameter: ModifyBookingRequest.after.specialServices.flights

Type: Array

Description: Lists flights referenced by their `itemId`. A single special service can be associated with multiple flight IDs.

Sample Value:

"after": {
        "specialServices": [
            {
                "travelerIndices": [
                    1,
                    2
                ],
                "flights": [
                    {
                        "itemId": "22"
                    },
                    {
                        "itemId": "23"
                    }
                ],
                "code": "WCHR"
            }
        ]
    }
Note:

Resolved Issues

In the Request

Optional

Description: DE253517: Cancel Booking issue fixed, in which a simultaneous changes error affected the void flow. New retry logic has been implemented to recover from those scenarios.

In the Response

Optional

Description: DE258285: Get Booking issue fixed, in which the leading zero was missing from the payment card expiry date.


  • Get Booking and Create Booking now support additional gender type codes (UI and XI) for identity document special services (DOCO).
  • Get Booking now returns form of payment information for an expanded list of cash and check entries.
  • Group booking logic is enhanced in the Get Booking method. The traveler’s association is now determined by the means of an additional `isGrouped` boolean value.
  • Modify Booking now supports modification of the traveler details stored in the booking (name, surname, phone and email information, frequent flyer loyalty details) for traditional content (e.g.: ATPCO flights).
  • Added support for adding and updating the travel agency customer identifier (DK number).
  • Modify Booking now supports modifications of group bookings. It is possible to adjust the traveler list associated with a group.
  • Added support for special service request (SSR) modifications.
  • Model improvements – property patterns were updated to reflect additional customer requirements and/or system limitations.

API Information

Format
JSON
Endpoint
/v1/trip/orders/
Current Version
1.15
Environment
Production

What's New

  • Get Booking and Create Booking now support additional gender type codes (UI and XI) for identity document special services (DOCO).
  • Get Booking now returns form of payment information for an expanded list of cash and check entries.
  • Group booking logic is enhanced in the Get Booking method. The traveler’s association is now determined by the means of an additional `isGrouped` boolean value.
  • Modify Booking now supports modification of the traveler details stored in the booking (name, surname, phone and email information, frequent flyer loyalty details) for traditional content (e.g.: ATPCO flights).
  • Added support for adding and updating the travel agency customer identifier (DK number).
  • Modify Booking now supports modifications of group bookings. It is possible to adjust the traveler list associated with a group.
  • Added support for special service request (SSR) modifications.
  • Model improvements – property patterns were updated to reflect additional customer requirements and/or system limitations.

Business Value

  • You can now obtain (Get Booking) and pass (Create Booking) identity document details intended for infant travelers. An enhancement for the new codes UI (Undisclosed Infant) and XI (Unspecified Infant) is implemented with additional logic to automatically determine proper code usage based on the traveler’s age and type.
  • Additional logic is added in Get Booking, which allows you to obtain the form of payment information stored in the booking when using FOP entries with `CA`, `CK`, and `CHEQUE` values.
  • Get Booking now returns additional information regarding group bookings. You can verify a traveler’s assignation to a group by checking the `isGrouped` property value.
  • You may modify traveler information stored in traditional bookings. Updates of the traveler’s name and surname, full control over the contact details (phones and emails) as well as frequent flyer data are now possible.
  • Additional logic is implemented to let users add and update the travel agency customer identifier (DK number).
  • Modify Booking now supports group booking modifications. You can verify traveler assignation within a group and add, update and delete this data as they wish (these operations may be restricted by the airline).
  • The first iteration of the SSR modification is released (limited functionality). It includes automatic infant SSR handling when associated infant traveler information is changed.

New Features

In the Request

Optional

Parameter: CreateBookingRequest.travelers.identityDocuments.gender

Type: String

Description: Identifies the gender of the individual.

Sample Value:

"travelers": [
        {
            "givenName": "John",
            "surname": "Doe",
            "birthDate": "1970-01-23",
            "passengerCode": "ADT",
            "identityDocuments": [
                {
                    "documentNumber": "0123456781",
                    "documentType": "PASSPORT",
                    "expiryDate": "2024-07-09",
                    "issuingCountryCode": "US",
                    "residenceCountryCode": "US",
                    "givenName": "Jack",
                    "surname": "Doe",
                    "birthDate": "2022-01-23",
                    "gender": "UNDISCLOSED"
                }
            ]
        }
    ]
Note: A newly added `UI` code is now passed to the downline API call when an identity document associated with an infant traveler has a `gender` property with an `UNDISCLOSED` value (verified against the departure date of the last flight specified in the request). This is applicable when the infant's age is less than 2 years. Similar logic is applied to the `XI` code when the `gender` property is set to `UNDEFINED`.

In the Response

Optional

Parameter: GetBookingResponse.travelers.identityDocuments.gender

Type: String

Description: Identifies the gender of the individual.

Sample Value:

"travelers": [
        {
            "givenName": "John",
            "surname": "Doe",
            "birthDate": "1970-01-23",
            "passengerCode": "ADT",
            "identityDocuments": [
                {
                    "documentNumber": "0123456781",
                    "documentType": "PASSPORT",
                    "expiryDate": "2024-07-09",
                    "issuingCountryCode": "US",
                    "givenName": "Jack",
                    "surname": "Doe",
                    "birthDate": "2022-01-23",
                    "gender": "UNDISCLOSED",
                    "isPrimaryDocumentHolder": false,
                    "itemId": "cc94232986f8df221ddea125221408a55207a378a94beb59296247d05f81fd1f6b1aa03bad788f7d797ba83a59883a34f67d6d49a3740064f687903b5ddb4768"
                }
            ]
        }
    ]
Note: Newly supported `UI` and `XI` codes are now mapped to the existing `UNDISCLOSED` and `UNDEFINED` values of `GenderEnum`.

In the Response

Optional

Parameter: GetBookingResponse.travelers.isGrouped

Type: Boolean

Description: If true, the traveler belongs to the group booking.

Sample Value:

"travelers": [
    {
        "givenName": "JOHN",
        "surname": "DOE",
        "type": "ADULT",
        "passengerCode": "ADT",
        "isGrouped": true
    }
]
Note:

In the Request

Optional

Parameter: ModifyBookingRequest.after.agencyCustomerNumber

Type: String

Description: The travel agency customer identifier, also known as the customer number or the DK number. Can be a six, seven or 10-character string.

Sample Value:

"after": {
        "agencyCustomerNumber": "1234567",
        "travelers": [
            {
                "givenName": "JOHN",
                "surname": "DOE",
                "birthDate": "1970-01-23",
                "passengerCode": "ADT"
            }
        ]
    }
Note: Delete operation is not supported.

In the Request

Optional

Parameter: ModifyBookingRequest.after.travelers.isGrouped

Type: Boolean

Description: If `true`, the traveler is associated with a group booking.

Sample Value:

"after": {
        "travelers": [
            {
                "givenName": "JOHN",
                "surname": "BROWN",
                "birthDate": "1970-01-23",
                "passengerCode": "ADT",
 "isGrouped": true
            }
        ]
    }
Note:

In the Request

Optional

Parameter: ModifyBookingRequest.after.travelers.loyaltyPrograms.tierLevel

Type: Integer

Description: The level reached by the traveler participating in a loyalty program.

Sample Value:

"after": {
        "travelers": [
            {
                "givenName": "JOHN",
                "surname": "DOE",
                "passengerCode": "ADT",
                "loyaltyPrograms": [
                    {
                        "supplierCode": "BA",
                        "programType": "FREQUENT_FLYER",
                        "programNumber": "002001557133700",
                        "tierLevel": 2,
                        "receiverCode": "BA"
                    }
                ]
            }
        ]
    }
Note: Additional properties `tierLevel` and `receiverCode` are added to support frequent flyer programs for traditional content.

In the Request

Optional

Parameter: ModifyBookingRequest.after.specialServices

Type: Array

Description: Lists all special service request (SSR) messages sent to an airline. The messages may contain traveler preferences or mandatory/optional information directed to the airline.

Sample Value:

"after": {
        ...
        "specialServices": [
            {
                "travelerIndices": [
                    1
                ],
                "code": "BLND"
            }
        ]
    }
Note: Limited functionality of the SSR modification is added. Refer to the Help section for more details.

Functional Updates And Enhancements

In the Response

Optional

Parameter: GetBoookingResponse.payments.formsOfPayment.type

Type: String

Description: Identifies the type of payment method. The MISCELLANEOUS payment method must be activated on the agency level and requires a specific payment credit code. INSTALLMENTS is used for BSP Brazil customers only and refers to a payment by means of card installments commonly referred to as "parcelado". VIRTUAL_CARD, AGENCY_NAME, AGENCY_IATA, CORPORATE, and COMPANY_NAME are used for hotel bookings. `VOUCHER` is used for vehicle bookings.

Sample Value:

"formsOfPayment": [
            {
                "type": "CASH"
            }
        ]
Note: Additional mapping was added for the CASH and CHECK forms of payments. The application now supports the form of payment information created by using `CA`, `CK`, and `CHEQUE` values in the FOP entries.

In the Request

Optional

Parameter: CreateBookingResponse.agency.agencyCustomerNumber

Type: String

Description: Contains the agency's customer DK number. Can be a six, seven, or ten character string.

Sample Value:

"agency": {
"address": {
"name": "John Smith",
"street": "1230 Ellen Ave, apt 10",
"city": "Dallas",
"stateProvince": "TX",
"postalCode": "75063",
"countryCode": "US",
"freeText": "John Smith\n1230 Ellen Ave, apt 10\nDallas, TX 75063\nUS"
},
"agencyCustomerNumber": "ABC123467",
"ticketingPolicy": "TODAY"
  }
Note: The pattern for the `agencyCustomerNumber` property was updated to: '^[0-9A-Z]{6}([1-9A-Z*]{1}|[0-9A-Z]{4})?$'. The same change was implemented for the `GetBookingResponse.agencyCustomerNumber` property.

In the Request

Optional

Parameter: ModifyBookingRequest.after.travelers.phones

Type: Array

Description: Lists all phone numbers associated with the traveler.

Sample Value:

"after": {
        "travelers": [
            {
                "givenName": "JOHN",
                "surname": "DOE",
                "birthDate": "1970-01-23",
                "passengerCode": "ADT",
 "phones": [
                    {
                        "number": "2025550137"
                    }
                ]
            }
        ]
    }
Note: Additional logic is added to allow for modifications of the `phones`, `emails` and `loyaltyPrograms` associated with travelers stored in traditional flight bookings.

In the Request

Required

Parameter: ModifyBookingRequest.after.travelers.birthDate

Type: String

Description: The date of birth of the traveler in the YYYY-MM-DD format.

Sample Value:

"travelers": [
        {
                "givenName": "JOE",
                "surname": "DOE",
                "birthDate": "2022-03-04",
                "passengerCode": "INF",
                "isGrouped": true
        }
]
Note: The `birthDate` property is now required for infant travelers due to the implementation of the automatic INFT SRR logic.

Resolved Issues

In the Request

Optional

Description: DE237544: Fixed an issue in Create Booking where phone details were not obtained properly in the profile path during hotel booking creation.

In the Response

Optional

Description: DE238746: Fixed a problem with information returned under the `FlightItem.confirmationId` property (duplicated booking ID) if the airline record locator is missing in the booking. Additionally, the pattern of the `confirmationId` property was updated to '^[A-Z0-9]{5,}$' to match the requirements of additional airlines (e.g. Nippon Airways - NH).

In the Request

Optional

Description: DE244702: Fixed a bug in the `EnhancedCancelBookingRQ` preventing the cancelation of segments during a session, prior to PNR creation. This applies to scenarios with bookings that are not yet committed.

In the Request

Optional

Description: DE244718: Replaced existing error handling in the Cancel Booking method with new, more descriptive information for the scenarios when the application needs to process already refunded tickets.

In the Request

Optional

Description: DE244980: Added new error handling in Create Booking for hotel booking scenarios where the form of payment information is not specified in the request.

In the Request

Optional

Description: DE245090: Excluded past date segments from the cancellation logic in the Cancel Booking method.

In the Request

Optional

Description: DE245121: Improved sorting logic in Get Booking to mitigate an issue with duplicated special service items caused by the presence of empty space characters in text information associated with the SSR.

In the Request

Optional

Description: DE242077: Fixed a bug in the Modify Booking method where the lead guest information was not properly set for CSL bookings.


  • Get Booking now returns additional seat information, like status and IATA-defined characteristic codes, for both ATPCO and NDC flight bookings.
  • Create Booking now supports passing flight-related information for CSL hotel bookings.
  • Get Booking now returns additional information regarding baggage allowance for NDC bookings. Customers can now easily identify baggage allowance information regardless of the booking type (APTCO or NDC).
  • Get Booking now supports group bookings.

API Information

Format
JSON
Endpoint
/v1/trip/orders/
Current Version
1.14
Environment
Production

What's New

  • Get Booking now returns additional seat information, like status and IATA-defined characteristic codes, for both ATPCO and NDC flight bookings.
  • Create Booking now supports passing flight-related information for CSL hotel bookings.
  • Get Booking now returns additional information regarding baggage allowance for NDC bookings. Customers can now easily identify baggage allowance information regardless of the booking type (APTCO or NDC).
  • Get Booking now supports group bookings.

Business Value

  • Seat logic has been expanded in the Get Booking method. For both ATPCO and NDC bookings, you can now retrieve status details (seat code and a meaningful description), as well as characteristic codes associated with the seat.
  • Additional logic has been added to the Create Booking method, allowing you to send flight-related information to hotel vendors when booking CSL content.
  • You can now obtain information about baggage allowance details not only for ATPCO flight bookings, but also NDC orders in the normalized response structure.
  • Get Booking will now return information regarding group bookings. You can verify group name, ID, number of travelers already added within a group, as well as the number of remaining names that are missing.

New Features

In the Response

Optional

Parameter: GetBookingResponse.flights.seats.statusCode

Type: String

Description: The two-letter status code used by vendors. It indicates the seat status.

Sample Value:

"seats": [
                {
                    "number": "20E",
                    "characteristics": [
                        "N",
                        "CH",
                        "R9"
                    ],
                    "statusCode": "KK",
                    "statusName": "Confirmed"
                }
            ]

In the Response

Optional

Parameter: GetBookingResponse.flights.seats.statusName

Type: String

Description: Identifies the booking status of the item.

Sample Value:

"seats": [
                {
                    "number": "20E",
                    "characteristics": [
                        "N",
                        "CH",
                        "R9"
                    ],
                    "statusCode": "KK",
                    "statusName": "Confirmed"
                }
            ]

In the Response

Optional

Parameter: GetBookingResponse.flights.seats.characteristics

Type: String

Description: Lists all IATA-defined characteristic codes associated with the seat. For a full list of codes, refer to the IATA PADIS codeset element 9825.

Sample Value:

"seats": [
                {
                    "number": "20E",
                    "characteristics": [
                        "N",
                        "CH",
                        "R9"
                    ],
                    "statusCode": "KK",
                    "statusName": "Confirmed"
                }
            ]

In the Response

Optional

Parameter: GetBookingResponse.travelersGroup

Type: Object

Description: Contains information about the group the traveler(s) belong to.

Sample Value:

"travelersGroup": {
        "itemId": "6",
        "name": "GRUPA B",
        "numberOfTravelers": 11,
        "numberOfTravelersRemaining": 5
    }            

In the Request

Optional

Parameter: CreateBookingRequest.hotel.associatedFlightDetails

Type: Object

Description: Contains flight arrival and departure information used mainly for hotel bookings.

Sample Value:

"associatedFlightDetails": {
      "arrivalAirlineCode": "AA",
      "arrivalFlightNumber": 1067,
      "arrivalTime": "12:30",
      "departureAirlineCode": "UA",
      "departureFlightNumber": 543,
      "departureTime": "09:15"
    }          

Functional Updates And Enhancements

In the Request

Optional

Parameter: GetBookingRequest.returnOnly

Type: Array

Description: Lists the response sections returned by the service. If this list is empty or not provided, then the full structure is returned. By using this option, the application may exclude or simplify calls of downline APIs, which usually results in a significant performance boost.

Sample Value:

{
    "confirmationId": "BFGBFG",
        "returnOnly":[
        "FORMS_OF_PAYMENT"
    ]
}
Note: FORMS_OF_PAYMENT value has been added to the existing list of options.

In the Response

Optional

Parameter: GetBookingResponse.fareOffers

Type: Array

Description: Lists ancillary offers for selected flights identified by itemId flight references.

Sample Value:

"fareOffers": [
        {
            "travelerIndices": [
                1
            ],
            "flights": [
                {
                    "itemId": "8"
                }
            ],
            "cabinBaggageAllowance": {
                "baggagePieces": [
                    {
                        "numberOfPieces": 1
                    }
                ]
            },
            "checkedBaggageAllowance": {
                "baggagePieces": [
                    {
                        "maximumWeightInKilograms": 30
                    }
                ]
            }
        }
    ]
Note: Baggage allowance details will now be returned for NDC bookings.

Resolved Issues

In the Request

Optional

Description: US1413541: Adding new error handling (UNABLE_TO_BOOK_HOTEL_LATE_PAYMENT_NOT_SUPPORTED) in the CreateBooking method for a scenario where guarantee type LATE is not supported by the hotel vendor.

In the Response

Optional

Description: US1435135: Adding a more descriptive warning message regarding missing fareRules details for a scenario where manual PQ was stored in the booking.

In the Request

Optional

Description: DE235018: Removing requirement regarding passenger code details in the profile path for the hotel bookings, to support customers without the “store passenger type in PNR” function activated in the agency TJR settings.

In the Request

Optional

Description: DE235364: Adding new error handling (NO_PROFILE_DATA_MOVED_WRONG_PROFILE_TYPE) in the CreateBooking method for a scenario where an unsupported profile type has been identified.

In the Response

Optional

Description: DE237243: Fixing bug in the GetBooking method with flight details mapping to the downline PO_PNRPricingRQ (flight numbers with leading “0”).

In the Request

Optional

Description: US1417169: Adding new error handling (BOOKING_NOT_FOUND) in the ModifyBooking method for a scenario where the specified booking ID has not been found.


  • A new method Modify Booking (BETA) has been released.
  • GetBooking will start returning the form of payment information, which is stored in the booking.
  • GetBooking will start supporting payment policy details used for CSL hotel bookings.
  • GetBooking will start returning additional information regarding hotel content. Customers can now easily identify the type of hotel booking.
  • CreateBooking will start considering name associated phone numbers with higher priority rather than general contact information for hotel bookings.

API Information

Format
JSON
Endpoint
/v1/trip/orders/
Current Version
1.13
Environment
Production

What's New

  • A new method Modify Booking (BETA) has been released.
  • GetBooking will start returning the form of payment information, which is stored in the booking.
  • GetBooking will start supporting payment policy details used for CSL hotel bookings.
  • GetBooking will start returning additional information regarding hotel content. Customers can now easily identify the type of hotel booking.
  • CreateBooking will start considering name associated phone numbers with higher priority rather than general contact information for hotel bookings.

Business Value

  • Customers can now perform modifications of the existing booking by using Modify Booking method. The initial release allows for CSL hotel content changes. The capabilities of this new method are described under the URL: https://developer.sabre.com/docs/rest_apis/trip/orders/booking_management/help_doc?page=modify-booking-0
  • Get Booking has been successfully moved to the PCI cluster. This change allowed adding functionality to return Form of Payment (FOP) information stored in the bookings.
  • Additional logic has been implemented in Get Booking method, to return details regarding payment policy and type of the hotel content. Customers can now obtain additional information about selected payment policy and distinguish between legacy and CSL (Sabre or aggregators) booking source.
  • Name associated phone numbers will now take precedence over general contact information during the hotel booking creation process.

New Features

In the Response

Optional

Parameter: GetBookingResponse.payments.formsOfPayment

Type: Array

Description: Lists all the payment methods that are stored in the booking.

Sample Value:

"formsOfPayment": [
            {
                "type": "PAYMENTCARD",
                "cardTypeCode": "VI",
                "cardNumber": "4XXXXXXXXXXX0006",
                "expiryDate": "2026-10",
                "manualApproval": {
                    "code": "X01785",
                    "requestDateTime": "2022-08-14T01:00:00",
                    "expiryDateTime": "2024-08-19T04:00:00",
                    "airlineCode": "AA",
                    "amount": "111.00",
                    "currencyCode": "USD"
                },
                "extendedPayment": 10
            }
        ]
Note: Supported forms of payment are: CASH, CHECK, PAYMENTCARD, MISCELLANEOUS and INSTALLMENTS.

In the Response

Optional

Parameter: GetBookingResponse.hotels.paymentPolicy

Type: String

Description: Identifies the hotel payment policy.

Sample Value:

"hotels": [
        {
            "itemId": "11",
            "confirmationId": "1111111111-",
            "hotelName": "HOTEL NAME",
            "address": {
                "street": "12345 STREET",
                "city": "AUSTIN",
                "stateProvince": "TX",
                "postalCode": "76666",
                "countryCode": "US"
            },
            "checkInDate": "2022-05-20",
            "checkInTime": "00:00",
            "checkOutDate": "2022-05-23",
            "checkOutTime": "00:00",
            "leadTravelerIndex": 1,
            "room": {
                "quantity": 1,
                "description": "1 BDRM SUITE 1 KING BED NONSMKNG FREE WIFI AND GRAB AND GO BKFST",
                "roomRate": {
                    "amount": "111.77",
                    "currencyCode": "USD"
                },
                "travelerIndices": [
                    1,
                    2,
                    3
                ]
            },
            "isRefundable": false,
            "hotelStatusCode": "HK",
            "hotelStatusName": "Confirmed",
            "chainCode": "XX",
            "chainName": "X Hotel Chain",
            "propertyId": "122233334",
            "contactInfo": {
                "phones": [
                    "555-555-5555"
                ],
                "faxes": [
                    "111-111-1111"
                ]
            },
            "guaranteeTypeCode": 5,
            "guaranteeTypeName": "Credit card",
            "paymentPolicy": "DEPOSIT",
            "payment": {
                "subtotal": "111.77",
                "total": "111.77",
                "currencyCode": "USD"
            },
            "numberOfGuests": 3,
            "sourceTypeCode": 100,
            "sourceTypeName": "Sabre GDS"
        }
    ]

In the Response

Optional

Parameter: GetBookingResponse.hotels.sourceTypeCode

Type: Integer

Description: A specific numeric code indicating the source of the hotel booking.

Sample Value:

"hotels": [
        {
            "itemId": "11",
            "confirmationId": "1111111111-",
            "hotelName": "HOTEL NAME",
            "address": {
                "street": "12345 STREET",
                "city": "AUSTIN",
                "stateProvince": "TX",
                "postalCode": "76666",
                "countryCode": "US"
            },
            "checkInDate": "2022-05-20",
            "checkInTime": "00:00",
            "checkOutDate": "2022-05-23",
            "checkOutTime": "00:00",
            "leadTravelerIndex": 1,
            "room": {
                "quantity": 1,
                "description": "1 BDRM SUITE 1 KING BED NONSMKNG FREE WIFI AND GRAB AND GO BKFST",
                "roomRate": {
                    "amount": "111.77",
                    "currencyCode": "USD"
                },
                "travelerIndices": [
                    1,
                    2,
                    3
                ]
            },
            "isRefundable": false,
            "hotelStatusCode": "HK",
            "hotelStatusName": "Confirmed",
            "chainCode": "XX",
            "chainName": "X Hotel Chain",
            "propertyId": "122233334",
            "contactInfo": {
                "phones": [
                    "555-555-5555"
                ],
                "faxes": [
                    "111-111-1111"
                ]
            },
            "guaranteeTypeCode": 5,
            "guaranteeTypeName": "Credit card",
            "paymentPolicy": "DEPOSIT",
            "payment": {
                "subtotal": "111.77",
                "total": "111.77",
                "currencyCode": "USD"
            },
            "numberOfGuests": 3,
            "sourceTypeCode": 100,
            "sourceTypeName": "Sabre GDS"
        }
    ]  
Note: Applicable to the CSL hotel content only.

In the Response

Optional

Parameter: GetBookingResponse.hotels.sourceTypeName

Type: String

Description: Identifies the source of the hotel booking.

Sample Value:

"hotels": [
        {
            "itemId": "11",
            "confirmationId": "1111111111-",
            "hotelName": "HOTEL NAME",
            "address": {
                "street": "12345 STREET",
                "city": "AUSTIN",
                "stateProvince": "TX",
                "postalCode": "76666",
                "countryCode": "US"
            },
            "checkInDate": "2022-05-20",
            "checkInTime": "00:00",
            "checkOutDate": "2022-05-23",
            "checkOutTime": "00:00",
            "leadTravelerIndex": 1,
            "room": {
                "quantity": 1,
                "description": "1 BDRM SUITE 1 KING BED NONSMKNG FREE WIFI AND GRAB AND GO BKFST",
                "roomRate": {
                    "amount": "111.77",
                    "currencyCode": "USD"
                },
                "travelerIndices": [
                    1,
                    2,
                    3
                ]
            },
            "isRefundable": false,
            "hotelStatusCode": "HK",
            "hotelStatusName": "Confirmed",
            "chainCode": "XX",
            "chainName": "X Hotel Chain",
            "propertyId": "122233334",
            "contactInfo": {
                "phones": [
                    "555-555-5555"
                ],
                "faxes": [
                    "111-111-1111"
                ]
            },
            "guaranteeTypeCode": 5,
            "guaranteeTypeName": "Credit card",
            "paymentPolicy": "DEPOSIT",
            "payment": {
                "subtotal": "111.77",
                "total": "111.77",
                "currencyCode": "USD"
            },
            "numberOfGuests": 3,
            "sourceTypeCode": 100,
            "sourceTypeName": "Sabre GDS"
        }
    ]    
Note: The default value of the `sourceTypeName` property is `Unknown`. This way `HotelSourceEnum` can be expanded in the future with a new source value, without breaking backward compatibility.

Resolved Issues

In the Request

Optional

Description: US1315254: Adding a more descriptive error message for a scenario where duplicated traveler name is specified in the CreateBooking method.

In the Request

Optional

Description: US1319730: Adding a more descriptive error message for a scenario where frequent flyer data and traveler name do not match.

In the Request

Optional

Description: DE223803: Fixing bug in CreateBooking request with incorrect element order during pricing operation containing baggage allowance and branded fares.

In the Request

Optional

Description: DE224502: Fixing bug in CreateBooking request with ARNK segment counting logic.

In the Request

Optional

Description: DE229085: Adding a more descriptive error message for a scenario where an occupancy mismatch occurs when booking hotel content via CreateBooking method.

In the Request

Optional

Description: DE230222: Fixing bug in CreateBooking request with incorrect fax format used for Virtual Card payments.

In the Response

Optional

Description: DE231525: Fixing bug in Get Booking method with flight association logic for scenarios that contain an open ticket.


  • GetBooking will start returning additional information regarding traveler association with flights and cars.
  • GetBooking will start supporting additional information associated with hotel bookings: corporate id and arrival/departure flight details.
  • GetBooking will start returning booking signature used to verify the state of the booking during modification (more information soon!).
  • GetBooking will start expanding traveler information based on the guest details stored in the hotel booking.
  • GetBooking will start returning agency IATA number if booking contains CSL (Content Services for Lodging) content.
  • CancelBooking schema will be slightly improved by removing unused, duplicated properties related to queue placement.

API Information

Format
JSON
Endpoint
/v1/trip/orders/
Current Version
1.12
Environment
Production

What's New

  • GetBooking will start returning additional information regarding traveler association with flights and cars.
  • GetBooking will start supporting additional information associated with hotel bookings: corporate id and arrival/departure flight details.
  • GetBooking will start returning booking signature used to verify the state of the booking during modification (more information soon!).
  • GetBooking will start expanding traveler information based on the guest details stored in the hotel booking.
  • GetBooking will start returning agency IATA number if booking contains CSL (Content Services for Lodging) content.
  • CancelBooking schema will be slightly improved by removing unused, duplicated properties related to queue placement.

Business Value

  • Customers can now retrieve additional details associated with the existing hotel booking. Information like corporate id, guest’s email and phone numbers, as well as arrival and departure flight data, will be now, if applicable, present in the GetBooking response.
  • Introducing a booking signature will allow verifying the state of the booking and prevent from doing unexpected modifications.
  • Additional logic has been implemented to verify and retrieve guest information. This ensures more cohesive data in reference to traveler information returned by GetBooking.
  • Presence of the IATA number in the GetBooking response is a supplementary source of agency identification by the customers.
  • The removal of unused elements from the schema lets us maintain a high quality and complete API product.

New Features

In the Response

Optional

Parameter: GetBookingResponse.cars.travelerIndex

Type: Integer

Description: Specifies the traveler from the travelers list with whom the car booking is associated.

Sample Value:

"cars": [
        {
            "itemId": "25",
            "confirmationId": "15430145PL3-",
            "travelerIndex": 1,
            "vendorCode": "ZI",
            "pickUpDate": "2022-03-16",
            "pickUpTime": "10:30:00",
            "dropOffDate": "2022-03-19",
            "dropOffTime": "16:30:00",
            "isRefundable": true,
            "carStatusCode": "HK",
            "carStatusName": "Confirmed",
            "vehicleTypeCode": "ECAR",
            "vehicleTypeName": "Two/Four Door",
            "rateCode": "7S",
            "distanceAllowance": "UNL",
            "payment": {
                "subtotal": "320.10",
                "taxes": "34.25",
                "total": "354.35",
                "currencyCode": "USD"
            }
        }
    ]

In the Response

Optional

Parameter: GetBookingResponse.flights.travelerIndinces

Type: Array

Description: Lists the travelers within the `travelers` list. Indicates which travelers are associated with a particular flight.

Sample Value:

"flights": [
        {
            "itemId": "19",
            "confirmationId": "WPZHKK",
            "sourceType": "ATPCO",
            "flightNumber": 524,
            "airlineCode": "AA",
            "operatingFlightNumber": 524,
            "operatingAirlineCode": "AA",
            "fromAirportCode": "DFW",
            "toAirportCode": "LAX",
            "departureDate": "2022-09-20",
            "departureTime": "07:00:00",
            "arrivalDate": "2022-09-20",
            "arrivalTime": "08:00:00",
            "numberOfSeats": 3,
            "cabinTypeName": "ECONOMY",
            "cabinTypeCode": "Y",
            "aircraftTypeCode": "321",
            "aircraftTypeName": "AIRBUS",
            "bookingClass": "Y",
            "meals": [
                {
                    "code": "R",
                    "description": "Refreshment"
                }
            ],
            "flightStatusCode": "HK",
            "flightStatusName": "Confirmed",
            "durationInMinutes": 180,
            "distanceInMiles": 1235,
            "travelerIndices": [
                1,
                2,
                3,
                4
            ]
        }
    ]

In the Response

Optional

Parameter: GetBookingResponse.bookingSignature

Type: String

Description: The unique ID of the Get Booking response. It is used to verify the state of the booking during the modification operation.

Sample Value:

{

    "bookingSignature": "33ece08825534415b465854608419b57da428c995720cdce4b9eb72b19fe716d5286b1a2f2e959abb6cc228b921d6a413690595cf0a7cf1ceb5186d73c9e0118",
    "request": {
        "confirmationId": "GXIIKO"
    }
}

In the Response

Optional

Parameter: GetBookingResponse.hotels.corporateDiscountCode

Type: Integer

Description: A specific code that a company may give to an agency to use for a discount. It is usually tied to a negotiated rate code.

Sample Value:

"hotels": [
        {
            "itemId": "96",
            "confirmationId": "92907370-",
            "hotelName": "MARRIOTT VAC CLUB GRD CHT 1-2",
            "address": {
                "street": "75 EAST HARMON AVENUE",
                "city": "LAS VEGAS",
                "stateProvince": "NV",
                "postalCode": "89109",
                "countryCode": "US"
            },
            "checkInDate": "2022-06-07",
            "checkInTime": "00:00",
            "checkOutDate": "2022-06-13",
            "checkOutTime": "00:00",
            "corporateDiscountCode": 6878700,
            "leadTravelerIndex": 1,
            "room": {
                "quantity": 1,
                "description": "STAY LONGER, SAVE 20 PERCENT OFF 5 NIGHTS, 20 PERCENT OFF FLEXIBLE RATE, GUEST ROOM, 1 KING, SOFA BED MAX OCCUPANCY- 4 GUESTS 1 KING, SOFA BED, MINI FRIDGE, MICROWAVE, 435SQFT/39SQM, LIVING/SITTING AREA, WIRELESS INTERNET, COMPLIMENTARY STAY LONGER, SAVE MORE STAY 5 OR MORE CONSECUTIVE NIGHTS TO QUALIFY FOR A SPECIAL 20 PERCENT DISCOUNT. LATE ARRIVAL OR EARLY DEPARTURE WILL FORFEIT SPECIAL RATE. UPON CHECK OUT RATE WILL REVERT TO BEST AVAILABLE. NAME CHANGES MUST BE REQUESTED BY THE GUEST OR TRAVEL AGENT THAT BOOKED THE ORIGINAL RESERVATION. RESERVATIONS MAY NOT BE ASSIGNED OR TRANSFERRED IN ANY MANNER TO ANY THIRD PARTY. BOOKING WINDOW NOW THROUGH APRIL 6, 2022 STAY WINDOW NOW THROUGH JUNE 19, 2022",
                "roomRate": {
                    "amount": "231.00",
                    "currencyCode": "USD"
                },
                "travelerIndices": [
                    1
                ]
            },
            "isRefundable": true,
            "refundPenalties": [
                {
                    "applicableFromDate": "2022-03-18T09:03:39.340994",
                    "applicableToDate": "2022-06-05T00:00:00",
                    "penalty": {
                        "amount": "0.00",
                        "currencyCode": "USD"
                    }
                },
                {
                    "applicableFromDate": "2022-06-05T00:00:00",
                    "applicableToDate": "2022-06-13T00:00:00",
                    "penalty": {
                        "amount": "0.00",
                        "currencyCode": "USD"
                    }
                }
            ],
            "hotelStatusCode": "HK",
            "hotelStatusName": "Confirmed",
            "chainCode": "VC",
            "chainName": "Marriott Vacation Club",
            "propertyId": "100095894",
            "contactInfo": {
                "phones": [
                    "702-862-5600"
                ],
                "faxes": [
                    "702-862-5610"
                ]
            },
            "guaranteeTypeCode": 5,
            "guaranteeTypeName": "Credit card",
            "payment": {
                "subtotal": "1290.00",
                "taxes": "172.61",
                "total": "1462.61",
                "currencyCode": "USD"
            },
            "numberOfGuests": 1
        }
    ]  

In the Response

Optional

Parameter: GetBookingResponse.hotels.associatedFlightDetails

Type: Object

Description: Contains flight arrival and departure information used mainly for hotel bookings.

Sample Value:

"hotels": [
        {
            "itemId": "20",
            "confirmationId": "92851137-",
            "hotelName": "MARRIOTT VAC CLUB GRD CHT 1-2",
            "address": {
                "street": "75 EAST HARMON AVENUE",
                "city": "LAS VEGAS",
                "stateProvince": "NV",
                "postalCode": "89109",
                "countryCode": "US"
            },
            "checkInDate": "2022-06-07",
            "checkInTime": "10:30",
            "checkOutDate": "2022-06-13",
            "checkOutTime": "10:30",
            "leadTravelerIndex": 1,
            "room": {
                "quantity": 1,
                "description": "STAY LONGER, SAVE 20 PERCENT OFF 5 NIGHTS, 20 PERCENT OFF FLEXIBLE RATE, GUEST ROOM, 1 KING, SOFA BED MAX OCCUPANCY- 4 GUESTS 1 KING, SOFA BED, MINI FRIDGE, MICROWAVE, 435SQFT/39SQM, LIVING/SITTING AREA, WIRELESS INTERNET, COMPLIMENTARY STAY LONGER, SAVE MORE STAY 5 OR MORE CONSECUTIVE NIGHTS TO QUALIFY FOR A SPECIAL 20 PERCENT DISCOUNT. LATE ARRIVAL OR EARLY DEPARTURE WILL FORFEIT SPECIAL RATE. UPON CHECK OUT RATE WILL REVERT TO BEST AVAILABLE. NAME CHANGES MUST BE REQUESTED BY THE GUEST OR TRAVEL AGENT THAT BOOKED THE ORIGINAL RESERVATION. RESERVATIONS MAY NOT BE ASSIGNED OR TRANSFERRED IN ANY MANNER TO ANY THIRD PARTY. BOOKING WINDOW NOW THROUGH APRIL 6, 2022 STAY WINDOW NOW THROUGH JUNE 19, 2022",
                "roomRate": {
                    "amount": "231.00",
                    "currencyCode": "USD"
                },
                "travelerIndices": [
                    1
                ]
            },
            "isRefundable": true,
            "refundPenalties": [
                {
                    "applicableFromDate": "2022-03-18T09:25:47",
                    "applicableToDate": "2022-06-05T10:30:00",
                    "penalty": {
                        "amount": "0.00",
                        "currencyCode": "USD"
                    }
                },
                {
                    "applicableFromDate": "2022-06-05T10:30:00",
                    "applicableToDate": "2022-06-13T10:30:00",
                    "penalty": {
                        "amount": "0.00",
                        "currencyCode": "USD"
                    }
                }
            ],
            "hotelStatusCode": "HK",
            "hotelStatusName": "Confirmed",
            "chainCode": "VC",
            "chainName": "Marriott Vacation Club",
            "propertyId": "100095894",
            "contactInfo": {
                "phones": [
                    "702-862-5600"
                ],
                "faxes": [
                    "702-862-5610"
                ]
            },
            "guaranteeTypeCode": 5,
            "guaranteeTypeName": "Credit card",
            "payment": {
                "subtotal": "1290.00",
                "taxes": "172.61",
                "total": "1462.61",
                "currencyCode": "USD"
            },
            "numberOfGuests": 1,
            "associatedFlightDetails": {
                "arrivalTime": "10:30",
                "departureTime": "12:30",
                "arrivalFlight": {
                    "airlineCode": "9W",
                    "flightNumber": 31
                },
                "departureFlight": {
                    "airlineCode": "6E",
                    "flightNumber": 907
                }
            }
        }
    ]  

In the Response

Optional

Parameter: GetBookingResponse.creationDetails.agencyIataNumber

Type: String

Description: A unique identifier accredited by the International Air Transport Association (IATA).

Sample Value:

"creationDetails": {
        "creationUserSine": "AWV",
        "creationDate": "2022-03-01",
        "creationTime": "00:56",
        "agencyIataNumber": "63211456",
        "userWorkPcc": "G4PK",
        "userHomePcc": "G4PK",
        "primeHostId": "1S"
    }  

Functional Updates And Enhancements

In the Request

Optional

Parameter: CancelBookingRequest.queue

Type: Object

Description: Contains details of a queue.

Sample Value:

"queue": {
    "queueNumber": 400,
    "queueName": "HENRY",
    "pcc": "G7RE",
    "prefatoryInstructionCode": 11,
    "futureQueuePlacementDate": "2019-07-09"
  }
Note: `queue` property has been removed from the schema. This change applies to VoidTicketsRequest and RefundTicketsRequest objects as well.

In the Response

Optional

Parameter: GetBookingResponse.travelers

Type: Array

Description: Lists the traveler(s) associated with the booking.

Sample Value:

"travelers": [
        {
            "givenName": "JOHN",
            "surname": "KOWALSKI",
            "type": "ADULT",
            "passengerCode": "ADT",
            "phones": [
                {
                    "number": "+123456"
                }
            ],
            "loyaltyPrograms": [
                {
                    "programType": "LOYALTY_ID",
                    "programNumber": "987654321"
                }
            ]
        }
    ]
Note: If applicable, traveler details are expanded by the details associated with the hotel booking.

In the Response

Optional

Parameter: GetBookingResponse.flights.seats

Type: Array

Description: Lists the seat numbers assigned to the applicable traveler by matching the index in the `travelers` collection. Refer to the `travelerIndices` property to verify the traveler association. An empty `Seat` object means that a corresponding traveler doesn’t have a seat assigned.

Sample Value:

"flights": [
              {
                     "itemId": "22",
                     "confirmationId": "UEFTKF",
                     "sourceType": "ATPCO",
                     "flightNumber": 524,
                     "airlineCode": "AA",
                     "operatingFlightNumber": 524,
                     "operatingAirlineCode": "AA",
                     "fromAirportCode": "DFW",
                     "toAirportCode": "LAX",
                     "departureDate": "2022-09-20",
                     "departureTime": "07:00:00",
                     "arrivalDate": "2022-09-20",
                     "arrivalTime": "08:00:00",
                     "seats": [
                           {
                           },
                           {
                           },
                           {
                                  "number": "22A"
                           }
                     ],
                     "numberOfSeats": 3,
                     "cabinTypeName": "ECONOMY",
                     "cabinTypeCode": "Y",
                     "aircraftTypeCode": "321",
                     "aircraftTypeName": "AIRBUS",
                     "bookingClass": "Y",
                     "meals": [
                           {
                                  "code": "R",
                                  "description": "Refreshment"
                           }
                     ],
                     "flightStatusCode": "HK",
                     "flightStatusName": "Confirmed",
                     "durationInMinutes": 180,
                     "distanceInMiles": 1235,
                     "travelerIndices": [
                           1,
                           2,
                           3
                     ]
              }
       ]
Note: Description update to include meaningful information regarding empty Seat objects.

Resolved Issues

In the Request

Optional

Description: US1335214: Adding support for the infant tickets containing “INF” string prefix in the CancelBooking and VoidFlightTIckets methods.


  • CreateBooking will start supporting the optional issuing country information for Known Traveler Number documents (DOCO formats).
  • CreateBooking will start supporting information about the place and date of issue for VISA identity documents (DOCO formats) as optional fields.
  • GetBooking will start supporting the expiration date for Visa documents (DOCO formats).
  • Void/Refund/Check Flight Tickets methods will start processing conjunctive ticket numbers.
  • GetBooking will start returning additional flight-related information: hidden stops and the number of seats occupied by the travelers.
  • GetBooking will allow obtaining additional information stored for hotel bookings like the guest association to a room and loyalty numbers.

API Information

Format
JSON
Endpoint
/v1/trip/orders/
Current Version
1.11
Environment
Production

What's New

  • CreateBooking will start supporting the optional issuing country information for Known Traveler Number documents (DOCO formats).
  • CreateBooking will start supporting information about the place and date of issue for VISA identity documents (DOCO formats) as optional fields.
  • GetBooking will start supporting the expiration date for Visa documents (DOCO formats).
  • Void/Refund/Check Flight Tickets methods will start processing conjunctive ticket numbers.
  • GetBooking will start returning additional flight-related information: hidden stops and the number of seats occupied by the travelers.
  • GetBooking will allow obtaining additional information stored for hotel bookings like the guest association to a room and loyalty numbers.

Business Value

  • Customers can now specify issuing country details for Known Traveler Number documents, by passing required information in CreateBooking request.
  • Customers can now provide information regarding the place and date of issue for VISA identity documents in CreateBooking request. These details are considered optional.
  • The expiration date for Visa documents was included in the identity documents information in GetBooking. Information is consistent with the same functionality introduced in CreateBooking.
  • Customers can now use conjunctive ticket numbers (e.g.: 0167662548958/59) in their Void/Refund/Check Flight Tickets requests.
  • By adding hidden stop and number of seats information customers can obtain additional details associated with the existing air booking.
  • By supporting guest to room association and loyalty numbers customers can obtain additional details associated with the existing hotel booking.

New Features

In the Response

Optional

Parameter: GetBookingResponse.flights.hiddenStopAircraftTypeCode

Type: string

Description: The IATA aircraft type designator code. This property is not returned when the aircraft type is unchanged.

Sample Value:

"flights": [
        {
            "itemId": "3",
            "confirmationId": "SKLQ85",
            "sourceType": "ATPCO",
            "flightNumber": 183,
            "airlineCode": "TK",
            "operatingFlightNumber": 183,
            "operatingAirlineCode": "TK",
            "fromAirportCode": "IST",
            "toAirportCode": "CCS",
            "departureDate": "2022-05-10",
            "departureTime": "02:35:00",
            "arrivalDate": "2022-05-10",
            "arrivalTime": "12:35:00",
            "cabinTypeName": "ECONOMY",
            "cabinTypeCode": "Y",
            "aircraftTypeCode": "789",
            "aircraftTypeName": "BOEING 787-9",
            "bookingClass": "Y",
            "meals": [
                {
                    "code": "M",
                    "description": "Meal"
                }
            ],
            "flightStatusCode": "HK",
            "flightStatusName": "Confirmed",
            "durationInMinutes": 935,
            "distanceInMiles": 7526,
            "hiddenStopAircraftTypeCode": "789",
            "hiddenStopAircraftTypeName": "BOEING 787-9",
            "hiddenStopAirportCode": "HAV",
            "hiddenStopArrivalDate": "2022-05-10",
            "hiddenStopArrivalTime": "08:10",
            "hiddenStopDepartureDate": "2022-05-10",
            "hiddenStopDepartureTime": "09:35"
        }
    ]
}

In the Response

Optional

Parameter: GetBookingResponse.flights.hiddenStopAircraftTypeName

Type: string

Description: The name and model that corresponds to the specified aircraft equipment code(s). This property is not returned when the aircraft type is unchanged.

Sample Value:

"flights": [
        {
            "itemId": "3",
            "confirmationId": "SKLQ85",
            "sourceType": "ATPCO",
            "flightNumber": 183,
            "airlineCode": "TK",
            "operatingFlightNumber": 183,
            "operatingAirlineCode": "TK",
            "fromAirportCode": "IST",
            "toAirportCode": "CCS",
            "departureDate": "2022-05-10",
            "departureTime": "02:35:00",
            "arrivalDate": "2022-05-10",
            "arrivalTime": "12:35:00",
            "cabinTypeName": "ECONOMY",
            "cabinTypeCode": "Y",
            "aircraftTypeCode": "789",
            "aircraftTypeName": "BOEING 787-9",
            "bookingClass": "Y",
            "meals": [
                {
                    "code": "M",
                    "description": "Meal"
                }
            ],
            "flightStatusCode": "HK",
            "flightStatusName": "Confirmed",
            "durationInMinutes": 935,
            "distanceInMiles": 7526,
            "hiddenStopAircraftTypeCode": "789",
            "hiddenStopAircraftTypeName": "BOEING 787-9",
            "hiddenStopAirportCode": "HAV",
            "hiddenStopArrivalDate": "2022-05-10",
            "hiddenStopArrivalTime": "08:10",
            "hiddenStopDepartureDate": "2022-05-10",
            "hiddenStopDepartureTime": "09:35"
        }
    ]
}

In the Response

Optional

Parameter: GetBookingResponse.flights.hiddenStopAirportCode

Type: string

Description: The three-letter IATA airport code of the hidden stop airport.

Sample Value:

"flights": [
        {
            "itemId": "3",
            "confirmationId": "SKLQ85",
            "sourceType": "ATPCO",
            "flightNumber": 183,
            "airlineCode": "TK",
            "operatingFlightNumber": 183,
            "operatingAirlineCode": "TK",
            "fromAirportCode": "IST",
            "toAirportCode": "CCS",
            "departureDate": "2022-05-10",
            "departureTime": "02:35:00",
            "arrivalDate": "2022-05-10",
            "arrivalTime": "12:35:00",
            "cabinTypeName": "ECONOMY",
            "cabinTypeCode": "Y",
            "aircraftTypeCode": "789",
            "aircraftTypeName": "BOEING 787-9",
            "bookingClass": "Y",
            "meals": [
                {
                    "code": "M",
                    "description": "Meal"
                }
            ],
            "flightStatusCode": "HK",
            "flightStatusName": "Confirmed",
            "durationInMinutes": 935,
            "distanceInMiles": 7526,
            "hiddenStopAircraftTypeCode": "789",
            "hiddenStopAircraftTypeName": "BOEING 787-9",
            "hiddenStopAirportCode": "HAV",
            "hiddenStopArrivalDate": "2022-05-10",
            "hiddenStopArrivalTime": "08:10",
            "hiddenStopDepartureDate": "2022-05-10",
            "hiddenStopDepartureTime": "09:35"
        }
    ]
}

In the Response

Optional

Parameter: GetBookingResponse.flights.hiddenStopArrivalDate

Type: string

Description: The arrival date to the hidden stop airport in `YYYY-MM-DD` format in the airport's timezone.

Sample Value:

"flights": [
        {
            "itemId": "3",
            "confirmationId": "SKLQ85",
            "sourceType": "ATPCO",
            "flightNumber": 183,
            "airlineCode": "TK",
            "operatingFlightNumber": 183,
            "operatingAirlineCode": "TK",
            "fromAirportCode": "IST",
            "toAirportCode": "CCS",
            "departureDate": "2022-05-10",
            "departureTime": "02:35:00",
            "arrivalDate": "2022-05-10",
            "arrivalTime": "12:35:00",
            "cabinTypeName": "ECONOMY",
            "cabinTypeCode": "Y",
            "aircraftTypeCode": "789",
            "aircraftTypeName": "BOEING 787-9",
            "bookingClass": "Y",
            "meals": [
                {
                    "code": "M",
                    "description": "Meal"
                }
            ],
            "flightStatusCode": "HK",
            "flightStatusName": "Confirmed",
            "durationInMinutes": 935,
            "distanceInMiles": 7526,
            "hiddenStopAircraftTypeCode": "789",
            "hiddenStopAircraftTypeName": "BOEING 787-9",
            "hiddenStopAirportCode": "HAV",
            "hiddenStopArrivalDate": "2022-05-10",
            "hiddenStopArrivalTime": "08:10",
            "hiddenStopDepartureDate": "2022-05-10",
            "hiddenStopDepartureTime": "09:35"
        }
    ]
}

In the Response

Optional

Parameter: GetBookingResponse.flights.hiddenStopArrivalTime

Type: string

Description: The time of arrival to the hidden stop airport in `HH:MM` format.

Sample Value:

"flights": [
        {
            "itemId": "3",
            "confirmationId": "SKLQ85",
            "sourceType": "ATPCO",
            "flightNumber": 183,
            "airlineCode": "TK",
            "operatingFlightNumber": 183,
            "operatingAirlineCode": "TK",
            "fromAirportCode": "IST",
            "toAirportCode": "CCS",
            "departureDate": "2022-05-10",
            "departureTime": "02:35:00",
            "arrivalDate": "2022-05-10",
            "arrivalTime": "12:35:00",
            "cabinTypeName": "ECONOMY",
            "cabinTypeCode": "Y",
            "aircraftTypeCode": "789",
            "aircraftTypeName": "BOEING 787-9",
            "bookingClass": "Y",
            "meals": [
                {
                    "code": "M",
                    "description": "Meal"
                }
            ],
            "flightStatusCode": "HK",
            "flightStatusName": "Confirmed",
            "durationInMinutes": 935,
            "distanceInMiles": 7526,
            "hiddenStopAircraftTypeCode": "789",
            "hiddenStopAircraftTypeName": "BOEING 787-9",
            "hiddenStopAirportCode": "HAV",
            "hiddenStopArrivalDate": "2022-05-10",
            "hiddenStopArrivalTime": "08:10",
            "hiddenStopDepartureDate": "2022-05-10",
            "hiddenStopDepartureTime": "09:35"
        }
    ]
}

In the Response

Optional

Parameter: GetBookingResponse.flights.hiddenStopDepartureDate

Type: string

Description: The departure date from the hidden stop airport in `YYYY-MM-DD` format in the airport's timezone.

Sample Value:

"flights": [
        {
            "itemId": "3",
            "confirmationId": "SKLQ85",
            "sourceType": "ATPCO",
            "flightNumber": 183,
            "airlineCode": "TK",
            "operatingFlightNumber": 183,
            "operatingAirlineCode": "TK",
            "fromAirportCode": "IST",
            "toAirportCode": "CCS",
            "departureDate": "2022-05-10",
            "departureTime": "02:35:00",
            "arrivalDate": "2022-05-10",
            "arrivalTime": "12:35:00",
            "cabinTypeName": "ECONOMY",
            "cabinTypeCode": "Y",
            "aircraftTypeCode": "789",
            "aircraftTypeName": "BOEING 787-9",
            "bookingClass": "Y",
            "meals": [
                {
                    "code": "M",
                    "description": "Meal"
                }
            ],
            "flightStatusCode": "HK",
            "flightStatusName": "Confirmed",
            "durationInMinutes": 935,
            "distanceInMiles": 7526,
            "hiddenStopAircraftTypeCode": "789",
            "hiddenStopAircraftTypeName": "BOEING 787-9",
            "hiddenStopAirportCode": "HAV",
            "hiddenStopArrivalDate": "2022-05-10",
            "hiddenStopArrivalTime": "08:10",
            "hiddenStopDepartureDate": "2022-05-10",
            "hiddenStopDepartureTime": "09:35"
        }
    ]
}

In the Response

Optional

Parameter: GetBookingResponse.flights.hiddenStopDepartureTime

Type: string

Description: The time of departure from the hidden stop airport in `HH:MM` format.

Sample Value:

"flights": [
        {
            "itemId": "3",
            "confirmationId": "SKLQ85",
            "sourceType": "ATPCO",
            "flightNumber": 183,
            "airlineCode": "TK",
            "operatingFlightNumber": 183,
            "operatingAirlineCode": "TK",
            "fromAirportCode": "IST",
            "toAirportCode": "CCS",
            "departureDate": "2022-05-10",
            "departureTime": "02:35:00",
            "arrivalDate": "2022-05-10",
            "arrivalTime": "12:35:00",
            "cabinTypeName": "ECONOMY",
            "cabinTypeCode": "Y",
            "aircraftTypeCode": "789",
            "aircraftTypeName": "BOEING 787-9",
            "bookingClass": "Y",
            "meals": [
                {
                    "code": "M",
                    "description": "Meal"
                }
            ],
            "flightStatusCode": "HK",
            "flightStatusName": "Confirmed",
            "durationInMinutes": 935,
            "distanceInMiles": 7526,
            "hiddenStopAircraftTypeCode": "789",
            "hiddenStopAircraftTypeName": "BOEING 787-9",
            "hiddenStopAirportCode": "HAV",
            "hiddenStopArrivalDate": "2022-05-10",
            "hiddenStopArrivalTime": "08:10",
            "hiddenStopDepartureDate": "2022-05-10",
            "hiddenStopDepartureTime": "09:35"
        }
    ]
}

In the Response

Optional

Parameter: GetBookingResponse.hotels.room.travelerIndices

Type: array

Description: Lists the travelers within the travelers list. Indicates which travelers are considered to be guests associated with a particular room. It is possible that not all travelers are listed as hotel guests in the hotel booking.

Sample Value:

"room": {
        "quantity": 1,
        "description": "Deluxe Room, 2 Double Beds",
        "roomRate": {
          "amount": "100.00",
          "currencyCode": "USD"
        },
        "travelerIndices": [
          1
        ]
      }

In the Response

Optional

Parameter: GetBookingResponse.flights.numberOfSeats

Type: integer

Description: The quantity of seats occupied by the travelers. Specific seat details, if applicable, are listed in the 'seats' array.

Sample Value:

"flights": [
        {
            "itemId": "3",
            "confirmationId": "SKLQ85",
            "sourceType": "ATPCO",
            "flightNumber": 183,
            "airlineCode": "TK",
            "operatingFlightNumber": 183,
            "operatingAirlineCode": "TK",
            "fromAirportCode": "IST",
            "toAirportCode": "CCS",
            "departureDate": "2022-05-10",
            "departureTime": "02:35:00",
            "arrivalDate": "2022-05-10",
            "arrivalTime": "12:35:00",
           "numberOfSeats": 1,
            "cabinTypeName": "ECONOMY",
            "cabinTypeCode": "Y",
            "aircraftTypeCode": "789",
            "aircraftTypeName": "BOEING 787-9",
            "bookingClass": "Y",
            "meals": [
                {
                    "code": "M",
                    "description": "Meal"
                }
            ],
            "flightStatusCode": "HK",
            "flightStatusName": "Confirmed",
            "durationInMinutes": 935,
            "distanceInMiles": 7526
        }
    ]

Functional Updates And Enhancements

In the Request

Optional

Parameter: CreateBookingRequest.travelers.identityDocuments.issuingCountryCode

Type: string

Description: The country issuing the passenger document as a two-letter, ISO 3166 code. Not applicable to 'visa' document type.

Sample Value:

"identityDocuments": [
                {
                    "documentNumber": "1122334455",
                    "issuingCountryCode": "FR",
                    "documentType": "KNOWN_TRAVELER_NUMBER"
                }
            ]

In the Request

Optional

Parameter: CreateBookingRequest.travelers.identityDocuments.placeOfIssue

Type: string

Description: The ISO code of the country the visa document was issued. Used for 'VISA' document type (NDC not supported).

Sample Value:

"identityDocuments": [
                    {
                        "documentNumber": "0123456789",
                        "documentType": "VISA",
                        "expiryDate": "2024-07-09",
                        "placeOfIssue": "FR",
                        "hostCountryCode": "US",
                        "issueDate": "2019-07-09",
                        "givenName": "John",
                        "middleName": "Jack",
                        "surname": "Smith"
                    }
                ]

In the Request

Optional

Parameter: CreateBookingRequest.travelers.identityDocuments.issueDate

Type: string

Description: The date the identity document was issued in YYYY-MM-DD format. This is mainly used for the visa document type.

Sample Value:

"identityDocuments": [
                    {
                        "documentNumber": "0123456789",
                        "documentType": "VISA",
                        "expiryDate": "2024-07-09",
                        "placeOfIssue": "FR",
                        "hostCountryCode": "US",
                        "issueDate": "2019-07-09",
                        "givenName": "John",
                        "middleName": "Jack",
                        "surname": "Smith"
                    }
                ]

In the Request

Optional

Parameter: VoidTicketsRequest.tickets

Type: array

Description: Lists document numbers for tickets or EMDs which should be voided. Can contain up to 12 elements.

Sample Value:

"tickets": [
    " 0167662548907/08"
  ]

In the Request

Optional

Parameter: RefundTicketsRequest.tickets.number

Type: string

Description: The electronic document number of the ticket that needs to be refunded.

Note: "tickets": [ { "number": "0167662548907/08" } ]

In the Request

Optional

Parameter: CheckTicketsRequest.tickets.number

Type: string

Description: The electronic document number of the ticket that needs to be refunded.

Sample Value:

"tickets": [
        {
            "number": "0167662548907/08"
        }
    ]

In the Response

Optional

Parameter: GetBookingResponse.travelers.identityDocuments.expiryDate

Type: string

Description: The expiration date of the identity document.

Sample Value:

"identityDocuments": [
                {
                    "documentNumber": "0123456789",
                    "documentType": "VISA",
                    "expiryDate": "2022-07-09",
                    "placeOfIssue": "FR",
                    "hostCountryCode": "US",
                    "issueDate": "2021-05-21",
                    "itemId": "719b7ecc1c170901f3e439eed956a136cfca81282789ga2c59460e63e8b4948df1ad5b9c4164ffba11863aeddb253f184fd1d8e23eed416db958ce102274993a"
                }
            ]

In the Response

Optional

Parameter: GetBookingResponse.travelers.loyaltyPrograms

Type: array

Description: Lists the loyalty programs applicable for a traveler.

Sample Value:

"travelers": [
        {
            "givenName": "JOHN",
            "surname": "KOWALSKI",
            "type": "ADULT",
            "passengerCode": "ADT",
            "loyaltyPrograms": [
                {
                    "programType": "LOYALTY_ID",
                    "programNumber": "997755321"
                }
            ]
        }
   ]

Resolved Issues

In the Request

Optional

Description: DE220994: Fixing bug in CreateBooking method for the requests not containing agency information (removing an empty element causing errors in downline PassengerDetailsRQ).

In the Request

Optional

Description: DE221267: Fixing the functional gap in CreateBooking responsible for not allowing to assign loyalty information to multiple guests for hotel bookings.

In the Request

Optional

Description: DE222193: Fixing bug in CreateBooking request preventing proper usage of FOID SSRs assigned to infant traveler.

In the Request

Optional

Description: DE222412: Fixing bug in CreateBooking request with automated SSR handling for ITF traveler type.

In the Request

Optional

Description: DE222415: Fixing bug in CreateBooking method with missing birth date validation for infant travelers.

In the Response

Optional

Description: DE219716: Fixing bug in GetBooking response with incorrect location code (with “@” character) sent to downline service to obtain location details.

In the Response

Optional

Description: DE220066: Fixing bug in GetBooking response with incorrect ticketing date (a wrong year for scenarios where ticketing date was set near the end of the year).

In the Response

Optional

Description: DE220636: Fixing bug in GetBooking response regarding missing extended location codes in `allsegments` property.

In the Response

Optional

Description: DE221127: Fixing bug in GetBooking response regarding incorrect journeys logic for roundtrip flights occurring in a short period of time.

In the Response

Optional

Description: DE222631: Fixing bug in GetBooking method with incorrect usage of downline PO_PNRPricingRQ for LATAM (LA) bookings.


  • CreateBooking will start supporting the expiration date for Visa documents (DOCO formats).
  • GetBooking will start returning information about delivery and collection site/address present in the car bookings in a cohesive form.
  • GetBooking will allow obtaining information about the past date indicator for the flown flights.
  • GetBooking will start returning additional traveler information regarding name-associated phone numbers.
  • GetBooking will allow obtaining additional information stored in manual PQs. Now it is possible to check fare construction details, flight association and much more.
  • GetBooking has now improved roundtrip journeys logic – it can verify whether selected trip contains a multi-airport city.

API Information

Format
JSON
Endpoint
/v1/trip/orders/
Current Version
1.10
Environment
Production

What's New

  • CreateBooking will start supporting the expiration date for Visa documents (DOCO formats).
  • GetBooking will start returning information about delivery and collection site/address present in the car bookings in a cohesive form.
  • GetBooking will allow obtaining information about the past date indicator for the flown flights.
  • GetBooking will start returning additional traveler information regarding name-associated phone numbers.
  • GetBooking will allow obtaining additional information stored in manual PQs. Now it is possible to check fare construction details, flight association and much more.
  • GetBooking has now improved roundtrip journeys logic – it can verify whether selected trip contains a multi-airport city.

Business Value

  • Customers can now follow the new industry mandate introduced by the IATA regarding the expiration date for Visa documents, by passing required information in CreateBooking request.
  • By adding delivery and collection site/address information customers can obtain the custom details specified for car bookings.
  • Name associated phone numbers were added to travel information in GetBooking. Information is consistent with the same functionality introduced in CreateBooking.
  • Added past date indicator allows to quickly identify a flown flight.
  • Additional details returned for manual PQs were added to further support pricing data analysis.
  • Added internal multi-airport city database, which improves journeys functionality. It allows identifying roundtrips with departure and arrival at the same city.

New Features

In the Response

Optional

Parameter: GetBookingResponse.cars.collectionAddress

Type: Object

Description: Contains basic address information.

Sample Value:

"collectionAddress": {
        "street": "1230 Ellen Ave apt 10",
        "city": "Dallas",
        "stateProvince": "TX",
        "postalCode": "75063",
        "countryCode": "US"
      },

In the Response

Optional

Parameter: GetBookingResponse.cars.collectionSite

Type: Object

Description: Contains information about the car rental location.

Sample Value:

"collectionSite": {
        "id": "ABC123",
        "name": "TEST LOCATION",
        "phone": "8175551212"
      },

In the Response

Optional

Parameter: GetBookingResponse.cars.deliveryAddress

Type: Object

Description: Contains basic address information.

Sample Value:

 "deliveryAddress": {
        "street": "1230 Ellen Ave apt 10",
        "city": "Dallas",
        "stateProvince": "TX",
        "postalCode": "75063",
        "countryCode": "US"
      },

In the Request

Optional

Parameter: GetBookingResponse.cars.deliverySite

Type: Object

Description: Contains information about the car rental location.

Sample Value:

"deliverySite": {
        "id": "ABC123",
        "name": "TEST LOCATION",
        "phone": "8175551212"
      },

In the Response

Optional

Parameter: GetBookingResponse.flights.isPast

Type: boolean

Description: If true, the current flight is past-dated.

Sample Value:

"flights": [
        {
            "itemId": "9",
            "confirmationId": "3U2B9I",
            "sourceType": "ATPCO",
            "flightNumber": 905,
            "airlineCode": "LH",
            "operatingFlightNumber": 905,
            "operatingAirlineCode": "LH",
            "fromAirportCode": "LHR",
            "toAirportCode": "FRA",
            "departureDate": "2019-10-09",
            "departureTime": "11:30:00",
            "arrivalDate": "2019-10-09",
            "arrivalTime": "14:05:00",
            "cabinTypeName": "ECONOMY",
            "cabinTypeCode": "Y",
            "bookingClass": "Y",
            "flightStatusCode": "HK",
            "flightStatusName": "Confirmed",
            "isPast": true
        },

In the Response

Optional

Parameter: GetBookingResponse.travelers.phones

Type: Array

Description: Lists all phone numbers associated with the traveler.

Sample Value:

"phones": [
        {
          "number": "+1-555-123-4567",
          "label": "M"
        }
      ],
Note: Name associated phones will be removed from GetBookingResponse.contactInfo.phones array in the future major release of the BM API.

Functional Updates And Enhancements

In the Response

Optional

Parameter: GetBookingResponse.fares.fareConstruction

Type: Array

Description: Lists the components used to construct the fare.

Sample Value:

"fareConstruction": [
                {
                    "flights": [
                        {
                            "itemId": "50"
                        }
                    ],
                    "flightIndices": [
                        1
                    ],
                    "fareBasisCode": "KL40MALP",
                    "isCurrentItinerary": true,
                    "checkedBaggageAllowance": {
                        "totalWeightInKilograms": 10
                    }
                },
Note: Additional information is now returned for manual PQs.

In the Request

Optional

Parameter: CreateBookingRequest.travelers.identityDocuments.expiryDate

Type: string

Description: The expiration date of the identity document.

Sample Value:

"identityDocuments": [
                {
                    "documentNumber": "0123456789",
                    "expiryDate": "2022-07-09",
                    "hostCountryCode": "US",
                    "documentType": "VISA",
                    "givenName": "John",
                    "middleName": "Jack",
                    "surname": "Smith",
                    "placeOfIssue": "FR",
                    "issueDate": "2021-05-21"
                }
            ]
Note: The expiration date is now supported when sending Visa DOCO.

Resolved Issues

In the Response

Optional

Description: DE216212: Fixing bug in GetBooking response with incorrect flight association in fare component information for hybrid bookings (NDC + ATPCO).

In the Response

Optional

Description: DE218361: Fixing bug in GetBooking response to return missing ancillary offers when returnOnly option was specified in the request.

In the Response

Optional

Description: DE218514: Fixing bug in GetBooking response to return missing DOCS SSRs.

In the Response

Optional

Description: DE217175: Fixing bug in GetBooking response with an incorrect value for flightTotals, when multiple passengers are assigned to a single PQ.

In the Response

Optional

Description: DE217199: Fixing bug in GetBooking response with missing mapping for extended location codes applied to the car booking.


  • CreateBooking will support booking cars. Implementation covers adding car content into the reservation by means of a booking key.
  • CreateBooking will support Payment Service Directive 2 (PSD2) compliant Strong Customer Authentication (SCA) for payment cards when booking hotel content.
  • CreateBooking will now allow creating name-associated phone numbers.

API Information

Format
JSON
Endpoint
/v1/trip/orders/
Current Version
1.9
Environment
Production

What's New

  • CreateBooking will support booking cars. Implementation covers adding car content into the reservation by means of a booking key.
  • CreateBooking will support Payment Service Directive 2 (PSD2) compliant Strong Customer Authentication (SCA) for payment cards when booking hotel content.
  • CreateBooking will now allow creating name-associated phone numbers.

Business Value

  • Car booking is now integrated into CreateBooking. New capabilities will allow booking cars exclusively and alongside flights and/or hotel content in a single request.
  • PSD2 is a new set of rules changing how consumers confirm their identity when making purchases online. The rules apply in full for card payments and CreateBooking will now support Strong Customer Authentication (SCA) for hotel bookings.
  • Name-associated phone numbers were added to provide additional flexibility in terms of contact information stored in the booking.

New Features

In the Request

Optional

Parameter: CreateBookingRequest.car

Type: Object

Description: Contains car information.

Sample Value:

"car": {
    "bookingKey": "d6e73d0d-5f90-4b43-9c86-2d88a732604f",
    "travelerIndex": 1,
    "collectionAddress": {
      "street": "1230 Ellen Ave",
      "city": "Dallas",
      "stateProvince": "TX",
      "postalCode": "75063",
      "countryCode": "US"
    },
    "paymentPolicy": "DEPOSIT",
    "formOfPayment": 1,
    "quantity": 1,
    "specialInstructions": "Wants a blue car.",
    "flightIndex": 1
  }

Functional Updates And Enhancements

In the Request

Optional

Parameter: CreateBookingRequest.payment.formsOfPayment.authentications

Type: Array

Description: Lists all SCA details for the payment card. Use with PAYMENTCARD.

Sample Value:

"authentications": [
          {
            "secureAuthenticationValue": "ABC123455533533444455555678",
            "secureTransactionId": "ABCDEFGHI123456789012!.1234567890123",
            "issueCode": "AO",
            "resultCode": "OK",
            "cardNumberCollectionCode": "K",
            "channelCode": "MO",
            "electronicCommerceIndicator": "12",
            "exemptionTypeCode": "SC",
            "updatedDateTime": "2020-07-07T16:00:00Z",
            "mandateTypeCode": "NA",
            "merchantName": "TEST CREDIT CARD",
            "originalPaymentReference": "1234547839012345",
            "amount": "1234.56",
            "currencyCode": "USD",
            "tokenAuthenticationValue": "ABC3434334343556677487312567",
            "verificationResultCode": "PASS",
            "version": "120"
          }
        ]
Note: Applicable for PAYMENTCARD form of payment.

In the Request

Optional

Parameter: CreateBookingRequest.travelers.phones

Type: Array

Description: Lists all phone numbers associated with the traveler.

Sample Value:

"phones": [
        {
          "number": "1-555-123-4567",
          "label": "M"
        }
      ]

Resolved Issues

In the Request

Optional

Description: DE211540: Fixing bug in CreateBooking logic - incorrect segment numeration when ARNK segments are included in the booking.

In the Response

Optional

Description: DE212274: Fixing bug in GetBooking response to return proper details about passenger type code (age information instead of generic code, e.g.: C04 instead of CNN), under GetBookingResponse.travelers.passengerCode.

In the Response

Optional

Description: DE213068: Fixing bug in GetBooking response to return missing fare rules under GetBookingResponse.fareRules for INF passenger, once the booking is ticketed.


  • CreateBooking will start supporting booking ancillaries. Initial implementation covers the air extras booking process for ATPCO flights. You can now assign selected ancillaries to a particular traveler, in a single request.
  • CreateBooking will support sending special service requests (SSR). This is another functionality further improving the trip experience – you can notify the airline about traveler’s preferences/additional information in an easy way.
  • GetBooking will start returning additional fare data obtained from Price Quote (PQ) details. Now it is possible to check the status of the fare, flight association, brand details and much more.
  • GetBooking will allow obtaining information about booked ancillaries. More to come with the next releases.
  • GetBooking will start returning information about SSRs present in the booking in a cohesive form.
  • CancelBooking/VoidFlightTickets/RefundFlightTickets will run corresponding ticket related operations for the customers with AUTO-END functionality activated on the PCC level.

API Information

Format
JSON
Endpoint
/v1/trip/orders/
Current Version
1.8
Environment
Production

What's New

  • CreateBooking will start supporting booking ancillaries. Initial implementation covers the air extras booking process for ATPCO flights. You can now assign selected ancillaries to a particular traveler, in a single request.
  • CreateBooking will support sending special service requests (SSR). This is another functionality further improving the trip experience – you can notify the airline about traveler’s preferences/additional information in an easy way.
  • GetBooking will start returning additional fare data obtained from Price Quote (PQ) details. Now it is possible to check the status of the fare, flight association, brand details and much more.
  • GetBooking will allow obtaining information about booked ancillaries. More to come with the next releases.
  • GetBooking will start returning information about SSRs present in the booking in a cohesive form.
  • CancelBooking/VoidFlightTickets/RefundFlightTickets will run corresponding ticket related operations for the customers with AUTO-END functionality activated on the PCC level.

Business Value

  • Ancillaries and SSRs were integrated into CreateBooking and GetBooking. New capabilities will allow communicating with the airlines and pass/receive information about trip details, requirements, or enhancements.
  • Additional details for air fares were added to further support pricing data analysis.
  • Implemented AUTO-END functionality verification helps execute void/refund operations in a predictable manner.

New Features

In the Request

Optional

Parameter: CreateBookingRequest.travelers.specialServices

Type: array

Description: Lists special services for a traveler.

Sample Value:

"specialServices": [
{
        "code": "XBAG",
        "message": "PREPAID",
        "flightIndices": [
            1
        ]
    }
]

In the Request

Optional

Parameter: CreateBookingRequest.travelers.ancillaries

Type: array

Description: Contains details of an ancillary services to be booked.

Sample Value:

"ancillaries": [
        {
          "commercialName": "1ST ADDITIONAL BAG",
          "reasonForIssuance": "BAGGAGE",
          "subcode": "05Z",
          "airlineCode": "AA",
          "source": "ATPCO",
          "electronicMiscellaneousDocumentType": "FLIGHT_COUPON_ASSOCIATED",
          "totalPrice": "150.00",
          "basePrice": "100.00",
          "currencyCode": "USD",
          "numberOfItems": 1,
          "firstTravelDate": "1980-01-01",
          "lastTravelDate": "9999-12-31",
          "purchaseDateTime": "2020-07-07T16:00:00Z",
          "groupCode": "BG",
          "flightIndices": [
            1
          ]
        }
      ]
Note: To ensure a successful booking, pass valid ancillary details returned by the Get Ancillary Offers API.

In the Response

Optional

Parameter: getBookingResponse.specialServices

Type: array

Description: Lists special services for a traveler.

Sample Value:

"specialServices": [
    {
      "travelerIndices": [
        1
      ],
      "flights": [
        {
          "itemId": "12"
        }
      ],
      "code": "WCHR",
      "name": "Wheelchair/Passenger can walk up stairs",
      "message": "/PREPAID",
      "statusCode": "HK",
      "statusName": "Confirmed"
    }
  ]

In the Response

Optional

Parameter: getBookingResponse.travelers.ancillaries

Type: array

Description: Lists details of a ancillary services.

Sample Value:

"ancillaries": [
        {
          "commercialName": "UPTO33LB 15KG BAGGAGE",
          "numberOfItems": 1,
          "reasonForIssuanceCode": "C",
          "reasonForIssuanceName": "BAGGAGE",
          "subcode": "05Z",
          "airlineCode": "EY",
          "source": "ATPCO",
          "electronicMiscellaneousDocumentNumber": "6074333222111",
          "isRefundable": true,
          "isCommissionable": false,
          "flights": [
            {
              "itemId": "12"
            }
          ],
          "statusCode": "HD",
          "statusName": "Confirmed",
          "totals": {
            "subtotal": "100.00",
            "taxes": "8.00",
            "fees": "20.00",
            "total": "128.00",
            "currencyCode": "USD"
          }
        }
     ]

Functional Updates And Enhancements

In the Response

Optional

Parameter: getBookingResponse.fares.fareConstruction.flights

Type: array

Description: Lists flights referenced by flight `itemId`. Multiple flight IDs can be returned for a single fare component. If the fare component is associated with all flights or a different flight itinerary was used to create this fare component (verify `isCurrentItinerary` property), this list is not provided.

Sample Value:

"flights": [
    {
        "itemId": "12"
    }
]

In the Response

Optional

Parameter: getBookingResponse.fares.requestedTravelerType

Type: string

Description: The type code of the traveler requested when pricing the fare.

Sample Value:

"requestedTravelerType": "C08"

In the Response

Optional

Parameter: getBookingResponse.fares.pricingTypeCode

Type: string

Description: The pricing type code of a fare.

Sample Value:

"pricingTypeCode": "M"

In the Response

Optional

Parameter: getBookingResponse.fares.pricingTypeName

Type: string

Description: The pricing type of a fare.

Sample Value:

"pricingTypeName": "Manual"

In the Response

Optional

Parameter: getBookingResponse.fares.pricingStatusCode

Type: string

Description: The status of a fare.

Sample Value:

"pricingStatusCode": "A"

In the Response

Optional

Parameter: getBookingResponse.fares.pricingStatusName

Type: string

Description: The status of a fare.

Sample Value:

"pricingStatusName": "Active"

In the Response

Optional

Parameter: getBookingResponse.fares.recordTypeCode

Type: string

Description: The code describing the source of the fare.

Sample Value:

"recordTypeCode": "PQ"

In the Response

Optional

Parameter: getBookingResponse.fares.recordTypeName

Type: string

Description: The name describing the source of the fare.

Sample Value:

"recordTypeName": "Price Quote"

In the Response

Optional

Parameter: getBookingResponse.fares.fareConstruction.checkedBaggageAllowance

Type: object

Description: Contains the allowed baggage number which is included in the ticket price.

Sample Value:

"checkedBaggageAllowance": {
    "maximumPieces": 1,
    "totalWeightInPounds": 50,
    "totalWeightInKilograms": 23,
    "baggagePieces": [{
            "maximumSizeInInches": 46,
            "maximumSizeInCentimeters": 118,
            "maximumWeightInPounds": 50,
            "maximumWeightInKilograms": 23,
            "numberOfPieces": 1,
            "specialItemDescription": "SKI EQUIPMENT",
            "fee": {
                "amount": "100.00",
                "currencyCode": "USD"
            }
        }
    ]
}

In the Response

Optional

Parameter: getBookingResponse.fares.fareConstruction.brandFareCode

Type: string

Description: The code of the Branded Fare.

Sample Value:

"brandFareCode": "ECOFLEX"

In the Response

Optional

Parameter: getBookingResponse.fares.fareConstruction.brandFareName

Type: string

Description: The name of the Branded Fare.

Sample Value:

"brandFareName": "ECO FLEX"

In the Response

Optional

Parameter: getBookingResponse.fares.fareConstruction.brandProgramCode

Type: string

Description: The code of the program the Branded Fare belongs to.

Sample Value:

"brandProgramCode": "CFFLH"

In the Response

Optional

Parameter: getBookingResponse.fares.fareConstruction.brandProgramName

Type: string

Description: The name of the program the Branded Fare belongs to.

Sample Value:

"brandProgramName": "LH BRANDED FARES INTERCONT"

In the Response

Optional

Parameter: getBookingResponse.fares.pricedTravelerType

Type: string

Description: The type code of the traveler requested when pricing the fare.

Sample Value:

"pricedTravelerType": "C08"

In the Response

Optional

Parameter: getBookingResponse.fares.recordId

Type: string

Description: The id of a given source of the fare.

Sample Value:

"recordId": "12"

In the Response

Optional

Parameter: getBookingResponse.fares.fareConstruction.isCurrentItinerary

Type: boolean

Description: If true, fare component was created for the flight present in the current itinerary. If false, the fare component relates to a flight, which is not anymore part of the current itinerary. This may be the case, for example after schedule changes.

Sample Value:

"isCurrentItinerary": "true"

In the Response

Optional

Parameter: getBookingResponse.hotels.numberOfGuests

Type: integer

Description: The number of guests.

Sample Value:

"numberOfGuests": "1"

In the Response

Optional

Parameter: getBookingResponse.hotels.leadTravelerIndex

Type: integer

Description: Specifies the lead traveler from the travelers list to whom the hotel booking is associated.

Sample Value:

"leadTravelerIndex": "1"

In the Response

Optional

Parameter: CancelBookingResponse.voidedTickets

Type: array

Description: Successfully voided ticket list.

Sample Value:

"voidedTickets": [
    "0017544536141"
  ]

In the Response

Optional

Parameter: CancelBookingResponse.refundedTickets

Type: array

Description: Successfully refunded ticket list.

Sample Value:

"refundedTickets": [
    "0017544536141"
  ]

In the Response

Optional

Parameter: VoidTicketsResponse.voidedTickets

Type: array

Description: Successfully voided ticket list.

Sample Value:

"voidedTickets": [
    "0017544536141"
  ]

In the Response

Optional

Parameter: RefundTicketsResponse.refundedTickets

Type: array

Description: Successfully refunded ticket list.

Sample Value:

"refundedTickets": [
    "0017544536141"
  ]

Resolved Issues

In the Request

Optional

Description: DE200410: Pattern correction for ticketing printers to allow using 1R and 1T codes (settlement methods for Russia).

In the Response

Optional

Description: DE207661: Adding additional information in GetBooking response under GetBookingResponse.payments.flightCurrentTotals property, which contains a sum of charges only for issued tickets – voided, refunded/exchanged items are not taken into consideration.

In the Request

Optional

Description: DE200951: VoidFlightTickets request validation, preventing from specifying multiple printer types under single printer address object.

In the Response

Optional

Description: DE206825: Fixing bug in GetBooking response to return information about identity document status, under GetBookingResponse.flights.identityDocuments.status.


  • CreateBooking will start support for hotels. By adding a hotel object to your createBookingRequest you will be able to add a hotel to your booking with just one API call. The object is normalized and supports all content types, including Sabre's Content Services for Lodging.
  • For all those who asked for more details on fares - We have you covered now! GetBooking will return details for fares based on price quotes for ATPCO bookings or based on the NDC orders. More to come with the next releases.

API Information

Format
JSON
Endpoint
/v1/trip/orders/
Current Version
1.7
Environment
Production

What's New

  • CreateBooking will start support for hotels. By adding a hotel object to your createBookingRequest you will be able to add a hotel to your booking with just one API call. The object is normalized and supports all content types, including Sabre's Content Services for Lodging.
  • For all those who asked for more details on fares - We have you covered now! GetBooking will return details for fares based on price quotes for ATPCO bookings or based on the NDC orders. More to come with the next releases.

Business Value

  • Hotels were integrated into the seamless workflow for createBooking. It was never easier to book a hotel using an API.
  • Details for air fares were added to support you with analyzing the pricing data or optimizing you back-office workflows.

New Features

In the Request

Optional

Parameter: CreateBookingRequest.hotel

Type: object

Description: The object allows to add a hotel to your createBooking-request. This works across the different content types for hotels in Sabre.

Sample Value:

  "hotel": {
    "useCsl": true,
    "bookingKey": "d9e73f0d-5f90-4b43-9c86-2d88a732604f",
    "corporateDiscountCode": 6878700,
    "rooms": [
      {
        "isSmoking": false,
        "bedTypeCode": 3,
        "physicalDisabilityCode": 3,
        "roomExtras": [
          {
            "roomExtraType": 26,
            "quantity": 1,
            "amount": "100.00"
          }
        ],
        "travelerIndices": [
          1
        ]
      }
    ],
    "specialInstruction": "Need a wi-fi in the room.",
    "paymentPolicy": "DEPOSIT",
    "formOfPayment": 1
  }

In the Response

Optional

Parameter: getBookingResponse.fares

Type: Array

Description: This new array lists fare information based on active price quotes in the booking.

Sample Value:

        {
            "creationDetails": {
                "creationUserSine": "AWX",
                "creationDate": "2021-05-20",
                "creationTime": "02:35",
                "userWorkPcc": "G7RE",
                "userHomePcc": "G7RE"
            },
            "airlineCode": "EY",
            "fareCalculationLine": "HAM EY X/AMS Q23.65EY AUH Q HAMAUH195.14 1075.06EY X/AMS Q23.65EY HAM Q AUHHAM195.14 1075.06Q HAMHAM3.00NUC2590.70END ROE0.845527",
            "isNegotiatedFare": false,
            "travelerIndices": [
                2
            ],
            "fareConstruction": [
                {
                    "fareBasisCode": "YLF2DE",
                    "baseRate": {
                        "amount": "1075.06",
                        "currencyCode": "NUC"
                    }
                },
                {
                    "fareBasisCode": "YLF2DE",
                    "baseRate": {
                        "amount": "1075.06",
                        "currencyCode": "NUC"
                    }
                }
            ],
            "taxBreakdown": [
                {
                    "taxCode": "YQ",
                    "taxAmount": {
                        "amount": "100.00",
                        "currencyCode": "USD"
                    }
                },
                {
                    "taxCode": "DE",
                    "taxAmount": {
                        "amount": "7.30",
                        "currencyCode": "USD"
                    }
                },
                {
                    "taxCode": "RA",
                    "taxAmount": {
                        "amount": "13.00",
                        "currencyCode": "USD"
                    }
                },
                {
                    "taxCode": "OY",
                    "taxAmount": {
                        "amount": "39.80",
                        "currencyCode": "USD"
                    }
                },
                {
                    "taxCode": "CJ",
                    "taxAmount": {
                        "amount": "17.40",
                        "currencyCode": "USD"
                    }
                },
                {
                    "taxCode": "RN",
                    "taxAmount": {
                        "amount": "18.20",
                        "currencyCode": "USD"
                    }
                },
                {
                    "taxCode": "AE",
                    "taxAmount": {
                        "amount": "20.40",
                        "currencyCode": "USD"
                    }
                },
                {
                    "taxCode": "TP",
                    "taxAmount": {
                        "amount": "1.40",
                        "currencyCode": "USD"
                    }
                },
                {
                    "taxCode": "ZR",
                    "taxAmount": {
                        "amount": "2.80",
                        "currencyCode": "USD"
                    }
                },
                {
                    "taxCode": "F6",
                    "taxAmount": {
                        "amount": "9.50",
                        "currencyCode": "USD"
                    }
                }
            ],
            "totals": {
                "subtotal": "2674.00",
                "taxes": "229.80",
                "total": "2903.80",
                "currencyCode": "USD"
            }
        }
    ]
Note: Fares are returned based on price quotes for ATPCO Booking or based on the order details for an NDC Booking.

Functional Updates And Enhancements

In the Response

Optional

Parameter: getBookingResponse.flightTickets.ticketingPcc

Type: string

Description: The field returns the Pseudo City Code (PCC) where the ticket was issued. This will help you to keep track of your ticketing workflows.

Sample Value:

"ticketingPcc": "AB12"

In the Request

Optional

Parameter: getBookingRequest.returnOnly

Type: string

Description: The return only value "FARES" was added. Once applied to a request it ensures that you receive all fares details available for the given booking.

Sample Value:

"returnOnly": ["FARES"]

In the Request

Optional

Parameter: getBookingRequest.returnOnly

Type: string

Description: The return only value "CREATION_DETAILS" was added. This option will return data in the context of booking creation. For example user data and time stamp.

Sample Value:

"returnOnly": ["CREATION_DETAILS"]

In the Response

Optional

Parameter: getBookingResponse.flights.identityDocuments

Type: array

Description: The new array will return all identityDocuments applicable for a given flight. This will include the status. The documents can be linked the the identityDocuments under travelers using the itemId.

Sample Value:

      "identityDocuments": [
        {
          "itemId": "T2zMo3MZuQny8lc7jbejvKdGMdUxTy/cEuT+a9MiUDeRQpQIGdYdH7Glwy1GlY53faZ55jWGCwrKyWxjJFzuNg==",
          "status": "Confirmed"
        }
      ]
Note: ItemId is a unique identifier to easily link the same documents from flights.identityDocuments with travelers.identityDocuments.

In the Response

Optional

Parameter: createBookingResponse.errors

Type: n/a

Description: The error message related to addition of an identity document

Sample Value:

UNABLE_TO_ADD_SPECIAL_SERVICE
Note: previously the error type was: UNABLE_TO_ADD_IDENTITY_DOCUMENT

Resolved Issues

In the Request

Optional

Description: DE196925: No detailed info for incorrect request [getBooking]

In the Request

Optional

Description: DE196924: No clear warning for incorrect returnOnly values [getBooking]

In the Response

Optional

Description: DE196151: Ticket Details not returned when at least one TKT_ElectronicDocumentServices is an error [getBooking]

In the Request/Response

Optional

Description: DE194833: void-/refundFlightTickets with confirmationId fails to create tickets list [voidFlightTickets/refundFlightTickets]

In the Response

Optional

Description: DE194830: invalid fareRules Error returned [getBooking]

In the Response

Optional

Description: DE198226: fareRules Error returned when using returnOnly [getBooking]

In the Response

Optional

Description: DE196845: Wrong travelerIndices in fareOffers section for split PNR's [getBooking]


  • GetBooking will return additional data for the creation of the booking. This will include the sine of the user who created it, creation date & time, the PCC the booking was created in, the PCC the creating user is coming from, and the prime host ID.
  • GetBooking will start returning structured data about Other Service Information (OSI). The information provided will include the airline, chain (hotels) or vendor (cars, trains, cruises) codes, and the service message. Optionally, the traveler index can also be returned.
  • CreateBooking will support sending other service information (OSI).
  • CreateBooking will allow filtering the profiles by ID.
  • CreateBooking will now automatically send infant traveler SSRs to the airline.
  • CheckFlightTickets will start supporting requests by confirmationId. This allows you to check all ATPCO-Tickets of a reservation and check the refund or void option of a NDC Order.
  • CancelBooking will support voids or refunds for NDC orders. Simply provide the offerItemId to the request and we take care of the rest.

API Information

Format
JSON
Endpoint
/v1/trip/orders/
Current Version
1.6
Environment
Production

What's New

  • GetBooking will return additional data for the creation of the booking. This will include the sine of the user who created it, creation date & time, the PCC the booking was created in, the PCC the creating user is coming from, and the prime host ID.
  • GetBooking will start returning structured data about Other Service Information (OSI). The information provided will include the airline, chain (hotels) or vendor (cars, trains, cruises) codes, and the service message. Optionally, the traveler index can also be returned.
  • CreateBooking will support sending other service information (OSI).
  • CreateBooking will allow filtering the profiles by ID.
  • CreateBooking will now automatically send infant traveler SSRs to the airline.
  • CheckFlightTickets will start supporting requests by confirmationId. This allows you to check all ATPCO-Tickets of a reservation and check the refund or void option of a NDC Order.
  • CancelBooking will support voids or refunds for NDC orders. Simply provide the offerItemId to the request and we take care of the rest.

Business Value

  • Full integration of void and refund in cancelBooking across ATCPO and NDC content.
  • Support for other service information in createBooking and getBooking.
  • CreateBooking will now automatically send infant traveler SSRs to the airline.

New Features

In the Request

Optional

Parameter: CreateBookingRequest.profiles.filterId

Type: string

Description: Profile Filters

Sample Value:

"filterId": "112676753"

In the Request

Optional

Parameter: CreateBookingRequest.travelers.emails

Type: Array

Description: Associate a list of email addresses to a traveler.

Sample Value:

"emails": [
        "john@smith.family.priv"
      ]

In the Request

Optional

Parameter: CreateBookingRequest.otherServices

Type: Array

Description: Contains Other Service Information (OSI) sent to an airline.

Sample Value:

  "otherServices": [
    {
      "airlineCode": "AA",
      "chainCode": "BY",
      "vendorCode": "ZE",
      "travelerIndex": 1,
      "serviceMessage": "/CX-J674A0957C0"
    }
  ]

In the Response

Optional

Parameter: GetBookingResponse.creationDetails

Type: Object

Description: Contains details about the creation of a booking.

Sample Value:

  "creationDetails": {
    "creationUserSine": "A12",
    "creationDate": "2021-01-09",
    "creationTime": "15:00",
    "userWorkPcc": "AB12",
    "userHomePcc": "CD34",
    "primeHostId": "1S"
  },

In the Response

Optional

Parameter: GetBookingResponse.otherServices

Type: Array

Description: Contains Other Service Information (OSI) sent to an airline.

Sample Value:

  "otherServices": [
    {
      "airlineCode": "AA",
      "chainCode": "BY",
      "vendorCode": "ZE",
      "travelerIndex": 1,
      "serviceMessage": "/CX-J674A0957C0"
    }
  ]

In the Request

Optional

Parameter: CancelBookingRequest.offerItemId

Type: String

Description: Offer ID referencing the cancel option for a NDC order. This ID must be applied when cancelling an order to receive a refund or void.

Sample Value:

"offerItemId": "cb7778589bcbklg7tkkp8sdo50"

In the Request

Optional

Parameter: CheckFlightTicketsRequest.confirmationId

Type: String

Description: The booking reference ID as shown in the source supplier/vendor system. For `SABRE`, this is the PNR Locator value.

Sample Value:

"confirmationId": "GLEBNY"

In the Request

Optional

Parameter: VoidFlightTicketsRequest.confirmationId

Type: String

Description: The booking reference ID as shown in the source supplier/vendor system. For `SABRE`, this is the PNR Locator value.

Sample Value:

"confirmationId": "GLEBNY"

In the Request

Optional

Parameter: RefundFlightTicketsRequest.confirmationId

Type: String

Description: The booking reference ID as shown in the source supplier/vendor system. For `SABRE`, this is the PNR Locator value.

Sample Value:

"confirmationId": "GLEBNY"

Functional Updates And Enhancements

In the Request

Optional

Parameter: CreateBookingRequest.profiles

Type: Object

Description: Additional filtering options for profile selection.

Sample Value:

  "profiles": [
    {
      "profileName": "TESTPROFILE",
      "profileTypeCode": "TVL",
      "uniqueId": "ABC123",
      "domainId": "G7HE",
      "filterId": "112676753"
    }
  ]

In the Request

Optional

Parameter: CreateBookingRequest.otherServices

Type: Array

Description: Possibility to send other service information (OSI) to an airline.

Sample Value:

  "otherServices": [
    {
      "airlineCode": "AA",
      "chainCode": "BY",
      "vendorCode": "ZE",
      "travelerIndex": 1,
      "serviceMessage": "/CX-J674A0957C0"
    }
  ]

In the Request

Optional

Parameter: CreateBookingRequest.travelers.emails

Type: Array

Description: Lists emails associated to a traveler.

Sample Value:

      "emails": [
        "john@smith.family.priv"
      ]

In the Request

Optional

Parameter: getBookingRequest.returnOnly

Type: Array

Description: Additional returnOnly option "OTHER_SERVICES" to return only other service information (OSI)

Sample Value:

{
  "confirmationId": "ABCDEF",
  "returnOnly": ["OTHER_SERVICES"]
}

In the Response

Optional

Parameter: GetBookingResponse.otherServices

Type: Array

Description: Lists other service information (OSI)

Sample Value:

  "otherServices": [
    {
      "airlineCode": "AA",
      "travelerIndex": 1,
      "serviceMessage": "TEST OSI MESSAGE"
    },
    {
      "chainCode": "BY",
      "serviceMessage": "/CX-J674A0957C0"
    },
    {
      "vendorCode": "ZE",
      "serviceMessage": "/CX-J674A0957C0"
    }
  ]

In the Response

Optional

Parameter: GetBookingResponse.creationDetails

Type: Object

Description: Provides information about the creation of the booking.

Sample Value:

  "creationDetails": {
    "creationUserSine": "A12",
    "creationDate": "2021-01-09",
    "creationTime": "15:00",
    "userWorkPcc": "AB12",
    "userHomePcc": "CD34",
    "primeHostId": "1S"
  }

In the Response

Optional

Parameter: GetBookingResponse.futureTicketingPolicy

Type: Object

Description: Contains ticketing instructions for a booking.

Sample Value:

  "futureTicketingPolicy": {
    "ticketingPcc": "AB12",
    "queueNumber": "55",
    "ticketingDate": "2019-07-09",
    "ticketingTime": "11:00",
    "comment": "TICKET BEFORE TUES"
  }

In the Request

Optional

Parameter: CancelBookingRequest.flightTicketOperation

Type: String

Description: New option "REFUND" to cancel the booking and refund all tickets.

Sample Value:

"flightTicketOperation": "REFUND"

In the Request

Optional

Parameter: CancelBookingRequest.designatePrinters.

Type: Array

Description: Additional printer designation options were added: hard copy printer, ticket printer and invoice&itinerary printer

Sample Value:

  "designatePrinters": [
    {
      "hardcopy": {
        "address": "EF34GH",
        "spacing": "1"
      },
      "invoiceItinerary": "AB12CD",
      "ticket": {
        "address": "EF34GH",
        "countryCode": "RU"
      }
    }
  ]

In the Request

Optional

Parameter: CancelBookingRequest.offerItemId

Type: String

Description: The offerItemId allows to define action on NDC tickets. Use checkFlightTickets to obtain the possible refund or void offers, including the offerItemId.

Sample Value:

"offerItemId": "cb7778589bcbklg7tkkp8sdo50"

In the Request

Optional

Parameter: CheckFlightTicketsRequest.confirmationId

Type: String

Description: Use the confirmationId to verify refund and void options for the entire booking. This will check the entire list ATPCO tickets in a PNR or the NDC Order.

Sample Value:

"confirmationId": "GLEBNY"

In the Request

Optional

Parameter: RefundFlighTicketsRequest.confirmationId

Type: String

Description: Use the confirmationId to refund the entire list ATPCO tickets in a PNR.

Sample Value:

"confirmationId": "GLEBNY"
Note: Not supported for NDC Orders.

In the Request

Optional

Parameter: VoidFlightTicketsRequest.confirmationId

Type: String

Description: Use the confirmationId to void the entire list ATPCO tickets in a PNR.

Sample Value:

"confirmationId": "GLEBNY"
Note: Not supported for NDC Orders.

Resolved Issues

In the Request

Optional

Description: DE191705: voidFlightTickets with confirmationId returns tickets array in request

In the Request

Optional

Description: DE193728: cancelBooking with Sabre Order Id fails

In the Response

Optional

Description: DE193144: Baggage allowance showing in itinerary when there is no PQ in reservation

In the Request

Optional

Description: DE193727: cancelBooking with offerItemId fails [NDC]

In the Request

Optional

Description: DE192788: cancelBooking Cannot deserialize value of type `ReturnOnlyEnum` from String

In the Response

Optional

Description: DE190631: CONTEXT_CHANGE_PROBLEM when using targetPcc


  • createBooking - New method for booking various content.
  • checkFlightTickets - New method to verify voidability and refundability for flight tickets.
  • refundFlightTickets - New method to refund flight tickets incl. the option to apply refund qualifiers.
  • Post Processing Options - Send and email or place the booking on one or more queues after transaction finished.
  • Printer Designation - Apply a printer profile for a void or refund transaction.

API Information

Format
JSON
Endpoint
/v1/trip/orders/
Current Version
1.5
Environment
Production

What's New

  • createBooking - New method for booking various content.
  • checkFlightTickets - New method to verify voidability and refundability for flight tickets.
  • refundFlightTickets - New method to refund flight tickets incl. the option to apply refund qualifiers.
  • Post Processing Options - Send and email or place the booking on one or more queues after transaction finished.
  • Printer Designation - Apply a printer profile for a void or refund transaction.

Business Value

  • Create Booking is used to book various Sabre content within a single API call. It creates either a Sabre order or a Sabre PNR.
  • Check and Refund Flight Tickets are used to refund tickets with a two-step process. These methods return options to refund or void a ticket (including refundable amounts).
  • Added post-processing options are used to place a PNR on one or more queues, or to send an email after the transaction finished.
  • Support for printer profiles allows the designation of a printer using a printer profile number.

New Features

In the Response

Optional

Parameter: getBooking returns seat array for NDC flights

Type: array

Description: Row and column for a seat location

Sample Value:

"seats": [
        {
          "number": "13A"
        }
      ],

Functional Updates And Enhancements

In the Request

Optional

Parameter: Printer Designation

Type: array

Description: Providing the applicable printer profile number will designate the associated printer(s) during the transaction. Printer(s) will be undesignated at the end of the flow.

Sample Value:

  "designatePrinters": [
    {
      "printerProfileNumber": 1
    }
  ]

In the Request

Optional

Parameter: Queue Placement

Type: array

Description: Place the PNR on up to three (3) queues after the transaction finishes. Additionally, PCC, PIC, and queue place date can be specified.

Sample Value:

    "queuePlacement": [
      {
        "queueNumber": 400,
        "queueName": "HENRY",
        "pcc": "G7RE",
        "prefatoryInstructionCode": 11,
        "futureQueuePlacementDate": "2019-07-09"
      }
    ]
Note: This cannot be combined with notifications.email.

In the Request

Optional

Parameter: Email

Type: string

Description: Send an email with a predefined template to the email address(es) in the PNR.

Sample Value:

"email": "INVOICE",
Note: This cannot be combined with notifications.queuePlacement.

In the Response

Required

Parameter: Support for ARUNK-Segments

Type: string

Description: Get Booking will return a special type, "ARNK", for ARUNK segments under allSegments.

Sample Value:

    "allSegments": [
        {
            "id": "8",
            "type": "FLIGHT",
            "text": "2",
            "vendorCode": "EY",
            "startDate": "2021-05-10",
            "startTime": "11:20:00",
            "startLocationCode": "FRA",
            "endDate": "2021-05-10",
            "endTime": "19:40:00",
            "endLocationCode": "AUH"
        },
        {
            "id": "9",
            "type": "ARNK"
        }
    ],

Resolved Issues

In the Response

Required

Description: DE188896: ticketStatus doesn't match couponStatus

In the Response

Required

Description: DE188764: cancelBooking unable to finish due to EET Error

In the Response

Optional

Description: DE188524: Duplicate fareRules Warning returned when ticket is voided/refunded/exchanged

In the Response

Required

Description: DE188440: getBooking with "returnOnly": ["TICKETS"] does not return flightCoupons and returns warning for fareRules

In the Response

Optional

Description: DE187807: getBooking returns flightCoupons without itemId for PNR without flights (cancelled)

In the Response

Optional

Description: DE187800: getBooking returns warnings regarding fareRules for PNR without flights (cancelled)

In the Response

Optional

Description: DE187795: Incorrect Price Quote filtering leads to fareRules error

In the Response

Required

Description: DE187129: incorrect validating carrier applied to structuredFareRulesRQ

In the Response

Optional

Description: DE186806: incorrect passenger type count sent to structured fare rules

In the Response

Required

Description: DE186902: getBooking with "returnOnly": ["TICKETS"] does not return tickets

In the Request

Required

Description: DE186774: Missing validation for too long ticket number in VoidTicketRQ

In the Response

Optional

Description: DE186747: Post Processing: Send queuePlaceRQ with multiple queues

In the Response

Required

Description: DE185951: flighTotals.total not returned for unticketed NDC Order

In the Request/Response

Optional

Description: DE185847: messageContext not populated for Ticketing service

In the Request

Required

Description: DE185629: cancelBooking: Invalid entry for flightTicketOperation doesn't stop the flow

In the Response

Optional

Description: DE185327: missing FareRules warning created incorrectly

In the Response

Required

Description: DE185017: missing fareRules warning lacks in singular/plural consistency

In the Request/Response

Required

Description: DE185014: Cancel of ATPCO segment in mixed NDC/ATPCO Order fails due to EnhancedEndTransaction Warning

In the Response

Required

Description: DE184773: flightTotals for not ticketed NDC order missing

In the Response

Optional

Description: DE184566: Inconsistent Error for Partial Cancel of NDC content

In the Response

Optional

Description: DE183115: no message Context Created for cancelBooking & void Ticket


  • Additional details were added for hotels, cars and trains. Payment details per segment are returned now.
  • hotelTotals returns information about fees included in the payment now.
  • With this version the service starts returning information about identity documents based on Special Service Requests (SSR) for flights.
  • Application will now return loyalty program information per traveler.
  • CancelBooking and cancelFlightTickets supports AUTO-E setup now.
  • CancelBooking and cancelFlightTickets allow now a custom value for the "receive from" field.

API Information

Format
JSON
Endpoint
/v1/trip/orders/getBooking | /v1/trip/orders/cancelFlightTickets | /v1/trip/orders/cancelBooking
Current Version
1.4
Environment
Production

What's New

  • Additional details were added for hotels, cars and trains. Payment details per segment are returned now.
  • hotelTotals returns information about fees included in the payment now.
  • With this version the service starts returning information about identity documents based on Special Service Requests (SSR) for flights.
  • Application will now return loyalty program information per traveler.
  • CancelBooking and cancelFlightTickets supports AUTO-E setup now.
  • CancelBooking and cancelFlightTickets allow now a custom value for the "receive from" field.

Business Value

  • The addition of loyalty programs and identity documents in getBooking mark the first step in supporting special service requests for flights.

New Features

In the Response

Optional

Parameter: identityDocuments

Type: array

Description: This feature will list all identity documents for a given traveler providing detailed information about each document.

Sample Value:

"identityDocuments": [
{
"documentNumber": "1122334455AAZZ",
"documentType": "PASSPORT",
"expiryDate": "2022-09-30",
"issuingCountryCode": "EN",
"givenName": "GEORGE",
"surname": "ORWELL",
"birthDate": "1986-04-26",
"gender": "MALE",
"isPrimaryDocumentHolder": false
}
]
Note: Depending on the document type different fields will be returned.

In the Response

Optional

Parameter: loyaltyPrograms

Type: array

Description: The feature will list loyalty programs such a frequent flyer numbers for each traveler.

Sample Value:

"loyaltyPrograms": [
{
"supplierCode": "BA",
"programNumber": "11223344",
"tierLevel": 3,
"receiverCode": "AA"
}
]
Note: Currently only frequent flyer programs are supported.

In the Request

Optional

Parameter: receivedFrom

Type: string

Description: CancelBooking and cancelFlightTickets will allow you to customize the value for the receivedFrom field.

Sample Value:

{
    "confirmationId": "UOZEUN",
    "retrieveBooking": true,
    "receivedFrom": "MY RECEIVER NAME",
    "cancelAll": false,
    "errorHandlingPolicy": "HALT_ON_ERROR",
    "flights": [
        {
            "itemId": 12
        }
    ]
}

Functional Updates And Enhancements

In the Request

Optional

Parameter: cancelBookingRQ.receivedFrom

Type: string

Description: Used to identify the entity that authorized the changes in a passenger name record.

Sample Value:

"receivedFrom": "Booking Management API Test"
Note: If the field is not part of the request the default value will be applied.

In the Response

Optional

Parameter: getBookingRS.hotels.payment.taxes

Type: string

Description: Returns the sum of taxes for a given hotel payment.

Sample Value:

"taxes": "8.00"

In the Response

Optional

Parameter: getBookingRS.hotels.payment.subtotal

Type: string

Description: Returns the amount before taxes for a given hotel payment.

Sample Value:

"subtotal": "120.00"

In the Response

Optional

Parameter: getBookingRS.hotels.payment.fees

Type: string

Description: Returns the sum of fees for a given hotel payment.

Sample Value:

"fees": "12.50"

In the Response

Optional

Parameter: getBookingRS.hotels.payment.total

Type: string

Description: Returns the total amount for a given hotel payment.

Sample Value:

"total": "125.63"

In the Response

Optional

Parameter: getBookingRS.payments.hoteltotals.fees

Type: string

Description: Returns the sum of fees for all hotel payment.

Sample Value:

"fees": "36.30"

In the Response

Optional

Parameter: getBookingRS.trains.payment.currencyCode

Type: string

Description: Returns the three letters ISO 4217 Currency Code for a given train payment.

Sample Value:

"currencyCode": "USD"

In the Response

Optional

Parameter: getBookingRS.trains.payment.total

Type: string

Description: Returns the total amount for a given train payment.

Sample Value:

"total": "43.00"

In the Response

Optional

Parameter: getBookingRS.hotels.payment.currencyCode

Type: string

Description: Returns the three letters ISO 4217 Currency Code for a given hotel payment.

Sample Value:

"currencyCode": "USD"

In the Response

Optional

Parameter: getBookingRS.cars.payment.subtotal

Type: string

Description: Returns the amount before taxes of a given car payment.

Sample Value:

"subtotal": "150.00"

In the Response

Optional

Parameter: getBookingRS.cars.payment.total

Type: string

Description: Returns the total amount for a given car payment.

Sample Value:

"total": 185.30"

In the Response

Optional

Parameter: getBookingRS.cars.payment.currencyCode

Type: string

Description: Returns the three letters ISO 4217 Currency Code for a given car payment.

Sample Value:

"currencyCode": "USD"

In the Response

Optional

Parameter: getBookingRS.cars.payment.taxes

Type: string

Description: Returns the sum of taxes for a given car payment.

Sample Value:

"taxes": "15.99"

In the Response

Optional

Parameter: getBookingRS.travelers.identityDocuments.documentNumber

Type: string

Description: Returns the unique identifier for a document.

Sample Value:

"documentNumber": "CC90IBE2020"

In the Response

Optional

Parameter: getBookingRS.travelers.identityDocuments.documentType

Type: string

Description: Returns the type of document.

Sample Value:

"documentType": "VISA"

In the Response

Optional

Parameter: getBookingRS.travelers.identityDocuments.expiryDate

Type: string

Description: The expiration date of the identity document.

Sample Value:

"expiryDate": "2024-07-09"

In the Response

Optional

Parameter: getBookingRS.travelers.identityDocuments.issuingCountryCode

Type: string

Description: The ISO code of the country issuing the passenger document.

Sample Value:

"issuingCountryCode": "FR"

In the Response

Optional

Parameter: getBookingRS.travelers.identityDocuments.residenceCountryCode

Type: string

Description: The ISO code of the residing country or nationality country.

Sample Value:

"residenceCountryCode": "DE"

In the Response

Optional

Parameter: getBookingRS.travelers.identityDocuments.placeOfIssue

Type: string

Description: The name of the place where the document was issued.

Sample Value:

"placeOfIssue": "ROME"

In the Response

Optional

Parameter: getBookingRS.travelers.identityDocuments.placeOfBirth

Type: string

Description: The place of birth.

Sample Value:

"placeOfBirth": "MINSK"

In the Response

Optional

Parameter: getBookingRS.travelers.identityDocuments.hostCountryCode

Type: string

Description: The ISO country code where the document is valid.

Sample Value:

"hostCountryCode": "US"

In the Response

Optional

Parameter: getBookingRS.travelers.identityDocuments.issueDate

Type: string

Description: The issue date of the identity document.

Sample Value:

"issueDate": "2019-07-09"

In the Response

Optional

Parameter: getBookingRS.travelers.identityDocuments.givenName

Type: string

Description: The traveler's first name.

Sample Value:

"givenName": "John"

In the Response

Optional

Parameter: getBookingRS.travelers.identityDocuments.middleName

Type: string

Description: The traveler's middle name.

Sample Value:

"middleName": "Jack"

In the Response

Optional

Parameter: getBookingRS.travelers.identityDocuments.surname

Type: string

Description: The traveler's last name.

Sample Value:

"surname": "Orwell"

In the Response

Optional

Parameter: getBookingRS.travelers.identityDocuments.birthDate

Type: string

Sample Value:

"birthDate": "1980-12-02"

In the Response

Optional

Parameter: getBookingRS.travelers.identityDocuments.gender

Type: string

Description: The gender of the individual.

Sample Value:

"gender": "MALE"

In the Response

Optional

Parameter: getBookingRS.travelers.identityDocuments.isPrimaryDocumentHolder

Type: boolean

Description: If 'true' it indicates the primary passport holder when the document is issued for multiple travelers.

Sample Value:

"isPrimaryDocumentHolder": true

In the Response

Optional

Parameter: getBookingRS.travelers.identityDocuments.residenceDestinationAddress.street

Type: string

Description: The street name and house number accompanied with the number of apartments/unit/suite, if applicable.

Sample Value:

"street": "1230 Ellen Ave, apt 10"

In the Response

Optional

Parameter: getBookingRS.travelers.identityDocuments.residenceDestinationAddress.city

Type: string

Description: The name of the city.

Sample Value:

"city": "Dallas"

In the Response

Optional

Parameter: getBookingRS.travelers.identityDocuments.residenceDestinationAddress.stateProvince

Type: string

Description: The name or code of the state or province.

Sample Value:

"stateProvince": "TX"

In the Response

Optional

Parameter: getBookingRS.travelers.identityDocuments.residenceDestinationAddress.postalCode

Type: string

Description: The zip or postal code.

Sample Value:

"postalCode": "75063"

In the Response

Optional

Parameter: getBookingRS.travelers.loyaltyProgram.supplierCode

Type: string

Description: The two-letter code that issued the number such as IATA airline code.

Sample Value:

"supplierCode": "BA"

In the Response

Optional

Parameter: getBookingRS.travelers.loyaltyProgram.programNumber

Type: string

Description: Traveler membership number for loyalty program such as frequent flyer number.

Sample Value:

"programNumber": "987654321"

In the Response

Optional

Parameter: getBookingRS.travelers.loyaltyProgram.tierLevel

Type: integer

Description: The level that the traveler reached within the loyalty program.

Sample Value:

"tierLevel": 3

In the Response

Optional

Parameter: getBookingRS.travelers.loyaltyProgram.receiverCode

Type: string

Description: The two-letter receiver code, such as IATA airline code.

Sample Value:

"receiverCode": "UA"

Resolved Issues

In the Response

Optional

Description: [GetBooking] DE179517: fareRules: Incorrect Passenger Code Filtering

In the Request

Optional

Description: [CancelFlightTickets] DE181034: TKT_GetElectronicDocument fails when document number exceeds 13 digits

In the Response

Optional

Description: [GetBooking] DE181137: missing fareRules/No fareRules Error

In the Response

Optional

Description: [GetBooking] DE181922: Exception while processing --> Text '11FEB08' could not be parsed at index

In the Response

Optional

Description: [GetBooking] DE182391: fareRules not populated for Multi-Passenger-One-Way Itinerary

In the Response

Optional

Description: [GetBooking] DE182381: fareRules can not be populated for Multiple-One-Ways Itinerary

In the Response

Optional

Description: [GetBooking] DE182400: For not-ticketed PNR flightTotals should not be returned if there is no flight present

In the Response

Optional

Description: [GetBooking] DE182282: fareRules can not be populated for Open-Jaw Itinerary

In the Response

Optional

Description: [GetBooking] DE182875: travelers section sometimes does not contain passengerCode

In the Response

Optional

Description: [GetBooking] DE182876: payments total incorrect when 2 PQs have the same price

In the Response

Optional

Description: [GetBooking] DE183250: flightTotals.subtotal missing if no EquivalentFare present

In the Response

Optional

Description: [GetBooking] DE183382: fareRules for ticketed PNR duplicated for same passengerType & Origin-Destination-Option


  • Additional information was added to the GetBooking endpoint for the car element; it now provides more details about the rate code, vehicle type, and vendor contact information.

API Information

Format
JSON
Endpoint
/v1/trip/orders/getBooking /v1/trip/orders/cancelFlightTickets /v1/trip/orders/cancelBooking
Current Version
1.3
Environment
Production

What's New

  • Additional information was added to the GetBooking endpoint for the car element; it now provides more details about the rate code, vehicle type, and vendor contact information.

Business Value

  • Extensions in GetBooking now provide more information for car bookings.

Functional Updates And Enhancements

In the Response

Optional

Parameter: getBookingRS.cars.pickUpContactInfo

Type: list

Description: Contains contact information for the pickup location.

Sample Value:

{
                "phones": [
                    "866-434-1111"
                ]
            }

In the Response

Optional

Parameter: getBookingRS.cars.dropOffContactInfo

Type: reference

Description: Contains contact information for the drop-off location.

Sample Value:

{
                "phones": [
                    "866-434-1111"
                ]
            }

In the Response

Optional

Parameter: getBookingRS.cars.vehicleTypeCode

Type: string

Description: The 4 character [ACRISS](https://www.acriss.org/car-codes/) code of the car.

Sample Value:

"vehicleTypeCode": "C"

In the Response

Optional

Parameter: getBookingRS.cars.vehicleTypeName

Type: string

Description: The name of the car type based on the second character of the [ACRISS](https://www.acriss.org/car-codes/) code.

Sample Value:

"vehicleTypeName": "Two/Four Door"

In the Response

Optional

Parameter: getBookingRS.cars.rateCode

Type: string

Description: The unique ID for an offer at a given vendor.

Sample Value:

"rateCode": "RCUD1"

In the Response

Optional

Parameter: getBookingRS.cars.distanceAllowance

Type: string

Description: The included distance in the car rental booking.

Sample Value:

"distanceAllowance": "UNL"

In the Response

Optional

Parameter: getBookingRS.cars.guaranteePaymentNote

Type: string

Description: The payment information provided to the vendor to guarantee the booking. Returned when structured data is not available.

Sample Value:

"guaranteePaymentNote": "GVI4XXXXXXXXXXX1111EXP 12 24-MONSTER"

In the Response

Optional

Parameter: getBookingRS.cars.specialInstructions

Type: string

Description: The special information provided to the vendor.

Sample Value:

"specialInstructions": "NON-SMOKING CAR PLEASE"

In the Response

Optional

Parameter: getBookingRS.hotels.refundPenaltyPolicyCode

Type: string

Description: The penalty code of a cancellation in the context of legacy GDS hotel content.

Sample Value:

"refundPenaltyPolicyCode": "01D"

In the Response

Optional

Parameter: getBookingRS.hotels.guaranteePaymentNote

Type: string

Description: Provides information regarding the guarantee provided for the legacy GDS hotel content.

Sample Value:

"guaranteePaymentNote": "GVI4XXXXXXXXXXX1111EXP 01 25-HOTEL"

Resolved Issues

In the Response

Optional

Description: DE177488: Empty travelers.address.freeText should not be returned.

In the Response

Optional

Description: DE176306: No warning returned for missing fareRules/fareOffers.

In the Response

Optional

Description: DE177573: travelerIindex not populated for flightTickets.

In the Response

Optional

Description: DE178133: getBooking should not return empty arrays for flightOffers.

In the Response

Optional

Description: DE178178: cars.pickUpContactInfo should not return null values for faxes and emergencyPhones.

In the Response

Required

Description: DE178964: Missing Seat info for TravelerIndex 1 doesn't return empty array.

In the Response

Required

Description: DE178964: Missing Seat info for TravelerIndex 1 doesn't return empty array.


  • A new method CancelFlightTickets has been introduced to the Booking Management API.
  • For GetBooking additional information was added to the hotel element providing more details about vendor, room and fulfillment details.
  • The construction of fareRules for GetBooking has been enhanced. This was done for both scenarios: Saved price quotes and issued tickets. Logic for different passenger type as well as more complex origin-destination-options has also been enhanced.

API Information

Format
JSON
Endpoint
/v1/trip/orders/getBooking /v1/trip/orders/cancelFlightTickets /v1/trip/orders/cancelBooking
Current Version
1.2
Environment
Production

What's New

  • A new method CancelFlightTickets has been introduced to the Booking Management API.
  • For GetBooking additional information was added to the hotel element providing more details about vendor, room and fulfillment details.
  • The construction of fareRules for GetBooking has been enhanced. This was done for both scenarios: Saved price quotes and issued tickets. Logic for different passenger type as well as more complex origin-destination-options has also been enhanced.

Business Value

  • The introduction of Cancel Flight Tickets simplifies the voiding of electronic documents for ATPCO content. Instead of handling a complex sequence of API calls this service orchestrates multiple services in one call. This includes a recovery strategy in case of failure, handling of multiple documents, performing the action in a different PCC than the home PCC and update of the reservation.

New Features

In the Request

Required

Parameter: cancelFlightTicketsRQ.tickets

Type: array

Description: Lists 13-digit electronic document numbers for tickets or EMDs which should be voided.

Sample Value:

{
  "tickets": [
    "0011234567890",
    "0011234567891
  ]
}
Note: Currently we support up to 12 documents in one call.

Functional Updates And Enhancements

In the Response

Optional

Parameter: getBookingRS.cruises.cruiseStatusCode

Type: string

Description: We're returning status code and name for cruises now.

Sample Value:

"cruises": [
        {
            "itemId": "7",
            "vendorCode": "VI",
            "fromPortCode": "MIA",
            "toPortCode": "SJU",
            "departureDate": "2020-09-30",
            "departureTime": "16:00:00",
            "numberOfGuests": 2,
            "cruiseStatusCode": "GK",
            "cruiseStatusName": "Confirmed"
        }
    ],
Note: CruiseStatusName is returned based on the cruiseStatusCode.

In the Response

Optional

Parameter: getBookingRS.agencyCustomerNumber

Type: string

Description: The new field agencyCustomerNumber contains the DK Number.

Sample Value:

{
    "agencyCustomerNumber": "SABRE1",
    "flightTickets": [
        {
            "number": "0721237616987",
            "date": "2020-08-07",
            "travelerIndex": 1,
            "flightCoupons": [
                {
                    "itemId": "9",
                    "couponStatus": "Not Flown",
                    "couponStatusCode": "I"
                }
            ],
            "payment": {
                "subtotal": "444.00",
                "taxes": "74.50",
                "total": "518.50",
                "currencyCode": "USD"
            },
            "ticketStatusName": "Issued",
            "ticketStatusCode": "TE"
        }
    ],
    "request": {
        "confirmationId": "XYZABC",
        "returnOnly": [
            "TICKETS"
        ]
    }
}
Note: The agencyCustomerNumber will be returned for all returnOnly options.

In the Response

Optional

Parameter: getBookingRS.hotels.propertyId

Type: string

Description: The field will provide you with the unique property Id of each hotel.

Sample Value:

"propertyId": "52007"

In the Response

Optional

Parameter: getBookingRS.hotels.chainCode

Type: string

Description: The field returns the hotel chain code.

Sample Value:

"chainCode": "KC"

In the Response

Optional

Parameter: getBookingRS.hotels.chainName

Type: string

Description: This field provides the hotel chain name.

Sample Value:

"chainName": "KIMPTON HOTELS"

In the Response

Optional

Parameter: getBookingRS.hotels.guaranteeTypeCode

Type: int

Description: The field returns the code of the form of payment used to guarantee the booking.

Sample Value:

"guaranteeTypeCode": 5
Note: The form of payment codes follow OTA standard.

In the Response

Optional

Parameter: getBookingRS.hotels.guaranteeTypeName

Type: string

Description: The field returns the name of the form of payment used to guarantee of the booking.

Sample Value:

"guaranteeTypeName": "CREDIT CARD"
Note: The form of payment names follow OTA standard.

In the Response

Optional

Parameter: getBookingRS.hotels.specialInstructions

Type: string

Description: This field returns additional information provided to the property when booking, e.g. special preferences.

Sample Value:

"specialInstructions": "Upper floor please"

In the Response

Optional

Parameter: getBookingRS.hotels.room.roomTypeCode

Type: string

Description: The field returns the room type code applied by the vendor.

Sample Value:

"roomTypeCode": "1DN"

In the Response

Optional

Parameter: getBookingRS.hotels.room.roomRate

Type: Object

Description: This object will return amount and currency code of the applied rate per night before taxes.

Sample Value:

"amount": "46.60",
"currencyCode": "USD"

Resolved Issues

In the Response

Optional

Description: Incorrect ticketStatusCode and ticketStatusName when timestamps are overlapping.

In the Request

Optional

Description: GraphQL: Invalid input for Enum 'FlightStatusNameEnum'

In the Response

Optional

Description: Hotel refundPenalties Incorrectly display in Get Booking Response


  • A new feature is introduced for CancelBooking, which allows you to cancel a booking and void the corresponding tickets or EMD's in one call by specifying the flightTicketOperation "VOID" in the request.
  • GetBooking contains information regarding the baggage policy per flight and traveler. Now in addition, enhancements for hotel and ticket status is introduced.

API Information

Format
JSON
Endpoint
/v1/trip/orders
Current Version
1.1
Environment
Production

What's New

  • A new feature is introduced for CancelBooking, which allows you to cancel a booking and void the corresponding tickets or EMD's in one call by specifying the flightTicketOperation "VOID" in the request.
  • GetBooking contains information regarding the baggage policy per flight and traveler. Now in addition, enhancements for hotel and ticket status is introduced.

Business Value

  • Version 1.1 brings additional value to the Booking Management API by combining segment and ticket handling for CancelBooking, where customers had to perform multiple steps to void tickets or EMD's and then cancel the segments. It's just one call for everything now.
  • User will have full details about baggage allowance and related charges with the introduction of fareOffers section.

New Features

In the Request

Optional

Parameter: flightTicketOperation

Type: string

Description: Defines the operation applied to the electronic documents in the booking. If not used, only segments will be cancelled and the electronic documents remain untouched. Currently there is no support for the NDC Orders.

Sample Value:

{
    "confirmationId": "ABCDEF",
    "retrieveBooking": false,
    "cancelAll": true,
    "flightTicketOperation": "VOID",
    "errorHandlingPolicy": "ALLOW_PARTIAL_CANCEL"
}
Note: Currently, only the flightTicketOperation "VOID" is supported. Support for refunds is on our roadmap.

In the Response

Optional

Parameter: fareOffers

Type: list

Description: Lists ancillary offers for selected flights identified by itemId flight references.

Sample Value:

{
    "fareOffers": [
        {
            "travelerIndices": [
                1
            ],
            "flights": [
                {
                    "itemId": "7"
                }
            ],
            "cabinBaggageAllowance": {
                "maximumPieces": 1,
                "totalWeightInKilograms": 7
            },
            "checkedBaggageAllowance": {
                "totalWeightInKilograms": 30
            },
            "checkedBaggageCharges": [
                {
                    "maximumWeightInPounds": 33,
                    "maximumWeightInKilograms": 15,
                    "numberOfPieces": 1,
                    "fee": {
                        "amount": "399.00",
                        "currencyCode": "USD"
                    }
                },
                {
                    "maximumWeightInPounds": 44,
                    "maximumWeightInKilograms": 20,
                    "numberOfPieces": 1,
                    "fee": {
                        "amount": "528.00",
                        "currencyCode": "USD"
                    }
                },
                {
                    "maximumWeightInPounds": 55,
                    "maximumWeightInKilograms": 25,
                    "numberOfPieces": 1,
                    "fee": {
                        "amount": "656.00",
                        "currencyCode": "USD"
                    }
                },
                {
                    "maximumWeightInPounds": 66,
                    "maximumWeightInKilograms": 30,
                    "numberOfPieces": 1,
                    "fee": {
                        "amount": "785.00",
                        "currencyCode": "USD"
                    }
                },
                {
                    "maximumWeightInPounds": 77,
                    "maximumWeightInKilograms": 35,
                    "numberOfPieces": 1,
                    "fee": {
                        "amount": "912.00",
                        "currencyCode": "USD"
                    }
                },
                {
                    "maximumWeightInPounds": 11,
                    "maximumWeightInKilograms": 5,
                    "numberOfPieces": 1,
                    "fee": {
                        "amount": "143.00",
                        "currencyCode": "USD"
                    }
                },
                {
                    "maximumWeightInPounds": 22,
                    "maximumWeightInKilograms": 10,
                    "numberOfPieces": 1,
                    "fee": {
                        "amount": "272.00",
                        "currencyCode": "USD"
                    }
                },
                {
                    "numberOfPieces": 1,
                    "specialItemDescription": "WEIGHT SYSTEM CHARGE",
                    "fee": {
                        "amount": "30.00",
                        "currencyCode": "USD"
                    }
                },
                {
                    "numberOfPieces": 1,
                    "specialItemDescription": "ASSISTIVE DEVICES 2",
                    "fee": {
                        "amount": "42.00",
                        "currencyCode": "AUD"
                    }
                }
            ]
        }
    ],
    "request": {
        "confirmationId": "RIGDDB",
        "returnOnly": [
            "BAGGAGE_POLICY"
        ]
    }
}
Note: The source of this information is Get Ancillary Offers API.

Functional Updates And Enhancements

In the Response

Optional

Parameter: US917209: Add Status Info to Hotel

Type: string

Description: For hotels, the hotelStatusCode and hotelStatusName are supported now.

Sample Value:

{
    "startDate": "2020-11-03",
    "endDate": "2020-11-04",
    "hotels": [
        {
            "itemId": "15",
            "confirmationId": "ABC123",
            "hotelName": "WINDSOR GUEST HOUSE",
            "address": {
                "street": "325 WEST 11TH AVENUE",
                "city": "VANCOUVER",
                "postalCode": "V5Y1T3",
                "countryCode": "CA"
            },
            "checkInDate": "2020-11-03",
            "checkInTime": "00:00",
            "checkOutDate": "2020-11-04",
            "checkOutTime": "00:00",
            "room": {
                "roomType": "Basic Double Room with Shared Bathroom - Breakfast included in the price - Genius Business - Booking.com rate",
                "quantity": 1,
                "description": "Basic Double Room with Shared Bathroom - Breakfast included in the price - Genius Business - Booking.com rate"
            },
            "isRefundable": false,
            "hotelStatusCode": "HK",
            "hotelStatusName": "Confirmed"
        }
    ],
    "request": {
        "confirmationId": "JMRIPG",
        "returnOnly": [
            "HOTELS"
        ]
    }
}
Note: Only the current status will be reflected.

In the Response

Optional

Parameter: US933173: Add Ticket Status to flightTickets

Type: string

Description: For each flightTicket the ticketStatusName and ticketStatusCode will be returned. Currently, three ticketStatusNames are supported: Issued, Voided, Exchanged/Refunded. The coupons status is not taken into consideration for definition of ticket status.

Sample Value:

{
    "flightTickets": [
        {
            "number": "6071234567890",
            "date": "2020-07-03",
            "travelerIndex": 1,
            "flightCoupons": [
                {
                    "itemId": "7",
                    "couponStatus": "Not Flown",
                    "couponStatusCode": "I"
                }
            ],
            "payment": {
                "subtotal": "1347.00",
                "taxes": "238.70",
                "total": "1585.70",
                "currencyCode": "USD"
            },
            "ticketStatusName": "Issued",
            "ticketStatusCode": "TE"
        }
    ],
    "request": {
        "confirmationId": "ABCDEF",
        "returnOnly": [
            "TICKETS"
        ]
    }
}
Note: Only the current status will be reflected.

Resolved Issues

In the Response

Required

Description:

In the Response

Required

Description: DE168797: GetBooking - Missing Travel Index for Infant Ticket

In the Response

Required

Description: DE168912: CancelBooking - Missing EndTransaction when calling with ATK Token

In the Response

Required

Description: DE169025: GetBooking - Inconsistency in the response regarding Flights

In the Response

Required

Description: DE169026: GetBooking - Duplicate Flight Ticket Numbers

In the Response

Required

Description: DE169553: CancelBooking - null value in CSL_CANCEL_PROBLEM error description

In the Response

Required

Description: DE170028: GetBooking - returnOnly "TICKETS" not returning flightTickets

In the Response

Required

Description: DE170031: GetBooking - Invalid returnOnly option returns INTERNAL_SERVER_ERROR

In the Response

Required

Description: DE170222: GetBooking - returnOnly "PAYMENTS" doesn't return Payments

In the Response

Required

Description: DE171600: GetBooking - Not latest TicketDetails used for ticketStatus


  • This initial release of the Booking Management API introduces two methods: GetBooking and CancelBooking.

API Information

Format
JSON
Endpoint
/v1/trip/orders
Current Version
1
Environment
Production

What's New

  • This initial release of the Booking Management API introduces two methods: GetBooking and CancelBooking.

Business Value

  • 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.