Air Low Fare Search Schema

Sample requests and responses for Air Low Fare Search are provided below. A discussion of the required elements follows each example. Considerations for the request are then noted.

Sample Air Low Fare Search Request

evaluateRQ

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v02="http://opentravel.org/common/message/v02" xmlns:v1="http://www.travelport.com/schema/policy/air/v1" xmlns:v021="http://opentravel.org/common/v02">
   <soapenv:Body>
      <neutralair:evaluateRQ policy_Reference="100062" oneWayShopInd="false" xmlns:neutralair="http://www.travelport.com/schema/policy/air/v1">
         <neutralair:SearchLeg>
            <neutralair:SearchOrigin code="SYD" searchLocationCategory="Airport"/>
            <neutralair:SearchDestination code="PER" searchLocationCategory="Airport"/>
            <neutralair:SearchDepTime preferredTime="2015-11-19T09:00:00.000+11:00"/>
         </neutralair:SearchLeg>
         <neutralair:SearchLeg>
            <neutralair:SearchOrigin code="PER" searchLocationCategory="Airport"/>
            <neutralair:SearchDestination code="SYD" searchLocationCategory="Airport"/>
            <neutralair:SearchDepTime preferredTime="2015-11-21T17:00:00.000+11:00"/>
         </neutralair:SearchLeg>
         <neutralair:Segment id="B924LwCuQpatKu4B3/kekw==" carrier="JQ" flightNumber="416" origin="SYD" destination="OOL" departureTime="2015-11-19T17:30:00.000+11:00"/>
         <neutralair:Segment id="L+86nTdqR9aSKLu9lPPlJQ==" carrier="JQ" flightNumber="982" origin="OOL" destination="PER" departureTime="2015-11-19T20:00:00.000+10:00"/>
         <neutralair:Segment id="Mh2n+52dRPmg3Simbwo+Bw==" carrier="QF" flightNumber="574" origin="PER" destination="SYD" departureTime="2015-11-21T05:50:00.000+08:00"/>
         <neutralair:Segment id="W1/WW2dLRVOV2R1/GolK3Q==" carrier="QF" flightNumber="576" origin="PER" destination="SYD" departureTime="2015-11-21T07:05:00.000+08:00"/>
         <neutralair:Segment id="jX7wp/VaRXGgZ9gzS0WhjQ==" carrier="QF" flightNumber="580" origin="PER" destination="SYD" departureTime="2015-11-21T11:20:00.000+08:00"/>
         <neutralair:Segment id="rTT457svQzCInQ/LdsFeKg==" carrier="QF" flightNumber="582" origin="PER" destination="SYD" departureTime="2015-11-21T13:30:00.000+08:00"/>
         <neutralair:Segment id="T8c9rAbmS3KEHcpgF4Bdig==" carrier="QF" flightNumber="566" origin="PER" destination="SYD" departureTime="2015-11-21T15:15:00.000+08:00"/>
         <neutralair:Segment id="tk9r8CYJQcSAEbhvantiBg==" carrier="QF" flightNumber="568" origin="PER" destination="SYD" departureTime="2015-11-21T23:05:00.000+08:00"/>
         ...........................
       Additional Segment items removed for brevity - see full response for more detail
         ...........................
         <neutralair:Route id="3SPzsSHzRuijqtZgEmBkXg==">
            <neutralair:Leg id="eo7HrdbjQTmLT2XL+XjIZw==" origin="SYD" destination="PER" group="0"/>
            <neutralair:Leg id="6ib53IDLR2O/1eeTObxBDw==" origin="PER" destination="SYD" group="1"/>
         </neutralair:Route>
         <neutralair:PricePointReq id="IQGy+giHQqKhwsscaLTKYA==" totalPriceAmount="970.38" totalPriceCode="AUD" approximateTotalPriceAmount="970.38" approximateTotalPriceCode="AUD">
            <neutralair:PricingEvaluation id="wne4tH5sQaCmt7vrUFp+gA==" totalPriceAmount="970.38" totalPriceCode="AUD" approximateTotalPriceAmount="970.38" approximateTotalPriceCode="AUD">
               <neutralair:FlightOption legRef="eo7HrdbjQTmLT2XL+XjIZw==">
                  <neutralair:Option id="+87KB5BOS8GLWlRc0Jw9Dw==" travelTime="P0DT9H0M0S">
                     <neutralair:BookingInfo cabinClass="Economy" segmentRef="B924LwCuQpatKu4B3/kekw=="/>
                     <neutralair:BookingInfo cabinClass="Economy" segmentRef="L+86nTdqR9aSKLu9lPPlJQ=="/>
                     <neutralair:Connection segmentIndex="0"/>
                  </neutralair:Option>
               </neutralair:FlightOption>
               <neutralair:FlightOption legRef="6ib53IDLR2O/1eeTObxBDw==">
                  <neutralair:Option id="29Vn5eLOTLmbCsc2iw212g==" travelTime="P0DT4H10M0S">
                     <neutralair:BookingInfo cabinClass="Economy" segmentRef="Mh2n+52dRPmg3Simbwo+Bw=="/>
                  </neutralair:Option>
                  <neutralair:Option id="Qtj7cuIHSEWrA16yY+y6Zg==" travelTime="P0DT4H10M0S">
                     <neutralair:BookingInfo cabinClass="Economy" segmentRef="W1/WW2dLRVOV2R1/GolK3Q=="/>
                  </neutralair:Option>
                  <neutralair:Option id="pkJ0muhhQ+e10UyhslBNpw==" travelTime="P0DT4H10M0S">
                     <neutralair:BookingInfo cabinClass="Economy" segmentRef="jX7wp/VaRXGgZ9gzS0WhjQ=="/>
                  </neutralair:Option>
                  <neutralair:Option id="cj1zkxY2SKisJGvY88Fdpg==" travelTime="P0DT4H10M0S">
                     <neutralair:BookingInfo cabinClass="Economy" segmentRef="rTT457svQzCInQ/LdsFeKg=="/>
                  </neutralair:Option>
                  <neutralair:Option id="n7ApUOBgT3C97CVH8xngcw==" travelTime="P0DT4H10M0S">
                     <neutralair:BookingInfo cabinClass="Economy" segmentRef="T8c9rAbmS3KEHcpgF4Bdig=="/>
                  </neutralair:Option>
                  <neutralair:Option id="npXSTLXtSmGbwZkYcgNzeA==" travelTime="P0DT4H10M0S">
                     <neutralair:BookingInfo cabinClass="Economy" segmentRef="tk9r8CYJQcSAEbhvantiBg=="/>
                  </neutralair:Option>
               </neutralair:FlightOption>
            </neutralair:PricingEvaluation>
         </neutralair:PricePointReq>
         ...........................
        Additional PricePointReq items removed for brevity - see full response for more detail
         ...........................
      </neutralair:evaluateRQ>
   </soapenv:Body>
