# Validate air itinerary (interim) Validates an itinerary at any interim stage of air booking workflow and allows you to keep track of fare details before proceeding to checkout. Using this endpoint is optional. It requires a searchId and the itineraryId to obtain the latest fare details of the selected itinerary. The travelerType field in this endpoint response currently only accepts ADULT, CHILD and INFANT. Endpoint: POST /v2/air/intermediate-revalidate-itinerary Version: v2 Security: Bearer ## Request fields (application/json): - `searchId` (string, required) The unique searchId corresponding to the selected itinerary. - `itineraryId` (string, required) The selected itineraryId which you would like to validate. ## Response 200 fields (application/json): - `bookingId` (string) The booking ID for the booking. Example: "bookingid" - `fareBreakDown` (object) - `fareBreakDown.totalFare` (object, required) Total amount charged on card including ancillaries and all other charges like OB fees, merchant fees, and penalty. - `fareBreakDown.totalFare.base` (object, required) Base fare amount. - `fareBreakDown.totalFare.base.amount` (number, required) The numeric value for the amount of money. Example: 510 - `fareBreakDown.totalFare.base.currencyCode` (string, required) The 3-letter currency code for the money amount (defined using ISO 4217 standard). Example: "GBP" - `fareBreakDown.totalFare.base.convertedAmount` (number) The converted currency and amount that has been converted (if a currency conversion has been requested). For example, if the call requests that money be sent in a specified currency (because the frontend requested the backend to send money in the user's preferred currency). Example: 715.42 - `fareBreakDown.totalFare.base.convertedCurrency` (string) The 3-letter currency code for the converted currency (defined using ISO 4217 standard). Example: "USD" - `fareBreakDown.totalFare.base.otherCoinage` (array) List of the dollar amount in other coinage systems like reward points, cryptocurrency etc. - `fareBreakDown.totalFare.base.otherCoinage.coinageCode` (string) Payment method Enum: "PAYMENT_METHOD_UNKNOWN", "CREDIT_CARD", "BREX_POINTS", "CASH", "QANTAS_POINTS", "VENDOR_PROGRAM_PAYMENT", "DELAYED_INVOICING", "FLIGHT_CREDITS", "QANTAS_TRAVEL_FUND", "CUSTOM_VIRTUAL_PAYMENT", "FLIGHT_PASS", "MISCELLANEOUS_CREDIT_ORDER" - `fareBreakDown.totalFare.base.otherCoinage.amount` (number) Example: 1000 - `fareBreakDown.totalFare.base.otherCoinage.conversionRate` (number) 1 coin in this system equals to how many currency value Example: 0.01 - `fareBreakDown.totalFare.base.otherCoinage.preferredCurrencyConversionRate` (number) 1 coin in this system equals to how many currency value Example: 0.01 - `fareBreakDown.totalFare.tax` (object, required) Tax amount. - `fareBreakDown.totalFare.taxBreakdown` (array) Breakdown of tax amounts. - `fareBreakDown.totalFare.taxBreakdown.amount` (object, required) Tax amount - `fareBreakDown.totalFare.taxBreakdown.taxCode` (string) Tax code Example: "VAT" - `fareBreakDown.totalFare.taxBreakdown.percentage` (number) Tax amount to total amount Example: 9 - `fareBreakDown.merchantFee` (object) Total merchant fee for this booking. - `fareBreakDown.airlineFee` (object) Total OB fees applicable for this booking. - `fareBreakDown.changeFee` (object) Total change penalty applicable for this booking. - `legPrices` (array) - `legPrices.legId` (string) The leg ID. Example: "leg-id" - `legPrices.amount` (object) The price breakdown of leg. If the price breakdown of leg is not available, price will denote the price of entire itinerary. - `legPrices.travelerPrices` (array) Price breakdown for each traveler type, if available. - `legPrices.travelerPrices.travelerType` (string, required) Type of passenger. Enum: "UNKNOWN_PASSENGER_TYPE", "ADULT", "CHILD", "INFANT", "INFANT_ON_LAP", "YOUTH", "SENIOR", "TEEN" - `legPrices.travelerPrices.travelerAge` (object, required) Age of passenger. - `legPrices.travelerPrices.travelerAge.numYears` (integer, required) Age of the passenger Example: 22 - `legPrices.travelerPrices.numTravelers` (integer, required) Number of travelers of the specified type and age. Example: 3 - `legPrices.travelerPrices.amount` (object, required) Leg fare per passenger of the specified type and age. - `legPrices.travelerPrices.airlineFee` (object) Ob fees applicable on the traveler fare. - `legPrices.travelerPrices.taxBreakdown` (array) Details of the tax amount in per passenger fare field. - `legPrices.airlineFee` (object) Total OB Fees for this leg. OB fees are generally charged by airlines in addition to the base ticket price. These fees can include service or credit card fees charged by the airline. - `perTravelerPrices` (array) - `policyDetails` (object) Policy Info applicable for the associated itinerary - `policyDetails.policies` (array) List of policies applied to the itinerary. - `policyDetails.policies.id` (string, required) Policy id - `policyDetails.policies.version` (string, required) version of the policy - `policyDetails.policies.policyName` (string) Name of the policy applied. - `policyDetails.policies.approvalType` (string) Enum: "HARD_APPROVAL", "SOFT_APPROVAL", "PASSIVE_APPROVAL" - `policyDetails.policies.policyType` (string) Enum: "GLOBAL", "DEFAULT", "GROUP" - `policyDetails.ruleResultInfos` (array) - `policyDetails.ruleResultInfos.violationInfos` (array) - `policyDetails.ruleResultInfos.violationInfos.predicateString` (string) - `policyDetails.ruleResultInfos.violationInfos.predicate` (string) This contains the enum mentioning the policy rule which was violated. Enum: "UNKNOWN_PREDICATE_STRING", "MAX_FARE_PER_TRAVELLER_VIOLATION", "FARE_MORE_THAN_MINIMUM", "FARE_MORE_THAN_MEDIAN", "FARE_LESS_THAN_MEDIAN", "FARE_MORE_THAN_LLF", "MAX_FARE_PER_TRAVELLER_VIOLATION_INCLUDING_TAX", "MAX_FARE_PER_TRAVELLER_VIOLATION_EXCLUDING_TAX", "HOTEL_PAYMENT_OPTIONS_VIOLATION", "RAIL_BOOKING_WINDOW_GAP_VIOLATION", "RAIL_TRAVEL_CLASS_VIOLATION", "RAIL_TICKET_REFUNDABLE_VIOLATION", "RAIL_MAX_BOOKING_PRICE_VIOLATION_INCLUDING_TAX", "RAIL_MAX_BOOKING_PRICE_VIOLATION_EXCLUDING_TAX", "AIR_MAX_PRICE_MORE_THAN_LLF_VIOLATION_INCLUDING_TAX", "AIR_MAX_PRICE_MORE_THAN_LLF_VIOLATION_EXCLUDING_TAX", "HOTEL_RESTRICTED_KEYWORDS_VIOLATION", "RESTRICTED_LOCATION_VIOLATION", "FLIGHT_ADVANCE_BOOKING_WINDOW_DOMESTIC_VIOLATION", "FLIGHT_ADVANCE_BOOKING_WINDOW_INTERNATIONAL_VIOLATION", "FLIGHT_ADVANCE_BOOKING_WINDOW_VIOLATION", "ITINERARY_WITHIN_EVENT_TRAVEL_WINDOW", "HOTEL_IN_ALLOWED_HOTEL_LIST", "PAYMENT_ACCESS_VIOLATION", "AIRPORT_IN_ALLOWED_AIRPORT_LIST", "ITINERARY_TYPE_IS_NOT_IN_ALLOWED_BOOKING_TYPES", "PAYMENT_AIR_ADDON_VIOLATION", "MAX_HOTEL_BOOKING_PRICE_INCLUDING_TAX", "MAX_HOTEL_BOOKING_PRICE_EXCLUDING_TAX", "AIR_NUM_TRAVELERS_ALLOWED", "PREFERRED_VENDOR_VIOLATION", "SEAT_ADDON_VIOLATION", "BAGGAGE_ADDON_VIOLATION", "EARLY_BIRD_ADDON_VIOLATION", "WIFI_ADDON_VIOLATION", "RESTRICTED_BOOKING_VIOLATION", "HIGHEST_ALLOWED_CABIN_VIOLATION", "LOWEST_FARE_PER_HOTEL_PROPERTY_VIOLATION", "AIR_RESTRICTED_FARES_VIOLATION", "AIR_ANCILLARY_VIOLATION" - `policyDetails.ruleResultInfos.violationInfos.expectedValue` (any) - `policyDetails.ruleResultInfos.violationInfos.actualValue` (any) - `policyDetails.ruleResultInfos.subViolationInfos` (array) In case of complex rules this will contain extra information as to how the rule was calculated. - `policyDetails.ruleResultInfos.actions` (array) Followed actions if rule was satisfied else violated actions. - `mcoIssuanceEligibility` (string) It indicates whether an MCO can be issued for this ticket. It is dependent on the validating airline of the ticket. Enum: "ELIGIBLE", "NOT_ELIGIBLE", "MAYBE_ELIGIBLE" ## Response 401 fields (application/json): - `debugIdentifier` (string) Link to debug the error internally. - `errorMessages` (array) - `errorMessages.errorCode` (string) Error code to identify the specific errors. - `errorMessages.message` (string) Message containing details of error. - `errorMessages.errorParameters` (array) Error message parameters. - `errorMessages.errorParameters.name` (string) Parameter name - `errorMessages.errorParameters.value` (string) Parameter value - `errorMessages.errorDetail` (string) More details about the error. ## Response 403 fields (application/json): - `debugIdentifier` (string) Link to debug the error internally. - `errorMessages` (array) - `errorMessages.errorCode` (string) Error code to identify the specific errors. - `errorMessages.message` (string) Message containing details of error. - `errorMessages.errorParameters` (array) Error message parameters. - `errorMessages.errorParameters.name` (string) Parameter name - `errorMessages.errorParameters.value` (string) Parameter value - `errorMessages.errorDetail` (string) More details about the error. ## Response 404 fields (application/json): - `debugIdentifier` (string) Link to debug the error internally. - `errorMessages` (array) - `errorMessages.errorCode` (string) Error code to identify the specific errors. - `errorMessages.message` (string) Message containing details of error. - `errorMessages.errorParameters` (array) Error message parameters. - `errorMessages.errorParameters.name` (string) Parameter name - `errorMessages.errorParameters.value` (string) Parameter value - `errorMessages.errorDetail` (string) More details about the error.