Release Notes
Below are release notes for major versions 25.11.x of the Travelport JSON Air APIs. Incremental minor version updates (25.11.x.y) are listed only when they include customer-facing changes. See Archived Release Notes for releases 24.11.x and earlier.
Version numbering uses the following format:
{year of release}.{model and thus major version of release}.{minor version of release}
- Developer Advisories for Upcoming Features
- Developer Toolkit Releases
- General Functionality
- Air Offer (Search and AirPrice)
- Seats and Ancillaries
- AirReservation and AirTicketing
- GDS Exchange APIs
Developer Advisories for Upcoming Features
Travelport has released developer advisories (DAs) for the following upcoming features. DAs are issued for changes that may significantly change code and/or functionality in the JSON APIs. You must sign into My Travelport to see the full DA. Contact your Travelport representative if you have questions about how an upcoming release may affect you. After a feature has been deployed, it moves into the release notes area of this page and is no longer listed in this section.
DA | 26 Sept 2025
No Developer Advisories for breaking changes at this time.
Developer Toolkits
GDS Developer Toolkits 25.11.1 | 12 Jun 2025
Versions 25.11.1 of the GDS full and reference payload developer toolkits are available on Developer Toolkits & Downloads.
General Functionality
Most deployments for both GDS and NDC content are included in one of the API-specific releases detailed below. Cross-API and more general updates are listed here.
NDC Name Normalization | 23 Sep 2025
To avoid a number of issues with NDC bookings, at the Workbench Commit step, this release resolves the traveler names sent with specific standards on the Travelport host system and with NDC carriers. Adds support for the following at Workbench Commit; these changes also are returned in any subsequent Reservation Retrieve:
-
Aligns name prefix and suffix formatting as follows:
-
If the user includes a prefix in the GivenName object, the JSON response removes that prefix and and correctly places it in the Prefix field if not already entered there.
-
If the user includes a suffix in the Surname object, the JSON response removes that suffix and correctly places it in the Suffix object if not already entered there.
-
-
If the carrier truncates the string sent in either the traveler GivenName or Surname:
-
The JSON APIs return the full traveler name as sent in the Add Traveler request.
-
The response includes a warning message that the name has been truncated in the carrier reservation, and returns the truncated name/s as returned by the carrier.
-
Air Offer (Search and AirPrice)
Air Offer 25.11.57: Internal | 3 Sep 2025
Internal updates only.
Air Offer 25.11.56: Remove Price object from NDC offers, Tax/description | 6 Aug 2025
To align with the removal of the Price object from GDS offers in Air Offer 25.11.51.3 (see multi-city offers with stopovers), this release removes the Price object from NDC offers. For all GDS and NDC offers, the Search, Next Leg Search, and Flight Specific Search responses no longer return price details in both Price and BestCombinablePrice, but instead only in BestCombinablePrice. Although multi-city offers with stopovers are not returned for NDC, this change aligns NDC and GDS offer formats. You can opt out of this change by contacting your Travelport representative.
In the AirPrice reference and full payload responses, adds support for returning the description attribute in PriceBreakdown/Taxes/Tax object. Previously returned only for NDC.
Resolves an issue in which leg-based responses for Search and Next Leg Search were returning duplicate GDS offers. Offers with the same flight, brand, and fare basis code are no longer duplicated for GDS. This issue affected only GDS and did not occur for NDC content.
Air Offer 25.11.55.4: Indicator to return penalties | 30 Jul 2025
In the AirPrice full and reference request payloads, adds the new excludePenaltiesInd indicator to set whether to return change and cancel penalties in the response. Send with true if you do not want to return penalty information. Send with false, or do not send, to return penalties in the TermsAndConditionsFullAir object.
Air Offer 25.11.55.2: RouteHappy universal product attributes; removal of quantity for bags in kg | 18 Jul 2025
Adds support for requesting universal product attributes for ATPCO Route Happy amenities. UPAs provide media including icons, photos, and videos. Supported in the Search, Next Leg Search, and Flight Specific Search full and reference payload, and for split ticketing. In the request, adds the Boolean indicator includeUniversalProductAttributesInd to CustomResponseModifiersAir. The request must also send includeFlightAmenitiesInd to request ATPCO RouteHappy data. In the response, for each flight with one or more UPAs available, the new object FlightSegment/universalProductAttributeRefs provides a cross-reference to those UPAs in the format u{x}. The UPAs are returned in the new object ReferenceList/ReferenceListUniversalProductAttribute. UPAs are not returned for direct flights with intermediate stops, non-flight segments such as trains, or for Premium Business class.
Per DA 1064, in the AirPrice reference and full payload responses, the quantity field is no longer returned in GDS content when the checked and carry-on baggage allowances are returned in kilograms (BaggageItem/Measurement/unit = Kilograms). No change for NDC content, which did not previously return quantity when baggage was returned in kilograms.

"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 2,
"Measurement": [
{
"measurementType": "Weight",
"unit": "Kilograms",
"value": 30
}
],
"Text": "CHGS MAY APPLY IF BAGS EXCEED TTL WT ALLOWANCE"
}
],

