Articles in this section
Category / Section

Special Fares

Published:

Introduction

We permit requests for special fares, such as Tour Operator or Corporate fares, with various airlines.

Each fare type requires different parameters based on the airline, fare, agency, and/or corporate entity. Therefore, each request must be specifically tailored to the required airline and fare.

Presets

In BookingPad, we have addressed this issue with Presets. Refer to our BookingPad help to understand its functionality. You can also use this feature in Sandbox with your tracer to simulate its behavior in your tools, as explained on our first steps page. Additionally, examples are provided in this article.

Besides using Presets in BookingPad, you can download your list of Presets (which must be set up via BookingPad, with support available upon request) using the following endpoint:
https://api.airgateway.net/v1.2/AgencyPresets

This is a response example for that endpoint call (using your valid token):

{
 "presets": [
   ...
   {
       "presetID" : "3fa85f64-5717-4562-b3fc-2c963f66afa6",
       "title": "EXAMPLE",
       "airline": "AA",
       "travelers": [
           {
               "travelerType": "AAA",
               "defaultType": "ADT"
           },
           {
               "travelerType": "BBB",
               "defaultType": "YAD"
           },
           {
               "travelerType": "CCC",
               "defaultType": "CHD"
           },
           {
               "travelerType": "DDD",
               "defaultType": "INF"
           }
       ],
       "qualifier": {
           "type": "account_id",
           "code": "123",
           "airline": "AA"
       },
       "preference": [
           {
               "code": "759",
               "definition": "",
               "title": "Lowest Fares"
           },
           {
               "code": "758",
               "definition": "TOSD",
               "title": "Tour Operator Semi-Deferred"
           },
           {
               "code": "",
               "definition": "TD",
               "title": "Disney"
           }
       ],
       "preferences": [
           {
               "code": "-",
               "definition": "NO",
               "title": "No Preference"
           },
           {
               "code": "70J",
               "definition": "",
               "title": "Public Fares"
           },
           ...
           {
               "code": "749",
               "definition": "",
               "title": "Negotiated Fares"
           }
       ],
       "taxExemptions": [
           {
               "code": "XX"
           },
           {
               "code": "YY"
           }
       ],
       "isDefault": false,
       "isMandatory": false,
       "amadeusPricingModifier": "123"
   }
   ...
   ]
}

If you want to use a Preset when calling AirShopping, you can either send an array of Preset IDs (Approach 1), or send each of the values individually (Approach 2).

Approach 1: Sending Each Value Individually

Inside presets, you can store:

  • Airline which that preset is available for
  • PTCs that preset can use
  • Preferences to be sent (code and definition)
  • Qualifier (type, code, airline)
  • Tax exemption (code of the tax they want to avoid)

If you want to use this approach when calling AirShopping, you should send each of those values as follows

Airline

This is straightforward. If a preset is configured for ‘AA,’ you should send the AirShopping request using the AG-Providers header with the value ‘AA’.

From the previous example:

{
   AirShopping payload...
   "presets" : [
       ...
       {
           Other preset fields...
           "airline": "AA", 
       }
       ...
   ]
}
PTCs

Passenger Type Codes (PTCs) are more intricate to manage, primarily due to the frequent requirement of specifying the same four categories of PTCs, which include Adults, Young Adults, Children, and Infants. To streamline the process and enhance the ease of mapping these categories, we have introduced a ‘default’ option for each given PTC.

For instance:

{
   AirShopping payload...
   "presets" : [
       ...
       {
            Other preset fields...
           "ptcMap": {
               "ADT": "ADT",
               "CHD": "CHD",
               "INF": "INF",
               "YAD": "YAD"
           },
       }
       
       ...
   ]
}
Preferences

This section defines how preset-specific preferences can be used to tailor the behavior of searches or fare selection.

Each preset may include one or more preferences, allowing specific business rules or search criteria to be applied. These preferences can help focus a search toward certain fare types or pricing strategies — for example, Lowest Fares, Tour Operator, or Marine Fares.

Each preference can include the following elements:

  • Code: A unique identifier for the preference.
  • Definition (optional): A description that explains the preference’s intent or behavior.
{
   AirShopping payload...
   "presets" : [
       ...
       {
            Other preset fields...
           "preferences": {
                 "fareList": [
                       {
                         "Code": "759",
                         "Definition": "Lowest Fares"
                       },
                       {
                         "Code": "758",
                         "Definition": "Tour Operator Deferred"
                       },
                 ],
               }, 
           },
       }
       ...
   ]
}

In this example, code 759 (“Lowest Fares”) instructs the system to prioritize the lowest available fares, while code 758 (“Tour Operator Deferred”) targets special fares for tour operators .

Qualifier

In this instance, we may receive three distinct fields: type, code, and airline. As illustrated in the example:

{
   AirShopping payload...
   "presets" : [
       ...
       {
           Other preset fields...
           "qualifier": {
               "type": "account_id",
               "code": "123",
               "airline": "AA"
           }, 
       }
       ...
   ]
}

Currently, the type supports three distinct values: account_id, contract_id, and promo_code.

This is straightforward to utilize:

"qualifier": {
 "airline": "AA",
 "code": "123",
 "type": "account_id"
}, 
Tax Exemption

We can now also request tax exemptions. This involves providing a list of codes that we can ask the airlines to exclude, as demonstrated in our example:

{
   AirShopping payload...
   "presets" : [
       ...
       {
           Other preset fields...
           "taxExemptions": [
               {
                   "code": "XX"
               },
               {
                   "code": "YY"
               }
           ],
       }
       ...
   ]
}

Incorporating these items into your AirShopping is straightforward; simply include them in the taxExemptions node.

"taxExemptions": [
 "XX",
 "YY"
] 

Incorporating any preferences, qualifiers, or tax exemptions does not guarantee that the airline will provide such results or avoid taxes. Please consult with our support team and your airline account manager to determine the special fares available for your agency.

Examples

See examples per airline in BookingPad in our help docs.

Approach 2: Using Preset IDs

You can easily send an array of Preset IDs when calling AirShopping, which automatically applies all the stored parameters.

{
   AirShopping payload...
   "presets" : [
       ...
        {
            "presetID" : "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        },
        {
            "presetID" : "3fa85f64-5717-4562-b3fc-2c963f66afa7"
        }
       ...
   ]
}

To find the Preset ID:

  1. Go to BookingPad and navigate to the Presets section.

presets1step.jpg

  1. Click on the Copy button for the Preset whose ID you want to use.

presets2ndstep.jpg

  1. Add the copied Preset ID into your AirShopping request.
Access denied
Access denied