Retrieve Product Pricing API Documentation

v2

The Retrieve Product Pricing API is available specifically to redemption partners. It calculates discount price points for requested products. The products can be flights, flight ancillaries, car hire, hotels and insurance. Price points can also be calculated for a package of products containing a mix of any of the products previously listed.

Discount pricing points contain two values:

  • Cash discounted value.
  • Avios points value, which will be redeemed for the cash discount.

Product prices can be retrieved without specifying an individual member or they can be tailored to the individual member.

Business Context

Here’s the process flow:

Product Pricing API Flow

  • The member undertakes a product purchase journey in the partner’s channel.
  • As part of this journey, the member will be able to view the pricing points of the product selected.
  • An application within the partner channel will determine the product that is of interest to the member.
  • These details are passed to the Retrieve Product Prices API.
  • The Retrieve Product Prices API processes the request and returns discount price options.
  • The partner displays the discount price options in their application
  • The member selects their preferred payment ‘mix of cash & Avios’ for product(s).
  • The partner calls the Debit Currency API to debit the member’s balance in IAGL systems.
  • The partner confirms the outcome to the member and allows the member to continue their journey.
  • In the event of any failure in the this journey, partners can call the Reverse Transactions API to restore the member’s Avios balance.

Technical Context

The Retrieve Product Prices API does not depend upon member information being supplied. It can be called at any stage either before or after a member logs in and can be invoked before a member registers.

The Retrieve Product Prices API performs the following steps:

  • Validates input in the API request.
  • Calculates discount price options for the requested product(s) based on the configured product criteria.
  • If a partner has selected to ‘adjust & recalculate’ during partner onboarding, the API will adjust and recalculate the discount price options with regard to the member’s Avios.
  • Does not ‘adjust & recalculate’ if more than one product is supplied in the request.
  • Returns discount price options ‘mix of cash & Avios’.
  • Discount prices are returned for flights and ancillaries based on the complete flight. They are not broken down by flight segment.
  • Returns discount price options in partner’s preferred currencies. Partners will choose a base currency and other preferred currencies during initial set-up with IAGL.
  • If partner’s request contains other currencies than partner’s base currency, then Retrieve Product Price API converts the requested currency in to partner’s base currency to calculate the discount options and then converts back to requested currency before returning the discount options to partner.
  • Returns an error on failure.

Important Technical Notes

  • All enumerated values must be recorded in upper case ASCII characters. Response messages will be returned in upper case.

Pre-conditions

  • A partner needs to be in possession of an API key to be able to use the IAGL Avios API.
  • Pricing configurations that have been agreed by both IAGL and the Partner:
    • List of Products
    • Number of Price Points to be returned in API response
    • Price Points Percentage & Weight
    • Minimum Avios required for members to pay
    • Maximum Cash amount cap for the products
    • Default Value per Avios (VPA)
    • Base Currency Code & Other preferred Currencies
    • Adjust & Recalculation required

Post-conditions

Success outcome: One or more product pricing points are returned in the API response message.

Error outcome: An error is returned.

Service Details

URI Parameters

Production Endpoint:

POST https://api.avios.com/{version}/product-prices?api_key={api_key}

Example

https://api.avios.com/v2/product-prices?api_key=abcdefabcdefabcdefabcdef
NameData typeDescriptionExample
Version
Required
StringThe version number of the API being called. The correct version is confirmed during the partner on-boarding process.
Format: Alphanumeric
v2
api_key
Required
StringThe partner API key provided during initial partner configuration within Loyalty Programme systems as part of the standard partner on-boarding process.
Format: As supplied by IAGL during partner configuration, alpha-numeric
abcdefabcdefabcdefabcdef

Request Headers

NameData typeDescriptionExample
accept
Optional
StringThe Accept request- header field is used to specify certain media types which are acceptable for the response. Restricted to application/JSON.
Format: application/< content-type >
application/JSON
content-type
Required
StringThe Content-Type request-header field indicates the media type of the entity-body sent to the recipient as request payload.Restricted to application/JSON.
Format: application/< content-type >
application/JSON
X-Forwarded-For
Optional
StringThe IP address of the end customer. API will validate just first provided IP address.
Format: Comma separated Valid IP addresses
45.143.76.250, 45.143.76.251
Authorization
Conditional
StringAn access token authorising the partner to access member specific pricing via this API. This is base 64bit code. If membership number is specified in request message, access token has to be provided for that member. If membership number is not provided in request message API doesn’t validate an access token. If Authorisation header and membership number are supplied in the request, then discount price points calculations take member's balance and the specific pricing rules for that partner into consideration.
Format: JWT Token
X-Agent-Id
Optional
StringAn agent Id represents the agent name/user name/login id for offline channels like call centres.
Format: Alphanumeric
Masanobu.Fukuoka