"BaggageItem": [
{
"@type": "BaggageItem",
"Measurement": [
{
"measurementType": "Weight",
"unit": "Kilograms",
"value": 30
}…
],
"Text": "CHGS MAY APPLY IF BAGS EXCEED TTL WT ALLOWANCE"
}
],
Air Offer 25.11.54 & 55: Internal | 5 Jun & 2 Jul 2025
Internal updates only.
Air Offer 25.11.53: Baggage allowance indicators | 7 May 2025
In all search and price responses, adds baggage indicators to TermsAndConditions/BaggageAllowance/BaggageItem. These indicators make it easier to determine if baggage is included in the price and whether it is determined by piece or by weight. They also normalize baggage allowance details between GDS and NDC. Each instance of BaggageItem returns the following as applicable for the baggage allowance in that set of terms and conditions:
-
includedInOfferPrice: String. Possible values:
-
Yes: Baggage is included in the price.
-
No: Baggage is not included in the price; available for an additional charge.
-
Unknown: Unknown if baggage is included in the price.
-
-
soldByPieceInd: Boolean. Returned only if true. Indicates baggage allowance is by piece, such as one, two, or three pieces.
-
soldByWeightInd: Boolean. Returned only if true. Indicates the baggage is allowed by weight, either kilograms or pounds, such as 50 pounds or 35 kilograms.
Update to model v11.22 required for this feature.

