UTAs
The Hub Backwards Compatible (UTAs and UPAs) endpoint is intended for users of the legacy Routehappy Hub API who are not yet prepared to migrate to the upcoming Routehappy API endpoint.
UTAs (Universal Ticket Attributes) are benefits and restrictions by fare, in plain, simple language that make it easy for travel agents and customers to understand. UTAs are sourced from airline ATPCO fare, branded fare and optional service filings and then processed into clear and concise merchandising content.
The Hub Backwards Compatible (UTAs and UPAs) endpoint of the Routehappy API maintains the functionality of the legacy Routehappy Hub API while improving response speed. Users of the legacy Routehappy Hub API will be able to use the same request structure and can expect the same response structure from this newer, faster API.
Schema
UTA Category Definitions
- Advance change policy – Does the fare allow a change to the flight itinerary? If so, are there any fees associated with this change?
- Cancellation policy – Does the fare allow complete cancellation of the flight? If so, are there any fees associated with a cancellation?
- Carry-on baggage allowance – Does the fare include carry-on baggage? If so, are there any fees associated with carry-on baggage?
- Checked baggage allowance – Does the fare include any checked baggage? If so, are there any fees associated with checked baggage?
- Same-day change – Does the fare allow a change to the flight itinerary within 24 hours of flight departure time? If so, are there any fees that would apply to this change?
- Seat selection – Does the fare include the ability to choose a particular seat ahead of check-in? If so, are there any fees associated with selecting seats?
- Check-in priority – Does the fare include a higher or lower check-in priority compared to a standard fare?
- Boarding priority - Does the fare include a higher or lower boarding priority compared to a standard fare?
- Upgrade eligibility – Does the fare include the ability to request an upgraded cabin selection?
- Lounge access – Does the fare include access to a lounge? If so, is there a fee associated with this access?
attention
Expanding categories for UTAs is possible. If you have a need or an idea for an additional UTA category, please contact your ATPCO Sales Channel Retailing manager to initiate the process.
Data Hierarchy
Advance change and Cancellation data in both the Routehappy API and Hub Backwards Compatible endpoints is sourced from Fare Rules. Fare Rules provides the most granular form of the data, which will be returned as a “policy” (e.g. “change_policy” or “cancel_policy”).
Carry-on baggage allowance and Checked baggage allowance data in both the Routehappy API and Hub Backwards Compatible endpoints are sourced from Optional Services.
For the remaining 8 categories, Same-day Change, Seat Selection, Check-in Priority, Boarding Priority, Upgrade Eligibility, Lounge Access, Loyalty Rewards, Transferable Funds, data will be sourced from Branded Fares for airlines who file these categories. Airlines are not required to file data across all categories, so coverage will vary by category by airline. For a full breakdown of UTA coverage by category and airline, please see our Coverage page. Additionally, Airlines can restrict who they share their data with by electing to only share with Channels using certain fare sources. For instance, an airline may choose to only share data if a Channel’s indicated fare source is Sabre rather than Amadeus or Worldspan.
Cancellation and Change precedence
The leg
type structure part of the response is responsible for displaying what cancellation and advance change
policies have been matched for this leg. A request may be composed of one fare across all segments or multiple fares
from more than one segment.
When there are segments in a leg which are having different fares, then the leg
object will get displayed as containing all matched fare IDs in the leg_fares
field list. However, then the policies for this leg would be having precedence. This means that from all the fares that
we've matched, in the
cancellation_policy
and change_policy
we'll output only the most restrictive policies from both fares.
Precedence (priority is as listed)
-
Policy with assessment code
Restriction
or also known asR
- Policy with higher fee (when possible for a fee)
- Whichever policy was matched first
All other policies would still be displayed in the overall response, however they won't be directly referenced unless matching the above precedence. In case you still need to reach them, you'll need to parse the fare ID in order to match them.
Example:
Let's say we have two segments with two different fares:
- LAX-BOS with fare basis code ABCDEFGH which has fully refundable cancellation policy and change is not permitted.
- BOS-LHR with fare basis code IJKLMNOP which has non-refundable cancellation policy but change is allowed.
A similar output would be expected (note that irrelevant data is stripped):
{
"data": {
"id": "ab74b04c-617c-490e-9c73-e46582430a50",
"relationships": {
"legs": {
"data": [
{
"id": "1",
"meta": {
"index": 0
},
"type": "leg"
}
]
}
},
"type": "legs_search"
},
"included": [
{
"id": "1|711756",
"type": "fare"
},
{
"id": "1|711756",
"relationships": {
"fare": {
"data": {
"id": "1|711756",
"type": "fare"
}
},
"leg_fare_segments": {}
},
"type": "leg_fare"
},
{
"id": "1|13457581",
"type": "fare"
},
{
"id": "1|13457581",
"relationships": {
"fare": {
"data": {
"id": "1|13457581",
"type": "fare"
}
},
"leg_fare_segments": {}
},
"type": "leg_fare"
},
{
"id": "1",
"relationships": {
"cancellation_policy": {
"data": {
"id": "711472",
"type": "cancellation_policy"
}
},
"change_policy": {
"data": {
"id": "13471274",
"type": "change_policy"
}
},
"leg_fares": {
"data": [
{
"id": "1|13471274",
"type": "leg_fare"
},
{
"id": "1|711472",
"type": "leg_fare"
}
]
}
},
"type": "leg"
},
{
"attributes": {
"assessment_code": "R",
"description": "Non-refundable",
"headline": "Non-refundable"
},
"id": "711472",
"type": "cancellation_policy"
},
{
"attributes": {
"assessment_code": "B",
"description": "Fully refundable ticket",
"headline": "Full refund"
},
"id": "13471274",
"type": "cancellation_policy"
},
{
"attributes": {
"assessment_code": "R",
"description": "Change is not allowed",
"headline": "Not Allowed"
},
"id": "13471274",
"type": "change_policy"
},
{
"attributes": {
"assessment_code": "B",
"description": "Change allowed for free",
"headline": "Free"
},
"id": "711472",
"type": "change_policy"
}
],
"meta": {
"not_matched_leg_indexes": []
}
}
UTA Data Accuracy
UTAs return the most currently available data the airlines have provided to ATPCO. Any change an airline makes to their ATPCO fare filings should be reflected in UTA data within an hour of being updated.
Icons
Icons are generic and included in each UTA as a pointer URL. Partner can choose whether or not to utilize them for display.
Language Translation
The Routehappy UTA API display text is available for the following languages/regions.
Language | Language Code | Region |
---|---|---|
Arabic | ar | (any) |
Danish | da | (any) |
Dutch | nl | (any) |
English (Int’l) | en | (any) |
English (USA) | en | US |
Finnish | fi | (any) |
French (Canada) | fr | CA |
French (France) | fr | (any) |
German | de | (any) |
Greek | el | (any) |
Indonesian | id, in | (any) |
Italian | it | (any) |
Japanese | ja | (any) |
Korean | ko | (any) |
Norwegian | no | (any) |
Polish | pl | (any) |
Portuguese (Brazil) | pt | BR |
Portuguese (Europe) | pt | (any) |
Russian | ru | (any) |
Simplified Chinese | zh | (any) |
Spanish (Latin America) | es | (any) |
Spanish (Spain) | es | ES |
Swedish | sv | (any) |
Thai | th | (any) |
Traditional Chinese | zh | HK, TW |
Turkish | tr | (any) |
Vietnamese | vi | (any) |
Units of Measurement
Measurement is dictated by the language/localization indicated. For the U.S. English, all measurements follow the United States customary system (USCS) for units of measurement. For all other languages/localizations, measurements are provided in metric units.