# Exchange Eligibility

The Eligibility API is the first step in the GDS exchange workflow. It is an optional step.  
Eligibility returns information about whether a ticket may have value in an exchange or refund scenario, and the range of potential exchange and refund fees. This information relates only to fees and not any fare or tax difference for the itinerary.  
Send either Ticket or Locator as a query parameter. Ticket returns eligibility details for only the one traveler on the ticket, while Locator returns details for all travelers on that reservation.  
A request by reservation locator for a reservation that has multiple open tickets for one passenger will return eligibility information only for the last ticket listed in the reservation. In this scenario you should instead send the request by ticket number.

Endpoint: GET /eligibility/ticketchangeeligibilities
Version: 11.34.0
Security: bearerAuth

## Query parameters:

  - `Locator` (string)
    The reservation locator of the itinerary you want to request eligibility information for.  
Append '?Locator=' and the reservation locator to the GET request.  
Not supported for any ticket with multiple offers.
    Example: "ABC123"

  - `authority` (string)
    Name of the authoritative system that created this guid
    Example: "Travelport"

  - `Ticket` (string)
    The ticket number of the ticketed itinerary you want to request eligibility information for.  
Append '?Ticket=' and the ticket number to the GET request.  
Use the Ticket parameter when sending an Eligibility request for any ticket with multiple offers.
    Example: "1259900123456"

## Header parameters:

  - `TraceId` (string)
    Identifier used to correlate Air API invocations across a multi-call business flows.
    Example: "TraceID_123456789"

  - `XAUTH_TRAVELPORT_ACCESSGROUP` (string)
    Identifies the Travelport access group with which the caller is associated
    Example: "19Y88702-C27A-4E5D-829A-89D7016688B1"

  - `travelportPlusSessionIdentifier` (string)
    travelportPlusSessionIdentifier used to maintain an established agency session
    Example: "49f58f5f-c443-43b4-9f5d-be405fd00a01"

  - `TVP-PCC-Core` (string)
    Allows user to pass PCC instead of Access Group ID
    Example: "DU7_1G"

  - `Accept-Encoding` (string, required)
    Comma-separated list of acceptable encodings like gzip and/or deflate
    Example: "gzip, deflate"

## Response 200 fields (application/json):

  - `TicketChangeEligibilityListResponse` (object)
    The Eligibility response returns details on whether the ticket can be exchanged or refunded, and the range of possible change fees.

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility` (array)

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.@type` (string)
    Example: "TicketChangeEligibility"

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.objID` (string)
    Ticket number sequence for exchange or refund.  
Note that for itineraries with multiple passengers, the response returns eligibility details at the passenger level. If there are multiple passengers of the same PTC type, the response returns details and the ticket number for each passenger are returned.

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Identifier` (object)
    A globally unique identifier key often used to reference a given option (such as Pricing, Booking, Rules, or additional workflows) or to retrieve information (such as Hotel pagination).

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Identifier.value` (string)
    Unique offer identifier that can be sent in subsequent payload requests to reference this offer.  

When used for reference flight calls, the CatalogProductOfferingsIdentifier will be the transaction identifier from the Search, Next Leg Search, or Flight Specific Search response in CatalogProductOfferings/Identifier/value.  
If you choose to pull the CatalogProductOfferingsIdentifier from the Price response instead (OfferListResponse/Identifier/value), either full or reference payload, please note for subsequent Add Offer requests you must remove the _PC appended to the end of the value in the AirPrice response (e.g., change value: '93d2091d-3d04-48ab-8091-6ae1525f02ea_PC' to value: '93d2091d-3d04-48ab-8091-6ae1525f02ea').  

When building an AirPrice or Add Offer reference payload request:  
- Look for the CatalogProductOfferingIdentifier (ex: o1) in a Search response at CatalogProductOfferings/CatalogProductOffering/id or a Price response at OfferListResponse/OfferID/id.  
- Look for the ProductIdentifier (ex: p0) in a Search response at CatalogProductOfferings/CatalogProductOffering/ProductBrandOptions/ProductBrandOffering/Product/productRef or from a Price response at OfferListResponse/OfferID/Product/id.  

When returned from a Workbench, this value is the workbench identifier that must be sent in all subsequent requests for this workbench session.  

When returned from Air Exchange Eligibility, value is the ticket number sent with the eligibility request.  

When used specifically for form of payment, the value will begin with the characters 'FOP'. Similarly, the OfferIdentifier associated will begin with the character 'O'.  

For Hotel Create Reservation (Reference Payload), send the value from the Availability response in CatalogOffering/id or the value from SearchComplete returned in propertyItems/lowestPublicAvailableRate/rateKey/value.  

Results from Hotel Availability and Hotel SearchComplete are stored in the cache for 30 minutes. If the offers expire before booking, you must send a new request.
    Example: "A0656EFF-FAF4-456F-B061-0161008D7C4E"

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Identifier.authority` (string)
    "Name of the supplier system that created this identifier - the source of information.  