</soapenv:Envelope>

The following elements are supplied in an evaluate request:

evaluateRQ – wrapper for the whole request
attribute: policy_Reference  - the identifier that tells Universal Policy which policy to apply
attribute: oneWayShopInd – used to identify a complete itinerary versus an itinerary that is made up of several one-way itineraries, each of which will have policy applied individually.

SearchLeg – wrapper for each leg of the journey that was searched.

SearchOrigin – details of the origin for this SearchLeg
attribute: code – airport or city code.
attribute: searchLocationCategory – can be Airport or City.

SearchDestination – details of the destination for this SearchLeg
attribute: code – airport or city code.
attribute: searchLocationCategory – can be Airport or City.

SearchDepTime - details of the time for this SearchLeg
attribute: preferredTime – preferred departure time

Segment – details of a particular airline segment
attribute: id – unique identifier for this flight (PricePointReq will refer back to this)
attribute: carrier – carrier code for this flight segment
attribute: flightNumber – flight number for this flight segment
attribute: origin – originating airport for this flight segment
attribute: destination – destination airport for this flight segment
attribute: departureTime – departure time for this flight segment

Route – details of the routing of the complete journey being evaluated
attribute: id - unique identifier for this route

Leg – details of a specific leg within the overall journey
attribute: id - unique identifier for this leg of the journey (PricePointReq will refer back to this)
attribute: origin - originating airport / city for this leg of the journey
attribute: destination - destination airport / city for this leg of the journey
attribute: group – unique group identifier for this leg of the journey

PricePointReq – details of the specific fare / itinerary combination being evaluated
attribute: id - unique identifier for this PricePointReq
attribute: totalPriceAmount – total fare for this PricePointReq
attribute: totalPriceCode – currency code associated with totalPriceAmount attribute
attribute: approximateTotalPriceAmount – DO NOT USE – THIS FIELD WILL BE DEPRECATED
attribute: approximateTotalPriceCode – DO NOT USE – THIS FIELD WILL BE DEPRECATED

