v1.17 | April 5, 2023
- 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.
- 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
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.
- 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.
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:
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
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
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
DE260663: Cancel Booking bug fixed, preventing processing ticketing operation (void/refund) for NDC bookings.
In the Request
Optional
DE261390: Create Booking issue fixed. Phone numbers containing the "+" sign are now processed correctly.
In the Request
Optional
DE261478: Create Booking bug fixed, affecting pricing of requests containing both a brand code and a specific fare code.
In the Response
Optional
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
Create Booking issue fixed. The `travelerIndex` property is no longer required for the OSI special services.
Relase note ID: 18307
v1.16 | February 21, 2023
- 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).
- 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
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).
- 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.
- 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.
- Timestamp details added to BM API responses improve troubleshooting of potential customer issues by helping locate the API call within internal logging applications.
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"
}
]Note:
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"Note:
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).
Resolved Issues
In the Request
Optional
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
DE258285: Get Booking issue fixed, in which the leading zero was missing from the payment card expiry date.
Relase note ID: 17964
v1.15 | September 30, 2022
- Get Booking and Create Booking now support additional gender type codes (UI and XI) for identity document special services (DOCO).
- Get Booking will now return form of payment information for an expanded list of cash and check entries.
- Group booking logic was enhanced in the Get Booking method. The traveler’s association is now determined by the means of an additional `isGrouped` boolean value.
- Model improvements – property patterns were updated to reflect additional customer requirements and/or system limitations.
API Information
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 will now return form of payment information for an expanded list of cash and check entries.
- Group booking logic was enhanced in the Get Booking method. The traveler’s association is now determined by the means of an additional `isGrouped` boolean value.
- 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) was implemented with additional logic to automatically determine proper code usage based on the traveler’s age and type.
- Additional logic was 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 will now return additional information regarding group bookings. You can now verify a traveler’s assignation to a group by checking the `isGrouped` property value.
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:
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.
Resolved Issues
In the Request
Optional
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
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
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
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
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
DE245090: Excluded past date segments from the cancellation logic in the Cancel Booking method.
In the Request
Optional
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.
Relase note ID: 17544
v1.14 | July 12, 2022
- 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
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"
}
]Note:
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"
}
]Note:
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"
}
]Note:
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
}Note:
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"
}Note:
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
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
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
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
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
DE237243: Fixing bug in the GetBooking method with flight details mapping to the downline PO_PNRPricingRQ (flight numbers with leading “0”).
Relase note ID: 17346
v1.13 | May 26, 2022
- A new method Modify Booking (BETA) has been released. Visit the dedicated Modify Booking method page to find out more about it.
- 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
What's New
- A new method Modify Booking (BETA) has been released. Visit the dedicated Modify Booking method page to find out more about it.
- 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 of this new method are described under the URL: https://developer.sabre.com/docs/rest_apis/trip/orders/booking_management_beta
- 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"
}
]Note:
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
US1315254: Adding a more descriptive error message for a scenario where duplicated traveler name is specified in the CreateBooking method.
In the Request
Optional
US1319730: Adding a more descriptive error message for a scenario where frequent flyer data and traveler name do not match.
In the Request
Optional
DE223803: Fixing bug in CreateBooking request with incorrect element order during pricing operation containing baggage allowance and branded fares.
In the Request
Optional
DE224502: Fixing bug in CreateBooking request with ARNK segment counting logic.
In the Request
Optional
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
DE230222: Fixing bug in CreateBooking request with incorrect fax format used for Virtual Card payments.
In the Response
Optional
DE231525: Fixing bug in Get Booking method with flight association logic for scenarios that contain an open ticket.
Relase note ID: 17220
v1.12 | March 31, 2022
- 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
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"
}
}
]Note:
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
]
}
]Note:
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"
}
}Note:
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
}
]Note:
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
}
}
}
]Note:
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"
}Note:
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
US1335214: Adding support for the infant tickets containing “INF” string prefix in the CancelBooking and VoidFlightTIckets methods.
Relase note ID: 17035
v1.11 | February 1, 2022
- 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
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"
}
]
}Note:
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"
}
]
}Note:
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"
}
]
}Note:
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"
}
]
}Note:
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"
}
]
}Note:
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"
}
]
}Note:
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"
}
]
}Note:
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
]
}Note:
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
}
]Note:
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"
}
]Note:
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"
}
]Note:
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"
}
]Note:
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"
]Note:
In the Request
Optional
- Parameter: RefundTicketsRequest.tickets.number
-
Type: string
Description: The electronic document number of the ticket that needs to be refunded.
Sample Value:
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"
}
]Note:
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"
}
]Note:
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"
}
]
}
]Note:
Resolved Issues
In the Request
Optional
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
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
DE222193: Fixing bug in CreateBooking request preventing proper usage of FOID SSRs assigned to infant traveler.
In the Request
Optional
DE222412: Fixing bug in CreateBooking request with automated SSR handling for ITF traveler type.
In the Request
Optional
DE222415: Fixing bug in CreateBooking method with missing birth date validation for infant travelers.
In the Response
Optional
DE219716: Fixing bug in GetBooking response with incorrect location code (with “@” character) sent to downline service to obtain location details.
In the Response
Optional
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
DE220636: Fixing bug in GetBooking response regarding missing extended location codes in `allsegments` property.
In the Response
Optional
DE221127: Fixing bug in GetBooking response regarding incorrect journeys logic for roundtrip flights occurring in a short period of time.
In the Response
Optional
DE222631: Fixing bug in GetBooking method with incorrect usage of downline PO_PNRPricingRQ for LATAM (LA) bookings.
Relase note ID: 16795
v1.10 | December 6, 2021
- 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
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"
},Note:
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"
},Note:
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"
},Note:
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"
},Note:
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
},Note:
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
DE216212: Fixing bug in GetBooking response with incorrect flight association in fare component information for hybrid bookings (NDC + ATPCO).
In the Response
Optional
DE218361: Fixing bug in GetBooking response to return missing ancillary offers when returnOnly option was specified in the request.
In the Response
Optional
DE218514: Fixing bug in GetBooking response to return missing DOCS SSRs.
In the Response
Optional
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
DE217199: Fixing bug in GetBooking response with missing mapping for extended location codes applied to the car booking.
Relase note ID: 16673
v1.9 | October 18, 2021
- 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
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
}Note:
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"
}
]Note:
Resolved Issues
In the Request
Optional
DE211540: Fixing bug in CreateBooking logic - incorrect segment numeration when ARNK segments are included in the booking.
In the Response
Optional
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
DE213068: Fixing bug in GetBooking response to return missing fare rules under GetBookingResponse.fareRules for INF passenger, once the booking is ticketed.
Relase note ID: 16637
v1.8 | August 31, 2021
- 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
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
]
}
]Note:
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"
}
]Note:
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"
}
}
]Note:
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"
}
]Note:
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"Note:
In the Response
Optional
- Parameter: getBookingResponse.fares.pricingTypeCode
-
Type: string
Description: The pricing type code of a fare.
Sample Value:
"pricingTypeCode": "M"Note:
In the Response
Optional
- Parameter: getBookingResponse.fares.pricingTypeName
-
Type: string
Description: The pricing type of a fare.
Sample Value:
"pricingTypeName": "Manual"Note:
In the Response
Optional
- Parameter: getBookingResponse.fares.pricingStatusCode
-
Type: string
Description: The status of a fare.
Sample Value:
"pricingStatusCode": "A"Note:
In the Response
Optional
- Parameter: getBookingResponse.fares.pricingStatusName
-
Type: string
Description: The status of a fare.
Sample Value:
"pricingStatusName": "Active"Note:
In the Response
Optional
- Parameter: getBookingResponse.fares.recordTypeCode
-
Type: string
Description: The code describing the source of the fare.
Sample Value:
"recordTypeCode": "PQ"Note:
In the Response
Optional
- Parameter: getBookingResponse.fares.recordTypeName
-
Type: string
Description: The name describing the source of the fare.
Sample Value:
"recordTypeName": "Price Quote"Note:
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"
}
}
]
}Note:
In the Response
Optional
- Parameter: getBookingResponse.fares.fareConstruction.brandFareCode
-
Type: string
Description: The code of the Branded Fare.
Sample Value:
"brandFareCode": "ECOFLEX"Note:
In the Response
Optional
- Parameter: getBookingResponse.fares.fareConstruction.brandFareName
-
Type: string
Description: The name of the Branded Fare.
Sample Value:
"brandFareName": "ECO FLEX"Note:
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"Note:
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"Note:
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"Note:
In the Response
Optional
- Parameter: getBookingResponse.fares.recordId
-
Type: string
Description: The id of a given source of the fare.
Sample Value:
"recordId": "12"Note:
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"Note:
In the Response
Optional
- Parameter: getBookingResponse.hotels.numberOfGuests
-
Type: integer
Description: The number of guests.
Sample Value:
"numberOfGuests": "1"Note:
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"Note:
In the Response
Optional
- Parameter: CancelBookingResponse.voidedTickets
-
Type: array
Description: Successfully voided ticket list.
Sample Value:
"voidedTickets": [
"0017544536141"
]Note:
In the Response
Optional
- Parameter: CancelBookingResponse.refundedTickets
-
Type: array
Description: Successfully refunded ticket list.
Sample Value:
"refundedTickets": [
"0017544536141"
]Note:
In the Response
Optional
- Parameter: VoidTicketsResponse.voidedTickets
-
Type: array
Description: Successfully voided ticket list.
Sample Value:
"voidedTickets": [
"0017544536141"
]Note:
In the Response
Optional
- Parameter: RefundTicketsResponse.refundedTickets
-
Type: array
Description: Successfully refunded ticket list.
Sample Value:
"refundedTickets": [
"0017544536141"
]Note:
Resolved Issues
In the Request
Optional
DE200410: Pattern correction for ticketing printers to allow using 1R and 1T codes (settlement methods for Russia).
In the Response
Optional
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
DE200951: VoidFlightTickets request validation, preventing from specifying multiple printer types under single printer address object.
In the Response
Optional
DE206825: Fixing bug in GetBooking response to return information about identity document status, under GetBookingResponse.flights.identityDocuments.status.
Relase note ID: 16445
v1.7 | June 4, 2021
- 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
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
}Note:
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"Note:
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"]Note:
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"]Note:
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_SERVICENote: previously the error type was: UNABLE_TO_ADD_IDENTITY_DOCUMENT
Resolved Issues
In the Request
Optional
DE196925: No detailed info for incorrect request [getBooking]
In the Request
Optional
DE196924: No clear warning for incorrect returnOnly values [getBooking]
In the Response
Optional
DE196151: Ticket Details not returned when at least one TKT_ElectronicDocumentServices is an error [getBooking]
In the Request/Response
Optional
DE194833: void-/refundFlightTickets with confirmationId fails to create tickets list [voidFlightTickets/refundFlightTickets]
In the Response
Optional
DE194830: invalid fareRules Error returned [getBooking]
In the Response
Optional
DE198226: fareRules Error returned when using returnOnly [getBooking]
In the Response
Optional
DE196845: Wrong travelerIndices in fareOffers section for split PNR's [getBooking]
Relase note ID: 16267
v1.6 | April 7, 2021
- 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
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"Note:
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"
]Note:
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"
}
]Note:
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"
},Note:
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"
}
]Note:
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"Note:
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"Note:
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"Note:
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"Note:
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"
}
]Note:
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"
}
]Note:
In the Request
Optional
- Parameter: CreateBookingRequest.travelers.emails
-
Type: Array
Description: Lists emails associated to a traveler.
Sample Value:
"emails": [
"john@smith.family.priv"
]Note:
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"]
}Note:
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"
}
]Note:
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"
}Note:
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"
}Note:
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"Note:
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"
}
}
]Note:
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"Note:
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"Note:
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
DE191705: voidFlightTickets with confirmationId returns tickets array in request
In the Request
Optional
DE193728: cancelBooking with Sabre Order Id fails
In the Response
Optional
DE193144: Baggage allowance showing in itinerary when there is no PQ in reservation
In the Request
Optional
DE193727: cancelBooking with offerItemId fails [NDC]
In the Request
Optional
DE192788: cancelBooking Cannot deserialize value of type `ReturnOnlyEnum` from String
In the Response
Optional
DE190631: CONTEXT_CHANGE_PROBLEM when using targetPcc
Relase note ID: 15802
v1.5 | February 25, 2021
- 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
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"
}
],Note:
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
}
]Note:
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"
}
],Note:
Resolved Issues
In the Response
Required
DE188896: ticketStatus doesn't match couponStatus
In the Response
Required
DE188764: cancelBooking unable to finish due to EET Error
In the Response
Optional
DE188524: Duplicate fareRules Warning returned when ticket is voided/refunded/exchanged
In the Response
Required
DE188440: getBooking with "returnOnly": ["TICKETS"] does not return flightCoupons and returns warning for fareRules
In the Response
Optional
DE187807: getBooking returns flightCoupons without itemId for PNR without flights (cancelled)
In the Response
Optional
DE187800: getBooking returns warnings regarding fareRules for PNR without flights (cancelled)
In the Response
Optional
DE187795: Incorrect Price Quote filtering leads to fareRules error
In the Response
Required
DE187129: incorrect validating carrier applied to structuredFareRulesRQ
In the Response
Optional
DE186806: incorrect passenger type count sent to structured fare rules
In the Response
Required
DE186902: getBooking with "returnOnly": ["TICKETS"] does not return tickets
In the Request
Required
DE186774: Missing validation for too long ticket number in VoidTicketRQ
In the Response
Optional
DE186747: Post Processing: Send queuePlaceRQ with multiple queues
In the Response
Required
DE185951: flighTotals.total not returned for unticketed NDC Order
In the Request/Response
Optional
DE185847: messageContext not populated for Ticketing service
In the Request
Required
DE185629: cancelBooking: Invalid entry for flightTicketOperation doesn't stop the flow
In the Response
Optional
DE185327: missing FareRules warning created incorrectly
In the Response
Required
DE185017: missing fareRules warning lacks in singular/plural consistency
In the Request/Response
Required
DE185014: Cancel of ATPCO segment in mixed NDC/ATPCO Order fails due to EnhancedEndTransaction Warning
In the Response
Required
DE184773: flightTotals for not ticketed NDC order missing
In the Response
Optional
DE184566: Inconsistent Error for Partial Cancel of NDC content
In the Response
Optional
DE183115: no message Context Created for cancelBooking & void Ticket
Relase note ID: 15543
v1.4 | December 3, 2020
- 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
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
}
]
}Note:
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"Note:
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"Note:
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"Note:
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"Note:
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"Note:
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"Note:
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"Note:
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"Note:
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"Note:
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"Note:
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"Note:
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"Note:
In the Response
Optional
- Parameter: getBookingRS.travelers.identityDocuments.documentNumber
-
Type: string
Description: Returns the unique identifier for a document.
Sample Value:
"documentNumber": "CC90IBE2020"Note:
In the Response
Optional
- Parameter: getBookingRS.travelers.identityDocuments.documentType
-
Type: string
Description: Returns the type of document.
Sample Value:
"documentType": "VISA"Note:
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"Note:
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"Note:
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"Note:
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"Note:
In the Response
Optional
- Parameter: getBookingRS.travelers.identityDocuments.placeOfBirth
-
Type: string
Description: The place of birth.
Sample Value:
"placeOfBirth": "MINSK"Note:
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"Note:
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"Note:
In the Response
Optional
- Parameter: getBookingRS.travelers.identityDocuments.givenName
-
Type: string
Description: The traveler's first name.
Sample Value:
"givenName": "John"Note:
In the Response
Optional
- Parameter: getBookingRS.travelers.identityDocuments.middleName
-
Type: string
Description: The traveler's middle name.
Sample Value:
"middleName": "Jack"Note:
In the Response
Optional
- Parameter: getBookingRS.travelers.identityDocuments.surname
-
Type: string
Description: The traveler's last name.
Sample Value:
"surname": "Orwell"Note:
In the Response
Optional
- Parameter: getBookingRS.travelers.identityDocuments.birthDate
-
Type: string
Description:
Sample Value:
"birthDate": "1980-12-02"Note:
In the Response
Optional
- Parameter: getBookingRS.travelers.identityDocuments.gender
-
Type: string
Description: The gender of the individual.
Sample Value:
"gender": "MALE"Note:
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": trueNote:
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"Note:
In the Response
Optional
- Parameter: getBookingRS.travelers.identityDocuments.residenceDestinationAddress.city
-
Type: string
Description: The name of the city.
Sample Value:
"city": "Dallas"Note:
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"Note:
In the Response
Optional
- Parameter: getBookingRS.travelers.identityDocuments.residenceDestinationAddress.postalCode
-
Type: string
Description: The zip or postal code.
Sample Value:
"postalCode": "75063"Note:
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"Note:
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"Note:
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": 3Note:
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"Note:
Resolved Issues
In the Response
Optional
[GetBooking] DE179517: fareRules: Incorrect Passenger Code Filtering
In the Request
Optional
[CancelFlightTickets] DE181034: TKT_GetElectronicDocument fails when document number exceeds 13 digits
In the Response
Optional
[GetBooking] DE181137: missing fareRules/No fareRules Error
In the Response
Optional
[GetBooking] DE181922: Exception while processing --> Text '11FEB08' could not be parsed at index
In the Response
Optional
[GetBooking] DE182391: fareRules not populated for Multi-Passenger-One-Way Itinerary
In the Response
Optional
[GetBooking] DE182381: fareRules can not be populated for Multiple-One-Ways Itinerary
In the Response
Optional
[GetBooking] DE182400: For not-ticketed PNR flightTotals should not be returned if there is no flight present
In the Response
Optional
[GetBooking] DE182282: fareRules can not be populated for Open-Jaw Itinerary
In the Response
Optional
[GetBooking] DE182875: travelers section sometimes does not contain passengerCode
In the Response
Optional
[GetBooking] DE182876: payments total incorrect when 2 PQs have the same price
In the Response
Optional
[GetBooking] DE183250: flightTotals.subtotal missing if no EquivalentFare present
In the Response
Optional
[GetBooking] DE183382: fareRules for ticketed PNR duplicated for same passengerType & Origin-Destination-Option
Relase note ID: 15125
v1.3 | October 15, 2020
- 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
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"
]
}Note:
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"
]
}Note:
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"Note:
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"Note:
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"Note:
In the Response
Optional
- Parameter: getBookingRS.cars.distanceAllowance
-
Type: string
Description: The included distance in the car rental booking.
Sample Value:
"distanceAllowance": "UNL"Note:
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"Note:
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"Note:
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"Note:
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"Note:
Resolved Issues
In the Response
Optional
DE177488: Empty travelers.address.freeText should not be returned.
In the Response
Optional
DE176306: No warning returned for missing fareRules/fareOffers.
In the Response
Optional
DE177573: travelerIindex not populated for flightTickets.
In the Response
Optional
DE178133: getBooking should not return empty arrays for flightOffers.
In the Response
Optional
DE178178: cars.pickUpContactInfo should not return null values for faxes and emergencyPhones.
In the Response
Required
DE178964: Missing Seat info for TravelerIndex 1 doesn't return empty array.
In the Response
Required
DE178964: Missing Seat info for TravelerIndex 1 doesn't return empty array.
Relase note ID: 14780
v1.2 | September 2, 2020
- 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
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"Note:
In the Response
Optional
- Parameter: getBookingRS.hotels.chainCode
-
Type: string
Description: The field returns the hotel chain code.
Sample Value:
"chainCode": "KC"Note:
In the Response
Optional
- Parameter: getBookingRS.hotels.chainName
-
Type: string
Description: This field provides the hotel chain name.
Sample Value:
"chainName": "KIMPTON HOTELS"Note:
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": 5Note: 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"Note:
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"Note:
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"Note:
Resolved Issues
In the Response
Optional
Incorrect ticketStatusCode and ticketStatusName when timestamps are overlapping.
In the Request
Optional
GraphQL: Invalid input for Enum 'FlightStatusNameEnum'
In the Response
Optional
Hotel refundPenalties Incorrectly display in Get Booking Response
Relase note ID: 14363
v1.1 | July 21, 2020
- 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
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
In the Response
Required
DE168797: GetBooking - Missing Travel Index for Infant Ticket
In the Response
Required
DE168912: CancelBooking - Missing EndTransaction when calling with ATK Token
In the Response
Required
DE169025: GetBooking - Inconsistency in the response regarding Flights
In the Response
Required
DE169026: GetBooking - Duplicate Flight Ticket Numbers
In the Response
Required
DE169553: CancelBooking - null value in CSL_CANCEL_PROBLEM error description
In the Response
Required
DE170028: GetBooking - returnOnly "TICKETS" not returning flightTickets
In the Response
Required
DE170031: GetBooking - Invalid returnOnly option returns INTERNAL_SERVER_ERROR
In the Response
Required
DE170222: GetBooking - returnOnly "PAYMENTS" doesn't return Payments
In the Response
Required
DE171600: GetBooking - Not latest TicketDetails used for ticketStatus
Relase note ID: 14354
v1 | April 17, 2020
- This initial release of the Booking Management API introduces two methods: GetBooking and CancelBooking.
API Information
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.
Relase note ID: 14294