Flight Specific Search Reference Payload API Reference
POST |
catalog/search/catalogproductofferings/buildoptions Base path: Pre-production https://api.pp.travelport.com/11/air/ Production https://api.travelport.com/11/air/ |
Related Content: Air Shopping Guide, Search Workflow Diagrams
Use the Flight Specific Search API reference payload request to return additional upsells (you can set up to 99) for any product or products returned by a Search or Next Leg Search. The reference payload sends an identifier referencing a previous response and the offer and product identifiers. The full payload request does not reference a previous Search response.
Request
Also see Authorization and Common Headers.
Query Parameters
None.
Request Body
The Flight Specific Search POST request requires a message payload with identifiers for the transaction, the offer, and the product for which you want to return additional upsells. The following table details the required objects.
Object |
Description |
Required/Optional |
|
---|---|---|---|
CatalogProductOfferingsQueryBuildOptions |
Top level object for request. |
Required |
|
BuildOptions |
Top level object. |
Required |
|
|
Number of upsells to return. Valid values are 0 to 99 inclusive. If the carrier has filed fewer upsells, all filed upsells are returned. | Optional | |
BuildFromCatalogProductOfferingsRequest |
Top level object. |
Required |
|
CatalogProductOfferingsIdentifier |
Top level object. Includes Identifier object. |
Required |
|
CatalogProductOfferingsIdentifier/Identifier |
The transaction identifier from the Search or Next Leg Search response. CatalogProductOfferings/Identifier is not returned in the initial Search response if caching is not invoked with offersPerPage in the initial Search request. Without caching, any subsequent reference payload request to those search results will fail.
|
Required |
|
|
Value from CatalogProductOfferingsResponse /CatalogProductOfferings/Identifer/value in the Search response. |
Required |
|
CatalogProductOfferingSelection
|
Array. Each instance is a set of offer and product identifiers that make up one leg of the itinerary. Repeat for each leg. GDS only; for NDC you must send identifiers for all legs.
Includes CatalogProductOfferingIdentifier and ProductIdentifier. |
Required |
|
CatalogProductOfferingIdentifier |
Array. Specifies one offer from the Search or Next Leg Search response. Includes Identifier object for offer. |
Required |
|
CatalogProductOfferingIdentifier/ Identifier |
Includes the offer identifier value. |
Required |
|
|
Value from CatalogProductOfferings/CatalogProductOffering/id in the Search or Next Leg Search response for the offer. |
Required |
|
ProductIdentifier |
Array. Specifies one product in the offer from the Search or Next Leg Search response. Includes Identifier object for product. |
Required |
|
ProductIdentifier/ Identifier |
Includes the product identifier value. |
Required |
|
|
Value from CatalogProductOfferings/CatalogProductOffering/ ProductBrandOptions/ ProductBrandOffering/Product/productRef in the Search or Next Leg Search response for the product to request additional upsells for. |
Required |
Response
The Flight Specific Search response uses the same structure and returns the same objects as the Search response. The differences are:
- One instance of CatalogProductOffering (id o1) is returned for each offer sent in the request.
- One instance of ReferenceListProduct/Product is returned for each product sent in the request.
Example Request
The following example request sends offer and product identifiers from each leg (CatalogProductOffering) of the preceding Search request to return all filed upsells for those flights on each leg.
{
"CatalogProductOfferingsQueryBuildOptions": {
"BuildOptions": {
"@type": "BuildOptionsFromCatalogProductOptions",
"maxNumberOfUpsellsToReturn": 99,
"BuildFromCatalogProductOfferingsRequest": {
"@type": "BuildFromCatalogProductOfferingsRequest",
"CatalogProductOfferingsIdentifier": {
"Identifier": {
"value": "d16ea93b-1246-4fd9-900a-8708e81dfe9f"
}
},
"CatalogProductOfferingSelection": [
{
"CatalogProductOfferingIdentifier": {
"Identifier": {
"value": "o1"
}
},
"ProductIdentifier": [
{
"Identifier": {
"value": "p0"
}
}
]
},
{
"CatalogProductOfferingIdentifier": {
"Identifier": {
"value": "o2"
}
},
"ProductIdentifier": [
{
"Identifier": {
"value": "p2"
}
}
]
}
]
}
}
}
}
Example Response
The following example excerpt returns the base fare and 8 upsells (BrandRef values b0-8) for the outbound leg and the base fare and seven upsells (BrandRef values b0-7) for the inbound leg. The base fare and each upsell are each returned in an instance of ProductBrandOffering. The ReferenceList objects consolidating details were removed for brevity; see the developer toolkits for full examples.
{
"CatalogProductOfferingsResponse": {
"@type": "CatalogProductOfferingsResponse",
"transactionId": "c974d270-2c49-477d-9421-4661eb90a41b:ppnd1002",
"CatalogProductOfferings": {
"@type": "CatalogProductOfferings",
"Identifier": {
"value": "b749fcb6-4cdf-4285-ae8e-12fd317244a6"
},
"CatalogProductOffering": [
{
"@type": "CatalogProductOffering",
"sequence": 1,
"id": "o1",
"Departure": "ORD",
"Arrival": "ATL",
"Brand": [
{
"@type": "BrandID",
"BrandRef": "b0"
},
{
"@type": "BrandID",
"BrandRef": "b1"
},
{
"@type": "BrandID",
"BrandRef": "b2"
},
{
"@type": "BrandID",
"BrandRef": "b3"
},
{
"@type": "BrandID",
"BrandRef": "b4"
},
{
"@type": "BrandID",
"BrandRef": "b5"
},
{
"@type": "BrandID",
"BrandRef": "b6"
},
{
"@type": "BrandID",
"BrandRef": "b7"
},
{
"@type": "BrandID",
"BrandRef": "b8"
}
],
"ProductBrandOptions": [
{
"@type": "ProductBrandOptions",
"ProductBrandOffering": [
{
"@type": "ProductBrandOffering",
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 2214,
"TotalTaxes": 197.51,
"TotalFees": 0,
"TotalPrice": 2411.51,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 2214,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 197.51,
"Tax": [
{
"taxCode": "AY",
"value": 7.5
},
{
"taxCode": "US",
"value": 166.01
},
{
"taxCode": "XF",
"value": 12
},
{
"taxCode": "ZP",
"value": 12
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 2411.51
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "b0"
},
"Product": [
{
"@type": "ProductID",
"productRef": "p0"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "T0"
},
"CombinabilityCode": [
"j1"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 3405,
"TotalTaxes": 312.4,
"TotalPrice": 3717.4,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 3405,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 312.4,
"Tax": [
{
"taxCode": "AY",
"value": 15
},
{
"taxCode": "US",
"value": 255.4
},
{
"taxCode": "XF",
"value": 12
},
{
"taxCode": "ZP",
"value": 30
}
]
},
"Total": 3717.4
}
}
]
}
},
{
"@type": "ProductBrandOffering",
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 2462,
"TotalTaxes": 216.34,
"TotalFees": 0,
"TotalPrice": 2678.34,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 2462,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 216.34,
"Tax": [
{
"taxCode": "AY",
"value": 7.5
},
{
"taxCode": "US",
"value": 184.84
},
{
"taxCode": "XF",
"value": 12
},
{
"taxCode": "ZP",
"value": 12
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 2678.34
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "b8"
},
"Product": [
{
"@type": "ProductID",
"productRef": "p1"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "T1"
},
"CombinabilityCode": [
"j10"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 5839,
"TotalTaxes": 495,
"TotalPrice": 6334,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 5839,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 495,
"Tax": [
{
"taxCode": "AY",
"value": 15
},
{
"taxCode": "US",
"value": 438
},
{
"taxCode": "XF",
"value": 12
},
{
"taxCode": "ZP",
"value": 30
}
]
},
"Total": 6334
}
}
]
}
}
]
}
]
},
{
"@type": "CatalogProductOffering",
"sequence": 2,
"id": "o2",
"Departure": "ATL",
"Arrival": "DEN",
"Brand": [
{
"@type": "BrandID",
"BrandRef": "b0"
},
{
"@type": "BrandID",
"BrandRef": "b1"
},
{
"@type": "BrandID",
"BrandRef": "b2"
},
{
"@type": "BrandID",
"BrandRef": "b3"
},
{
"@type": "BrandID",
"BrandRef": "b4"
},
{
"@type": "BrandID",
"BrandRef": "b5"
},
{
"@type": "BrandID",
"BrandRef": "b6"
},
{
"@type": "BrandID",
"BrandRef": "b7"
}
],
"ProductBrandOptions": [
{
"@type": "ProductBrandOptions",
"ProductBrandOffering": [
{
"@type": "ProductBrandOffering",
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 1191,
"TotalTaxes": 114.89,
"TotalFees": 0,
"TotalPrice": 1305.89,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 1191,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 114.89,
"Tax": [
{
"taxCode": "AY",
"value": 7.5
},
{
"taxCode": "US",
"value": 89.39
},
{
"taxCode": "ZP",
"value": 18
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 1305.89
},
"Surcharges": {
"@type": "SurchargesDetail",
"approximateInd": true,
"TotalSurcharges": 26,
"Surcharge": [
{
"currencyCode": "AUD",
"purpose": "Other",
"decimalPlace": 2,
"value": 13
},
{
"currencyCode": "AUD",
"purpose": "Other",
"decimalPlace": 2,
"value": 13
}
]
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "b6"
},
"Product": [
{
"@type": "ProductID",
"productRef": "p2"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "T2"
},
"CombinabilityCode": [
"j1"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 3405,
"TotalTaxes": 312.4,
"TotalPrice": 3717.4,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 3405,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 312.4,
"Tax": [
{
"taxCode": "AY",
"value": 15
},
{
"taxCode": "US",
"value": 255.4
},
{
"taxCode": "XF",
"value": 12
},
{
"taxCode": "ZP",
"value": 30
}
]
},
"Total": 3717.4
}
}
]
}
}
]
}
]
}
]
},
"Result": {
"@type": "Result"
},
"ReferenceList": [
{...},
{...},
{...},
{...}
]
}
}