For AirPrice, please note that GDS offers return the value 'Travelport' in authority while NDC offers return the carrier code of the issuing NDC carrier.  
When returned from Air Exchange Eligibility, authority is always 'Travelport' as the transaction issuer.  
For Hotels, authority indicates which supplier returned the lowest available rate for that property: either 'TVPT' (Travelport) or 'BKNG' (booking.com). Booking.com access requires additional provisioning and a direct agreement with the supplier. Authority is not returned if the property is closed or returns an error.  
For Hotel Create Reservation (Full Payload) and Sync Reservation send the value from the Availability response in CatalogOffering/Identifier/authority for the instance you want to book."
    Example: "TVPT"

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.exchangeable` (string)
    Used to indicate if all, some, or none of the fare components can be exchanged or refunded.
    Enum: "All", "Some", "None"

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.refundable` (string)
    Used to indicate if all, some, or none of the fare components can be exchanged or refunded.
    Enum: "All", "Some", "None"

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Penalties` (object)
    List of refund and change penalties for this offer or itinerary.

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Penalties.@type` (string, required)
    Discriminator. No child classes.
    Example: "Penalties"

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Penalties.Change` (array)
    Details about maximum or minimum change fees charged for changes to this itinerary.  
Returned in Penalties object with type ChangePermitted if a change is permitted after booking.

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Penalties.Change.@type` (string, required)
    Discriminator. Child classes ChangePermitted, ChangeNotPermitted, and ChangeIndeterminate.
    Example: "ChangePermitted"

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Penalties.Change.ProductRefs` (array)
    List of product reference ids to which these penalties apply, if applicable only to specific products.
    Example: ["p1","p2"]

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Penalties.Change.SegmentSequence` (array)
    List of segment sequence numbers to which these penalties apply, if applicable only to specific segments.
    Example: [1]

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Penalties.Cancel` (array)
    Returned in Penalties object with type CancelPermitted if a cancellation is permitted after booking.

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Penalties.Cancel.@type` (string, required)
    discriminator
    Example: "CancelPermitted"

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Penalties.Cancel.ProductRefs` (array)
    The product ids this cancel information applies to.
    Example: ["p1","p2"]

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Penalties.Cancel.SegmentSequence` (array)
    The list of any segment sequence numbers this cancelation information applies to.
    Example: [1]

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Penalties.Waiver` (array)
    Enum: "DeathOfPassenger", "IllnessOfPassenger", "DeathOfImmediateFamilyMember", "IllnessOfImmediateFamilyMember", "TicketUpgrade", "ScheduleChange"

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Penalties.PenaltySourceCode` (object)
    The source of the penalty applied.

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Penalties.PenaltySourceCode.value` (string)
    Example: "Properties of the penalty"

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Penalties.PenaltySourceCode.codeContext` (string)
    Penalty source code context
    Example: "Context of the penalty source"

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Penalties.PassengerTypeCodes` (array)
    The passenger type codes that the penalties apply to.
    Example: ["ADT","CHD"]

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Penalties.involuntaryInd` (boolean)
    Penalties apply for involuntary changes initiated by the airline.
    Example: true

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Penalties.applyLeastRestrictiveInd` (boolean)
    If true, the least restrictive of the rule hierarchy is applied.
    Example: true

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Penalties.ruleNumber` (string)
    The rule number associated to this fare rule info.
    Example: "D38"

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.Penalties.tariffNumber` (string)
    The tariff number associated to this fare rule info.
    Example: "01634"

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.PassengerTypeCode` (string)
    Passenger Type Code
    Example: "ADT"

  - `TicketChangeEligibilityListResponse.TicketChangeEligibility.automationNotSupportedInd` (boolean)
    Returned with a value of true only if automated exchanges are not allowed.  
