Ancillary Shop API Reference
POST |
ancillaryshop/catalogofferingsancillaries Base path: Pre-production https://api.pp.travelport.com/11/air/ Production https://api.travelport.com/11/air/ |
Related Content: Ancillary and EMD Guide, Ancillary Workflow Diagram
The Ancillary Shop request searches for available ancillaries. The request uses the same endpoint but a different payload for each flow, per below.
See the Ancillary and EMD Guide for workflow details and specific ancillaries supported.
For paid seats use the seat requests in the Seats Guide.
Request
Also see Authorization and Common Headers.
Query Parameters
None.
Request Body
Ancillary shop request in the initial booking workflow (pre-commit)
Object |
Description |
Required/Optional |
---|---|---|
CatalogOfferingsQueryAncillaries |
Top level object. |
Required |
AncillaryOfferings |
Top level object. |
Required |
BuildFromOffer |
Top level object. |
Required |
OfferIdentifier |
Top level object. |
Required |
Identifier (for the offer) |
Sends offer identifier. Key value pair:
|
Required |
ProductIdentifier |
Sends product identifier. |
Required |
Identifier (for the product) |
Sends product identifier. Repeat for each product as needed. Key value pair:
|
Required |
Ancillary shop request for existing reservation (post-commit)
Object |
Description |
Required/Optional |
---|---|---|
CatalogOfferingsQueryAncillaries |
Top level object. |
Required |
AncillaryOfferings |
Top level object. |
Required |
BuildFromReservationWorkbench |
Top level object. |
Required |
ReservationIdentifier |
Top level object. |
Required |
Identifier |
Sends workbench identifier. Key value pair:
|
Required |
Response
The Ancillary Shop response is the same following a request sent in either the initial booking flow or for an existing reservation.
Object |
Description |
---|---|
CatalogOfferingsAncillaryListResponse |
Top level object. Includes CatalogOfferingsID, Identifier, and ReferenceList. |
CatalogOfferingsID |
Top level object for offers. Includes CatalogOffering and TravelerIdentiferRef. Key value pairs:
|
CatalogOffering |
Array of individual ancillary offers. Key value pair:
Each instance includes Identifier, ProductOptions, Price, and TermsAndConditions objects. |
CatalogOffering/Identifier |
Identifier for the offer. Key value pairs:
CatalogOffering/Identifier/value and /authority must be sent in subsequent ancillary price and/or book requests.
|
ProductOptions |
Top level object for products in the offer. Includes Product object. |
Product |
Array. Returns one or more instances with @type ProductAncillary to detail the ancillary product. Key value pair:
Includes Quantity and Ancillary. CatalogOffering/ProductOptions/Product/id must be sent as the product identifier in any subsequent ancillary price and/or book requests.
|
Quantity |
The available number of this ancillary product. |
Ancillary |
Details of this ancillary. Includes Description and FlightRef. |
Description |
Supplier-provided description of this ancillary product. Key value pairs:
|
FlightRef |
Internal reference number for the flight on which this ancillary is available. Matches to FlightRef in ReferenceList/ReferenceListFlight. |
Price |
Price details for this ancillary product in this offer. Includes CurrencyCode, Base, TotalTaxes, TotalPrice objects. |
CurrencyCode |
The currency in which the price is returned. Unless changed in the request, the currency is the default associated with your provisioned PCC from Travelport. Key value pairs:
|
Base |
Base price before taxes. |
TotalTaxes |
Sum of all taxes for the product. |
TotalPrice |
Total price including base and taxes. |
TermsAndConditions |
Returned with @typeTermsAndConditionsAncillary. Terms and conditions for this ancillary product in this offer. Includes TravelerProduct and ApplicationLimit. |
TravelerProduct |
Includes TravelerIdentifierRef. |
TravelerIdentiferRef |
Returns details of the traveler the ancillary is requested for. Key value pairs: id: Internal system-generated traveler id. value: Internal system-generated traveler id. |
Any restrictions on the number of this ancillary product that can be purchased. Key value pairs:
|
|
CatalogOfferingsAncillaryListResponse/Identifier |
Identifier for ancillary shop response as a whole. Key value pairs:
CatalogOfferingsAncillaryListResponse/Identifier/value must be sent as the response identifier in subsequent ancillary price and/or book requests.
|
ReferenceList |
Consolidates flight details in ReferenceList/ReferenceListFlight. Includes ReferenceListFlight. See table below. |
The ancillary response returns ReferenceList/ReferenceListFlight for flight details. Does not return the AvailabilitySourceCode or IntermediateStop objects below.
Object | Description |
---|---|
ReferenceListFlight |
Returns an array of Flight objects that match to the flights that make up a product. ReferenceListFlight is a common object in the model. Not all objects in this table may be returned in this specific API. |
Flight |
One instance for one flight. Key value pairs:
For GDS, the Flight id is formatted as the letter ‘s’+ unique numeric value, as in s1. For NDC, the Flight id is formatted as the two letter NDC carrier code + s+ unique numeric value, as in QFs1. Includes Departure, Arrival, AvailabilitySourceCode, and IntermediateStop objects. |
Departure |
Departure details. Key value pairs are the location, date, time, and terminal of departure. |
Arrival |
Arrival details. Key value pairs are the location, date, time, and terminal of arrival. |
Returned to assist in troubleshooting. Returned in Search, Air Availability, Exchange Search, AirPrice, and AirReservation commit responses. Recommended to be sent in the AirPrice Full Payload and Add Offer Full Payload requests. Supported values and definitions for AvailabilitySourceCode are as follows:
|
|
IntermediateStop |
Returned if the flight has a technical stop but does not incur a change in flight number. Returned only in Search and Exchange Search responses. Key value pairs:
|
Example Request
Ancillary shop request in the initial booking workflow (pre-commit)
The following example payload, sent for a new reservation, sends offer and product identifiers from the Search response.
{
"CatalogOfferingsQueryAncillaries": {
"AncillaryOfferings": {
"@type": "AncillaryOfferingsBuildFromOffer",
"BuildFromOffer": {
"@type": "BuildFromOfferAir",
"OfferIdentifier": {
"Identifier": {
"value": "653f9c6f-4618-44e5-8f2d-2a23dd6fcc40_PC"
}
},
"ProductIdentifier": [
{
"Identifier": {
"value": "p0"
}
}
]
}
}
}
}
Ancillary shop request for existing reservation (post-commit)
The following example payload, sent for an existing reservation, sends the workbench identifier.
{
"CatalogOfferingsQueryAncillaries": {
"AncillaryOfferings": {
"@type": "AncillaryOfferingsBuildFromReservationWorkbench",
"BuildFromReservationWorkbench": {
"ReservationIdentifier": {
"Identifier": {
"value": "85d34008-c5ad-42f6-99ee-a7c0e6d5a2a3"
}
}
}
}
}
}
Example Response
The Ancillary Shop response is the same following a request sent in either the initial booking flow or for an existing reservation.
The following example response returns several offers for paid baggage.
{
"CatalogOfferingsAncillaryListResponse": {
"transactionId": "144e53d3-ce6e-4a34-83a1-3dc1fe2c2fe2:ppnd1001",
"CatalogOfferingsID": [
{
"@type": "CatalogOfferingsTraveler",
"id": "CT1",
"CatalogOffering": [
{
"@type": "CatalogOffering",
"id": "anc_off1",
"ProductOptions": [
{
"@type": "ProductOptions",
"Product": [
{
"@type": "ProductAncillary",
"id": "an1",
"Quantity": 1,
"Ancillary": {
"@type": "AncillaryAir",
"Description": [
{
"code": "SA",
"subCode": "0B5",
"value": "SEAT ASSIGNMENT"
}
],
"FlightRef": [
"FlightSegment_01"
]
}
}
]
}
],
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"value": "AUD"
},
"Base": 27.27,
"TotalTaxes": 2.73,
"TotalPrice": 30
},
"TermsAndConditions": {
"@type": "TermsAndConditionsAncillary",
"ExpiryDate": "2049-12-12T00:00:00Z",
"ApplicationLimit": {
"value": "PassengerSegment"
}
}
},
{
"@type": "CatalogOffering",
"id": "anc_off2",
"ProductOptions": [
{
"@type": "ProductOptions",
"Product": [
{
"@type": "ProductAncillary",
"id": "an2",
"Quantity": 1,
"Ancillary": {
"@type": "AncillaryAir",
"Description": [
{
"code": "BG",
"subCode": "0C1",
"value": "EXTRA 15KG FOR KG ALLOWANCE"
}
],
"FlightRef": [
"FlightSegment_01"
]
}
}
]
}
],
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"value": "AUD"
},
"Base": 22.73,
"TotalTaxes": 2.27,
"TotalPrice": 25
},
"TermsAndConditions": {
"@type": "TermsAndConditionsAncillary",
"ExpiryDate": "2049-12-12T00:00:00Z",
"ApplicationLimit": {
"value": "PassengerSegment"
}
}
},
{
"@type": "CatalogOffering",
"id": "anc_off3",
"ProductOptions": [
{
"@type": "ProductOptions",
"Product": [
{
"@type": "ProductAncillary",
"id": "an3",
"Quantity": 1,
"Ancillary": {
"@type": "AncillaryAir",
"Description": [
{
"code": "BG",
"subCode": "0C4",
"value": "EXTRA 25KG FOR KG ALLOWANCE"
}
],
"FlightRef": [
"FlightSegment_01"
]
}
}
]
}
],
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"value": "AUD"
},
"Base": 31.82,
"TotalTaxes": 3.18,
"TotalPrice": 35
},
"TermsAndConditions": {
"@type": "TermsAndConditionsAncillary",
"ExpiryDate": "2049-12-12T00:00:00Z",
"ApplicationLimit": {
"value": "PassengerSegment"
}
}
},
{
"@type": "CatalogOffering",
"id": "anc_off4",
"ProductOptions": [
{
"@type": "ProductOptions",
"Product": [
{
"@type": "ProductAncillary",
"id": "an4",
"Quantity": 1,
"Ancillary": {
"@type": "AncillaryAir",
"Description": [
{
"code": "BG",
"subCode": "0C7",
"value": "EXTRA 35KG FOR KG ALLOWANCE"
}
],
"FlightRef": [
"FlightSegment_01"
]
}
}
]
}
],
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"value": "AUD"
},
"Base": 40.91,
"TotalTaxes": 4.09,
"TotalPrice": 45
},
"TermsAndConditions": {
"@type": "TermsAndConditionsAncillary",
"ExpiryDate": "2049-12-12T00:00:00Z",
"ApplicationLimit": {
"value": "PassengerSegment"
}
}
},
{
"@type": "CatalogOffering",
"id": "anc_off5",
"ProductOptions": [
{
"@type": "ProductOptions",
"Product": [
{
"@type": "ProductAncillary",
"id": "an5",
"Quantity": 1,
"Ancillary": {
"@type": "AncillaryAir",
"Description": [
{
"code": "BG",
"subCode": "0CC",
"value": "EXTRA BAG FOR PC ALLOWANCE"
}
],
"FlightRef": [
"FlightSegment_01"
]
}
}
]
}
],
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"value": "AUD"
},
"Base": 45.45,
"TotalTaxes": 4.55,
"TotalPrice": 50
},
"TermsAndConditions": {
"@type": "TermsAndConditionsAncillary",
"ExpiryDate": "2049-12-12T00:00:00Z",
"ApplicationLimit": {
"value": "PassengerSegment"
}
}
},
{
"@type": "CatalogOffering",
"id": "anc_off6",
"ProductOptions": [
{
"@type": "ProductOptions",
"Product": [
{
"@type": "ProductAncillary",
"id": "an6",
"Quantity": 1,
"Ancillary": {
"@type": "AncillaryAir",
"Description": [
{
"code": "BG",
"subCode": "0CW",
"value": "EXTRA 5KG FOR KG ALLOWANCE"
}
],
"FlightRef": [
"FlightSegment_01"
]
}
}
]
}
],
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"value": "AUD"
},
"Base": 13.64,
"TotalTaxes": 1.36,
"TotalPrice": 15
},
"TermsAndConditions": {
"@type": "TermsAndConditionsAncillary",
"ExpiryDate": "2049-12-12T00:00:00Z",
"ApplicationLimit": {
"value": "PassengerSegment"
}
}
},
{
"@type": "CatalogOffering",
"id": "anc_off7",
"ProductOptions": [
{
"@type": "ProductOptions",
"Product": [
{
"@type": "ProductAncillary",
"id": "an7",
"Quantity": 1,
"Ancillary": {
"@type": "AncillaryAir",
"Description": [
{
"code": "BG",
"subCode": "0CZ",
"value": "EXTRA 10KG FOR KG ALLOWANCE"
}
],
"FlightRef": [
"FlightSegment_01"
]
}
}
]
}
],
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"value": "AUD"
},
"Base": 18.18,
"TotalTaxes": 1.82,
"TotalPrice": 20
},
"TermsAndConditions": {
"@type": "TermsAndConditionsAncillary",
"ExpiryDate": "2049-12-12T00:00:00Z",
"ApplicationLimit": {
"value": "PassengerSegment"
}
}
}
],
"TravelerIdentifierRef": [
{
"passengerTypeCode": "ADT",
"id": "travelerRefId_1"
}
]
}
],
"Result": {
"@type": "Result",
"Warning": [
{
"@type": "Warning",
"Message": "SERVICES RELATED TO THE FARE MAY EXIST - MUST PRICE THE PNR"
}
]
},
"Identifier": {
"authority": "Travelport",
"value": "85d34008-c5ad-42f6-99ee-a7c0e6d5a2a3"
},
"ReferenceList": [
{
"@type": "ReferenceListFlight",
"Flight": [
{
"@type": "Flight",
"carrier": "QF",
"number": "407",
"operatingCarrier": "QF",
"operatingCarrierName": "Qantas Airways",
"id": "FlightSegment_01",
"Departure": {
"@type": "Departure",
"location": "SYD",
"date": "2022-07-13",
"time": "06:45:00"
},
"Arrival": {
"@type": "Arrival",
"location": "MEL",
"date": "2022-07-13",
"time": "08:20:00"
}
}
]
}
]
}
}