Exchange Search API Reference
POST |
exchangesearch/catalogofferingsairchange Base path: Note the following base path varies from that used for other JSON APIs.
Pre-production https://api.pp.travelport.com/11/ Production https://api.travelport.com/11/ |
Related Content:GDS Exchanges Guide
The Exchange Search API is the second step in the GDS exchange workflow, after the optional Eligibility step. It searches for an alternate itinerary for a possible exchange on a currently ticketed GDS itinerary. The response details any differences in base fare, taxes, fees, and total price between the currently ticketed itinerary and the possible new itinerary. It should be followed by an Add/Modify Offer request to select a new itinerary from these search results.
Exchange Search supports exchanging multiple offers, but only one offer can be sent in a single Exchange Search request. Use one workbench session for one leg of the change, and another workbench session for the next leg of the exchange.
Exchange Search does support exchanges for multiple passengers in one request.
Request
Also see Authorization and Common Headers.
Query Parameters
None.
Request Body
See the Optional Modifiers table next for optional search modifiers that can be added to this basic request.
Object |
Description |
Required/Optional |
---|---|---|
CatalogOfferingsQueryAirChange |
Top level object for request. |
Required |
CatalogOfferingsAirChangeRequest |
Top level object. Includes SearchCriteriaFlight and BuildFromReservationWorkbench. Includes PricingModifiersAirChange and SearchModifiersAir if any optional search modifiers detailed in the table below are sent. Send with "@type": "CatalogOfferingsAirChangeRequestReservation", |
Required |
|
By default Exchange Search returns branded fares. Set to false to disable the return of branded fares. |
Optional |
|
Returns a detailed response. Set to true to return a tax breakdown and branded fare attributes (see the Air Shopping Guide for more about brand attributes). Set to false to disable the return of details. A detailed response includes the following additional or expanded detail elements:
|
Optional |
SearchCriteriaFlight |
Array. Defines one origin and destination (O&D) pair. Send one SearchCriteriaFlight for each O&D pair, or leg. Includes From and To objects. |
Required |
|
String. Date of departure in YYYY-MM-DD format (e.g., departureDate="2022-12-06"). |
Required |
|
String. Time of departure in HH:MM:SS format (e.g., departureTime="18:00:00"). departureTime is required on a same-day flight, i.e., when searching for multiple legs on the same day. |
Optional |
From |
Object. |
Required |
|
String. The IATA location code for the departure airport/city for this leg. |
Required |
To |
Object |
Required |
|
String. The IATA location code for the arrival city/airport for this leg. |
Required |
DepartureTimeRange |
Optional object to specify a start time and end time for the flight search. Only results within the specified window are returned. If both DepartureTimeRange and SearchCriteriaFlightChange @departureTime above are sent, Exchange Search uses the DepartureTimeRange for the search, not the departureTime.
Key value pairs:
|
Optional |
Array. Defines each passenger to search for. Send one instance of PassengerCriteria for each passenger. Note that although the JSON Search API sends an instance of PassengerCriteria for each PTC, Exchange Price Quote sends PassengerCriteria for each passenger.
|
Required |
|
|
String. The passenger type code (PTC) for this specific passenger. Common PTCs are:
|
Required |
|
Number. The number of passengers with this PTC. Should always be 1, as Passenger Criteria here is for an individual passenger. |
Required |
|
Number. The age of the passenger. Notes on PTC and age
|
Optional |
|
Boolean. Send with true to return only offers for the specified PTC. Exchange Search generally returns the lowest fares available for any PTC. Sending specifiedPassengerTypeCodeOnlyInd set to true limits the fares returned to the specified PTC, which may return a higher priced fare that has better rules or commission. Note that if no fares are available for the specified PTC then no fares are returned and the error message "UNABLE TO PRICE AS SPECIFIED" is returned.
|
Optional Default is false |
TravelerIdentiferRef |
Top level object for traveler identifier. Required if PassengerCriteria is sent. |
Required |
|
The traveler identifier from the reservation. |
Required |
BuildFromReservationWorkbench |
Includes ReservationIdentifier object. |
Required |
ReservationIdentifier |
Includes Identifier object. |
Required |
Identifier |
Workbench identifier information. Key value pairs:
|
Required |
OfferIdentifier |
The ID of the offer to change. *Exchange Search supports sending requests to search with an empty reservation, which can result when air segments and stored fares are canceled but the reservation is kept open to retain traveler and ticket information. Do not send OfferIdentifier or ProductIdentifier when searching with an empty reservation. |
*Required |
|
Send the offer ID of the offer to change (returned as part of the Reservation Retrieve when the workbench is created). |
Required |
ProductIdentifier |
Send ProductIdentifier only if you want to return offers that change one of more specified products, instead of changing the entire offer. Do not send if you want to return options to modify the entire offer. (A product is one leg of an itinerary; a leg is all flight or flights between one origin and destination pair.) Send a ProductIdentifier for each product/leg you want to change. Do not send ProductIdentifier for any leg you do not want to change. For example, if you send only the first product identifier for a round-trip itinerary, all offers include new options for the first leg and return the same flight options as on the existing itinerary for the second leg. See the OfferIdentifier note above for an empty reservation. |
Optional |
|
The product ID of the product to change (returned in the create workbench response). Send only if sending ProductIdentifier. |
Optional |
Object |
Description |
Required/Optional |
---|---|---|
SearchModifiersAir |
Optional modifiers related to the journey, such as connections. May include CabinPreference, PricingModifiersAirChange, OrganizationInformation, and/or CalculatedFareAdjustment objects. |
Optional |
Exchange Search 23.11.23 and later.
Array. Requests a fare based on the cabin class. Only one cabin preferenceType (Permitted, Preferred, or PreferredWithUpgrade) is allowed per request, but there is no limit to the number of cabins that can be sent. |
Optional |
|
|
String. A space-delimited list of cabins. Supported values are (no default):
|
Required if CabinPreference sent |
|
Supported values:
Sending a mix of preferenceType values is not supported. For example, you cannot send an instance of CabinPreference with a preferenceType of Permitted and another instance with preferenceType of Prohibited. In this case the results default to the Preferred preference.
|
Required if CabinPreference sent |
legSequence |
If requesting a preference at the leg level, use legSequence to specify the sequence of the leg that the preference should apply to. You can apply the preference to only some legs of the itinerary, or different preferences to different legs. The following example excerpt shows one instance of CabinPreference applied to legs 1 and 4, and another instance that applies to legs 2 and 3. To apply a preference to the entire itinerary, do not send legSequence. Show Example CabinPreference applied to itinerary
Show Example CabinPreference at leg level - single cabin preference on two legs
Show Example CabinPreference at leg level - different cabin preference for different legs
|
Optional |
FlightType |
Optional search preferences about connections and stops. |
Optional |
|
The connection type to limit the search. The specified type and all higher types can be returned. Supported values (no default):
|
Required if FlightType sent
|
PricingModifiersAirChange |
Optional modifiers related to pricing, such as brands and account codes. Includes OrganizationInformation if sending account codes. Includes FareSelection if sending fare types. Includes CalculatedFareAdjustment if sending increase/decrease fare modifiers. |
Optional |
|
By default Exchange Search returns the lowest available brand regardless of original brand on the ticket. Set to true to request only flight options available in the same brand as the original ticket. Set to false to not force the original brand. If not sent, the default value is false, The functionality works only for scenarios where the date and/or time is changed on a flight. It is not supported for more complex scenarios such as changing routing, adding segments, or connection changes.
|
Optional |
|
String, 2-10 characters supported. Use to send a faring PCC for which a selective access or code group agreement exists between that PCC and the PCC associated with your account. (PCC is the pseudo city code; a travel provider's identification code for the JSON APIs, provisioned from Travelport.) The following combinations of PricingPCC and FareSelection/fareType=PrivateFaresOnly (see below) return results as follows:
|
Optional |
OrganizationInformation
|
Top level object for OrganizationIdentifier. |
Optional |
OrganizationIdentifier |
Send up to 5 account or contract codes, if they are required for an airline or agency private fare. |
Required if OrganizationInformation sent |
|
String. Always send with the string Account.
|
Required if OrganizationInformation sent |
|
String. The account code to apply. |
Required if OrganizationInformation sent |
|
String. The IATA code for the airline on which the account code is applicable. |
Required if OrganizationInformation sent |
|
Boolean. Optional indicator to limit the fares returned to only fares filed for that account code. Send set to true, along with one or more account codes in OrganizationIdentifier/value per above. If sending multiple account codes, send each instance with accountCodeFaresOnlyInd set to true. If not sent the default is false.
|
Optional |
Optional pricing modifier allowing customers who have airline calculated fares to increase or decrease those fares before taxes during exchanges. The @type value for CalculatedFareAdjustment specifies whether to increase or decrease the fare as follows:
Show Example excerpt - CalculatedFareAdjustment to discount fare by an amount
Show Example excerpt - CalculatedFareAdjustment to discount fare by a percent
Show Example excerpt - CalculatedFareAdjustment to increase fares by flat amount
|
Optional |
|
AmountPercent |
Use with CalculatedFareAdjustment to specify an amount or percentage to increase or decrease the fare by. Includes either Percent or Amount objects. Send with @type AmountPercentAmount for Amount or @type AmountPercentPercent for Percent. |
Required if CalculatedFareAdjustment sent |
AmountPercent/Percent |
Use with CalculatedFareAdjustment/AmountPercent to specify a percentage to increase or decrease the fare by. |
Optional |
AmountPercent/Amount |
Use with CalculatedFareAdjustment/AmountPercent to specify an amount to increase or decrease the fare by. |
Optional |
Optional object to send fare type values. |
Optional |
|
|
Set to true to prevent unbundled fares. Default is false. |
Optional |
|
Specifies the fare types to return. Supported values:
|
Optional |
Response
Object |
Description |
---|---|
CatalogOfferingsAirChangeResponse |
Top level object for the full response. Key value pairs:
|
CatalogOfferings |
Top level object to group offers. |
Identifier (CatalogOfferings/Identifier) |
Identifier information for the Exchange Search response. Send this identifier in any subsequent Exchange Ticketing request. Includes the following key value pair:
|
CatalogOffering |
Array. Each instance returns an individual offer, which is all flight options valid at one price point under the same terms and conditions.
Key value pair:
For any fare that has a private fare component, net ticket data (NTD) is returned in Product/PassengerFlight/FlightProduct in the key value pairs carCode (Commercial Airline Agreement number) and valueCode (value code for the fare).
See the Exchange Search Overview in the GDS Exchanges Guide for more about net ticket data.
|
Price |
The Price object returns price information for the itinerary in the CatalogOffering. It includes the following key value pairs:
In Exchange Search, all price information is inclusive of all travelers across all PTCs. |
PriceBreakdown Returned only if a detail response was requested. |
quantity: Number of passengers in that PTC. requestedPassengerType: The PTC. Includes the Commission (if filed) and Amount objects. For any fare that has a private fare component, PriceBreakdown includes the objects Commission (either a percent or amount) and NetBaseAmount, which is the base fare filed by the airline. |
PriceBreakdown/Amount |
Includes the Base, Taxes, Fees, and Total objects. These are the base amount, taxes, and fees for the full fare amount. |
Any commission filed by an airline in a CAT35 fare is returned in PriceBreakdownAir/Commission. The amount is either a percent of the fare component (@type CommissionPercent and the Percent object) or an amount (@type CommissionAmount with Amount @value). Commission is not returned if no commission is filed, or if the commission is a mix of amount and percent. Show Commission Examples
Commission as a percent:
Commission as an amount:
|
|
Amount |
Specifies commission when commission is a set amount. Key value pairs:
|
Percent |
Number. Specifies commission percent when commission is a percent. |
PriceBreakdown/FiledAmount |
Returned if there is an equivalent amount on the fare. |
PriceBreakdown/NetBaseAmount |
The base fare filed by the airline exclusive of any commission or additional markup. Returned only for fares with a private fare component. See Net Ticket Data in the GDS Exchanges Guide for details. |
ModifyPrice |
ModifyPrice returns details about any fare difference between the currently ticketed itinerary and the offer in the CatalogOffering. For all amounts below, if there is no difference between the current ticket and the new amount, the value is 0. A negative number indicates the repriced amount is less than the ticket's current amount for that base, tax, fee, etc. A positive number indicates the repriced amount is higher.
|
CurrencyCode |
Specifies the currency in which prices are returned. Key value pairs:
|
TermsAndConditions |
The terms and conditions that apply to the offer. For details see the Search API Reference. |
TermsAndConditions/FulfillmentMethod |
If there is a refundable balance, TermsAndConditions includes the FulfillmentMethod object. Includes RefundMethod and ChangeFeeCollectionMethod. |
RefundMethod |
Determines how the refundable balance will be handled. Key value pair:
|
ChangeFeeCollectionMethod |
Notes how the ChangeFee should be collected. Key value pair:
|
changeFeeIssuedSeparatelyInd |
Exchange Search 22.11.7 and later.
Indicator returned set to true when a refund will be returned along with a change fee. Key value pair:
When a non-refundable fare component exists, the refund amount after adjustment with the change fee is not returned, which will cause a discrepancy in the TotalPrice value.
|
FareCalculation |
Exchange Search 22.11.7 and later.
For each PTC, when available, FareCalculation returns the fare calculation ladder for all public and private fare types filed by an agency or an airline. Returned as a string with unlimited bytes. |
CurrencyRateConversion |
Returned when the POS country and country of the originating flight are different. Includes SourceCurrency, TargetCurrency, and ConversionRate objects. |
SourceCurrency |
Currency of the country of originating flight. Key value pair:
|
TargetCurrency |
Currency of the country of the POS. Key value pair:
|
ConversionRate |
Key value pair:
|
ReferenceList/ReferenceListExchangedPrice |
Exchange Search 24.11.29 and later.
An instance of ReferenceList with @type ReferenceListExchangedPrice. Returns the original price of the exchanged ticket by PTC. Includes an id and the standard Price object. Show Example excerpt for ReferenceListExchangedPrice
This example shows an instance of ReferenceListExchangedPrice that returns the original price of the exchanged ticket for an ADT PTC.
|
Example Request
The example below requests an Exchange Search for multiple passengers.
{
"CatalogOfferingsQueryAirChange": {
"CatalogOfferingsAirChangeRequest": {
"@type": "CatalogOfferingsAirChangeRequestReservation",
"returnBrandedFaresInd": true,
"detailViewInd": true,
"SearchCriteriaFlight": [{
"departureDate": "2021-05-14",
"departureTime": "07:30:00",
"From": {
"cityOrAirport": "Airport Only",
"value": "LHR"
},
"To": {
"cityOrAirport": "City or Airport",
"value": "FRA"
}
}, {
"departureDate": "2021-05-30",
"departureTime": "08:00:00",
"From": {
"cityOrAirport": "Airport Only",
"value": "FRA"
},
"To": {
"cityOrAirport": "City or Airport",
"value": "LHR"
}
}
],
"PassengerCriteria": [{
"@type": "PassengerCriteriaAirChange",
"number": 1,
"age": 20,
"passengerTypeCode": "ADT",
"TravelerIdentifierRef": {
"id": "travelerRefId_1"
}
}, {
"@type": "PassengerCriteriaAirChange",
"number": 1,
"age": 22,
"passengerTypeCode": "ADT",
"TravelerIdentifierRef": {
"id": "travelerRefId_2"
}
}, {
"@type": "PassengerCriteriaAirChange",
"number": 1,
"age": 15,
"passengerTypeCode": "C10",
"TravelerIdentifierRef": {
"id": "travelerRefId_3"
}
}, {
"@type": "PassengerCriteriaAirChange",
"number": 1,
"age": 15,
"passengerTypeCode": "C10",
"TravelerIdentifierRef": {
"id": "travelerRefId_4"
}
}, {
"@type": "PassengerCriteriaAirChange",
"number": 1,
"age": 60,
"passengerTypeCode": "ADT",
"TravelerIdentifierRef": {
"id": "travelerRefId_5"
}
}, {
"@type": "PassengerCriteriaAirChange",
"number": 1,
"age": 60,
"passengerTypeCode": "ADT",
"TravelerIdentifierRef": {
"id": "travelerRefId_6"
}
}
],
"PricingModifiersAirChange": {},
"BuildFromReservationWorkbench": {
"ReservationIdentifier": {
"Identifier": {
"authority": "Travelport",
"value": "723f8a67-a1b2-4f41-b52b-71c5026db23e"
}
},
"OfferIdentifier": {
"id": "offer_1"
},
"ProductIdentifier": [{
"id": "product_1"
}, {
"id": "product_2"
}
]
}
}
}
}
Example Response
For brevity, the following example has been edited to remove several instances of individual offers, terms and conditions, and flights. Because of that editing offers may return flights not shown in ReferenceList and vice versa.
{
"CatalogOfferingsAirChangeResponse": {
"@type": "CatalogOfferingsAirChangeResponse",
"transactionId": "634c9c22-b867-4fa0-92bd-74d9524c52f9",
"traceId": "2fd09950-857c-4753-9e88-ad841cfe1ac3",
"CatalogOfferings": {
"@type": "CatalogOfferings",
"Identifier": {
"value": "5ab7b7d1-7d47-48fb-8391-5c4714bf46b3"
},
"CatalogOffering": [
{
"@type": "CatalogOfferingModify",
"id": "o0.0",
"ProductOptions": [
{
"@type": "ProductOptions",
"sequence": 1,
"Product": [
{
"@type": "ProductAir",
"totalDuration": "PT1H35M",
"id": "p1",
"FlightSegment": [
{
"@type": "FlightSegment",
"sequence": 1,
"Flight": {
"@type": "FlightID",
"FlightRef": "s1"
}
}
],
"PassengerFlight": [
{
"@type": "PassengerFlight",
"passengerQuantity": 2,
"passengerTypeCode": "ADT",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
1
],
"classOfService": "T",
"cabin": "Economy",
"fareBasisCode": "TZCH0",
"fareType": "PublicFare",
"Brand": {
"@type": "BrandID",
"BrandRef": "b1"
}
}
]
},
{
"@type": "PassengerFlight",
"passengerQuantity": 2,
"passengerTypeCode": "SRC",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
1
],
"classOfService": "T",
"cabin": "Economy",
"fareBasisCode": "TZCH0",
"fareType": "PublicFare",
"Brand": {
"@type": "BrandID",
"BrandRef": "b1"
}
}
]
}
]
}
]
}
],
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 477.2,
"TotalTaxes": 174.8,
"TotalFees": 0,
"TotalPrice": 652,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 2,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 119.3,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 43.7,
"Tax": [
{
"taxCode": "QR",
"value": 21.7
},
{
"taxCode": "UO",
"value": 14.82
},
{
"taxCode": "WG",
"value": 7.18
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0,
"Fee": [
{
"@type": "Fee",
"description": "Change Fee",
"FeeAmountOrPercent": {
"@type": "FeeAmountOrPercentAmount",
"Amount": {
"code": "AUD",
"minorUnit": 2,
"value": 0
}
}
}
]
},
"Total": 163
},
"FiledAmount": {
"currencyCode": "AUD",
"decimalPlace": 2,
"value": 119.3
}
},
{
"@type": "PriceBreakdownAir",
"quantity": 2,
"requestedPassengerType": "SRC",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 119.3,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 43.7,
"Tax": [
{
"taxCode": "QR",
"value": 21.7
},
{
"taxCode": "UO",
"value": 14.82
},
{
"taxCode": "WG",
"value": 7.18
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0,
"Fee": [
{
"@type": "Fee",
"description": "Change Fee",
"FeeAmountOrPercent": {
"@type": "FeeAmountOrPercentAmount",
"Amount": {
"code": "AUD",
"minorUnit": 2,
"value": 0
}
}
}
]
},
"Total": 163
},
"FiledAmount": {
"currencyCode": "AUD",
"decimalPlace": 2,
"value": 119.3
}
}
]
},
"TermsAndConditions": {
"@type": "TermsAndConditionsAirChange",
"BaggageAllowance": [
{
"@type": "BaggageAllowanceDetail",
"url": "http://VIEWTRIP.TRAVELPORT.COM/BAGGAGEPOLICY/VA",
"passengerTypeCodes": [
"ADT"
],
"baggageType": "FirstCheckedBag",
"ProductRef": [
"p1"
],
"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 1,
"BaggageFee": {
"code": "AUD",
"value": 0
},
"Text": "BAGGAGE CHARGES DATA NOT AVAILABLE"
}
],
"SegmentSequenceList": [
1
],
"Text": [
"1P|BAGGAGE DISCOUNTS MAY APPLY BASED ON FREQUENT FLYER STATUS/ONLINE CHECKIN/FORM OF PAYMENT/MILITARY/ETC"
]
},
{
"@type": "BaggageAllowanceDetail",
"passengerTypeCodes": [
"SRC"
],
"baggageType": "CarryOn",
"ProductRef": [
"p1"
],
"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 1,
"BaggageFee": {
"code": "AUD",
"value": 0
},
"Text": "CARRYON HAND BAGGAGE ALLOWANCE"
}
],
"SegmentSequenceList": [
1
],
"Text": [
"2P"
]
}
],
"Restriction": [
{
"value": "* NONREF 572.38 AUD//PENALTIES APPLY/RESTRICTIONS APPLY/NO"
}
],
"ValidatingAirline": [
{
"@type": "ValidatingAirline",
"ValidatingAirline": "VA"
}
],
"PaymentTimeLimit": "2024-04-13T23:59:00Z",
"FareGuaranteePolicy": [
{
"@type": "FareGuaranteePolicy",
"EligibleforADMReview": "Yes",
"Code": {
"codeContext": "Travelport",
"value": "G"
}
}
],
"FulfillmentMethod": [
{
"@type": "FulfillmentMethod",
"RefundMethod": {
"value": "Unknown"
}
}
]
},
"ModifyPrice": {
"@type": "ModifyPriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 0,
"TotalTaxes": -191.68,
"TotalFees": 0,
"TotalPrice": -191.68,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 2,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 0,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": -47.92,
"Tax": [
{
"taxCode": "QR",
"value": -2.38
},
{
"taxCode": "UO",
"value": -45.54
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0,
"Fee": [
{
"@type": "Fee",
"description": "Change Fee",
"FeeAmountOrPercent": {
"@type": "FeeAmountOrPercentAmount",
"Amount": {
"code": "AUD",
"minorUnit": 2,
"value": 0
}
}
}
]
},
"Total": -47.92
},
"FareCalculation": "SYD VA MEL119.30AUD119.30END VA"
},
{
"@type": "PriceBreakdownAir",
"quantity": 2,
"requestedPassengerType": "SRC",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 0,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": -47.92,
"Tax": [
{
"taxCode": "QR",
"value": -2.38
},
{
"taxCode": "UO",
"value": -45.54
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0,
"Fee": [
{
"@type": "Fee",
"description": "Change Fee",
"FeeAmountOrPercent": {
"@type": "FeeAmountOrPercentAmount",
"Amount": {
"code": "AUD",
"minorUnit": 2,
"value": 0
}
}
}
]
},
"Total": -47.92
},
"FareCalculation": "SYD VA MEL119.30AUD119.30END VA"
}
]
}
},
{
"@type": "CatalogOfferingModify",
"id": "o1.0",
"ProductOptions": [
{
"@type": "ProductOptions",
"sequence": 1,
"Product": [
{
"@type": "ProductAir",
"totalDuration": "PT1H35M",
"id": "p1",
"FlightSegment": [
{
"@type": "FlightSegment",
"sequence": 1,
"Flight": {
"@type": "FlightID",
"FlightRef": "s2"
}
}
],
"PassengerFlight": [
{
"@type": "PassengerFlight",
"passengerQuantity": 2,
"passengerTypeCode": "ADT",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
1
],
"classOfService": "T",
"cabin": "Economy",
"fareBasisCode": "TZCH0",
"fareType": "PublicFare",
"Brand": {
"@type": "BrandID",
"BrandRef": "b1"
}
}
]
},
{
"@type": "PassengerFlight",
"passengerQuantity": 2,
"passengerTypeCode": "SRC",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
1
],
"classOfService": "T",
"cabin": "Economy",
"fareBasisCode": "TZCH0",
"fareType": "PublicFare",
"Brand": {
"@type": "BrandID",
"BrandRef": "b1"
}
}
]
}
]
}
]
}
],
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 477.2,
"TotalTaxes": 174.8,
"TotalFees": 0,
"TotalPrice": 652,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 2,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 119.3,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 43.7,
"Tax": [
{
"taxCode": "QR",
"value": 21.7
},
{
"taxCode": "UO",
"value": 14.82
},
{
"taxCode": "WG",
"value": 7.18
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0,
"Fee": [
{
"@type": "Fee",
"description": "Change Fee",
"FeeAmountOrPercent": {
"@type": "FeeAmountOrPercentAmount",
"Amount": {
"code": "AUD",
"minorUnit": 2,
"value": 0
}
}
}
]
},
"Total": 163
},
"FiledAmount": {
"currencyCode": "AUD",
"decimalPlace": 2,
"value": 119.3
}
},
{
"@type": "PriceBreakdownAir",
"quantity": 2,
"requestedPassengerType": "SRC",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 119.3,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 43.7,
"Tax": [
{
"taxCode": "QR",
"value": 21.7
},
{
"taxCode": "UO",
"value": 14.82
},
{
"taxCode": "WG",
"value": 7.18
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0,
"Fee": [
{
"@type": "Fee",
"description": "Change Fee",
"FeeAmountOrPercent": {
"@type": "FeeAmountOrPercentAmount",
"Amount": {
"code": "AUD",
"minorUnit": 2,
"value": 0
}
}
}
]
},
"Total": 163
},
"FiledAmount": {
"currencyCode": "AUD",
"decimalPlace": 2,
"value": 119.3
}
}
]
},
"TermsAndConditions": {
"@type": "TermsAndConditionsAirChange",
"BaggageAllowance": [
{
"@type": "BaggageAllowanceDetail",
"url": "http://VIEWTRIP.TRAVELPORT.COM/BAGGAGEPOLICY/VA",
"passengerTypeCodes": [
"ADT"
],
"baggageType": "FirstCheckedBag",
"ProductRef": [
"p1"
],
"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 1,
"BaggageFee": {
"code": "AUD",
"value": 0
},
"Text": "BAGGAGE CHARGES DATA NOT AVAILABLE"
}
],
"SegmentSequenceList": [
1
],
"Text": [
"1P|BAGGAGE DISCOUNTS MAY APPLY BASED ON FREQUENT FLYER STATUS/ONLINE CHECKIN/FORM OF PAYMENT/MILITARY/ETC"
]
},
{
"@type": "BaggageAllowanceDetail",
"passengerTypeCodes": [
"SRC"
],
"baggageType": "CarryOn",
"ProductRef": [
"p1"
],
"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 1,
"BaggageFee": {
"code": "AUD",
"value": 0
},
"Text": "CARRYON HAND BAGGAGE ALLOWANCE"
}
],
"SegmentSequenceList": [
1
],
"Text": [
"2P"
]
}
],
"Restriction": [
{
"value": "* NONREF 572.38 AUD//PENALTIES APPLY/RESTRICTIONS APPLY/NO"
}
],
"ValidatingAirline": [
{
"@type": "ValidatingAirline",
"ValidatingAirline": "VA"
}
],
"PaymentTimeLimit": "2024-04-13T23:59:00Z",
"FareGuaranteePolicy": [
{
"@type": "FareGuaranteePolicy",
"EligibleforADMReview": "Yes",
"Code": {
"codeContext": "Travelport",
"value": "G"
}
}
],
"FulfillmentMethod": [
{
"@type": "FulfillmentMethod",
"RefundMethod": {
"value": "Unknown"
}
}
]
},
"ModifyPrice": {
"@type": "ModifyPriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 0,
"TotalTaxes": -191.68,
"TotalFees": 0,
"TotalPrice": -191.68,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 2,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 0,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": -47.92,
"Tax": [
{
"taxCode": "QR",
"value": -2.38
},
{
"taxCode": "UO",
"value": -45.54
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0,
"Fee": [
{
"@type": "Fee",
"description": "Change Fee",
"FeeAmountOrPercent": {
"@type": "FeeAmountOrPercentAmount",
"Amount": {
"code": "AUD",
"minorUnit": 2,
"value": 0
}
}
}
]
},
"Total": -47.92
},
"FareCalculation": "SYD VA MEL119.30AUD119.30END VA"
},
{
"@type": "PriceBreakdownAir",
"quantity": 2,
"requestedPassengerType": "SRC",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 0,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": -47.92,
"Tax": [
{
"taxCode": "QR",
"value": -2.38
},
{
"taxCode": "UO",
"value": -45.54
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0,
"Fee": [
{
"@type": "Fee",
"description": "Change Fee",
"FeeAmountOrPercent": {
"@type": "FeeAmountOrPercentAmount",
"Amount": {
"code": "AUD",
"minorUnit": 2,
"value": 0
}
}
}
]
},
"Total": -47.92
},
"FareCalculation": "SYD VA MEL119.30AUD119.30END VA"
}
]
}
},
{
"@type": "CatalogOfferingModify",
"id": "o2.0",
"ProductOptions": [
{
"@type": "ProductOptions",
"sequence": 1,
"Product": [
{
"@type": "ProductAir",
"totalDuration": "PT1H35M",
"id": "p1",
"FlightSegment": [
{
"@type": "FlightSegment",
"sequence": 1,
"Flight": {
"@type": "FlightID",
"FlightRef": "s3"
}
}
],
"PassengerFlight": [
{
"@type": "PassengerFlight",
"passengerQuantity": 2,
"passengerTypeCode": "ADT",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
1
],
"classOfService": "T",
"cabin": "Economy",
"fareBasisCode": "TZCH0",
"fareType": "PublicFare",
"Brand": {
"@type": "BrandID",
"BrandRef": "b1"
}
}
]
},
{
"@type": "PassengerFlight",
"passengerQuantity": 2,
"passengerTypeCode": "SRC",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
1
],
"classOfService": "T",
"cabin": "Economy",
"fareBasisCode": "TZCH0",
"fareType": "PublicFare",
"Brand": {
"@type": "BrandID",
"BrandRef": "b1"
}
}
]
}
]
}
]
}
],
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 477.2,
"TotalTaxes": 174.8,
"TotalFees": 0,
"TotalPrice": 652,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 2,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 119.3,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 43.7,
"Tax": [
{
"taxCode": "QR",
"value": 21.7
},
{
"taxCode": "UO",
"value": 14.82
},
{
"taxCode": "WG",
"value": 7.18
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0,
"Fee": [
{
"@type": "Fee",
"description": "Change Fee",
"FeeAmountOrPercent": {
"@type": "FeeAmountOrPercentAmount",
"Amount": {
"code": "AUD",
"minorUnit": 2,
"value": 0
}
}
}
]
},
"Total": 163
},
"FiledAmount": {
"currencyCode": "AUD",
"decimalPlace": 2,
"value": 119.3
}
},
{
"@type": "PriceBreakdownAir",
"quantity": 2,
"requestedPassengerType": "SRC",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 119.3,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 43.7,
"Tax": [
{
"taxCode": "QR",
"value": 21.7
},
{
"taxCode": "UO",
"value": 14.82
},
{
"taxCode": "WG",
"value": 7.18
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0,
"Fee": [
{
"@type": "Fee",
"description": "Change Fee",
"FeeAmountOrPercent": {
"@type": "FeeAmountOrPercentAmount",
"Amount": {
"code": "AUD",
"minorUnit": 2,
"value": 0
}
}
}
]
},
"Total": 163
},
"FiledAmount": {
"currencyCode": "AUD",
"decimalPlace": 2,
"value": 119.3
}
}
]
},
"TermsAndConditions": {
"@type": "TermsAndConditionsAirChange",
"BaggageAllowance": [
{
"@type": "BaggageAllowanceDetail",
"url": "http://VIEWTRIP.TRAVELPORT.COM/BAGGAGEPOLICY/VA",
"passengerTypeCodes": [
"ADT"
],
"baggageType": "FirstCheckedBag",
"ProductRef": [
"p1"
],
"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 1,
"BaggageFee": {
"code": "AUD",
"value": 0
},
"Text": "BAGGAGE CHARGES DATA NOT AVAILABLE"
}
],
"SegmentSequenceList": [
1
],
"Text": [
"1P|BAGGAGE DISCOUNTS MAY APPLY BASED ON FREQUENT FLYER STATUS/ONLINE CHECKIN/FORM OF PAYMENT/MILITARY/ETC"
]
},
{
"@type": "BaggageAllowanceDetail",
"passengerTypeCodes": [
"SRC"
],
"baggageType": "CarryOn",
"ProductRef": [
"p1"
],
"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 1,
"BaggageFee": {
"code": "AUD",
"value": 0
},
"Text": "CARRYON HAND BAGGAGE ALLOWANCE"
}
],
"SegmentSequenceList": [
1
],
"Text": [
"2P"
]
}
],
"Restriction": [
{
"value": "* NONREF 572.38 AUD//PENALTIES APPLY/RESTRICTIONS APPLY/NO"
}
],
"ValidatingAirline": [
{
"@type": "ValidatingAirline",
"ValidatingAirline": "VA"
}
],
"PaymentTimeLimit": "2024-04-13T23:59:00Z",
"FareGuaranteePolicy": [
{
"@type": "FareGuaranteePolicy",
"EligibleforADMReview": "Yes",
"Code": {
"codeContext": "Travelport",
"value": "G"
}
}
],
"FulfillmentMethod": [
{
"@type": "FulfillmentMethod",
"RefundMethod": {
"value": "Unknown"
}
}
]
},
"ModifyPrice": {
"@type": "ModifyPriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 0,
"TotalTaxes": -191.68,
"TotalFees": 0,
"TotalPrice": -191.68,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 2,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 0,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": -47.92,
"Tax": [
{
"taxCode": "QR",
"value": -2.38
},
{
"taxCode": "UO",
"value": -45.54
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0,
"Fee": [
{
"@type": "Fee",
"description": "Change Fee",
"FeeAmountOrPercent": {
"@type": "FeeAmountOrPercentAmount",
"Amount": {
"code": "AUD",
"minorUnit": 2,
"value": 0
}
}
}
]
},
"Total": -47.92
},
"FareCalculation": "SYD VA MEL119.30AUD119.30END VA"
},
{
"@type": "PriceBreakdownAir",
"quantity": 2,
"requestedPassengerType": "SRC",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 0,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": -47.92,
"Tax": [
{
"taxCode": "QR",
"value": -2.38
},
{
"taxCode": "UO",
"value": -45.54
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0,
"Fee": [
{
"@type": "Fee",
"description": "Change Fee",
"FeeAmountOrPercent": {
"@type": "FeeAmountOrPercentAmount",
"Amount": {
"code": "AUD",
"minorUnit": 2,
"value": 0
}
}
}
]
},
"Total": -47.92
},
"FareCalculation": "SYD VA MEL119.30AUD119.30END VA"
}
]
}
}
]
},
"ReferenceList": [
{
"@type": "ReferenceListFlight",
"Flight": [
{
"@type": "FlightDetail",
"duration": "PT1H35M",
"carrier": "VA",
"number": "838",
"equipment": "73H",
"id": "s2",
"Departure": {
"@type": "Departure",
"location": "SYD",
"date": "2024-06-04",
"time": "12:00:00"
},
"Arrival": {
"@type": "ArrivalDetail",
"terminal": "1",
"location": "MEL",
"date": "2024-06-04",
"time": "13:35:00"
},
"AvailabilitySourceCode": "S"
},
{
"@type": "FlightDetail",
"duration": "PT1H35M",
"carrier": "VA",
"number": "870",
"equipment": "73H",
"id": "s24",
"Departure": {
"@type": "Departure",
"location": "SYD",
"date": "2024-06-04",
"time": "17:30:00"
},
"Arrival": {
"@type": "ArrivalDetail",
"terminal": "1",
"location": "MEL",
"date": "2024-06-04",
"time": "19:05:00"
},
"AvailabilitySourceCode": "S"
}
]
},
{
"@type": "ReferenceListBrand",
"Brand": [
{
"@type": "Brand",
"name": "CHOICE",
"tier": 1,
"id": "b1"
}
]
},
{
"@type": "ReferenceListExchangedPrice",
"Price": [
{
"@type": "PriceDetail",
"CurrencyCode": {
"value": "AUD"
},
"Base": 1144.76,
"TotalTaxes": 183.24,
"TotalPrice": 1328,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 2,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"value": "AUD"
},
"Base": 572.38,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 91.62,
"Tax": [
{
"taxCode": "QR",
"value": 24.08
},
{
"taxCode": "WG",
"value": 7.18
},
{
"taxCode": "UO",
"value": 60.36
}
]
},
"Total": 664
}
},
{
"@type": "PriceBreakdownAir",
"quantity": 2,
"requestedPassengerType": "SRC",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"value": "AUD"
},
"Base": 572.38,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 91.62,
"Tax": [
{
"taxCode": "QR",
"value": 24.08
},
{
"taxCode": "WG",
"value": 7.18
},
{
"taxCode": "UO",
"value": 60.36
}
]
},
"Total": 664
}
}
]
}
]
}
]
}
}