Request Elements

The following is an example of a Flight request to the Product Pricing API:

{
  "priceSearchCriteria": {
    "priceType": "DYNAMIC_DISCOUNT",
    "priceSource": "CACHED",
    "membership": {

A Flight ancillary request to the Product Pricing API:

{
  "priceSearchCriteria": {
    "priceType": "DYNAMIC_DISCOUNT",
    "priceSource": "CACHED",
    "product": {

A Car Hire request to the Product Pricing API:

{
  "priceSearchCriteria": {
    "priceType": "DYNAMIC_DISCOUNT",
    "priceSource": "CACHED",
    "product": {

An Hotel request to the Product Pricing API:

{
  "priceSearchCriteria": {
    "priceType": "DYNAMIC_DISCOUNT",
    "priceSource": "CACHED",
    "product": {

An Insurance request to the Product Pricing API:

{
  "priceSearchCriteria": {
    "priceType": "DYNAMIC_DISCOUNT",
    "priceSource": "CACHED",
    "product": {

A Package product request to the Product Pricing API:

{
  "priceSearchCriteria": {
    "priceType": "DYNAMIC_DISCOUNT",
    "priceSource": "CACHED",
    "membership": {
NameData typeDescription
priceSearchCriteria
Required
Complex typeThis product price retrieval complex type holds all information needed for successful call for product prices.
priceSearchCriteria.priceType
Required
StringType of price. Must be STATIC_DISCOUNT for static discount options and DYNAMIC_DISCOUNT for dynamic discount options.
Format: Enumeration
priceSearchCriteria.priceSource
Required
StringSource of price. Case sensitive and must be set to CACHED.
Format: Enumeration
priceSearchCriteria.membership
Optional
Complex typeComplex type which contains details about a member.
priceSearchCriteria.membership.membershipNumber
Optional
StringMembership Number
Format: Numeric. Max length: 24 only
priceSearchCriteria.membership.tier
Optional
StringMember’s tier (“BLUE”, “BRONZE”, “SILVER”, “GOLD”)
Format: Alphabetic. Max length: 20 only
priceSearchCriteria.membership.balance
Optional
NumberMember's Avios balance
Format: Format: Numeric only. Max value: 2147483647
priceSearchCriteria.product
Required
Complex typeProduct is the generalised element and at least one type of product (flight, flightAncillary, carHire, hotel, insurance and packagedProduct) MUST be supplied in the request.
priceSearchCriteria.product.flight
Conditional
Complex typeThis element represents the flight product. At least one type of product must be supplied in request.
priceSearchCriteria.product.directFlight
Optional
StringSpecifies if the flight is direct.
Format: true, false
priceSearchCriteria.product.returnJourney
Optional
BooleanSpecifies if flight has return journey. If not provided in request message default value false is assigned.
Format: true, false
priceSearchCriteria.product.flight.passengerSummary
Optional
Complex typeThis complex type contains information about passengers.
priceSearchCriteria.product.flight.passengerSummary.adultCount
Optional
NumberNumber of adult passengers If this element is not provided 0 as default value is assigned.
Format: Numeric only. Max value: 2147483647
priceSearchCriteria.product.flight.passengerSummary.youngAdultCount
Optional
NumberNumber of young adult passengers If this element is not provided 0 as default value is assigned.
Format: Numeric only. Max value: 2147483647
priceSearchCriteria.product.flight.passengerSummary.childCount
Optional
NumberNumber of child passengers. If this element is not provided 0 as default value is assigned.
Format: Numeric only. Max value: 2147483647
priceSearchCriteria.product.flight.passengerSummary.infantCount
Optional
NumberNumber of infant passengers. If this element is not provided 0 as default value is assigned.
Format: Numeric only. Max value: 2147483647
priceSearchCriteria.product.flight.passengerSummary.seniorCount
Optional
NumberNumber of senior passengers. If this element is not provided 0 as default value is assigned.
Format: Numeric only. Max value: 2147483647
priceSearchCriteria.product.flight.segment
Required
Array of Complex typeDescribes the flight schedule and the related operational details in Segment level.
priceSearchCriteria.product.flight.segment.outbound
Optional
Booleantrue represents the outbound flight and false represents the inbound flight. If this element is not provided then default false value is assigned.
Format: true, false
priceSearchCriteria.product.flight.segment.leg
Required
Array Complex typeOne point-to-point journey in a flight segment. This element describes the route of a leg within the segment of a flight.
priceSearchCriteria.product.flight.segment.leg.fareFamilyCode
Optional
StringSpecifies fare family code. Only uppercase characters are accepted. Example: FF1, FF2, FF3, FF4, FF5, FF6, FF7, FF8, FF9, FF10
Format: Alphanumeric. Max length: 5
priceSearchCriteria.product.flight.segment.leg.schedule
Required
Complex typeThe flight schedule identifies the departure date, departure location and arrival location.
priceSearchCriteria.product.flight.segment.leg.schedule.departureDateRange
Optional
Complex typeSpecifies departure date. If not supplied in request message API returns SYSTEM_UNAVAILABLE error.
priceSearchCriteria.product.flight.segment.leg.schedule.departureDateRange.startDateTime
Optional
DateTimeStart date and time of outbound journey. This element doesn’t accept past dates. Example: 2020-12-12T13:39:16.213+01:00
Format: ISO-8601 Calendar date format. YYYY-MM-DDThh:mm:ss.sTZD
priceSearchCriteria.product.flight.segment.leg.schedule.departureLocation
Required
Complex typeOutbound location of a particular leg for this route.
priceSearchCriteria.product.flight.segment.leg.schedule.departureLocation.id
Required
String3 letter IATA Airport code that identifies the departure location. API just validate max length of the element but not the value it self. Accepts only uppercase characters. Example: LHR, LGW, LCY
Format: Alphabetic. Max length: 3
priceSearchCriteria.product.flight.segment.leg.schedule.departureLocation.type
Required
StringType of departure location. Case sensitive and must be AIRPORT.
Format: Enumeration
priceSearchCriteria.product.flight.segment.leg.schedule.arrivalLocation
Required
Complex typeInbound location of a particular leg for this route.
priceSearchCriteria.product.flight.segment.leg.schedule.arrivalLocation.id
Required
String3 letter IATA Airport code that identifies the arrival location. API just validate max length of the element but not the value it self. Accepts only uppercase characters. Example: JFK, DUB, SYD
Format: Alphabetic. Max length: 3
priceSearchCriteria.product.flight.segment.leg.schedule.arrivalLocation.type
Required
StringType of arrival location. Case sensitive and must be AIRPORT.
Format: Enumeration
priceSearchCriteria.product.flight.segment.leg.marketingCarrier
Required
Complex typeThe carrier that sells with its own code as part of a code-share agreement on a flight actually operated by another carrier .
priceSearchCriteria.product.flight.segment.leg.marketingCarrier.flightNumber
Required
StringFlight Number. Example: 0016
Format: Numeric only. Max length: 4
priceSearchCriteria.product.flight.segment.leg.marketingCarrier.iatacode
Required
Complex typeFlight’s IATA code.
priceSearchCriteria.product.flight.segment.leg.marketingCarrier.iatacode.code
Required
String2 character IATA carrier code. API just validate max length of the element but not the value it self. Accepts only uppercase characters. Example: EI, BA, VY
Format: Alphanumeric. Max length: 2
priceSearchCriteria.product.flight.segment.leg.operatingCarrier
Required
Complex typeOperating carrier of the flight. The airline actually providing carriage or other services.
priceSearchCriteria.product.flight.segment.leg.operatingCarrier.flightNumber
Required
StringFlight Number. Example: 0017
Format: Numeric only. Max length: 4
priceSearchCriteria.product.flight.segment.leg.operatingCarrier.iatacode
Required
Complex typeFlight’s IATA code.
priceSearchCriteria.product.flight.segment.leg.operatingCarrier.iatacode.code
Required
String2 letter IATA carrier code. API just validate max length of the element but not the value it self. Accepts only uppercase characters. Example: EI, BA, VY
Format: Alphabetic. Max length: 2
priceSearchCriteria.product.flight.segment.leg.bookingClass
Optional
Complex typeContains details about booking class.
priceSearchCriteria.product.flight.segment.leg.bookingClass.code
Optional
StringBooking class code. Only uppercase characters are accepted. Example: Y, K
Format: Alphabetic. Max length: 1
priceSearchCriteria.product.flight.segment.leg.cabinClass
Optional
Complex type
priceSearchCriteria.product.flight.segment.leg.cabinClass.code
Optional
StringCabin class code.API accepts only uppercase characters. Example: ECONOMY, FIRST, BUSINESS.
Format: Alphabetic. Max length: 20
priceSearchCriteria.product.flight.price
Required
Complex typeFlight price
priceSearchCriteria.product.flight.price.monetaryAmount
Required
Complex typeRepresents the amount & currency code
priceSearchCriteria.product.flight.price.monetaryAmount.amount
Required
NumberFlight Price. Maximum of 6 digits before the decimal point and 2 after. Example: 1200.00
Format: Numeric with special character . (point). Max length: 9
priceSearchCriteria.product.flight.price.monetaryAmount.currency
Required
Complex typeThe units in which the price is supplied.
priceSearchCriteria.product.flight.price
Required
String3 letter ISO 4217 currency code in which the price is denominated. API accepts only uppercase characters. Example: USD, GBP, CAD, EUR, CHF, SEK, DKK, NOK, RUB, ZAR and MAD.
Format: Alphabetic. Min length: 3 Max length: 5
priceSearchCriteria.product.flightAncillary
Conditional
Complex typeThis element represents the flight ancillary product. At least one type of product must be supplied in request.
priceSearchCriteria.product.flightAncillary.flightAncillaryType
Required
StringMUST be at least one of below values. Only uppercase characters are accepted. (SEAT, PET, BAGGAGE, SPECIAL_BAGGAGE, LOUNGE_PASS, PARKING, MEALS, WIFI, UPGRADE, BUY_ON_BOARD, UNACCOMPANIED_MINOR, FEES, PRIORITY_BOARDING)
Format: Enumeration
priceSearchCriteria.product.flightAncillary.price
Required
Complex typeFlight AncillaryPrice details
priceSearchCriteria.product.flightAncillary.price.monetaryAmount
Required
Complex typeRepresents the amount & currency code
priceSearchCriteria.product.flightAncillary.price.monetaryAmount.amount
Required
NumberFlightAncillaryPrice. Maximum of 6 digits before the decimal point and 2 after. Example: 70.50
Format: Numeric with special character . (point) Max length: 9
priceSearchCriteria.product.flightAncillary.price.monetaryAmount.currency
Required
Complex typeThe units in which the price is supplied.
priceSearchCriteria.product.flightAncillary.price.monetaryAmount.currency.code
Required
String3 letter ISO 4217 currency code in which the price is denominated. Only uppercase characters are accepted. Example: USD, GBP, CAD, EUR, CHF, SEK, DKK, NOK, RUB, ZAR and MAD.
Format: Alphabetic. Min length: 3 Max length: 5
priceSearchCriteria.product.carHire
Conditional
Complex typeThis element represents the Car Hire product. At least one type of product must be supplied in request.
priceSearchCriteria.product.carHire.price
Required
Complex typeCar HirePrice details
priceSearchCriteria.product.carHire.price.monetaryAmount
Required
Complex typeRepresents the amount & currency code
priceSearchCriteria.product.carHire.price.monetaryAmount.amount
Required
NumberCar HirePrice. Maximum of 6 digits before the decimal point and 2 after. Example: 230.00
Format: Numeric with special character . (point). Max length: 9
priceSearchCriteria.product.carHire.price.monetaryAmount.currency
Required
Complex typeThe units in which the price is supplied.
priceSearchCriteria.product.carHire.price.monetaryAmount.currency.code
Required
String3 letter ISO 4217 currency code in which the price is denominated. Only uppercase characters are accepted. Example: USD, GBP, CAD, EUR, CHF, SEK, DKK, NOK, RUB, ZAR and MAD.
Format: Alphabetic. Min length: 3 Max length: 5
priceSearchCriteria.product.hotel
Conditional
Complex typeThis element represents the hotel product. At least one type of product must be supplied in request.
priceSearchCriteria.product.hotel.price
Required
Complex typeHotel Price details
priceSearchCriteria.product.hotel.price.monetaryAmount
Required
Complex typeRepresents the amount & currency code
priceSearchCriteria.product.hotel.price.monetaryAmount.amount
Required
NumberHotelPrice. Maximum of 6 digits before the decimal point and 2 after. Example: 125.00
Format: Numeric with special character . (point). Max length: 9
priceSearchCriteria.product.hotel.price.monetaryAmount.currency
Required
Complex typeThe units in which the price is supplied.
priceSearchCriteria.product.hotel.price
Required
String3 letter ISO 4217 currency code in which the price is denominated. Only uppercase characters are accepted. Example: USD, GBP, CAD, EUR, CHF, SEK, DKK, NOK, RUB, ZAR and MAD.
Format: Alphabetic. Min length: 3 Max length: 5
priceSearchCriteria.product.insurance
Conditional
Complex typeThis element represents the insurance product. At least one type of product must be supplied in request.
priceSearchCriteria.product.insurance.price
Required
Complex typeInsurancePrice details
priceSearchCriteria.product.insurance.price.monetaryAmount
Required
Complex typeRepresents the amount & currency code
priceSearchCriteria.product.insurance.price.monetaryAmount.amount
Required
NumberInsurancePrice. Maximum of 6 digits before the decimal point and 2 after. Example: 100.00
Format: Numeric with special character . (point). Max length: 9
priceSearchCriteria.product.insurance.price.monetaryAmount.currency
Required
Complex typeThe units in which the price is supplied.
priceSearchCriteria.product.insurance.price.monetaryAmount.currency.code
Required
String3 letter ISO 4217 currency code in which the price is denominated. Only uppercase characters are accepted. Example: USD, GBP, CAD, EUR, CHF, SEK, DKK, NOK, RUB, ZAR and MAD.
Format: Alphabetic. Min length: 3 Max length: 5
priceSearchCriteria.product.packagedProduct
Conditional
Array of Complex typeThis element represents the packaged product. Products (Flight, Flight Ancillary, Car Hire, Hotel and Insurance) could be packaged together to retrieve the discount price points. At least one type of product must be supplied in request.
priceSearchCriteria.product.packagedProduct.flight
Conditional
Array of Complex typeThe entire list of above mentioned Flight related elements are applicable for this packaged Flight also. At least one type of product must be supplied in request.
priceSearchCriteria.product.packagedProduct.flightAncillary
Conditional
Array of Complex typeThe entire list of above mentioned Flight Ancillary related elements are applicable for this packaged Flight Ancillary also. At least one type of product must be supplied in request.
priceSearchCriteria.product.packagedProduct.carHire
Conditional
Array of Complex typeThe entire list of above mentioned Car Hire related elements are applicable for this packaged Car Hire also. At least one type of product must be supplied in request.
priceSearchCriteria.product.packagedProduct.hotel
Conditional
Array of Complex typeThe entire list of above mentioned Hotel related elements are applicable for this packaged Hotel also. At least one type of product must be supplied in request.
priceSearchCriteria.product.packagedProduct.insurance
Conditional
Array of Complex typeThe entire list of above mentioned Insurance related elements are applicable for this packaged Insurance also. At least one type of product must be supplied in request.

Response Elements

The following is an example of a Flight response from the Product Pricing API:

{
  "product": [
    {
      "flight": {
        "passengerSummary": {

A Flight ancillary response from the Product Pricing API:

{
  "product": {
    "flightAncillary": {
      "flightAncillaryType": "BAGGAGE",
      "price": [

A Car Hire response from the Product Pricing API:

{
  "product": {
    "carHire": {
      "price": [
        {

A Hotel response from the Product Pricing API:

{
  "product": {
    "hotel": {
      "price": [
        {

A Insurance response from the Product Pricing API:

{
  "product": {
    "insurance": {
      "price": [
        {

A Package product response from the Product Pricing API:

{
  "product": {
    "packagedProduct": {
      "flight": {
        "passengerSummary": {
NameData typeDescription
product
Present
Complex typeProduct is the generalised element.
product.flight
Conditional
Complex typeThis element further specifies the product. In this case, the element describes a flight. Is visible only if passed in request message.
priceSearchCriteria.product.directFlight
Present
StringSpecifies if the flight is direct. If not provided in request message default false is assigned.
Format: True/false
product.flight.returnJourney
Present
BooleanSpecifies if the journey is return. If not provided in request message default false is assigned.
Format: True/false
product.flight.passengerSummary
Conditional
Complex typeContains information about passengers. Is visible if passed in request message.
product.flight.passengerSummary.adultCount
Present
NumberNumber of adult passengers. If this element were not passed in request message 0 is assigned as default value.
Format: Numeric only. Max value: 2147483647
product.flight.passengerSummary.youngAdultCount
Present
NumberNumber of young adult passengers. If this element were not passed in request message 0 is assigned as default value.
Format: Numeric only. Max value: 2147483647
product.flight.passengerSummary.childCount
Present
NumberNumber of child passengers. If this element were not passed in request message 0 is assigned as default value.
Format: Numeric only. Max value: 2147483647
product.flight.passengerSummary.infantCount
Present
NumberNumber of infant passengers. If this element were not passed in request message 0 is assigned as default value.
Format: Numeric only Max value: 2147483647
product.flight.passengerSummary.seniorCount
Present
NumberNumber of senior passengers. If this element were not passed in request message 0 is assigned as default value.
Format: Numeric only Max value: 2147483647
product.flight.segment
Present
Array of Complex typeFlight Segment.
product.flight.segment.outbound
Present
Booleantrue represents the outbound flight and false represents the inbound flight. If not provided in request message then will be defaulted to false.
Format: true/false
product.flight.segment.leg
Present
Array of Complex typeOne point-to-point journey in a flight segment. This element describes the route of a leg within the segment of a flight.
priceSearchCriteria.product.flight.segment.leg.fareFamilyCode
Conditional
StringSpecifies fare family code. Will be visible only if provided in request message. Example: FF1, FF2, FF3, FF4, FF5, FF6, FF7, FF8, FF9, FF10
Format: Alphanumeric Max length: 5
product.flight.segment.leg.schedule
Present
Complex typeThe flight schedule identifies the departure date, departure location and arrival location.
product.flight.segment.leg.schedule.departureDateRange
Present
Complex typeSpecifies departure date.
product.flight.segment.leg.schedule.departureDateRange.startDateTime
Present
DateTimeStart date and time of outbound journey. Example: 2020- 12-12T13:39:16.213+01:00
Format: ISO-8601 Calendar date format. YYYY-MM-DDThh:mm:ss.sTZ D
product.flight.segment.leg.schedule.departureLocation
Present
Complex typeOutbound location of a particular leg for this route.
product.flight.segment.leg.schedule.departureLocation.id
Present
String3 letter IATA Airport code that identifies the departure location. Example: LHR, LGW, LCY
Format: Alphabetic. Max length: 3
product.flight.segment.leg.schedule.departureLocation.type
Present
StringType of departure location. Will always be AIRPORT.
Format: Enumeration
product.flight.segment.leg.schedule.arrivalLocation
Present
Complex typeInbound location of a particular leg for this route.
product.flight.segment.leg.schedule.arrivalLocation.id
Present
String3 letter IATA Airport code that identifies the arrival location. Example: JFK, DUB, SYD
Format: Alphabetic. Max length: 3
product.flight.segment.leg.schedule.arrivalLocation.type
Present
StringType of arrival location. Will always be AIRPORT.
Format: Enumeration
product.flight.segment.leg.marketingCarrier
Present
Complex typeMarketing carrier of the flight.
product.flight.segment.leg.marketingCarrier.flightNumber
Present
StringFlight Number. Example: 0016
Format: Numeric only Max length: 4
product.flight.segment.leg.marketingCarrier.iatacode
Present
Complex typeFlight’s IATA code.
product.flight.segment.leg.marketingCarrier.iatacode.code
Present
String2 letter IATA carrier code. Example: EI, BA, VY
Format: Alphabetic. Max length: 2 Min length: 2
product.flight.segment.leg.operatingCarrier
Present
Complex typeOperating carrier of the flight.
product.flight.segment.leg.operatingCarrier.flightNumber
Present
StringFlight Number.Example: 0017
Format: Numeric only Max length: 4
product.flight.segment.leg.operatingCarrier.iatacode
Present
Complex typeFlight’s IATA code.
product.flight.segment.leg.operatingCarrier.iatacode.code
Present
String2 letter IATA carrier code. Example: EI, BA, VY
Format: Alphabetic. Max length: 2 Min length: 2
product.flight.segment.leg.bookingClass
Conditional
Complex typeInformation about booking class. Will be visible if supplied in request message.
product.flight.segment.leg.bookingClass.code
Conditional
StringBooking class. Example: Y, K. Will not be visible if not provided in request message.
Format: Alphabetic. Max length: 1
product.flight.segment.leg.cabinClass
Conditional
Complex typeInformation about cabin class. Will be visible if supplied in request message.
product.flight.segment.leg.cabinClass.code
Conditional
StringExample: ECONOMY, BUSINESS, FIRST. Will not be visible if not provided in request message.
Format: Alphabetic Max length: 20
product.flight.price
Present
Array of Complex typeFlight level discount price options.
product.flight.price.monetaryAmount
Present
Array of Complex typeRepresents the amount & currency code
product.flight.price.monetaryAmount.amount
Present
NumberContains discounted cash price or AVIOS value of the cash discount.Maximum of 6 digits before the decimal point and 2 after.
Format: Numeric with special character . (point). Max length: 9
product.flight.price.monetaryAmount.currency
Present
Complex typeThe units in which the price is supplied.
product.flight.price.monetaryAmount.currency.code
Present
String3 letter ISO 4217 currency code in which the price is denominated. Example: USD, GBP, CAD, EUR, CHF, SEK, DKK, NOK, RUB, ZAR and MAD
Format: Alphabetic only. Max length: 5 Min length: 3
product.flight.price.priceOptionType
Present
StringSpecifies the price option. Will be PART_AVIOS_PART_CASH.
Format: Enumeration
product.flightAncillary
Conditional
Complex typeThis element further specifies the product. In this case, the element describes a Flight Ancillary. Is visible only if passed in request message.
product.flightAncillary.flightAncillaryType
Present
StringWill be any one of below values. (SEAT, PET, BAGGAGE, SPECIAL_BAGGAGE, LOUNGE_PASS, PARKING, MEALS, WIFI, UPGRADE, BUY_ON_BOARD, UNACCOMPANIED_MINOR, FEES, PRIORITY_BOARDING)
Format: Enumeration
product.flightAncillary.price
Present
Array of Complex typeFlight Ancillary Price details
product.flightAncillary.price.monetaryAmount
Present
Array of Complex typeRepresents the amount & currency code
product.flightAncillary.price.monetaryAmount.amount
Present
NumberContains discounted cash price or AVIOS value of the cash discount.Maximum of 6 digits before the decimal point and 2 after.
Format: Numeric with special character . (point). Max length: 9
product.flightAncillary.price.monetaryAmount.currency
Present
Complex typeThe units in which the price is supplied.
product.flightAncillary.price.monetaryAmount.currency.code
Present
String3 letter ISO 4217 currency code in which the price is denominated. Example: USD, GBP, CAD, EUR, CHF, SEK, DKK, NOK, RUB, ZAR and MAD
Format: Alphabetic only. Max length: 5 Min length: 3
product.flightAncillary.price.priceOptionType
Present
StringSpecifies the price option. Will be PART_AVIOS_PART_CASH
Format: Enumeration
product.carHire
Conditional
Complex typeThis element further analyses the product. In this case, the element describes a Car Hire. Is visible only if passed in request message.
product.carHire.price
Present
Array of Complex typeCar Hire Price details
product.carHire.price.monetaryAmount
Present
Array of Complex typeRepresents the amount & currency code
product.carHire.price.monetaryAmount.amount
Present
NumberContains discounted cash price or AVIOS value of the cash discount.Maximum of 6 digits before the decimal point and 2 after.
Format: Numeric with special character . (point). Max length: 9
product.carHire.price.monetaryAmount.currency
Present
Complex typeThe units in which the price is supplied.
product.carHire.price.monetaryAmount.currency.code
Present
String3 letter ISO 4217 currency code in which the price is denominated. Example: USD, GBP, CAD, EUR, CHF, SEK, DKK, NOK, RUB, ZAR and MAD
Format: Alphabetic only. Max length: 5 Min length: 3
product.carHire.price.priceOptionType
Present
StringSpecifies the price option. Will be PART_AVIOS_PART_CASH
Format: Enumeration
product.hotel
Conditional
Complex typeThis element further analyses the product. In this case, the element describes a Hotel. Is visible only if passed in request message.
product.hotel.price
Present
Array of Complex typeHotel Price details
product.hotel.price.monetaryAmount
Present
Array of Complex typeRepresents the amount & currency code
product.hotel.price.monetaryAmount.amount
Present
NumberContains discounted cash price or AVIOS value of the cash discount.Maximum of 6 digits before the decimal point and 2 after.
Format: Numeric with special character . (point). Max length: 9
product.hotel.price.monetaryAmount.currency
Present
Complex typeThe units in which the price is supplied.
product.hotel.price.monetaryAmount.currency.code
Present
String3 letter ISO 4217 currency code in which the price is denominated. Example: USD, GBP, CAD, EUR, CHF, SEK, DKK, NOK, RUB, ZAR and MAD
Format: Alphabetic only. Max length: 5 Min length: 3
product.hotel.price.priceOptionType
Present
StringSpecifies the price option. Will be PART_AVIOS_PART_CASH
Format: Enumeration
product.insurance
Conditional
Complex typeThis element further analyses the product. In this case, the element describes Insurance. Is visible only if passed in request message.
product.insurance.price
Present
Array of Complex typeInsurance Price details
product.insurance.price.monetaryAmount
Present
Array of Complex typeRepresents the amount & currency code
product.insurance.price.monetaryAmount.amount
Present
NumberContains discounted cash price or AVIOS value of the cash discount.Maximum of 6 digits before the decimal point and 2 after.
Format: Numeric with special character . (point). Max length: 9
product.insurance.price.monetaryAmount.currency
Present
Complex typeThe units in which the price is supplied.
product.insurance.price.monetaryAmount.currency.code
Present
String3 letter ISO 4217 currency code in which the price is denominated. Example: USD, GBP, CAD, EUR, CHF, SEK, DKK, NOK, RUB, ZAR and MAD
Format: Alphabetic only. Max length: 5 Min length: 3
product.insurance.price.priceOptionType
Present
StringSpecifies the price option. Will be PART_AVIOS_PART_CASH
Format: Enumeration
product.packagedProduct
Conditional
Array of Complex typeThis element further analyses the product. In this case, the element describes Packaged Product. Is visible only if passed in request message. Products (Flight, Flight Ancillary, Car Hire, Hotel and Insurance) could be packaged together to retrieve the discount price points.
product.packagedProduct.flight
Conditional
Array of Complex typeThe entire list of above mentioned Flight related elements are applicable for this packaged Flight also. Is visible only if passed in request message.
product.packagedProduct.flightAncillary
Conditional
Array of Complex typeThe entire list of above mentioned Flight Ancillary related elements are applicable for this packaged Flight Ancillary also. Is visible only if passed in request message.
product.packagedProduct.carHire
Conditional
Array of Complex typeThe entire list of above mentioned Car Hire related elements are applicable for this packaged Car Hire also. Is visible only if passed in request message.
product.packagedProduct.hotel
Conditional
Array of Complex typeThe entire list of above mentioned Hotel related elements are applicable for this packaged Hotel also. Is visible only if passed in request message.
product.packagedProduct.insurance
Conditional
Array of Complex typeThe entire list of above mentioned Insurance related elements are applicable for this packaged Insurance also. Is visible only if passed in request message.

Exception Message Elements

The following is an example of an error response from the Product Pricing API:

{
  "error": {
    "code": "REQUEST_UNAUTHORIZED",
    "businessMessage": "RequestUnauthorized",
    "developerMessage": "RequestUnauthorized",
NameData typeDescription
error
Present
Complex typeWill only be present if an error has been detected and reported by the API.
error.code
Present
StringError code
Format: Alphabetic plus underscore
error.businessMessage
Conditional
StringError “business-facing” error message.
Format: Alphabetic
error.developerMessage
Conditional
StringError message specific to a developer.
Format: Alphabetic
error.developerLink
Conditional
StringA URL link to a web page containing more detailed information about the error code.
Format: Alphabetic plus colon (:), forward slash (/), dash (-), underscore or period (.).
error.childError.
Conditional
Array of complex typeWill only be present if an error has been detected and reported by the API.
error.childError.code
Conditional
StringError code
Format: Alphabetic plus underscore
error.childError.path
Conditional
StringPath of the node on which caused the error to occur
Format: Alphabetic plus period (.), forward slash (/), open bracket (
error.childError.businessMessage
Conditional
StringError message to business
Format: Alphabetic
error.childError.developerMessage
Conditional
StringError message specific to client developer.
Format: Alphabetic
error.childError.developerLink
Conditional
StringA URL link to a web page containing more detailed information about the error code.
Format: Alphabetic plus colon (:), forward slash (/), dash (-), underscore or period (.).

Error Codes

HTTP Status CodeDescription
400
REQUEST_INVALID
DATA_INVALID
Request element does not follow the request contract.
400
REQUEST_INVALID
INVALID_OUTBOUND_DATE
If Outbound DepartureDateTime is less than current time
400
REQUEST_INVALID
INVALID_INBOUND_DATE
If Inbound DepartureDateTime is less than current time or
400
REQUEST_INVALID
MANDATORY_DATA_MISSING
If the mandatory data elements are not supplied in the request
400
REQUEST_INVALID
INVALID_PRICE_SOURCE
If unsupported price source is received. Only valid price source is CACHED
400
REQUEST_INVALID
MARSHALLING_FAILED
Price type STATIC_DISCOUNT is used with other product than FLIGHT.
400
REQUEST_INVALID
INVALID_PRICE_TYPE
If unsupported price type is received. Only valid price types are STATIC_DISCOUNT DYNAMIC_DISCOUNT
400
REQUEST_INVALID
INVALID_CONTENT_TYPE
If invalid content type is supplied in the request
400
REQUEST_INVALID
MEDIA_TYPE_NOT_SUPPORTED
If invalid accept header value is supplied in request.
400
REQUEST_INVALID
INVALID_CURRENCY
If exchange rates are not configured for requested currency
400
INVALID_MARKETING_OPERATING_CARRIER_COMBINATION
If supplied marketing & operating carrier codes are not valid
400
INSUFFICIENT_MEMBER_BALANCE
If member is logged in and doesn’t have enough Avios balance to use.