Single Branded Fare and Ancillaries
Request Brand ID
Exchange Shopping allows users to target specific resulting fares using a Brand ID Code. The request can include a unique Brand ID or multiple Brand IDs that can be applied to the entire itinerary or per leg.
Unique Brand ID for entire itinerary
A unique Brand ID can be requested for the entire itinerary by combining:
/ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/BrandedFareIndicators/@singleBrandedFare=”true”
with
/ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/BrandedFareIndicators/BrandFilters/Brand/@code paired with @preferLevel=”Preferred”
This will result in fare options in the requested brand
Note: the cheapest option may not be assigned to a brand. In order to get only branded options in the response, the following attribute should be added to the request:
/ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/BrandedFareIndicators/BrandFilters/NonBrandedFares/@preferLevel=”Unacceptable”
Multiple Brand IDs for entire itinerary
Multiple Brand IDs can be requested for the entire itinerary by combining:
/ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/BrandedFareIndicators/@singleBrandedFare=”true”
With multiple instances of:
/ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/BrandedFareIndicators/BrandFilters/Brand[n]/@code paired with @preferLevel=”Preferred”
This will result in options that include fares in any of the requested brands
Note: the cheapest option may not be assigned to a brand. In order to get only branded options in the response, the following attribute should be added to the request:
/ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/BrandedFareIndicators/BrandFilters/NonBrandedFares/@preferLevel=”Unacceptable”
Specify a unique Brand ID per leg
A Unique Brand ID can be requested per leg by combining:
/ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/BrandedFareIndicators/@singleBrandedFare=”true”
with
/ExchangeShoppingRQ/OriginDestinationInformation[n]/BrandFilters/Brand/@code paired with @preferLevel=”Preferred”
This will result in options using fares in the requested brand for each defined leg
Note: the cheapest option may not be assigned to a brand. In order to get only branded options in the response, the following attribute should be added to the request:
/ExchangeShoppingRQ/OriginDestinationInformation[n]/BrandFilters/NonBrandedFares/@preferLevel=”Unacceptable”
Specify multiple Brand IDs per leg
Multiple Brand IDs can be requested per leg by combining:
/ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/BrandedFareIndicators/@singleBrandedFare=”true”
with multiple instances of:
/ExchangeShoppingRQ/OriginDestinationInformation[n]/BrandFilters/Brand[n]/@code paired with @preferLevel=”Preferred”
This will result in options using any fare in the requested brands for each defined leg.
Note: the cheapest option may not be assigned to a brand. In order to get only branded options in the response, the following attribute should be added to the request:
/ExchangeShoppingRQ/OriginDestinationInformation[n]/BrandFilters/NonBrandedFares/@preferLevel=”Unacceptable”
Please note that is not advisable to combine Brand IDs per leg with Brand IDs for entire itinerary within one Exchange Shopping request
Keep existing Brand ID for non-shopped legs
To keep the existing brand for any non-shopped legs in the itinerary, please specify:
/ExchangeShoppingRQ/OriginDestinationInformation/RelatedSegment/@brand
when passing related segment information.
Request Brand Ancillaries
Use the below attribute to identify the optional services that are applicable for each brand program. This is done with the use of the ATPCO Branded Fares Feature Table 166
/ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/BrandedFareIndicators/@returnBrandAncillaries=”true” (must be combined with /@singleBrandedFare=”true”)
The response payload will provide the list of all applicable brand features and an ID to match them with specific passenger fare component.
Element or Attribute | Description | Example | ExchangeShopping Path |
---|---|---|---|
BrandFeatures | Element used to show the list of all brand feature items | N/A | /ExchangeShoppingRS/BrandFeatures |
BrandFeature | Element used to return ancillary fee details Does not repeat | N/A | ExchangeShoppingRS/Solution/TPA_Extensions/Passenger/AncillaryFeeGroups |
@id | is a reference id to .../Solution/Fare/ReservationSegmentDetails/PassengerBookingDetails/BrandFeatureRef/@featureId | 1 | /ExchangeShoppingRS/BrandFeatures/BrandFeature/@id |
@application | Fee application type. The possible values are: F- free, C- Charges, D- Displayed but not offered , N- Not applicable | C | /ExchangeShoppingRS/BrandFeatures/BrandFeature/@application |
@serviceType | Possible values are: Z- Branded Fares, F- flight related, T- ticket related ancillary, R- rule buster, M - merchandise, C - baggage | C | /ExchangeShoppingRS/BrandFeatures/BrandFeature/@serviceType |
@serviceGroup | Ancillaries group code | BF | /ExchangeShoppingRS/BrandFeatures/BrandFeature/@serviceGroup |
@subCode | A three-character alphanumeric code that is filed in the S5 record. This can be an industry sub-code or a carrier defined sub-code | 050 | /ExchangeShoppingRS/BrandFeatures/BrandFeature/@subCode |
@vendor | Data provider. Possible values are ATP - ATPCO, MM - Merchandising Manager. | ATP | /ExchangeShoppingRS/BrandFeatures/BrandFeature/@vendor |
@commercialName | Commercial name of the brand feature | SEAT | /ExchangeShoppingRS/BrandFeatures/BrandFeature/@commercialName |
BrandFeatureRef@featureId | Reference to the final brand feature items list. References to applicable .../BrandFeatures/BrandFeature/@id | 1 | /ExchangeShoppingRS/Solution/Fare/ReservationSegmentDetails/PassengerBookingDetails/BrandFeatureRef/@featureId |
Keep original booking code and keep original brand
Keep original booking code for non-shopped legs
Starting from version 2.4.0, the API provides capability of forcing the system to retain the original booking code for non-shopped legs. Previously, even if you specified the details of the unchanged segments at:
ExchangeShoppingRQ/OriginDestinationInformation/RelatedSegment
system might alter your booking codes while searching for the lowest exchange solution.
The new request attribute:
ExchangeShoppingRQ/OriginDestinationInformation/RelatedSegment/@keepBookingClass=”true”
allows you to indicate that you wish to prevent the system from changing the booking code of the non-shopped air segments.
Please note that @keepBookingClass=”true” must be set across all the related segments within a non-shopped leg. (as indicated by /ExchangeShoppingRQ/OriginDestinationInformation/@shopIndicator=”false”)
Keep original brand for non-shopped legs
Starting from version 2.4.0, the API provides capability of forcing the system to retain the originally ticketed brand for non-shopped legs. Previously, system might alter your originally ticketed brand while searching for the lowest exchange solution. The new request attribute:
ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/BrandedFareIndicators/@keepOriginalBrand=”true”
allows you to indicate that you wish to prevent the system from changing the originally ticketed brand for the non-shopped air segments. Please note that the new attribute must be combined with:
/ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/BrandedFareIndicators/@singleBrandedFare=”true”
Additional provisions:
- If a brand is not specified for the shopped leg, system will return the lowest applicable fare with corresponding brand.
- If non-shopped leg is different from fare market on the original ticket, the logic will be ignored.
- It is not necessary to send /ExchangeShoppingRQ/OriginDestinationInformation/RelatedSegment/@brand as the system will automatically validate the brands for the non-shopped segments.
- When you send @keepOriginalBrand=”true” as well as /ExchangeShoppingRQ/OriginDestinationInformation/RelatedSegment/@brand, the related segment brand information takes precedence.
- System returns an error message “UNABLE TO FIND ORIGINALLY TICKETED BRAND” if it cannot find a brand for fares that exist on the original ticket. If system finds at least one brand associated to any fare on original ticket, it will proceed and validate if @keepOriginalBrand=”true” exists.
- If the system cannot properly match new fare markets with the existing ones, the error message ‘NO COMBINABLE FARES FOR CLASS USED’ will be returned.
- If the system cannot find the original brand for the flown fare components, the error message ‘NO COMBINABLE FARES FOR CLASS USED’ will be returned.
- When the original fare component is partially flown, system will ignore @keepOriginalBrand=”true” if the solution contains the same fare breaks in terms of fare markets. When the original fare markets and fare breaks are not maintained (broken into separate fares), , the error message ‘NO COMBINABLE FARES FOR CLASS USED’ will be returned.