Air Price Points Connection Logic
A Low Fare Shopping response can contain either AirPricingSolution or AirPricePoint. AirPricePoint provides a price with a set of flight options for each leg of the journey. To successfully price from a Low Fare Shopping response with Air Price Points, the Connection inside each AirSegment node must be sent correctly. The connection logic for Air Price Points is similar to the connection logic for AirPricingSolution, except that each option in a price point has its own connection data, with the connection indicator returned inside the Option node:
LowFareSearchRsp/AirPricePointList/AirPricePoint/AirPricingInfo/FlightOptionsList/FlightOption/Option
Below is a round trip price point sample from FRA to LAX. Because the flight is round trip, each price point has two FlightOption nodes, one for the outbound and another for the inbound. The start of each FlightOption node in LowFareSearchRsp is highlighted below in orange. Each FlightOption has multiple Option nodes, meaning it has different segment options for the same price. In this sample, there are two Option nodes for outbound (FRA-LAX) and three for inbound (LAX-FRA).
Inside each Option node, the segments are represented by BookingInfo@SegmentRef. If there are multiple SegmentRefs and if there is a Connection node, then there are connecting segments. In the sample below, the first option on the outbound flight has three segments. There are two Connection nodes with SegmentIndex as 0 and 1:
- 0 means the first segment is connected to the second.
- 1 means the second segment is connected to the third.
For air pricing, it is important to send the Connection inside each AirSegment node based on the Connection nodes returned in the AirPricePoint.
For this round trip sample, if you want to price the first option on both outbound and inbound, there would be six segments in the AirPriceReq, and the AirSegment/Connection node in those segments must be sent.
In the sample below, to illustrate the Connection node for LowFareSearchRsp, AirPriceReq, and AirPriceRsp, each instance of SegmentIndex 0 is highlighted in yellow, and SegmentIndex 1 is highlighted in blue.
Note: For additional information, download the Air Price Points Quick Guide.
<air:LowFareSearchRsp>
<air:AirSegmentList>
<air:AirSegment Key="m5lR/oBAAA/BWZKBAAAAAA==" Group="0" Carrier="TP" FlightNumber="573" Origin="FRA" Destination="LIS"/>
<air:AirSegment Key="m5lR/oBAAA/BYZKBAAAAAA==" Group="0" Carrier="TP" FlightNumber="209" Origin="LIS" Destination="JFK"/>
<air:AirSegment Key="m5lR/oBAAA/BaZKBAAAAAA==" Group="0" Carrier="TP" FlightNumber="8025" Origin="JFK" Destination="LAX"/>
<air:AirSegment Key="m5lR/oBAAA/B0YKBAAAAAA==" Group="1" Carrier="TP" FlightNumber="8026" Origin="LAX" Destination="BOS"/>
<air:AirSegment Key="m5lR/oBAAA/B2YKBAAAAAA==" Group="1" Carrier="TP" FlightNumber="218" Origin="BOS" Destination="LIS"/>
<air:AirSegment Key="m5lR/oBAAA/B4YKBAAAAAA==" Group="1" Carrier="TP" FlightNumber="578" Origin="LIS" Destination="FRA"/>
</air:AirSegmentList>
<air:AirPricePointList>
<air:AirPricePoint>
<air:AirPricingInfo>
<air:FareInfoRef/>
<air:PassengerType Code="ADT"/>
<air:FlightOptionsList>
<air:FlightOption LegRef="m5lR/oBAAA/BmaKBAAAAAA==" Destination="LAX" Origin="FRA">
<air:Option Key="m5lR/oBAAA/BtnKBAAAAAA==" TravelTime="P1DT3H58M0S">
<air:BookingInfo BookingCode="U" BookingCount="9" CabinClass="Economy" FareInfoRef="m5lR/oBAAA/BOdKBAAAAAA==" SegmentRef="m5lR/oBAAA/BWZKBAAAAAA=="/>
<air:BookingInfo BookingCode="U" BookingCount="9" CabinClass="Economy" FareInfoRef="m5lR/oBAAA/BOdKBAAAAAA==" SegmentRef="m5lR/oBAAA/BYZKBAAAAAA=="/>
<air:BookingInfo BookingCode="U" BookingCount="4" CabinClass="Economy" FareInfoRef="m5lR/oBAAA/BOdKBAAAAAA==" SegmentRef="m5lR/oBAAA/BaZKBAAAAAA=="/>
<air:Connection SegmentIndex="0"/>
<air:Connection SegmentIndex="1"/>
</air:Option>
<air:Option Key="m5lR/oBAAA/BxnKBAAAAAA==" TravelTime="P1DT1H48M0S">
<air:BookingInfo BookingCode="U" BookingCount="4" CabinClass="Economy" FareInfoRef="m5lR/oBAAA/BOdKBAAAAAA==" SegmentRef="m5lR/oBAAA/BcZKBAAAAAA=="/>
<air:BookingInfo BookingCode="U" BookingCount="9" CabinClass="Economy" FareInfoRef="m5lR/oBAAA/BOdKBAAAAAA==" SegmentRef="m5lR/oBAAA/BYZKBAAAAAA=="/>
<air:BookingInfo BookingCode="U" BookingCount="4" CabinClass="Economy" FareInfoRef="m5lR/oBAAA/BOdKBAAAAAA==" SegmentRef="m5lR/oBAAA/BaZKBAAAAAA=="/>
<air:Connection SegmentIndex="0"/>
<air:Connection SegmentIndex="1"/>
</air:Option>
</air:FlightOption>
<air:FlightOption LegRef="m5lR/oBAAA/BvaKBAAAAAA==" Destination="FRA" Origin="LAX">
<air:Option Key="m5lR/oBAAA/B1nKBAAAAAA==" TravelTime="P0DT21H15M0S">
<air:BookingInfo BookingCode="T" BookingCount="4" CabinClass="Economy" FareInfoRef="m5lR/oBAAA/BndKBAAAAAA==" SegmentRef="m5lR/oBAAA/B0YKBAAAAAA=="/>
<air:BookingInfo BookingCode="T" BookingCount="9" CabinClass="Economy" FareInfoRef="m5lR/oBAAA/BndKBAAAAAA==" SegmentRef="m5lR/oBAAA/B2YKBAAAAAA=="/>
<air:BookingInfo BookingCode="T" BookingCount="9" CabinClass="Economy" FareInfoRef="m5lR/oBAAA/BndKBAAAAAA==" SegmentRef="m5lR/oBAAA/B4YKBAAAAAA=="/>
<air:Connection SegmentIndex="0"/>
<air:Connection SegmentIndex="1"/>
</air:Option>
<air:Option Key="m5lR/oBAAA/B5nKBAAAAAA==" TravelTime="P1DT3H5M0S">
<air:BookingInfo BookingCode="T" BookingCount="4" CabinClass="Economy" FareInfoRef="m5lR/oBAAA/BndKBAAAAAA==" SegmentRef="m5lR/oBAAA/B0YKBAAAAAA=="/>
<air:BookingInfo BookingCode="T" BookingCount="1" CabinClass="Economy" FareInfoRef="m5lR/oBAAA/BndKBAAAAAA==" SegmentRef="m5lR/oBAAA/B2YKBAAAAAA=="/>
<air:BookingInfo BookingCode="T" BookingCount="1" CabinClass="Economy" FareInfoRef="m5lR/oBAAA/BndKBAAAAAA==" SegmentRef="m5lR/oBAAA/B6YKBAAAAAA=="/>
<air:Connection SegmentIndex="0"/>
<air:Connection SegmentIndex="1"/>
</air:Option>
<air:Option Key="m5lR/oBAAA/B9nKBAAAAAA==" TravelTime="P1DT7H5M0S">
<air:BookingInfo BookingCode="T" BookingCount="4" CabinClass="Economy" FareInfoRef="m5lR/oBAAA/BndKBAAAAAA==" SegmentRef="m5lR/oBAAA/B0YKBAAAAAA=="/>
<air:BookingInfo BookingCode="T" BookingCount="9" CabinClass="Economy" FareInfoRef="m5lR/oBAAA/BndKBAAAAAA==" SegmentRef="m5lR/oBAAA/B2YKBAAAAAA=="/>
<air:BookingInfo BookingCode="T" BookingCount="9" CabinClass="Economy" FareInfoRef="m5lR/oBAAA/BndKBAAAAAA==" SegmentRef="m5lR/oBAAA/B8YKBAAAAAA=="/>
<air:Connection SegmentIndex="0"/>
<air:Connection SegmentIndex="1"/>
</air:Option>
</air:FlightOption>
</air:FlightOptionsList>
</air:AirPricingInfo>
</air:AirPricePoint>
</air:AirPricePointList>
</air:LowFareSearchRsp>
<air:AirPriceReq AuthorizedBy="uAPI" TargetBranch="TP_1G_SOA" FareRuleType="none" CheckFlightDetails="true" >
<com:BillingPointOfSaleInfo OriginApplication="UAPI" />
<air:AirItinerary>
<air:AirSegment ProviderCode="1G" Key="m5lR/oBAAA/BWZKBAAAAAA==" Group="0" Carrier="TP" FlightNumber="573" Origin="FRA" Destination="LIS">
<air:Connection/>
</air:Segment>
<air:AirSegment ProviderCode="1G" Key="m5lR/oBAAA/BYZKBAAAAAA==" Group="0" Carrier="TP" FlightNumber="209" Origin="LIS" Destination="JFK" >
<air:Connection/>
</air:Segment>
<air:AirSegment ProviderCode="1G" Key="m5lR/oBAAA/BaZKBAAAAAA==" Group="0" Carrier="TP" FlightNumber="8025" Origin="JFK" Destination="LAX"/>
<air:AirSegment ProviderCode="1G" Key="m5lR/oBAAA/B0YKBAAAAAA==" Group="1" Carrier="TP" FlightNumber="8026" Origin="LAX" Destination="BOS" >
<air:Connection/>
</air:Segment>
<air:AirSegment ProviderCode="1G" Key="m5lR/oBAAA/B2YKBAAAAAA==" Group="1" Carrier="TP" FlightNumber="218" Origin="BOS" Destination="LIS" >
<air:Connection/>
</air:Segment>
<air:AirSegment ProviderCode="1G" Key="m5lR/oBAAA/B4YKBAAAAAA==" Group="1" Carrier="TP" FlightNumber="578" Origin="LIS" Destination="FRA"/>
</air:AirItinerary>
<air:AirPricingModifiers FaresIndicator="AllFares"/>
<com:SearchPassenger Code="ADT" Age="30" PricePTCOnly="true" BookingTravelerRef="TuJJbrVu4hG1/9LlYIhwmw==" />
<air:AirPricingCommand CommandKey="1"/>
</air:AirPriceReq>
<air:AirPriceRsp TransactionId="486A36810A07763FB0231C4D77477F75" ResponseTime="15740" >
<air:AirItinerary>
<air:AirSegment Key="XlRIHp/Y3BKAxgEAAAAAAA==" Group="0" Carrier="TP" FlightNumber="573" ProviderCode="1G" Origin="FRA" Destination="LIS">
<air:Connection/>
</air:Segment>
<air:AirSegment Key="XlRIHp/Y3BKAzgEAAAAAAA==" Group="0" Carrier="TP" FlightNumber="209" ProviderCode="1G" Origin="LIS" Destination="JFK">
<air:Connection/>
</air:Segment>
<air:AirSegment Key="XlRIHp/Y3BKA1gEAAAAAAA==" Group="0" Carrier="TP" FlightNumber="8025" ProviderCode="1G" Origin="JFK" Destination="LAX"/>
<air:AirSegment Key="XlRIHp/Y3BKA3gEAAAAAAA==" Group="1" Carrier="TP" FlightNumber="8026" ProviderCode="1G" Origin="LAX" Destination="BOS">
<air:Connection/>
</air:Segment>
<air:AirSegment Key="XlRIHp/Y3BKA5gEAAAAAAA==" Group="1" Carrier="TP" FlightNumber="218" ProviderCode="1G" Origin="BOS" Destination="LIS">
<air:Connection/>
</air:Segment>
<air:AirSegment Key="XlRIHp/Y3BKA7gEAAAAAAA==" Group="1" Carrier="TP" FlightNumber="578" ProviderCode="1G" Origin="LIS" Destination="FRA"/>
</air:AirItinerary>
<air:AirPriceResult>
<air:AirPricingSolution>
<air:AirSegmentRef Key="XlRIHp/Y3BKAxgEAAAAAAA=="/>
<air:AirSegmentRef Key="XlRIHp/Y3BKAzgEAAAAAAA=="/>
<air:AirSegmentRef Key="XlRIHp/Y3BKA1gEAAAAAAA=="/>
<air:AirSegmentRef Key="XlRIHp/Y3BKA3gEAAAAAAA=="/>
<air:AirSegmentRef Key="XlRIHp/Y3BKA5gEAAAAAAA=="/>
<air:AirSegmentRef Key="XlRIHp/Y3BKA7gEAAAAAAA=="/>
<air:AirPricingInfo>
<air:FareInfo/>
<air:BookingInfo BookingCode="U" CabinClass="Economy" FareInfoRef="XlRIHp/Y3BKANhEAAAAAAA==" SegmentRef="XlRIHp/Y3BKAxgEAAAAAAA==" HostTokenRef="XlRIHp/Y3BKA+gEAAAAAAA=="/>
<air:BookingInfo BookingCode="U" CabinClass="Economy" FareInfoRef="XlRIHp/Y3BKANhEAAAAAAA==" SegmentRef="XlRIHp/Y3BKAzgEAAAAAAA==" HostTokenRef="XlRIHp/Y3BKA+gEAAAAAAA=="/>
<air:BookingInfo BookingCode="U" CabinClass="Economy" FareInfoRef="XlRIHp/Y3BKANhEAAAAAAA==" SegmentRef="XlRIHp/Y3BKA1gEAAAAAAA==" HostTokenRef="XlRIHp/Y3BKA+gEAAAAAAA=="/>
<air:BookingInfo BookingCode="T" CabinClass="Economy" FareInfoRef="XlRIHp/Y3BKAQhEAAAAAAA==" SegmentRef="XlRIHp/Y3BKA3gEAAAAAAA==" HostTokenRef="XlRIHp/Y3BKA/gEAAAAAAA=="/>
<air:BookingInfo BookingCode="T" CabinClass="Economy" FareInfoRef="XlRIHp/Y3BKAQhEAAAAAAA==" SegmentRef="XlRIHp/Y3BKA5gEAAAAAAA==" HostTokenRef="XlRIHp/Y3BKA/gEAAAAAAA=="/>
<air:BookingInfo BookingCode="T" CabinClass="Economy" FareInfoRef="XlRIHp/Y3BKAQhEAAAAAAA==" SegmentRef="XlRIHp/Y3BKA7gEAAAAAAA==" HostTokenRef="XlRIHp/Y3BKA/gEAAAAAAA=="/>
<air:PassengerType Code="ADT" Age="30" PricePTCOnly="true"/>
<air:ChangePenalty>
</air:AirPricingInfo>
</air:AirPricingSolution>
</air:AirPriceResult>
</air:AirPriceRsp>