With this indicator the following warning is also returned: 'Carrier is not currently supported for automated exchanges. Exchange must be processed manually.'

  - `TicketChangeEligibilityListResponse.@type` (string)
    Example: "response"

  - `TicketChangeEligibilityListResponse.transactionId` (string)
    A unique system-generated (128 bit GUID format) transaction/tracking id for a single request and response (i.e. for a single transaction) used for internal tracking and troubleshooting.  
Also known as E2ETrackingId.  
Not returned in all Hotel API responses.
    Example: "49f58f5f-c443-43b4-9f5d-be405fd00a01"

  - `TicketChangeEligibilityListResponse.traceId` (string)
    Used in hospitality workflows to provide a Unique transaction or tracking id for a single request and response.  
For Air Eligibility, returned if a custom trace ID was sent in the request header.  
For Hotel Rules, returned if a custom trace ID was sent in the request header.
    Example: "TraceID_123456"

  - `TicketChangeEligibilityListResponse.correlationId` (string)
    Identifier used to correlate hotel API invocations across a multi-call business flow.

  - `TicketChangeEligibilityListResponse.reservationStatus` (string)
    Status of reservation or offer completion.
    Enum: "Success", "Fail", "Partial", "Pending", "OnHold", "Retry", "Other"

  - `TicketChangeEligibilityListResponse.Result` (object)
    Returns the error and/or warning message information, if applicable.

  - `TicketChangeEligibilityListResponse.Result.@type` (string)
    Discriminator class Result only
    Example: "Result"

  - `TicketChangeEligibilityListResponse.Result.status` (string)
    The status of an error or warning
    Enum: "Not processed", "Incomplete", "Complete", "Unknown"

  - `TicketChangeEligibilityListResponse.Result.Error` (array)
    A list of error information returned at the provider level for a response.

  - `TicketChangeEligibilityListResponse.Result.Error.@type` (string, required)
    Discriminator classes Error or ErrorDetail
    Example: "ErrorDetail"

  - `TicketChangeEligibilityListResponse.Result.Error.Message` (string)
    The Travelport standardized error or warning message
    Example: "No flights found."

  - `TicketChangeEligibilityListResponse.Result.Error.NameValuePair` (array)

  - `TicketChangeEligibilityListResponse.Result.Error.NameValuePair.value` (string)
    Text directly related to name description, providing more detail. May have character restrictions based on remark type (e.g. Free Text limitations: 84 characters, alphanumeric and some special characters).
    Example: "Sunday"

  - `TicketChangeEligibilityListResponse.Result.Error.NameValuePair.id` (string)
    Optional internally referenced id
    Example: "6"

  - `TicketChangeEligibilityListResponse.Result.Error.NameValuePair.name` (string, required)
    Key, categorizing the of type of remark or error.
    Example: "Day1"

  - `TicketChangeEligibilityListResponse.Result.Error.StatusCode` (integer)
    Http standard response code
    Example: 200

  - `TicketChangeEligibilityListResponse.Result.Warning` (array)
    A list of warning information returned at the provider level for a response.

  - `TicketChangeEligibilityListResponse.Result.Warning.@type` (string, required)
    Discriminator classes Warning or WarningDetail
    Example: "WarningDetail"

  - `TicketChangeEligibilityListResponse.Result.Warning.Message` (string)
    The Travelport standardized error or warning message
    Example: "Customer Loyalty could not be applied."

  - `TicketChangeEligibilityListResponse.Result.Warning.NameValuePair` (array)

  - `TicketChangeEligibilityListResponse.Result.Warning.StatusCode` (integer)
    Http standard response code
    Example: 200

  - `TicketChangeEligibilityListResponse.Identifier` (object)
    A globally unique identifier key often used to reference a given option (such as Pricing, Booking, Rules, or additional workflows) or to retrieve information (such as Hotel pagination).

  - `TicketChangeEligibilityListResponse.NextSteps` (object)
    Container for the steps that describe actions that may be taken on the containing object.  