In this example, the first checked bag allowance (baggageType=FirstCheckedBag) is determined by piece (soldByPieceInd=true) instead of weight, and is included in the price (includedInOfferPrice=Yes) subject to the maximum weight and size stated in the Text object.
"BaggageAllowance": [
{
"@type": "BaggageAllowanceDetail",
"url": "http://VIEWTRIP.TRAVELPORT.COM/BAGGAGEPOLICY/AA",
"passengerTypeCodes": [
"ADT"
],
"baggageType": "FirstCheckedBag",
"validatingAirlineCode": "AA",
"ProductRef": [
"p0",
"p1",
"p2"
],
"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 1,
"includedInOfferPrice": "Yes",
"soldByPieceInd": true,
"BaggageFee": {
"code": "HKD",
"approximateInd": true,
"value": 0
},
"Text": "UPTO70LB/32KG AND UPTO62LI/158LCM"
}
],
"SegmentSequenceList": [
1,
2
],
"Text": [
"2P"
]
},
Air Offer 25.11.52.1: ContentSource to indicate GDS/NDC content | 9 Apr 2025
Adds support for returning the new ContentSource object in Offer for all search and price responses to indicate whether the offer/s are from GDS or NDC. Returned in Search, Next Leg Search, Flight Specific Search reference and full payload responses in ProductBrandOffering/ContentSource, and AirPrice reference and full payload responses in OfferID//ContentSource.
Adds support for requesting upsells for NDC content by sending MaxNumberOfUpsellsToReturn in the AirPrice full payload request. NDC only; not supported for GDS.
Air Offer 25.11.52: Internal | 2 Apr 2025
Internal updates only.
Air Offer 25.11.51.3: Multi-city offers with stopovers & removal of Price object | 31 March 2025
For GDS only, in all search responses, adds support for returning multi-city offers with stopovers when available. This enables the return of lower fares and additional itinerary options. Such multi-city offers are identified by CombinabilityCode values using the new format jc, as in jc1, jc2, and so on. As part of this change, instead of returning price details in both Price and BestCombinablePrice, ProductBrandOffering returns pricing only in BestCombinablePrice, and no longer returns the Price object. This applies to all GDS content in all Search, Next Leg Search, and Flight Specific Search responses. Multi-city offers are not returned for split ticketing, although the code update does apply. Multi-city offers with stopovers are not returned for NDC; code changes for NDC to remove the Price object are implemented in Air Offer 25.11.56 per above. You can opt-out of this change by contacting your Travelport representative; if so, multi-city offers with stopovers will not be returned for any content for your PCC, and all offers will continue to return both Price and BestCombinablePrice.
Search (now Air Offer)
Search 24.11.51.2: Remove quantity for baggage in kilograms | 19 Mar 2025
Updates all search responses to no longer return BaggageItem/quantity for baggage allowances in kilograms (BaggageItem/Measurement/unit is returned with the value Kilograms).
Search 25.11.50: Internal | 4 Feb 2025
Internal updates only.
Search 25.11.49: Override validating carrier | 8 Jan 2025
Adds the optional pricing modifier FareSelection/validatingCarrier to send a carrier code to override the default plating carrier. Supported in all search APIs and for split ticketing. GDS only; not supported for NDC.
AirPrice (now Air Offer)
Price 25.11.45: Intermediate stop details | 12 Feb 2024
Updates the AirPrice response to return full details of any intermediate stop in the ReferenceListFlight/Flight/IntermediateStop object. Previously, AirPrice returned only the airport code of the intermediate stop.
Price 25.11.44: Terminal and equipment; age-applicable pricing for NDC | 16 Jan 2024
In the AirPrice reference and full payload responses, adds support for returning the terminal object in both Departure and Arrival when available. When terminal is returned, the @type value for Departure changes from Departure to DepartureDetail, and for Arrival changes from Arrival to ArrivalDetail.
Adds support for returning FlightSegment/equipment In the AirPrice full payload response; previously returned only in the reference payload response.
For the AirPrice reference payload, improves the logic handling for NDC pricing to account for age as well as PTC when age was sent in the preceding Search request, so that any age-specific pricing is applied. No code changes. Applicable only to NDC carrier AF.
AirPrice 25.11.43: Internal | 13 Jan 2025
Internal updates only.
Seats and Ancillaries
Ancillaries 25.11.49: ContentSource for seats and ancillaries (pending) | 4 & 19 Sep 2025
Adds a ContentSource indicator in the Ancillary Shop and Book, and Seat Map and Book, responses to indicate whether the ancillary or seat is sourced from the NDC carrier or from the Travelport GDS. Full deployment is pending release of adding this indicator to the booking responses.
Ancillaries 25.11.46, 47, 48: Internal | 14 & 21 Aug 2025
Internal updates only.
Ancillaries 25.11.45: Carry-on bag indicator | 24 Jul 2025
In the Ancillary Shop response, for carry-on baggage, adds the object BaggageType with the value CarryOn to the Ancillary object; for example, "BaggageType": "CarryOn". BaggageType is not returned for other types of baggage. GDS only; not supported for NDC.
Ancillaries 25.11.42, 43, & 44: Internal | 5 Jun, 26 Jun, & 15 Jul 2025
Internal updates only.
Ancillaries 25.11.41: Error handling | 29 May 2025
Improves error handling and messaging in the Ancillary Book and Seat Book APIs.
Ancillaries 25.11.40: Internal | 15 May 2025
Internal updates only.
Ancillaries 25.11.39: Baggage allowance indicators | 15 May 2025
In the Ancillary Shop response, to normalize baggage data for GDS carriers with data returned in Travelport SOAP/XML API, adds the following new objects; GDS only, not returned for NDC:
-
TermsAndConditions:
-
fulfillmentType
-
associatedItem
-
Refundability
-
validatingAirline
-
-
PriceBreakdown/inclusiveOfTaxInd
-
PriceBreakdown/Commission/application (possible values Non-paying and Commissionable)
-
PriceBreakdown/Description:
-
issuanceReasonCode
-
value
-
In the Ancillary Shop response, adds baggage indicators to note if baggage is included in the price and whether it is determined by piece or by weight. These also normalize baggage allowance details between GDS and NDC. Each instance of CatalogOffering/ProductOptions/Product/Ancillary returns one of the following as applicable for that offer:
-
soldByPieceInd: Boolean. Returned only if true. Indicates baggage allowance is by piece, such as one, two, or three pieces.
-
soldByWeightInd: Boolean. Returned only if true. Indicates the baggage is allowed by weight, either kilograms or pounds, such as 50 pounds or 35 kilograms.
Update to model v11.22 required for this feature.
Ancillaries 25.11.38: Seat Map after Search for NDC | 1 May 2025
Adds support for NDC for requesting seat maps after the Search request, previously supported only for GDS.
Ancillaries 25.11.37: Internal | 24 Apr 2025
Internal updates only.
Ancillaries 24.11.36: Cancel multiple bags, Standalone Seat Map for multiple cabin classes | 13 Feb 2024
Adds support for canceling multiple bags in a single post-commit workbench session. Previously, the workbench had to be committed and another workbench initiated before another ancillary cancel request for baggage could be sent. Canceling seats continues to require a separate workbench for each seat cancel request.
In the Standalone Seat Map request, adds support for requesting multiple cabins with the new SpecificFlightCriteria\additionalCabins object.
Ancillaries 25.11.35: Standalone Seat Map by cabin | 16 Jan 2024
In the Standalone Seat Map request, adds support for sending the optional object cabin in SpecificFlightCriteria to request seat availability by cabin class. GDS only; Standalone Seat Map not supported for NDC.
AirReservation and AirTicketing
AirReservation 25.11.69: Unpriced segments | 26 Sep 2025
Adds support in the Reservation Retrieve response to return unpriced segments for any booking that includes unpriced content. Because an unpriced segment has no price, it is not returned as an offer in the Offer object and does not have Price details. Details are returned in the new UnpricedSegments object. In addition, the Arrival Unknown (ARNK) segment currently returned in Offer is now returned as an unpriced segment.
Update to model v11.22 required for this feature. GDS only; unpriced NDC segments cannot be added to a GDS booking, and unpriced GDS segments cannot be added to NDC content.
Unpriced segments can be added to a booking only through a terminal program; you cannot add them with the JSON APIs.
The following are supported for unpriced segments:
-
Cancel unpriced segments
-
Price multiple or all air segments per passenger
-
Cancel multiple segments or a specific existing price (equivalent of a filed fare in the host system)
-
Add a specific or multiple air segments
-
Process an exchange for an itinerary with multiple tickets and multiple passengers
The following objects are returned in the Reservation Retrieve when a booking has unpriced segment/s:
-
Reservation returns UnpricedSegments with details of the unpriced segment.
-
TravelerProduct returns UnpricedFlightSegmentRefs to list unpriced segment/s for that traveler.
-
Receipt/Confirmation returns UnpricedSegmentsStatus with the status of the air segment.
-
ReservationDisplaySequence returns UnpricedSegmentDisplaySequence to indicate the sequence of the unpriced segment.
If there are no unpriced segments and no ARNK, there is no change to the Reservation Retrieve response.
The following example Reservation Retrieve response includes one priced offer and one unpriced segment. Some objects have been truncated with ... for brevity.