PricingEvaluation - details of the specific fare / itinerary combination being evaluated
attribute: id - unique identifier for this PricingEvaluation
attribute: totalPriceAmount – total fare for this PricingEvaluation
attribute: totalPriceCode – currency code associated with totalPriceAmount attribute
attribute: approximateTotalPriceAmount – DO NOT USE – THIS FIELD WILL BE DEPRECATED
attribute: approximateTotalPriceCode – DO NOT USE – THIS FIELD WILL BE DEPRECATED
attribute: refundableInd – if true this fare is refundable / if false this fare is not refundable

FlightOption – used to encompass the individual flight options that can fulfill a given leg of the journey
attribute: legRef - unique identifier for this leg of the journey (see Route / Leg above)

Option – details for a specific flight or combination of flights that fulfill this leg of the journey
attribute: id - unique identifier for this Option
attribute: travelTime – total travel time for this option (including stopovers)

BookingInfo – details required to book this fare on this flight (repeats for each flight in this option)
attribute: cabinClass – cabin in which this flight must be booked
attribute: segmentRef – unique identifier for this flight segment (see Segment above)

Connection – used to show if two segments identified in the BookingInfo are connected.
attribute: segmentIndex – index of the first segment that is connected to its following segment

Sample Air Low Fare Search Response

