Standalone Price API Reference
|
POST |
book/airoffer/reservationworkbench/{workbenchID}/offers/buildfromshoppingcartproducts For {workbenchID} send the workbench identifier returned in ReservationResponse/Identifer/value in the workbench create response. Base path: Pre-production https://api.pp.travelport.net/11/air/ Production https://api.travelport.net/11/air/ |
Related Content: Booking Guide
The Standalone Price request is an optional request that follows Add Product in the Add Product booking workflow, an alternate workflow that does not use the Search and AirPrice requests that typically start the JSON APIs workflow. Standalone Price prices any unpriced flight products in the workbench. You can send Standalone Price in either the initial booking workbench or a post-commit workbench, such as during ticketing. You must have already sourced all details for the flight you want to price.
Note the following known issues with the initial release of Standalone Price:
- All unpriced products in the workbench are priced together. Pricing by traveler or segment is not supported.
- The PassengerFlight object does not return PTCs, passenger quantity, or cabin class.
- The response returns the FlightStatus object instead of Flight, which contains the StatusDetail information.
Request
As part of the request requirements, also see Authentication and Common Air Headers.
Query Parameters
None.
Request Body
Basic Standalone Price Request
|
Object |
Description |
Required/Optional |
|---|---|---|
|
OfferQueryBuildFromShoppingCartProducts |
Top level object. Includes PricingModifiersAir and ProductIdentifier. |
Required |
|
PricingModifiersAir |
Optional pricing modifiers. See table below. |
Optional |
|
ProductIdentifier |
Reference details for the products to price. Includes Identifier. |
Required |
|
id |
Text. Custom user-assigned id of choice. |
Required |
|
Identifier |
The system-generated identifier values for each product from the Add Product response. Key value pairs:
|
Required |
PricingModifiersAir (optional pricing modifiers)
|
Object |
Description |
Required |
|---|---|---|
|
PricingModifiersAir |
Object for optional journey modifiers. |
Optional |
|
|
GDS only, not supported for NDC. Not supported for AirPrice Full Payload or Standalone Price.
Boolean for split ticketing.
For split ticketing, the AirPrice request must send offers that are identified in the Search response with CombinabilityCode j0, which identifies those offers as one-way outbound and one-way inbound split ticketing offers. A combination of j0 and any non-j0 value offer returns an error message that split pricing is not supported Split ticketing is available only for customers specifically provisioned for split ticketing. Split ticketing returns one-way outbound and one-way inbound fares in addition to round-trip offers. Split ticket offers are identified with CombinabilityCode j0. If your account is not configured for split ticketing, sending includeSplitPaymentInd returns a response without split ticket offers and a warning message. GDS only, not supported for NDC.
|
Optional |
|
String. Send the currency type to return if you want to override the default currency of your PCC For a list of currency codes, see the Universal API Reference Data file linked from Downloads. |
Optional |
|
SellCity |
GDS only, not supported for NDC.
String. The IATA location code for the city. Overrides the sell city of the requester to specify an alternate sale location and return pricing based on that location. The response returns pricing in the local currency for the specified sell city instead of your PCC's default currency. |
Optional |
|
TicketCity |
GDS only, not supported for NDC.
String. The IATA location code for the city. Overrides the ticketing city of the requester to specify an alternate ticket location and return pricing based on that location. The response returns pricing in the local currency for the specified ticket city instead of your PCC's default currency. |
Optional |
|
TicketingPCC |
GDS only, not supported for NDC.
String, 2-10 characters supported. Overrides the ticketing PCC associated with your account to specify an alternate PCC and return pricing based on that PCC. |
Optional |
|
PricingPCC |
GDS only, not supported for NDC.
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. The following combinations of PricingPCC and FareSelection/fareType=PrivateFaresOnly (see below) return results as follows:
|
Optional |
|
ManualFareAdjustment |
GDS only, not supported for NDC. Not supported for Standalone Price.
Send to manually adjust the base fare amount on all fares for a specific PTC. You can increase or decrease the base fare per these @type values by either an amount or a percentage:
If the PCC currency and the country of origin currency are different, then the amount or percentage is applied to the filed amount base fare that is converted into the PCC currency.
The following PricingModifiersAir excerpt sends one instance of ManualFareAdjustment that discounts the ADT fare by 20%, and another instance that increases the CHD fare by the amount of 50.
|
Optional |
|
Send the PTC/s to be increased or decreased. This increases or decreases the fare for all passengers with that PTC/s. |
Required if ManualFareAdjustment is sent |
|
Send to adjust the base fare for the specified PTC/s by the percentage sent in Percent as follows:
|
Either AmountPercentPercent or AmountPercentAmount is required if ManualFareAdjustment is sent |
|
Send to adjust the base fare for the specified PTC/s by the amount sent in Amount as follows:
|
Either AmountPercentPercent or AmountPercentAmount is required if ManualFareAdjustment is sent |
|
FareSelection |
Requests the return of fare types including private fares (negotiated), public fares (published), or net fares (consolidator fares, or any negotiated wholesale price that is further marked up for sale to customers). |
Optional |
|
String. Supported values:
The response identifies the type of fare returned for each Product in PassengerFlight/FlightProduct @fareType. Possible values in the response are AirlinePrivateFare, AgencyPrivateFare, NetFare, or PublicFare. Includes FareSelectionDetail. |
Optional |
|
IATA code for a carrier to override any default validating carrier. |
Optional |
|
FareSelectionDetail |
Request fares with specific restrictions. The response does not return any indicators about these conditions. GSD only; not supported for NDC. No NDC content is returned if any of the following are sent with true.
|
Optional |
|
Boolean. true prevents the return of fares that require advance purchase. Default is false. |
Optional |
|
Boolean. true prevents the return of fares that require a maximum stay. Default is false. |
Optional |
|
Boolean. true prevents the return of fares that require a minimum stay. Default is false. |
Optional |
|
Boolean. true prevents the return of fares that are not fully refundable. Default is false. |
Optional |
|
OrganizationInformation
|
Use to send account codes for negotiated fares. Includes OrganizationIdentifier. |
Optional |
|
OrganizationIdentifier
|
Array of account codes to return negotiated fares. The response returns an instance of TermsAndConditions/OrganizationInformation/OrganizationIdentifier for each account code sent. When FareSelection/fareType=PrivateFaresOnly and an account code is sent in OrganizationIdentifier, AirPrice ignores the account code. Instead, AirPrice returns any private fares available for that market and a booking code for your PCC. This prevents the return of an error message when no specific fare has been filed for that account code.
|
Optional |
|
String. Always send with a value of Account.
|
Required with OrganizationIdentifier |
|
String. The account code to apply. |
Required with OrganizationIdentifier |
|
String. The IATA code for the airline on which the account code is applicable. |
Required with OrganizationIdentifier |
|
GDS only; not supported for NDC. Not supported in Standalone Price.
Boolean. Sets whether to limit fares returned to only fares filed for an account code.
If accountCodeFaresOnlyInd=true and an account code is sent, the response includes any fares filed for that account code plus fares that are not specific to the account code. If accountCodeFaresOnlyInd=true is sent and no account code is sent, accountCodeFaresOnlyInd is ignored; the response returns all fares and a warning message that the request must include an account code. Note the following when also requesting private fares only:
Note the following when also requesting net fares:
|
Optional |
|
TaxExemption |
GDS only, not supported for NDC.
Use to exempt some or all taxes. Must include either allTaxesExemptInd orboth countries and taxCodes per below. If sent, the response returns any exempt taxes with exemptInd=true and value=0. |
Optional |
|
countries |
Array. One or more codes for the countries in which the paired taxCodes sent are tax exempt. Must also send taxCodes object. Up to nine values total supported for countries, or for taxCodes, or for countries and taxCodes combined. |
Optional |
|
taxCodes |
Array. One or tax codes to mark as exempt in the paired country. Must also send countries object. |
Optional |
|
Boolean. Use to set all taxes as exempt.
|
Optional |
Response
The Standalone Price response structure is the same as for the AirPrice reference and full payload responses, except that StandalonePrice does not return terms and conditions (TermsAndConditionsFull object). See the AirPrice Reference Payload API Reference for the response table.
Example Request
{
"OfferQueryBuildFromShoppingCartProducts": {
"@type": "OfferQueryBuildFromShoppingCartProducts",
"PricingModifiersAir": {
"@type": "PricingModifiersAirDetail",
"currencyCode": "AUD",
"FareSelection": {
"@type": "FareSelectionDetail",
"fareType": "PublicFaresOnly"
}
},
"ProductIdentifier": [
{
"id": "P1",
"Identifier": {
"authority": "Travelport",
"value": "2c18911d-b130-4cb5-a2bd-54ce8057a478"
}
},
{
"id": "P2",
"Identifier": {
"authority": "Travelport",
"value": "1899822c-6cec-4b1a-9aec-7f29ec81e7e5"
}
}
]
}
}
Example Response
{
"OfferListResponse": {
"@type": "OfferListResponse",
"OfferID": [
{
"@type": "Offer",
"Identifier": {
"authority": "Travelport",
"value": "6787f382-c92b-476c-ae97-0066cdaaf974"
},
"Product": [
{
"@type": "ProductAir",
"id": "product_1",
"Identifier": {
"authority": "Travelport",
"value": "2c18911d-b130-4cb5-a2bd-54ce8057a478"
},
"FlightSegment": [
{
"@type": "FlightSegment",
"id": "FlightSegment_01",
"sequence": 1,
"Flight": {
"@type": "Flight",
"duration": "PT1H25M",
"carrier": "QF",
"number": "410",
"equipment": "73H",
"id": "Flight_01",
"Identifier": {
"authority": "Travelport",
"value": "92a1cd1b-24c0-437a-bb46-208e7d3bc69b"
},
"Departure": {
"@type": "Departure",
"location": "MEL",
"date": "2023-04-02",
"time": "07:00:00"
},
"Arrival": {
"@type": "Arrival",
"location": "SYD",
"date": "2023-04-02",
"time": "08:25:00"
}
}
}
],
"PassengerFlight": [
{
"@type": "PassengerFlight",
"passengerQuantity": 1,
"passengerTypeCode": "ADT",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
1
],
"classOfService": "E",
"cabin": "Economy"
}
]
},
{
"@type": "PassengerFlight",
"passengerQuantity": 1,
"passengerTypeCode": "CHD",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
1
],
"classOfService": "E",
"cabin": "Economy"
}
]
},
{
"@type": "PassengerFlight",
"passengerQuantity": 1,
"passengerTypeCode": "INF",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
1
],
"classOfService": "E",
"cabin": "Economy"
}
]
}
]
},
{
"@type": "ProductAir",
"id": "product_2",
"Identifier": {
"authority": "Travelport",
"value": "1899822c-6cec-4b1a-9aec-7f29ec81e7e5"
},
"FlightSegment": [
{
"@type": "FlightSegment",
"id": "FlightSegment_02",
"sequence": 2,
"Flight": {
"@type": "Flight",
"duration": "PT1H30M",
"carrier": "QF",
"number": "554",
"equipment": "73H",
"id": "Flight_02",
"Identifier": {
"authority": "Travelport",
"value": "05c297ed-b9bb-4507-a93d-0e2070f123d9"
},
"Departure": {
"@type": "Departure",
"location": "SYD",
"date": "2023-04-07",
"time": "21:35:00"
},
"Arrival": {
"@type": "Arrival",
"location": "BNE",
"date": "2023-04-07",
"time": "23:05:00"
}
}
}
],
"PassengerFlight": [
{
"@type": "PassengerFlight",
"passengerQuantity": 1,
"passengerTypeCode": "ADT",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
2
],
"classOfService": "E",
"cabin": "Economy"
}
]
},
{
"@type": "PassengerFlight",
"passengerQuantity": 1,
"passengerTypeCode": "CHD",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
2
],
"classOfService": "E",
"cabin": "Economy"
}
]
},
{
"@type": "PassengerFlight",
"passengerQuantity": 1,
"passengerTypeCode": "INF",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
2
],
"classOfService": "E",
"cabin": "Economy"
}
]
}
]
}
],
"Price": {
"@type": "PriceDetail",
"id": "PriceDetail_1",
"CurrencyCode": {
"value": "AUD"
},
"Base": 558.2,
"TotalTaxes": 166.2,
"TotalFees": 0,
"TotalPrice": 724.4,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 279.1,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 83.1,
"Tax": [
{
"currencyCode": "AUD",
"taxCode": "QR",
"value": 37.17
},
{
"currencyCode": "AUD",
"taxCode": "WG",
"value": 13
},
{
"currencyCode": "AUD",
"taxCode": "UO",
"value": 32.93
}
]
},
"Total": 362.2
}
},
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "CNN",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 279.1,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 83.1,
"Tax": [
{
"currencyCode": "AUD",
"taxCode": "QR",
"value": 37.17
},
{
"currencyCode": "AUD",
"taxCode": "WG",
"value": 13
},
{
"currencyCode": "AUD",
"taxCode": "UO",
"value": 32.93
}
]
},
"Total": 362.2
}
},
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "INF",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 0,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 0
},
"Total": 0
}
}
]
}
}
]
}
}