{
"ReservationResponse": {
"@type": "ReservationResponse",
"Reservation": {
"@type": "Reservation",
"Identifier": {
"authority": "Travelport",
"value": "acf49665-28c6-4e93-965f-8479a05782b1"
},
"Offer": [
{
"@type": "Offer",
"id": "offer_1",
"Identifier": {
"authority": "Travelport",
"value": "16e236bc-b209-4dd9-af16-4e70f91d2a34"
},
"ContentSource": "GDS",
"Product": [
{
"@type": "ProductAir",
"id": "product_1",
"Identifier": {
"authority": "Travelport",
"value": "c600a801-1cec-416d-bf62-b69e7b573c01"
},
"FlightSegment": [
{
"@type": "FlightSegment",
"id": "FlightSegment_01",
"sequence": 1,
"Flight": {
"@type": "Flight",
"duration": "PT3H55M",
"carrier": "SQ",
"number": "874",
"equipment": "359",
"id": "Flight_01",
"Identifier": {
"authority": "Travelport",
"value": "b1f5d977-215c-4795-9593-b48e59f09654"
},
"Departure": {
"@type": "Departure",
"location": "SIN",
"date": "2025-05-09",
"time": "07:25:00"
},
"Arrival": {
"@type": "Arrival",
"location": "HKG",
"date": "2025-05-09",
"time": "11:20:00"
}
}
}
],
"PassengerFlight": [
{
"@type": "PassengerFlight",
"passengerQuantity": 1,
"passengerTypeCode": "ADT",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
1
],
"classOfService": "Y",
"cabin": "Economy",
"fareBasisCode": "Y11SGOPO",
"fareType": "AirlinePrivateFare",
"Brand": {
"@type": "Brand",
"name": "ECONOMY FLEXI",
"tier": 4,
"id": "1721314"
}
}
]
}
]
}
],
"Price": {
"@type": "PriceDetail",
"id": "PriceDetail_1",
"CurrencyCode": {
"value": "USD"
},
"Base": 663,
"TotalTaxes": 68.4,
"TotalFees": 0,
"TotalPrice": 731.4,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "SGD"
},
"Base": 892
},
"TravelerRefs": [
"travelerRefId_1"
],
"NetBaseAmount": {
"currencyCode": "SGD",
"decimalPlace": 2,
"value": 892
}
},
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"currencySource": "Charged",
"approximateInd": true,
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 663,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 68.4,
"Tax": [...]
},
"Total": 731.4
},
"Commission": {
"@type": "CommissionAmount",
"Amount": {
"code": "USD",
"minorUnit": 4,
"value": 0
}
},
"FiledAmount": {
"currencyCode": "SGD",
"decimalPlace": 2,
"value": 892
},
"TravelerRefs": [
"travelerRefId_1"
],
"FareCalculation": "SIN SQ HKG 666.60Y11SGOPO NUC666.60END ROE1.338125"
}
]
},
"TermsAndConditionsFull": [
{...},
{...}
]
}
],
"Traveler": [
{
"@type": "Traveler",
"passengerTypeCode": "ADT",
"id": "travelerRefId_1",
"Identifier": {
"authority": "Travelport",
"value": "4dfb7cd9-3651-4641-adc0-ccf2f3b358bb"
},
"PersonName": {
"@type": "PersonName",
"Given": "JIM",
"Surname": "BOWIE"
},
"Telephone": [ ... ]
}
],
"TravelerProduct": [
{
"@type": "TravelerProduct",
"id": "travelerProduct_1",
"TravelerRef": "travelerRefId_1",
"UnpricedFlightSegmentRefs": [
"unPricedFlightSegment_1"
]
}
],
"Payment": [
{
"@type": "Payment",
"id": "payment_1",
"PaymentRef": "payment_1",
"Identifier": {
"authority": "Travelport",
"value": "eeb96c78-c234-430f-99df-fa2a90bb7b49"
},
"Amount": {
"minorUnit": 2,
"value": 731.4
},
"FormOfPaymentIdentifier": {
"FormOfPaymentRef": "formOfPayment_1"
}
}
],
"Receipt": [
{
"@type": "ReceiptConfirmation",
"Identifier": {
"authority": "Travelport",
"value": "5b193a75-b62c-440d-85d6-e66c819520f6"
},
"Confirmation": {
"@type": "ConfirmationHold",
"Locator": {
"source": "1G",
"creationDate": "2025-04-15",
"value": "BXF90D"
},
"OfferStatus": {
"@type": "OfferStatusAir",
"StatusAir": [
{
"flightRefs": [
"Flight_01"
],
"code": "HK",
"value": "Confirmed"
}
]
},
"UnpricedSegmentsStatus": [
{
"@type": "UnpricedSegmentsStatus",
"StatusAir": [
{
"flightRefs": [
"Flight_02"
],
"code": "HK",
"value": "Confirmed"
}
]
}
]
}
},
{
"@type": "ReceiptConfirmation",
"Identifier": {
"authority": "Travelport",
"value": "a69986cc-0ca2-41c3-a126-7f4346163686"
},
"Confirmation": {
"@type": "ConfirmationHold",
"Locator": {
"source": "1A",
"value": "62OB43"
}
}
},
{
"@type": "ReceiptPayment",
"dateTime": "2025-04-15T19:42:00Z",
"id": "receipt_1",
"ReceiptRef": "receipt_1",
"Identifier": {
"authority": "Travelport",
"value": "9ee32f47-d590-4e9f-bf67-6969b022b33e"
},
"OfferRef": [
"offer_1"
],
"Document": [
{
"@type": "DocumentTicket",
"Number": "6189905257307",
"TravelerIdentifierRef": {
"passengerTypeCode": "ADT",
"id": "travelerRefId_1",
"value": "27a7756a-b347-405f-aee0-65fe2fcad082"
},
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 663,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 68.4,
"Tax": [...]
},
"Total": 731.4
},
"IssuingPCC": "XB7",
"FiledAmount": {
"currencyCode": "SGD",
"decimalPlace": 2,
"value": 892
}
}
],
"PaymentIdentifier": {
"id": "payment_1",
"PaymentRef": "payment_1",
"Identifier": {
"authority": "Travelport",
"value": "eeb96c78-c234-430f-99df-fa2a90bb7b49"
}
}
}
],
"UnpricedSegments": {
"@type": "UnpricedSegments",
"UnpricedFlightSegment": [
{
"@type": "UnpricedFlightSegment",
"id": "unPricedFlightSegment_1",
"sequence": 2,
"passengerQuantity": 1,
"cabin": "Economy",
"classOfService": "Y",
"Flight": {
"@type": "Flight",
"duration": "PT2H20M",
"carrier": "CX",
"number": "901",
"equipment": "773",
"id": "Flight_02",
"Identifier": {
"authority": "Travelport",
"value": "603363e7-c502-4c0a-9d95-1a295834ac67"
},
"Departure": {
"@type": "Departure",
"location": "HKG",
"date": "2025-05-22",
"time": "09:00:00"
},
"Arrival": {
"@type": "Arrival",
"location": "MNL",
"date": "2025-05-22",
"time": "11:20:00"
}
}
}
]
},
"ReservationDisplaySequence": {
"@type": "ReservationDisplaySequence",
"DisplaySequence": [
{
"@type": "DisplaySequence",
"displaySequence": 1,
"OfferRef": "offer_1",
"ProductRef": "product_1",
"Sequence": 1
}
],
"UnpricedSegmentDisplaySequence": [
{
"@type": "UnpricedSegmentDisplaySequence",
"displaySequence": 2,
"UnpricedFlightSegmentRef": "unPricedFlightSegment_1"
}
]
}
}
}
}
AirReservation 25.11.68: Queue list and remove | 4 Sep 2025
Adds two new APIs to retrieve a list of bookings on a queue and to remove bookings from a queue.
AirReservation 25.11.67: Enable warnings at commit for price change, schedule change, or MCT | 28 Aug 2025
Adds optional indicators to the workbench commit request that enable a two-step commit process to commit the initial booking workflow, or when adding an offer to an existing reservation. Two-step commit serves to keep the workbench active and return a warning message and details in these scenarios:
-
If the price or schedule has changed since the offer was added. Previously, the commit created the booking with the new price or schedule and returned a warning message about the change.
-
if a minimum connect time (MCT) warning is received from the carrier. Previously, the workbench commit would override the warning, create the booking, and return the MCT warning from the carrier in the response.
The new indicators and objects in the workbench commit request and response are as follows:
-
enableTwoStepCommitInd: Enables a two-step commit process that, when sent with one or more of the following indicators, keeps the workbench active and returns a warning message if the scenario for that indicator occurs.
-
errorWhenScheduleChangesInd: Send with true to trigger the two-step commit and return a warning message if the schedule has changed since the offer was added to the workbench. Requires model version 11.26 or higher. The response includes:
-
the new indicator scheduleUpdatedInd to note the schedule change
-
updated flight details in Product, which returns one instance for the original flight/s as added to the workbench, and another instance for the flight/s with the updated details
-
-
errorWhenOfferPriceChangesInd: Send with true to trigger the two-step commit and return a warning if the price has changed since the offer was added to the workbench. Requires model version 11.26 or higher. The response includes:
-
the new indicator priceUpdatedInd to note the updated price
-
an Offer object with @type OfferModify that returns the new price and breaks down the price change
-
-
overrideMCTInd: Send with false to trigger the two-step commit and return a warning message if the carrier sends a minimum connect time (MCT) message. MCT violations occur when an airline deems there is not sufficient time for passengers to reach their connecting flight. MCT thresholds are set by individual carriers. Requires model version 11.25 or higher. The response returns the MCT warning message.
AirReservation 25.11.66: Retrieve tickets by locator | 19 Aug 2025
In the Ticket Retrieve API, adds support for returning a list of all tickets associated with a GDS record locator. Previously, Ticket Retrieve supported retrieving only a single NDC ticket.
AirReservation 25.11.65: Internal | 24 Jul 2025
Internal updates only.
AirReservation 25.11.64: Document History and Document List APIs | 15 Jul 2025
Adds the following new APIs:
-
Document List: Retrieves details for any single document, such as a ticket, EMD, or MCO, associated with a record locator.
-
Document History: Retrieves details for all documents associated with a record locator.
In the Reservation Retrieve, Retrieve Workbench, and Ticket Retrieve APIs, adds support for returning XF and ZP tax amounts and tax breakdowns.
AirReservation 25.11.63: Cancel workbench items | 26 Jun 2025
In the Cancel Workbench Items API released in 25.11.61, adds support for the following capabilities for GDS in a post-commit workbench; in other words, from an existing reservation:
-
cancel a single, multiple, or all offers, including air, hotel, and car offers
-
cancel a product within an air offer
-
cancel a segment within an air product
-
cancel multiple segments across air offers
Also in the Cancel Workbench Items API, adds support in the initial booking workbench to cancel the entire reservation or all offers on the reservation for GDS (already deployed for NDC).
AirReservation 25.11.62: Cancel workbench items; add SSR by IATA code | 12 Jun 2025
In the Cancel Workbench Items API released in 25.11.61, adds support for the following capabilities for GDS in a post-commit workbench; in other words, from an existing reservation:
-
Cancel entire booking
-
Cancel all offers on the booking, including air, car and hotel offers; retains all other information in the booking including passenger details
Also in the Cancel Workbench Items API, adds support in the initial booking workbench to cancel a specific offer in the workbench; NDC only; not supported for GDS at this time.
In the existing SpecialServiceList request payload, introduces the ability to add remarks by SSR code. Supported for any remark or service request that has an industry SSR code and does not require payment. Previously, the JSON APIs required these SSRs to be added by the name of the service, such as Wheelchair. Uses the existing SpecialServiceList endpoint and updates the existing SpecialServiceList payload as follows:
-
New object SSRCode
-
New value of SpecialService for SpecialServiceID @type
-
Changes TravelerIdentifier/id from required to optional
All previously implemented requests for adding SSRs continue to be supported. Requires model upgrade to ODM version 11.20. GDS only; not supported for NDC.
AirReservation 25.11.61: Cancel workbench items | 29 May 2025
Supports a new request, Cancel Workbench Items, to remove all offers from an initial booking workbench. The workbench and any traveler details persist, and another offer can be added. Previously, the entire workbench had to be discarded if the offer was no longer wanted. NDC only; not supported for GDS in this release.
AirReservation 25.11.60: ContentSource to indicate GDS/NDC content | 15 May 2025
In the Workbench Retrieve, Workbench Commit, and Reservation Retrieve responses, adds the ContentSource object to each offer to indicate whether that offer is from GDS or NDC.
AirReservation 25.11.59: Baggage allowance indicators | 15 May 2025
In the reservation retrieve and ticket retrieve responses, adds baggage indicators. The Reservation Retrieve returns these in TermsAndConditions/BaggageAllowance/BaggageItem. Ticket Retrieve returns them in . These indicators make it easier to determine if baggage is included in the price and whether it is determined by piece or by weight. They also normalize baggage allowance details between GDS and NDC. Each instance of BaggageItem returns the following as applicable for the baggage allowance in that set of terms and conditions:
-
includedInOfferPrice: String. Possible values:
-
Yes: Baggage is included in the price.
-
No: Baggage is not included in the price; available for an additional charge.
-
Unknown: Unknown if baggage is included in the price.
-
-
soldByPieceInd: Boolean. Returned only if true. Indicates baggage allowance is by piece, such as one, two, or three pieces.
-
soldByWeightInd: Boolean. Returned only if true. Indicates the baggage is allowed by weight, either kilograms or pounds, such as 50 pounds or 35 kilograms.
Update to model v11.22 required for this feature.
AirReservation 25.11.58.2: Travel agency details, IATA Easy Pay | 18 Apr 2025
Adds support for the following:
-
Sending email and telephone in the Travel Agency Details API, which supports adding travel agency details in a single payload.
-
The Travel Agency Email API, which adds, updates, or deletes a travel agency email.
-
The Travel Agency Telephone API, which adds, updates, or deletes a travel agency email.
Adds support in Add Form of Payment to use IATA Easy Pay as the form of payment for any air transaction, including ticketing, exchanges, and ancillaries.
AirReservation 25.11.58: Book passive segments | 24 Apr 2025
Adds support for adding an air segment booked outside the Travelport GDS, called a passive segment, to the itinerary. This allows the booking to include complete travel details and support issuing a ticket for that segment. Supported in the Add Offer full payload request by sending the following two new objects added to ProductCriteriaAir:
-
SpecificFlightCriteria/passiveSegmentStatus
-
SupplierLocator
Supported only on ODM version 11.22 and higher. Supported only for AK and BK segment statuses; a known Issue is causing YK segments to fail at commit. GDS only; not supported for NDC.
AirReservation 25.11.57: JQ carrier update | 3 Apr 2025
Jetstar Group Airlines (JQ, 3K, GK) is no longer a ticketless carrier and is now a BSP participant. JQ does not have its own plate and tickets are issued on either Qantas or Hahn Air. All JQ tickets must be plated on either:
-
Qantas: Ticket supported on point of sale locations Australia, New Zealand, and South Korea.
-
Hahn Air: Ticket supported in over 200 point of sale locations except Australia, New Zealand and South Korea.
AirReservation 25.11.56: Updated handling of simultaneous changes error | 13 Mar 2024
Enhances the response returned at workbench commit when near-simultaneous changes occur to a booking, such as if both the airline and a travel agent make updates at nearly the same time. Previously, the response error message indicated only that the session had failed with the error "SIMULTANEOUS CHANGES TO BOOKING FILE - IGNORE TRANSACTION." With this update, the workbench commit returns a warning that simultaneous changes have occurred and the session should be re-initiated. The response also returns all booking details that could be confirmed as well as a record locator so the booking can be retrieved and any missing information re-entered.
AirReservation 25.11.54 & 55: Internal updates | 20 & 27 Feb 2025
Internal updates only.
AirReservation 24.11.53: Book split ticket offers, retrieve group booking | 13 Feb 2024
Adds support to the Reservation Retrieve API to retrieve a group booking, which are bookings with 10 or more passengers. The new object Reservation\Group is returned for group bookings. Creating group bookings is not supported in the JSON APIs and must be created with a separate program.
AirReservation 24.11.53: Book split ticket offers, retrieve group booking | 13 Feb 2024
Adds support to the Reservation Retrieve API to retrieve a group booking, which are bookings with 10 or more passengers. The new object Reservation\Group is returned for group bookings.
Adds support for booking a split ticketing offer. This update allows the Add Offer reference payload and workbench commit to book a split ticketing offer, which are two separate one-way outbound and inbound offers identified in the Search response with the CombinabilityCode value j0. You must be provisioned for split ticketing to receive split ticket offers in Search results.
AirReservation 25.11.51: Check FOP, update and delete FOP requests | 16 Jan 2024
Adds a new payload to the Add Form of Payment request to support the Check form of payment. GDS only, not supported for NDC.
Adds the Delete Form of Payment and Update Form of Payment requests to support deleting and updating a form of payment. Supported in the initial booking workflow for both GDS and NDC, where these requests delete or update an FOP added in the same booking workbench. For an existing reservation, both requests are supported only for GDS.
Updates the Add Traveler request with a new wrapper object that supports adding multiple travelers to a booking with a single request. Previously, each traveler was required to be added in a separate request. The previous payload is still supported.
Exchange APIs
The Exchange APIs support only GDS, not NDC content. See the Exchange, Refund, and Void Guide for NDC options.
Refund capabilities for GDS are under development.
Exchange Air Offer (was Eligibility and Exchange Search)
Exchange Air Offer 25.11.42 & 43: Internal | 11 & 25 Sep 2025
Internal updates only.
Exchange Air Offer 25.11.41: TransactionId and TraceId in headers | 21 Aug 2025
Adds support for returning TransactionId and TraceId in the header of the Exchange Search and Eligibility responses.
Exchange Air Offer 25.11.40: Add collect and refund objects | 31 Jul 2025
In the Exchange Search response, in the CatalogOffering object, adds the new objects AdditionalCollectionPrice and ResidualPrice to return the add collect (additional amount due at exchange) and final refund amounts, if applicable.
Exchange Air Offer 25.11.39: Previously exchanged ticket eligibility | 24 Jul 2025
In the Eligibility response, adds support for returning eligibility for tickets that have been previously exchanged with the JSON GDS Exchange APIs.
Exchange Air Offer 25.11.38: Exchange multi-offer tickets and previously exchanged tickets | 10 Jul 2025
Adds support for exchanging tickets that have been previously exchanged with the JSON GDS Exchange APIs (or Travelport Automated Exchanges).
Adds support for exchanging multi-offer tickets. You must be specifically provisioned for multi-offer exchanges. Each offer must be exchanged in a separate workbench session.
Exchange Air Offer 25.11.35, 36, 37: Internal | 29 May, 5 Jun, 26 Jun 2025
Internal updates only.
Exchange Air Offer 25.11.34: Return and report ignored residual value | 15 May 2025
In the Exchange Search response, adds the object SupplierRetainedPrice when an offer includes a system-ignored residual value amount. SupplierRetainedPrice returns the carrier-forfeited residual value, including forfeited base fare and tax details, using a structure similar to the Price object.
Exchange Air Offer 25.11.33: Internal | 1 May 2025
Internal updates only.
Exchange Air Offer 25.11.32: Return additional brand details | 20 Mar 2025
In the Exchange Search response, adds support for returning BrandAttribute and AdditionalBrandAttribute in ReferenceListBrand when these additional brand details are available for an offer.
Exchange Air Order (was Exchange Ticketing)
Exchange Air Order 25.11.41, .42, .43 : Internal | 21 Aug, 4 & 18 Sep 2025
Internal updates only.
Exchange Air Order 25.11.40: Pay in installments, Pagos Parcelados; add collect and refund fulfillment | 31 Jul 2025
Adds support for paying any additional amount due at exchange (add collect) in installments with a credit card, or with the Pagos Parcelados program for Brazil. To use either plan, send the ExtendedPayment object in the Add Form of Payment request. and Reservation Retrieve responses return an ExtendedPayment object with those details.
Adds support for fulfilling exchanges based on the new AdditionalCollectionPrice and ResidualPrice objects added in Air Offer 25.11.40.
Exchange Air Order 25.11.39: MCO remarks, change fee method for new carriers | 10 Jul 2025
When a user chooses not to issue an MCO miscellaneous change order; can be created when an exchanged ticket has residual value remaining after the exchange.:, adds support for creating the following historical notepad remark: USER SELECTED NOT TO ISSUE MCO.
Makes a configuration update that adds a change fee method for new carriers that do not have change fee rules.
Exchange Air Order 25.11.38: Exchange multiple offers for multiple passengers and PTCs | 26 Jun 2025
Adds support for exchanging multi-offer tickets for single and multiple passengers and for multiple PTCs. You must be specifically provisioned for multi-offer exchanges. Each offer must be exchanged in a separate workbench session.
Adds the following new error message when the workbench session has expired: RESERVATION WORKBENCH SESSION MUST BE ACTIVE. REINITIATE SESSION AND START AGAIN
Adds the following new error message when an invalid search offer id is sent: OFFER ID AND PRODUCT ID DOES NOT EXIST
Exchange Air Order 25.11.37: Internal | 12 Jun 2025
Internal updates only.
Exchange Air Order 25.11.36: Check as FOP | 5 Jun 2025
Adds support for using a check as form of payment for GDS exchanges. Use the FormOfPaymentCheck payload in the Form of Payment API Reference.
Exchange Air Order 25.11.35: Residual value terminal record, error handling | 29 May 2025
Adds support for returning a reservation response and an error message any time the exchange updates the reservation but failed at either ticket, EMD, or MCO issuance for any passenger. In other words, if an exchange only partially updates a reservation, the commit response returns the details of the exchanged booking along with an error message for the failed update.