Not applicable for an Eligibility or Exchange response.

  - `TicketChangeEligibilityListResponse.NextSteps.baseURI` (string, required)
    The base portion of the uri in order to shorten the uris in the individual steps

  - `TicketChangeEligibilityListResponse.NextSteps.id` (string)
    Optional internally referenced id
    Example: "5"

  - `TicketChangeEligibilityListResponse.NextSteps.NextStep` (array, required)

  - `TicketChangeEligibilityListResponse.NextSteps.NextStep.value` (string)
    Example: "www.resourcelocation.com"

  - `TicketChangeEligibilityListResponse.NextSteps.NextStep.id` (string)
    Identifier for the Next Step
    Example: "2"

  - `TicketChangeEligibilityListResponse.NextSteps.NextStep.action` (string, required)
    The action this next step is intended to achieve
    Example: "cancel"

  - `TicketChangeEligibilityListResponse.NextSteps.NextStep.method` (string, required)
    Describes the set of potential methods that can be taken after an operation.
    Enum: "GET", "DELETE", "PUT", "POST"

  - `TicketChangeEligibilityListResponse.NextSteps.NextStep.description` (string)
    Additional clarification for the next step
    Example: "remove offer from the order"

  - `TicketChangeEligibilityListResponse.ReferenceList` (array)

  - `TicketChangeEligibilityListResponse.ReferenceList.@type` (string, required)
    Discriminator  
- Air Search child classes are ReferenceListAmenity, ReferenceListBrand, ReferenceListFlight, ReferenceListProduct, ReferenceListTermsAndConditions, and ReferenceListUniversalProductAttribute.  
- Air Price child classes are ReferenceListAmenity and ReferenceListBrand.  
- FareRules child class is ReferenceListFlight.  
- Search Ancillaries child class is ReferenceListFlight.  
- Seat Map child class is ReferenceListSeatingChart.  
- Hotel Availability child class is ReferenceListPropertyDates.  
- Reservation and Reservation Workbench child classes are ReferenceListAmenity, ReferenceListBrand, and ReferenceListUniversalProductAttribute.  
- Exchange Search child classes are ReferenceListBrand, ReferenceListFlight, and ReferenceListExchangedPrice.  
- Reservation Receipt child classes are ReferenceListOffer and ReferenceListTraveler.  
- Book_Traveler child class is ReferenceListTraveler.
    Example: "ReferenceListFlight"

  - `TicketChangeEligibilityListResponse.ReferenceList.id` (string)
    Uniquely identifies for the Reference List

  - `TicketChangeEligibilityListResponse.CurrencyRateConversion` (array)

  - `TicketChangeEligibilityListResponse.CurrencyRateConversion.@type` (string)

  - `TicketChangeEligibilityListResponse.CurrencyRateConversion.SourceCurrency` (object, required)
    Currency codes are the three-letter alphabetic codes that represent the various currencies used throughout the world.  
Unless changed in the request, the currency is the default associated with your provisioned PCC from Travelport.  
For Hotel: SourceCurrency is based on the location of the hotel and used for all rates in the response. TargetCurrency is the currency code sent in the request in requestedCurrency.

  - `TicketChangeEligibilityListResponse.CurrencyRateConversion.SourceCurrency.value` (string)
    An ISO 4217 currency code.
    Example: "USD"

  - `TicketChangeEligibilityListResponse.CurrencyRateConversion.SourceCurrency.codeAuthority` (string)
    Currency code authority
    Example: "ISO 4217"

  - `TicketChangeEligibilityListResponse.CurrencyRateConversion.SourceCurrency.decimalPlace` (integer)
    Number of decimal places for the currency.
    Example: 4

  - `TicketChangeEligibilityListResponse.CurrencyRateConversion.SourceCurrency.decimalAuthority` (string)
    Currency code decimal authority
    Example: "ISO 4217"

  - `TicketChangeEligibilityListResponse.CurrencyRateConversion.TargetCurrency` (object, required)
    Currency codes are the three-letter alphabetic codes that represent the various currencies used throughout the world.  