evaluateRS

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Header>
      <ns3:MessageHeader xsi:nil="true" xmlns:ns3="http://opentravel.org/common/message/v02" xmlns:ns5="http://www.travelport.com/schema/policy/common/v1" xmlns:ns6="http://www.OpenTravel.org/ns/OTA2/AppInfo_v01_00" xmlns:ns2="http://www.travelport.com/schema/policy/air/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns4="http://opentravel.org/common/v02"/>
   </soapenv:Header>
   <soapenv:Body>
      <ns2:evaluateRS xmlns:ns2="http://www.travelport.com/schema/policy/air/v1" xmlns:ns5="http://www.travelport.com/schema/policy/common/v1" xmlns:ns6="http://www.OpenTravel.org/ns/OTA2/AppInfo_v01_00" xmlns:ns3="http://opentravel.org/common/message/v02" xmlns:ns4="http://opentravel.org/common/v02">
         <ns5:AdditionalMessage category="Info" code="0" description="Policy Applied." providerCode="PS"/>
         <ns2:Segment carrier="JQ" departureTime="2015-11-19T17:30:00.000+11:00" destination="OOL" flightNumber="416" id="B924LwCuQpatKu4B3/kekw==" origin="SYD"/>
         <ns2:Segment carrier="JQ" departureTime="2015-11-19T20:00:00.000+10:00" destination="PER" flightNumber="982" id="L+86nTdqR9aSKLu9lPPlJQ==" origin="OOL"/>
         <ns2:Segment carrier="QF" departureTime="2015-11-21T05:50:00.000+08:00" destination="SYD" flightNumber="574" id="Mh2n+52dRPmg3Simbwo+Bw==" origin="PER"/>
         <ns2:Segment carrier="QF" departureTime="2015-11-21T07:05:00.000+08:00" destination="SYD" flightNumber="576" id="W1/WW2dLRVOV2R1/GolK3Q==" origin="PER"/>
         <ns2:Segment carrier="QF" departureTime="2015-11-21T11:20:00.000+08:00" destination="SYD" flightNumber="580" id="jX7wp/VaRXGgZ9gzS0WhjQ==" origin="PER"/>
         <ns2:Segment carrier="QF" departureTime="2015-11-21T13:30:00.000+08:00" destination="SYD" flightNumber="582" id="rTT457svQzCInQ/LdsFeKg==" origin="PER"/>
         <ns2:Segment carrier="QF" departureTime="2015-11-21T15:15:00.000+08:00" destination="SYD" flightNumber="566" id="T8c9rAbmS3KEHcpgF4Bdig==" origin="PER"/>
         <ns2:Segment carrier="QF" departureTime="2015-11-21T23:05:00.000+08:00" destination="SYD" flightNumber="568" id="tk9r8CYJQcSAEbhvantiBg==" origin="PER"/>
         ...........................
       Additional Segment items removed for brevity - see full response for more detail
         ...........................
         <ns2:Route id="3SPzsSHzRuijqtZgEmBkXg==">
            <ns2:Leg destination="PER" group="0" id="eo7HrdbjQTmLT2XL+XjIZw==" origin="SYD"/>
            <ns2:Leg destination="SYD" group="1" id="6ib53IDLR2O/1eeTObxBDw==" origin="PER"/>
         </ns2:Route>
         <ns2:PricePointRes approximateTotalPriceAmount="970.38" approximateTotalPriceCode="AUD" id="IQGy+giHQqKhwsscaLTKYA==" totalPriceAmount="970.38" totalPriceCode="AUD">
            <ns2:PricingEvaluation approximateTotalPriceAmount="970.38" approximateTotalPriceCode="AUD" id="wne4tH5sQaCmt7vrUFp+gA==" totalPriceAmount="970.38" totalPriceCode="AUD">
               <ns2:FlightOption legRef="eo7HrdbjQTmLT2XL+XjIZw==">
                  <ns2:Option id="PNNT11GnHp4z4vPgmiDULYJh" travelTime="P0DT9H0M0S">
                     <ns2:BookingInfo cabinClass="Economy" segmentRef="B924LwCuQpatKu4B3/kekw=="/>
                     <ns2:BookingInfo cabinClass="Economy" segmentRef="L+86nTdqR9aSKLu9lPPlJQ=="/>
                     <ns2:Connection segmentIndex="0"/>
                  </ns2:Option>
               </ns2:FlightOption>
               <ns2:FlightOption legRef="6ib53IDLR2O/1eeTObxBDw==">
                  <ns2:Option id="5tQQymhPALFnFEyVxFJi6ADt" travelTime="P0DT4H10M0S">
                     <ns2:BookingInfo cabinClass="Economy" segmentRef="Mh2n+52dRPmg3Simbwo+Bw=="/>
                  </ns2:Option>
                  <ns2:Option id="WC60gFhwGi3E6u0Ymq1mdkSy" travelTime="P0DT4H10M0S">
                     <ns2:BookingInfo cabinClass="Economy" segmentRef="W1/WW2dLRVOV2R1/GolK3Q=="/>
                  </ns2:Option>
                  <ns2:Option id="F53QJ0EvBtflp3ck4y3BwlHp" travelTime="P0DT4H10M0S">
                     <ns2:BookingInfo cabinClass="Economy" segmentRef="jX7wp/VaRXGgZ9gzS0WhjQ=="/>
                  </ns2:Option>
                  <ns2:Option id="3jjWTuNyxHdgovxaDnHA6Te0" travelTime="P0DT4H10M0S">
                     <ns2:BookingInfo cabinClass="Economy" segmentRef="rTT457svQzCInQ/LdsFeKg=="/>
                  </ns2:Option>
                  <ns2:Option id="rAaiGISQntMYQf3mrAwUK5uN" travelTime="P0DT4H10M0S">
                     <ns2:BookingInfo cabinClass="Economy" segmentRef="T8c9rAbmS3KEHcpgF4Bdig=="/>
                  </ns2:Option>
                  <ns2:Option id="jeLdpYbu56wCf4759wqM73fh" travelTime="P0DT4H10M0S">
                     <ns2:BookingInfo cabinClass="Economy" segmentRef="tk9r8CYJQcSAEbhvantiBg=="/>
                  </ns2:Option>
               </ns2:FlightOption>
               <ns2:Evaluation inPolicyInd="false" policyCode="106" preferredOptionInd="false"/>
            </ns2:PricingEvaluation>
         </ns2:PricePointRes>
         ...........................
       Additional PricePointRes items removed for brevity - see full response for more detail
        ...........................
      </ns2:evaluateRS>
   </soapenv:Body>
</soapenv:Envelope>

As with other entries, Universal Policy returns informational data in the AdditionalMessage elements at the top of the evaluateRS.

If policy is applied successfully, Universal Policy returns a message to that effect with a Code of 0, as in the following example:

<ns5:AdditionalMessage category="Info" code="0" description="Policy Applied." providerCode="PS"/>

If an error occurs in applying policy, an error code and error message is returned:

<ns4:AdditionalMessage category="Warning" code="9292" description="Unable to process Policy Evaluation." providerCode="PS"/>

Depending on the configured policy settings, informational data may be included in the AdditionalMessage section of the response, as in the following example:

<ns5:AdditionalMessage category="Info" code="222" description="120.46@Group0" providerCode="PS"/>

<ns5:AdditionalMessage category="Info" code="111" description="145.0@Group0" providerCode="PS"/>

<ns5:AdditionalMessage category="Info" code="222" description="81.8@Group2" providerCode="PS"/>

<ns5:AdditionalMessage category="Info" code="111" description="81.8@Group2" providerCode="PS"/>

<ns5:AdditionalMessage category="Info" code="222" description="84.19@Group1" providerCode="PS"/>

<ns5:AdditionalMessage category="Info" code="111" description="119.03@Group1" providerCode="PS"/>

In the above example code, 111 is used to show which fare value was selected as the lowest recommended fare, and code 222 is used to show which fare value was selected as the lowest logical fare when processing clips. The group number appended to the fare value is used to denote which leg of the journey the diagnostic data applies to (the origin / destination associated with each group number can be found under the Route’ element); the group numbers are used only when processing one-way fares. See the Policy Service Return Codes spreadsheet for detail.

There is one PricePointRes item in the response for each PricePointReq item in the request unless an item is removed due to exclusion processing (i.e., excluded airline, display-only airline, display only lowest fares for flight option, do not display higher cabin classes).

The elements returned in the PricePointRes are the same as those sent in the PricePointReq.

In addition each PricePointRes item returned contains an Evaluation element:

<ns2:Evaluation inPolicyInd="false" policyCode="106" preferredOptionInd="false"/>

The three policy attributes that can be returned are:

The preferredOptionInd attribute on the Evaluation element will be set to either true or false.
If set to true this PricePointRes item is preferred.
If set to false this PricePointRes item is not preferred.

The inPolicyInd attribute on the Evaluation element will be set to either true or false.
If set to true this PricePointRes item is in-policy.
If set to false this PricePointRes item is out-of-policy.

The policyCode attribute will be returned only if the inPolicyInd attribute was returned as false. It will contain a numeric value that represents the reason why this PricePointRes item was marked as out-of-policy. See the Policy Service Return Codes spreadsheet for detail.

Considerations on an Air Low Fare Search evaluateRQ request

The order that the elements are returned in the response data will generally not be the same order that they were sent up in the request data. If exclusions have been configured in the air policy, price points may be removed from the response. The Segment / Route / Leg / PricePointReq (and PricePointRes) / PricingEvaluation / Option elements all support the use of an id attribute which can be used to correlate request and response data.

Policy is applied to each evaluateRQ individually.

If you are making multiple air search calls from your CBT and then combining them together before displaying the results back to the screen you may want to combine all your results into a single evaluateRQ request to Universal Policy to have policy applied to the combined results set. If you send each set to results to Universal Policy individually each request will have had policy applied separately; depending on the policy settings you are using this may produce some confusing results.

There are two ways of supplying Air PricePointReq data in the evaluateRQ.

<neutralair:evaluateRQ policy_Reference="100062" oneWayShopInd="false" xmlns:neutralair="http://www.travelport.com/schema/policy/air/v1">

The first way is to send complete itineraries for your journey in the PricePointReq. When sending complete itineraries within a PricePointReq set the oneWayShopInd to false. Each PricePointReq will contain multiple FlightOption elements which between them will cover the entire journey.

The second way is to send PricePointReq items for each leg of your journey and have policy applied individually to each leg of the journey. When sending individual legs within a PricePointReq set the oneWayShopInd to true. Each PricePointReq will contain a single FlightOption element which will only cover the specific leg of the journey covered by this specific fare quote. There should be PricePointReq items that between them cover the whole journey, it is assumed that each leg was quoted on its own merits. Note the “display only lowest fares for flight option” configuration assumes that items will only be excluded from the first group (group 0) as this is assumed to be the outbound leg of the journey.

If the policy has been configured to exclude flights for a specific vendor by flight number, any Option containing one of the excluded flights will be removed. If this results in all the Option items for a given FlightOption being removed then the PricePointReq associated with that FlightOption will be removed.

Sample Request and Response

See the Downloads page to download a zip file containing the following XML files.

Sample request:

AirSearchEvaluateRQ.xml
AirSearchEvaluateRQ-OW.xml

Sample Response:

AirSearchEvaluateRS.xml
AirSearchEvaluateRS-OW.xml