Air Pricing with Most Restrictive Penalties (CAT 16)
AirReqRsp.xsd
Air Pricing > Air Fare Rules (recommended) OR
Low Fare Shop > Air Fare Rules (recommended)
Request
The most restrictive penalties feature performs an assessment of the two most restrictive rules across all fares components within a pricing solution, with the most restrictive rules in the CAT16 category sent in the response, along with using AnytimePenalty, BeforeDeparturePenalty and AfterDeparturePenalty indicators. These indicators are specified in AirPriceReq @MostRestrictivePenalties (v45.0 and later).
In version 49.0 and later, when customer specifies AirPriceReq @MostRestrictivePenalties=true, all applicable penalty rules return in the response for the given itinerary.
Response
For the Most Restrictive Penalties, the AirPriceRsp schema returns optional attribute @PenaltyApplies in the CancelPenalty, ChangePenalty, and NoShowPenalty elements that identifies the penalty as “Anytime”, “Before Departure”, or “After Departure”.
The associated xPath is:
-
If AirPriceReq @MostRestrictivePenalties is not included in the request (Air v45.0 and later), @PenaltyApplies returns with penalty information in /ChangePenalty or /Cancel Penalty as part of:
-
AirPriceRsp/AirPriceResult/AirPricingSolution/AirPricingInfo/
Note: These penalties are returned on Galileo(1G) and Apollo (1V).
-
-
AirPriceReq @MostRestrictivePenalties=True in the request (Air v49.0 and later), /AirPricingInfo//MostRestrictivePenalties returns with penalty information in:
-
AirPriceRsp/AirPriceResult/AirPricingSolution
Note: These penalties are not returned on Apollo (1V).
-
-
If AirPriceReq @MostRestrictivePenalties= False (Air v49.0 and later), @PenaltyApplies returns with penalty information in /ChangePenalty or /CancelPenalty as a part of:
-
AirPriceRsp/AirPriceResult/AirPricingSolution/AirPricingInfo/
Note: These penalties are returned on Galileo (1G), Apollo (1V), Worldspan (1P).
-
Category 16 penalty information includes a combination of the following scenarios:
- Non-Refundable - Anytime & Before Departure.
- Non-Refundable - After Departure.
- Non-Changeable - Anytime & Before Departure.
- Non-Changeable - After Departure.
- Cancellation - Anytime & Before Departure.
- Cancellation - After Departure.
- Changes - Anytime & Before Departure.
- Changes - After Departure.
- Non-Refundable marked with No Show - Anytime & Before Departure.
- Non-Refundable marked with No Show - After Departure.
- No Show - Anytime & Before Departure
- No Show - After Departure
- Non-Changeable marked with No Show - Anytime and Before Departure
- Non-Changeable marked with No Show - After Departure
-
Cancellation - Non-Refundable – Anytime and Before Departure.
-
Cancellation - Non-Refundable – After Departure.
-
Cancellation - Non-Changeable – Anytime and Before Departure
-
Cancellation - Non-Changeable – After Departure
-
Changes - Non-Refundable Anytime and Before Departure.
-
Changes - Non-Refundable – After Departure.
-
Changes - Non-Changeable – Anytime and Before Departure
-
Changes - Non-Changeable – After Departure
Universal API Release 20.4.1 added the following additional values that can be returned. Limited Release. Talk to your Travelport representative about activation. Release 20.4
Interpreting Responses
There is a known issue for some responses. However, the following are the most common responses with instructions on how to interpret the response.
Name Responses
Possible values returned in:
<MostRestrictivePenalties> ----> <RestrictionType> ----> Name
- "Non-Refundable"
- "Non-Changeable"
- "Cancellation"
- "Changes"
- "Non-Refundable marked with No Show"
- "No Show"
- "Non-Changeable marked with No Show"
Value Responses
<MostRestrictivePenalties> ----> <RestrictionType> ----> Value
- "Anytime And Before Departure"
- "After Departure"
Response Interpretation
If a value X (e.g., Cancellation or Changes) is returned:
- If ONLY ‘X Anytime & Before Departure’ is returned THEN the value applies for Anytime (both before and after departure).
- If BOTH ‘X Anytime & Before Departure’ AND ‘X After Departure’ are returned THEN the value is different for Before and After departure.
Air v45.0 Response Scenarios:
Several scenarios are detailed to demonstrate how penalties are applied in the response based on the request for v45.
- If Airline files cancel penalty and change penalty along with NoShow then NoShow="true" attribute will displayed in CancelPenalty and ChangePenalty.
- If Airline files cancel penalty along with NoShow then NoShow="true" attribute will be displayed in CancelPenalty only
- If Airline files stand alone Noshow amount then NoShowPenalty tag will be displayed along with corresponding value(amount or percentage).
- If Airline files change penalty along with NoShow then NoShow="true" attribute will be displayed in ChangePenalty only.
Scenario 1:
If Airline files cancel penalty and change penalty along with NoShow then NoShow="true" attribute returns in CancelPenalty and ChangePenalty
Response
<air:ChangePenalty NoShow="true" PenaltyApplies="Anytime">
<air:Percentage>0.00</air:Percentage>
</air:ChangePenalty>
<air:CancelPenalty NoShow="true" PenaltyApplies="Anytime">
<air:Percentage>100.00</air:Percentage>
</air:CancelPenalty>
</air:AirPricingInfo>
Scenario 2:
If Airline files cancel penalty along with NoShow then NoShow="true" attribute displays in CancelPenalty only.
Response
<air:CancelPenalty NoShow="true" PenaltyApplies="Anytime">
<air:Percentage>100.00</air:Percentage>
</air:CancelPenalty>
</air:AirPricingInfo>
Scenario 3:
If Airline files stand alone NoShow amount then NoShowPenalty tag displays along with corresponding value (amount or percentage).
Response
<air:NoShowPenalty PenaltyApplies="Anytime">
<air:Percentage>100.00</air:Percentage>
</air:NoShowPenalty>
</air:AirPricingInfo>
Scenario 4
If Airline files change penalty along with NoShow then NoShow="true" attribute displaya in ChangePenalty only.
Response
<air:ChangePenalty NoShow="true" PenaltyApplies="Anytime">
<air:Percentage>0.00</air:Percentage>
</air:ChangePenalty>
</air:AirPricingInfo>
Air v49.0 Response Scenarios
If MostRestrictivePenalties="true" in the request, /AirPricingInfo/MostRestrictivePenalties returns with penalty information.
Request
<air:AirPriceReq AuthorizedBy="ABCDEFG" MostRestrictivePenalties="true" TargetBranch="P9999999" FareRuleType="none"
TraceId="TraceID" xmlns:air="http://www.travelport.com/schema/air_v49_0">
<com:BillingPointOfSaleInfo OriginApplication="UAPI" xmlns:com="http://www.travelport.com/schema/common_v49_0"/>
<air:AirItinerary>
<air:AirSegment Key="BXAdoGBAAA/BZFY7pDAAAA==" ProviderCode="1G" Group="0" Carrier="LH" FlightNumber="919" Origin="LHR" Destination="FRA" DepartureTime="2020-06-25T19:30:00.000+01:00" ArrivalTime="2020-06-25T22:05:00.000+02:00" FlightTime="95" Distance="390" ETicketability="Yes" Equipment="32N" ChangeOfPlane="false" ParticipantLevel="Secure Sell" LinkAvailability="true" PolledAvailabilityOption="Cached status used. Polled avail exists" OptionalServicesIndicator="false" AvailabilitySource="Q" AvailabilityDisplayType="Fare Shop/Optimal Shop"></air:AirSegment>
<air:AirSegment Key="BXAdoGBAAA/BbFY7pDAAAA==" ProviderCode="1G" Group="1" Carrier="LH" FlightNumber="924" Origin="FRA" Destination="LHR" DepartureTime="2020-06-27T07:00:00.000+02:00" ArrivalTime="2020-06-27T07:40:00.000+01:00" FlightTime="100" Distance="390" ETicketability="Yes" Equipment="32Q" ChangeOfPlane="false" ParticipantLevel="Secure Sell" LinkAvailability="true" PolledAvailabilityOption="Cached status used. Polled avail exists" OptionalServicesIndicator="false" AvailabilitySource="Q" AvailabilityDisplayType="Fare Shop/Optimal Shop"></air:AirSegment>
</air:AirItinerary>
<air:AirPricingModifiers/>
<SearchPassenger Code="ADT" Key="7JgefdtgWv" xmlns="http://www.travelport.com/schema/common_v49_0"/>
<SearchPassenger Code="CNN" Key="7Jgesgtv" xmlns="http://www.travelport.com/schema/common_v49_0"/>
<air:AirPricingCommand/>
</air:AirPriceReq>
Response
<air:PassengerType Code="ADT"/>
<air:MostRestrictivePenalties>
<air:RestrictionType Name="Changes" Value="Anytime And Before Departure">
<air:Amount>EUR70.00</air:Amount>
</air:RestrictionType>
<air:RestrictionType Name="Non-Refundable" Value="AnyTime And Before Departure"/>
</air:MostRestrictivePenalties>
...
<air:PassengerType Code="CNN"/>
<air:MostRestrictivePenalties>
<air:RestrictionType Name="Changes" Value="Anytime And Before Departure">
<air:Amount>EUR70.00</air:Amount>
</air:RestrictionType>
<air:RestrictionType Name="Non-Refundable" Value="AnyTime And Before Departure"/>
</air:MostRestrictivePenalties>
If MostRestrictivePenalties="false" in the request, /AirPricingInfo/ChangePenalty @PenaltyApplies returns with penalty information. .
Request
<air:AirPriceReq AuthorizedBy="abcdefg" MostRestrictivePenalties="false" TargetBranch="P9999999" FareRuleType="none"
TraceId="TraceID" xmlns:air="http://www.travelport.com/schema/air_v49_0">
<com:BillingPointOfSaleInfo OriginApplication="UAPI" xmlns:com="http://www.travelport.com/schema/common_v49_0"/>
<air:AirItinerary>
<air:AirSegment Key="BXAdoGBAAA/BZFY7pDAAAA==" ProviderCode="1G" Group="0" Carrier="LH" FlightNumber="919" Origin="LHR" Destination="FRA" DepartureTime="2020-06-25T19:30:00.000+01:00" ArrivalTime="2020-06-25T22:05:00.000+02:00" FlightTime="95" Distance="390" ETicketability="Yes" Equipment="32N" ChangeOfPlane="false" ParticipantLevel="Secure Sell" LinkAvailability="true" PolledAvailabilityOption="Cached status used. Polled avail exists" OptionalServicesIndicator="false" AvailabilitySource="Q" AvailabilityDisplayType="Fare Shop/Optimal Shop"></air:AirSegment>
<air:AirSegment Key="BXAdoGBAAA/BbFY7pDAAAA==" ProviderCode="1G" Group="1" Carrier="LH" FlightNumber="924" Origin="FRA" Destination="LHR" DepartureTime="2020-06-27T07:00:00.000+02:00" ArrivalTime="2020-06-27T07:40:00.000+01:00" FlightTime="100" Distance="390" ETicketability="Yes" Equipment="32Q" ChangeOfPlane="false" ParticipantLevel="Secure Sell" LinkAvailability="true" PolledAvailabilityOption="Cached status used. Polled avail exists" OptionalServicesIndicator="false" AvailabilitySource="Q" AvailabilityDisplayType="Fare Shop/Optimal Shop"></air:AirSegment>
</air:AirItinerary>
<air:AirPricingModifiers/>
<SearchPassenger Code="ADT" Key="7JgefdtgWv" xmlns="http://www.travelport.com/schema/common_v49_0"/>
<SearchPassenger Code="CNN" Key="7Jgesgtv" xmlns="http://www.travelport.com/schema/common_v49_0"/>
<air:AirPricingCommand/>
</air:AirPriceReq>
Response
<air:PassengerType Code="ADT"/>
<air:ChangePenalty PenaltyApplies="Anytime">
<air:Amount>GBP60.00</air:Amount>
</air:ChangePenalty>
<air:CancelPenalty PenaltyApplies="Anytime">
<air:Percentage>100.00</air:Percentage>
</air:CancelPenalty>
...
<air:PassengerType Code="CNN"/>
<air:ChangePenalty PenaltyApplies="Anytime">
<air:Amount>GBP60.00</air:Amount>
</air:ChangePenalty>
<air:CancelPenalty PenaltyApplies="Anytime">
<air:Percentage>100.00</air:Percentage>
</air:CancelPenalty>