Unless changed in the request, the currency is the default associated with your provisioned PCC from Travelport.  
For Hotel: SourceCurrency is based on the location of the hotel and used for all rates in the response. TargetCurrency is the currency code sent in the request in requestedCurrency.

  - `TicketChangeEligibilityListResponse.CurrencyRateConversion.ConversionRate` (object, required)
    Conversion rate of SourceCurrency value to TargetCurrency value. This value can be used to calculate, independently of the API, conversion for the rates in the response. The response does not convert any amounts.

  - `TicketChangeEligibilityListResponse.CurrencyRateConversion.ConversionRate.value` (number)

  - `TicketChangeEligibilityListResponse.CurrencyRateConversion.ConversionRate.rateAuthority` (string)
    Contextual rate authority
    Example: "ISO 4217"

  - `TicketChangeEligibilityListResponse.CurrencyRateConversion.ConversionRate.rateAsOf` (string)
    Rate as of
    Example: "2026-08-07T12:12:00Z"

  - `TicketChangeEligibilityListResponse.Pagination` (object)
    Pagination object used when result sets span across a number of pages.

  - `TicketChangeEligibilityListResponse.Pagination.@type` (string, required)
    Example: "Pagination"

  - `TicketChangeEligibilityListResponse.Pagination.page` (integer, required)
    The current page number of the full result set
    Example: 1

  - `TicketChangeEligibilityListResponse.Pagination.pageSize` (integer, required)
    The total number of items on this page
    Example: 20

  - `TicketChangeEligibilityListResponse.Pagination.totalPages` (integer, required)
    The total number of pages in this result set
    Example: 5

  - `TicketChangeEligibilityListResponse.Pagination.totalItems` (integer, required)
    The total number of pages in this result set
    Example: 100

## Response 400 fields (application/json):

  - `ErrorResponse` (object)
    Base common error response

  - `ErrorResponse.@type` (string)
    Example: "response"

  - `ErrorResponse.transactionId` (string)
    A unique system-generated (128 bit GUID format) transaction/tracking id for a single request and response (i.e. for a single transaction) used for internal tracking and troubleshooting.  
Also known as E2ETrackingId.  
Not returned in all Hotel API responses.
    Example: "49f58f5f-c443-43b4-9f5d-be405fd00a01"

  - `ErrorResponse.traceId` (string)
    Used in hospitality workflows to provide a Unique transaction or tracking id for a single request and response.  
For Air Eligibility, returned if a custom trace ID was sent in the request header.  
For Hotel Rules, returned if a custom trace ID was sent in the request header.
    Example: "TraceID_123456"

  - `ErrorResponse.correlationId` (string)
    Identifier used to correlate hotel API invocations across a multi-call business flow.

  - `ErrorResponse.reservationStatus` (string)
    Status of reservation or offer completion.
    Enum: "Success", "Fail", "Partial", "Pending", "OnHold", "Retry", "Other"

  - `ErrorResponse.Result` (object)
    Returns the error and/or warning message information, if applicable.

  - `ErrorResponse.Identifier` (object)
    A globally unique identifier key often used to reference a given option (such as Pricing, Booking, Rules, or additional workflows) or to retrieve information (such as Hotel pagination).

  - `ErrorResponse.NextSteps` (object)
    Container for the steps that describe actions that may be taken on the containing object.  
Not applicable for an Eligibility or Exchange response.

  - `ErrorResponse.ReferenceList` (array)

  - `ErrorResponse.CurrencyRateConversion` (array)

  - `ErrorResponse.Pagination` (object)
    Pagination object used when result sets span across a number of pages.