The following excerpt shows the Result object when the form of payment modifiers were not applied.
"Result": {
"@type": "Result",
"Error": [
{
"@type": "ErrorDetail",
"category": "UNKNOWN",
"StatusCode": 200,
"Message": "IGNORE RETRIEVE AND RE-ADD FOP MODIFIERS",
"SourceID": "1G",
"SourceCode": "2999"
}
]
}
When a residual value is forfeited because of a Category 31 filing by the airline, an entry about the forfeit is made in the historical notepad record. No change to the JSON response payload. The historical notepad is accessible only via a terminal program with the *HNP entry, and available only to specifically provisioned customers. Contact your Travelport representative for any questions about your access.
Exchange Air Order 25.11.34: Residual value terminal indicator, error handling | 15 May 2025
When the Exchange Search response returns a system-ignored residual amount in the object SupplierRetainedPrice (deployed in Air Offer 25.11.34), the terminal record includes an EP$ modifier that indicates the system-ignored residual amount as follows. No change to the JSON response payload; this entry is availalbe only via a terminal program.
T P1/S1/CDL/ET/FEX0067232556649/EP$61.39
In the Modify Offer response, returns the following new error message when the request attempts to cancel a married segment:
SEGMENT CANCELLATION HAS FAILED
Exchange Air Order 25.11.33: Internal | 1 May 2025
Internal updates only.
Exchange Air Order 25.11.32: Store ReceivedFrom at workbench commit | 3 Apr 2025
Adds support for the optional ReceivedFrom payload at workbench commit to store a received from name. After sending, receivedFrom details are viewable only in a terminal program, not in the JSON Reservation Retrieve.
Exchange Ticketing 25.11.27-31: Internal | 13 Jan - 13 Mar 2025
Internal updates only.