# AirGateway Platform Support

## Documentation

# How to Invite and Manage Agents (Manager Role Guide)

The ability to invite new agents and manage user roles is restricted to users holding the **Manager role within BookingPad**.

## Inviting a New Agent

Follow these steps to invite a new agent to your agency's BookingPad:

1. **Access Management**: Click the dropdown menu located next to your email address in the top-right corner of the screen.

![agenst-management.png](https://support.airgateway.com/kb/attachment/article/27/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjU0Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.CchZ5ef6oCB8nIl6RHRMtQtOrnx8waTEMFI2yc-1PrY)

2. **Select Agents**: Choose the "Agents Management" option from the menu.
3. **Invite Agent**: Click the plus (+) button to open the invitation form.

![add-agent-bookingpad.png](https://support.airgateway.com/kb/attachment/article/27/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI1NSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.Zv1MOd3NirA_62r2txgzkIcqfwvZIbPK6mD4wHCBLug)

4. **Assign Role & Email**: select the appropriate user role for the new agent (Booker, Issuer, or Manager) and enter the Agent's email address.

![add-agent-role.png](https://support.airgateway.com/kb/attachment/article/27/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI1NiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.w9iHNbWwtht2AGc18I-X_kCj6lfkQ71HHZz7YKtIwH4)

5. **Send Invitation**: Submit the form to send the invitation.

### Agent's Next Steps

The invited user's next steps depend on whether they are new to BookingPad or already have an account.

**New User**: receives two emails; One is an invitation to join the agency and the second contains the instructions to verify their email and create a password 

**Existing User**: Only receives the invitation to join the new agency. Does not receive the 'Action Required' email, as their login details are already set.

![Agency-invaiteEmails.png](https://support.airgateway.com/kb/attachment/article/27/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE3NCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.lGOpJEBfrsxOXOurfoESooCL9FblZ9h_MJ2AlHzIhcc)

### Agent Role Assignment

Once agents are invited and their accounts are activated, Managers can control their permissions, IDs, and access status within the Agents Management section of the Agency Portal. You can assign one of four distinct roles to each agent. This role dictates their capability regarding pricing and ticketing authority.

| Role | Book On-hold | Issue Ticket | Add Ancillaries | Servicing | Agency Portal Access |
| ------ | ------ | ------ | ------ | ------ | ------ |
| Manager |  ✓ | ✓ | ✓| ✓ | ✓ |
| Issuer | ✓ | ✓ | ✓ | ✓ | ✗ |
| Consultant | ✓ | ✓ | ✓ | ✓ | ✗ |
| Booker | ✓ | ✗ | ✗ | ✗ | ✗ |

 :::Info
The Consultant role possesses the same core functions and ticketing authority as an Issuer. However, a Consultant's ability to service or modify bookings is generally limited to reservations they have personally created.
 :::

Locate the agent in the list and modify their role by selecting the desired option from the Role dropdown menu.
 
![agents_roles.png](https://support.airgateway.com/kb/attachment/article/27/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEzOSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.Xju-X_9DLIaJAIsrXKKmCiKzmPTMDPOBQQstVOvn_nI)

### Agent ID Configuration

The Agent ID field allows you to assign a unique identifier code for each agent.

* This identifier is essential for back-office reconciliation.
* The information in the Agent ID field transmits directly to your Back Office via the AIR or MIR file (Accountable/Management Information Record).
  
![agent-id.png](https://support.airgateway.com/kb/attachment/article/27/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIyMSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.zUeMorzOsEfe6ZokhW5MvoaI78sq-TLF47gHw_JNYZs)

### Manage Agent Access

Use the toggle switch on the right side of each agent row to quickly control their platform access.

**Activate**: Toggle the switch ON to grant platform access.

**Deactivate**: Toggle the switch OFF to temporarily block the agent's access.
 
![add-agent.gif](https://support.airgateway.com/kb/attachment/article/27/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE4MCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.jMcE8rjBzLkMktH6EhIqK_nHqFp6UGJc6fJ2lOBY08A)



# ‘Book Again’ Feature: Reusing Pre-filled Passenger Data

After completing a **Book on Hold** reservation, you can quickly initiate a new search for the same marketing carrier and passenger(s) using the **Book Again** feature.

The steps are as follows: 

* After a Book on Hold is created, locate and **click the Book Again button**.
* Passenger details from the previous reservation will be automatically copied.
* You will be redirected to a new search page.
* Select a flight marketed by the same airline and **continue to Start Booking**.
* Passenger details (for 1 PAX or more) will be automatically pre-filled in the new booking form, eliminating the need for manual re-entry.

 :::Info
Capability: This feature is designed to streamline the booking process for reservations involving the same passenger details and core flight requirements.
 :::

 ![book-again.png](https://support.airgateway.com/kb/attachment/article/46/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE4NCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.CkjynK5FAvu6oZDJ8QfOn_KDY3GYC6pXZ9t6apPbxrk)

# Airline Notifications: Managing Flight Disruptions

When an airline modifies a flight schedule or status, BookingPad triggers automated notifications to ensure your agency can manage the impact on ticketing and traveler itineraries promptly.

 **Email Notifications**

BookingPad sends flight change alerts to the email address configured for operational notifications. To ensure continuity and prevent missed updates, it is recommended to use a **general operational email address that can be set in the [Agency Portal](https://agency.airgateway.com/){target="_blank"}** rather than an individual agent's inbox.

 **Locating Notified Orders**

You can monitor and manage all disrupted bookings directly from the **Orders** page.

1. Navigate to the Orders section.

2. Click the Notifications tab located at the top right, adjacent to the search bar.

3. Identify affected bookings by the ❗ symbol next to the order status.

4. Hover over the symbol to view the specific notification context.

 ![notifications-ttlbooking.png](https://support.airgateway.com/kb/attachment/article/81/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIzNSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.GyP2k_l4nMG2aVfB2BiBfpNVn3eImoDs2EfgPXLfJ7s)

**Reviewing Order History**

Detailed information regarding the airline's modification is stored within the individual order record.

* Open the specific order and select the **History** tab.

* Locate events marked with the ❗ symbol.

* Review the specific details provided by the airline regarding the disruption.

![image.png](https://support.airgateway.com/kb/attachment/article/81/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE3NyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.-dyv_pMgQ0l-Vcc1NwlBmriWZeWrUOHfCYtBfKRqdrg)

 **Handling Required Actions**

If an airline change requires manual intervention or approval, the standard servicing options at the bottom of the order view will be replaced by an **Action Required** button.

To resolve the disruption, click Action Required to view the following options:

* Order Rebook: Use this to modify the existing reservation to a different flight, date, or class based on available alternatives.

* Cancel & Refund: Initiate the cancellation and refund process if the alternative is not suitable.

* Accept Changes: Confirm the airline's proposed alternative and update the order status.

![image.png](https://support.airgateway.com/kb/attachment/article/81/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE3OCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.f1g55ZrQPhwT7H5DShw5q96giXHUD4qMoqCuCy9ynis)

**Important:** Selecting Order Rebook or Cancel & Refund will not finalize the action immediately. You will be guided through subsequent steps to review conditions before the final submission.

If the available automated options do not meet your requirements, or if you need to negotiate specific conditions, please contact the airline directly using the contact details provided in your commercial agreement.

 **Automated Acceptance**

In cases where the airline auto-accepts a change and no agency approval is necessary, the notification serves as an FYI. Once you have reviewed the change in the History tab, mark it as seen to clear the alert.

![image.png](https://support.airgateway.com/kb/attachment/article/81/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE3OSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.IKIQ9igKQiUxvBTFeVjzj0bOP0UcWVzdUymGf6QtYXg)

# AGW API Unified Error Codes

Here you have a list of errors returned by our api with our internal codes, the http codes and a brief definition.

---
<div class="top-scroll-wrapper">
    <div class="error-codes-top-scroll">
    </div>
</div>
<div class="table-responsive bottom-scroll-wrapper error-codes" markdown="block">

| Code | HTTP | Meaning |
| ------ | ------ | ------ |
| Group: **invalid_state** | | |
| AGW_order_not_found | 404 | Returned if order doesn't exist |
| AGW_offer_not_found | 404 | Returned if offer is not found |
| AGW_offer_expired | 404 | Returned if offer is expired |
| AGW_offer_expired | 410 | Returned if offer is blocked |
| AGW_file_not_found | 404 | Returned if a file is not found |
| AGW_result_expired | 404 | Result is expired already |
| AGW_seats_not_available | 404 | Seats are not available |
| AGW_services_not_available | 404 | Services are not available |
| AGW_missing_consumer | 404 | Consumer not available |
| AGW_provider_match_not_found| 404 | No provider matches found for flight airlines|
| AGW_missing_providers | 404 | Providers are not available || Group: **internal_server_error** | | |
| AGW_internal_server_error | 500 | Unhandled exception |
| Group: **provider_error** | | |
| AGW_mandatory_order_reprice_failed | 503 | This provider requires an Order Reprice before issuing and it failed |
| AGW_provider_error | 503 | Generic error, we receive an error from the airline and you can check it in the detail the same way we received it |
| AGW_timeout_error | 503 | Encountered a timeout while processing a request |
|AGW_too_many_offers_timeout | 408 | Too many offers to be processed in the given timeout, try to narrow your search |
| Group: **authentication** | | |
| AGW_auth_required | 401 | Authentication required |
| Group: **access_resource_forbidden** | | |
| AGW_not_authorized | 403 | You're not authorized to do this action |
| AGW_operation_temporary_blocked | 403 | This operation has been blocked temporarily |
| AGW_airshopping_parsing_no_disruptive | 403 | AirShopping parsing error |
| AGW_airline_disabled | 403 | This airline has been disabled in AGW |
| AGW_cabin_not_allowed | 403 | Cabin not allowed for this airline |
| Group: **validation** | | |
| AGW_missing_header | 400 | Returned if a required header is missing |
| AGW_invalid_header | 400 | Returned if a header is not valid |
| AGW_method_not_allowed_for_provider_on_stage | 400 | Some airlines require actions to be done at an specific order or don't allow some workflows (check the allowedRequests field to avoid unauthorized calls) |
| AGW_method_request_failed_on_requester_side | 400 | Failed trying to request |
| AGW_method_response_failed_on_requester_side | 400 | Failed trying to parse the response |
| AGW_method_request_not_implemented | 400 | We've not implemented this request yet |
| AGW_method_response_not_implemented | 400 | We've not implemented the parsing of this response yet |
| AGW_method_void_not_permited | 400 | Void is not permited for this method |
| AGW_too_many_segments | 400 | This airline doesn't allow searches with so many segments |
| AGW_identity_conflict | 409 | Shopping and confirmation need to be done under the same agency identity |
| AGW_externally_modified_order | 409 | Shopping and confirmation need to be done under the same agency identity |
| AGW_look_to_book_ratio_exceed | 429 | Look to book ratio has been exceeded |
| AGW_XXXXXXX | 422 | We use validation group to return many *generic* errors about data validation, check the detail and code you'll receive to understand the problem, they are self-explanatory | 
| AGW_provider_time_out | 4XX | This error can happen in AirShopping only, when response and processing times are bigger than requested in the request | 
| AGW_XXXXXXX | 4XX | We use validation group to return many *generic* errors about data validation, check the detail and code you'll receive to understand the problem, they are self-explanatory | 
| Group: **other** | | |
| - | 540 | Temporal Maintenance, please check our channels to know about this in advance (https://airgateway.releasenotes.io/) |

</div>

**Example**

```json
    {
        "group": "invalid_state",
        "code": "AGW_services_not_available",
        "status": 404,
        "detail": "Services are not available",
        "requestID": "96ffb82c14c69821a4a62a971d7bbf9c",
        "sessionID": "7197b2247bcb4914erga64652e06d034"
    }

```

# OSI: Add and Send Information to Airlines


Other Service Information (OSI) messages allow travel agencies to send specific, non-actionable information to airlines. These messages are strictly informational and do not require a confirmation or action from the carrier.

### Procedure: Add an OSI

1. Navigate to the Passengers details page during the booking process.
2. Scroll to the bottom of the page, below the Documents section.

![OSI1.png](https://support.airgateway.com/kb/attachment/article/82/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI3NiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.QR7ZubKQj0dyQ3Qx8FY85wWSlZYcQSmWrf3ST37Q7Dg)

3. Locate the OSI tab and click the + Add button.
4. Fill in the available fields as required for the carrier:

    * Text: Enter the free-text information.
    * OSICode: Enter the specific code if required; if left blank, it is excluded.
    * ActionCode: Enter the action code if required; if left blank, it is excluded.
    * PassengerRef: Select or enter the reference for the specific passenger; if left blank, the OSI is not attached to a specific individual.

![OSI2.png](https://support.airgateway.com/kb/attachment/article/82/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI3NCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.bZ_IRiE0lRHU_H3rKn0UGO1RAV5-8LQF6mFsWaLjj7k)


#### Airline Limitations

Some airlines do not support or process OSI messages through the current system integration. For these carriers, information should be communicated through alternative SSR codes or direct contact if required.

**OSI supported airlines: 4Z, AY, EK, EY, IB, LH, CM, SQ, EY, AF, KL**


# Authentication

To access our platform, you will need to obtain validated credentials on our Sandbox Agency Portal.

After registering, you can apply for an Authentication key. We will promptly review your application details and provide a response.

To access our production environment, you must request a new Authentication key and use a new endpoint.

All requests to the NDC JSON API must be authenticated with an HTTP header in this format:
 
 ```js
Authorization: {Authorization-key}.
 ```

The Authorization-key can be obtained on our Agency Portal.


# Search Settings: Optimizing Your Search

This article provides a guide on accessing and configuring the search settings within BookingPad to refine offer retrieval.

## Accessing Search Configuration

1. Click the Search Settings icon on your BookingPad interface.

 ![arrow-BP-search-settings.png](https://support.airgateway.com/kb/attachment/article/35/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMyMyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.Avjhn1sJ-W8jXkJeGxwZqkpt2-dPpHYvqvWZYp1NZL4)

2. Use the menu to adjust the search parameters as needed.
 
 ![search-settings-panel.png](https://support.airgateway.com/kb/attachment/article/35/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMyMCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.Gq0ApZB6QP5Vb-20PqcFlIlTEUGseJgG31W0P1w2Q3c)

| Setting | Description | Configuration Detail |
| ------ | ------ | ------ |
| Limit Offer | Restricts the number of displayed offers per airline to the selected cabin count | Select the desired number of cabins from the drop-down menu |
| Preferred Number of Stops | Defines the maximum number of flight stops to include in the search results | Select the maximum number of stopsl |
| Request Timeout | Sets the maximum time (in seconds) the system will wait for an offer response | The default is 60 seconds |
| Avoid Disclosures | Instructs the search to ignore disclosure information, resulting in a faster response | Default is Off |

### Search Mode Filters

The Search Mode setting allows you to filter the returned offers based on specific criteria.
 
 ![Search-mode-settings.png](https://support.airgateway.com/kb/attachment/article/35/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMyMSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.I5EsG_4SPpazNz-9RGxs5IKAfLl8E9Szwy6xiokZl0U)

| Search Mode Filter | Function | Note |
| ------ | ------ | ------ |
| Cheapest Flight | Returns only the lowest overall price per airline | — |
| Cheapest Flight by Cabin | Returns the lowest-priced flight for each available cabin type per airline | — |
| Combine Same Fares Only | Merges identical fare types (e.g., Economy Basic Plus) within the offer display | By default, all possible offers are combined |
| Cheapest Fare with Baggage Only | Filters offer to display only the cheapest fares that include baggage allowance | — |

**After modifying any settings, Click the Save button located in the bottom right corner of the menu to apply your changes.**



# Post-Booking Servicing: Modify Passenger Data

Post-booking changes to passenger details are determined by the specific NDC capabilities of each provider. This table summarizes which **types of passenger data modifications are supported by the airline through the BookingPad Agent Desktop**.
 
 :::Info
Changes to passenger names after the ticket has been issued are rarely supported by any airline via NDC.
 :::



| Airline | Title | Name | Surname | DOB | Gender | Documents | FFN | Contact Details | Corporate Loyalty Program |
| ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | 
| A3 | ❌ | ❌ | ❌ | ✏️ | ✏️ | ➕ | ❌ | ❌ | ❌ |
| AA | ✏️ | ✏️ | ✏️ | ✏️ | ✏️ | ✏️ | ❌ | ❌ | ❌ |
| AFKL | ✏️ | ✏️ | ✏️ | ❌ | ❌ | ➕ | ❌ | ❌ | ❌ |
| BA | ✏️ | ✏️ | ❌ | ❌ | ❌ | ➕ | ➕ | ❌ | ➕ |
| LHG | ❌ | ❌ | ❌ | ➕✏️ | ❌ | ✏️ | ❌ | ❌ | ❌ |
| CM | ✏️* | ✏️* | ✏️ | ✏️ | ✏️ | ➕ | ❌ | ❌ | ❌ |
| IB | ✏️ | ✏️ | ❌ | ❌ | ❌ | ➕ | ❌ | ➕✏️ | ❌ |
| UA | ❌ | ❌ | ❌  | ❌ | ❌ | ❌ | ❌ | ✏️ | ❌ |
| QF |  ✏️ | ✏️ | ✏️ | ✏️ | ❌ | ➕ | ❌ | ❌ | ❌ |
| SQ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| LO | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| AY | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| TP | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| UX | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| LA | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| EY | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| TK | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 4Z | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |

***Only when order is On-hold**

➕ = Add
✏️ = Modify
❌ = Not available

Click [here](https://support.airgateway.com/kb/article/23/ndc-servicing-per-airline){target="_blank"} to check the NDC servicing channels per Airline.

# BookingPad Shop: Introduction to NDC Search and Booking

BookingPad is a B2B, web-based application designed to give travel agencies easy, comprehensive access to NDC content. This tool enables you to shop, book, and service all available NDC content, helping your agency fully embrace the latest technology of airline distribution.

 
 ![shop-table.png](https://support.airgateway.com/kb/attachment/article/29/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjU1Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.i-14cQ3Vl8WFkgZwT6n8HF4E-zz-ybCezgB15pTl5pA)


## Key Search Elements (The Shop Bar)

The main search bar includes all the fields necessary to customize your flight shopping experience.

 
 ![search-anatomy.png](https://support.airgateway.com/kb/attachment/article/29/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjU2Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.ML6spiGJFLH6pheKEoW-Yii7nYquQR7nCPbW7B886qE)

| Element | Description |
| ------ | ------ |
| 1.Trip Type | Select between one-way, round-trip, or multi-city itineraries |
| 2.Presets (Special Fares) | Use the dropdown to select special fare types, or leave as No Preset |
| 3.Passengers | Use the plus (+) and minus (-) icons to adjust the number of travelers |
| 4.Cabin Type | Select the desired class of service (e.g., Economy, Business) |
| 5.Corporate | Enter any applicable corporate or account code for specialized pricing |
| 6.Special Discounts | Click here to enter information for Resident or Large Family discounts, if applicable |
| 7.List of Providers | Displays the NDC content providers available for the current search |
| 8.Checked Baggage| Option to include checked baggage in the search |
| 9. Search History | Click to view a list of your previously performed flight searches |
| 10. Search Settings | Detailed information about search settings tool is available [here](https://support.airgateway.com/kb/article/35/search-settings-optimizing-your-search){target="_blank"} |
| 11.Departure and Arrival details | Enter the city or airport codes for origin and destination. Please note that some cities are not recognized and you’ll need to enter the airport code instead |
| 12.Reverse itinerary | Switch the origin and destination details |
| 13.Dates | Click on the calendar icon to display the dates and use the arrows to navigate to next and previous months |
| 14.Search | Click on Search (red button) to start the search and display the results |

### Step-by-Step Search Guide
Follow these sequential steps to perform a successful flight search in BookingPad:
1. Define Trip: Select the required Trip Type (e.g., Round Trip).
2. Enter Passenger Details:
    * Select the number of passengers using the (+) and (-) icons.
    * Select the appropriate Cabin Type. 
3. Apply Fares/Discounts (If Applicable):
    * Select a specific Preset from the dropdown list (or leave as 'No Preset').
    * Enter any applicable Corporate code.
    * Click Special Discounts to input Resident or Large Family information.
4. Enter Route: Enter the airport codes for the Departing Airport and the Arriving Airport.
 :::Info
Tip: Use the Reverse departure and arrival button to quickly switch the city pair.
 ::: 
5. Select Dates: Use the calendar to select the Departure Date (and return date, if applicable).
6. View Results: Click the Search button to display the available NDC offers.
 
 ![alt text](video:https://youtu.be/kgJBf0vJL8c){height=315 width=560}

# Passenger Documents

This article outlines how to add and manage passenger documents required for booking and ticketing, including identity and fiscal information.

### How to add Passenger Documents

Use the Add document button located in the PAX section (below the passenger details) when creating a new order.

 :::Info
There is no limitation on the number of documents that can be added to a single passenger.
 :::
 
 ![Highlight-documents.png](https://support.airgateway.com/kb/attachment/article/38/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIxMyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.4XX6OW_Z_AzlEEk5x1WTAs6cAExkSqS_Pusjvbb6e6g)

### Document Types

Documents are categorized by type to meet various airline and regulatory requirements:

| Document Category | Examples of Document Types | Identity Requirement | Fiscal Requirement |
| ------ | ------ | ------ | ------ |
| Identity/Travel | Passport (PP), National ID (NI), VISA, Green Card, Redress | Required for airline identity verification | No |
| Fiscal/Tax ID | RUC, RUT, CUIL, CUIT, CIF | No | Required for tax processing |
 
 ![Type_of_documents.png](https://support.airgateway.com/kb/attachment/article/38/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY5Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.xjUIzx3BypJfb5d_4xYi4wGSugAJN_viwyCh0pesbVY)

* Identity Document Requirement: If an airline requires a primary identity document for the passenger, you must add one of the following document types to the passenger profile (Passport or National ID where applicable)
 
 ![Passport_details.png](https://support.airgateway.com/kb/attachment/article/38/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjcwIiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.Rs3FbQr-pYTQsVxRcfsTvj8bjolE3PLQXyPjz8yfr_Y)

* Fiscal Name and Tax Information: When adding documents that require tax information (Fiscal/Tax ID documents), you will be able to include a Fiscal Name associated with the document.
 
 :::Info
Airlines currently processing fiscal name: **IB, AV, LA, CM**
 :::
 
 ![Taxes_RUC.png](https://support.airgateway.com/kb/attachment/article/38/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjcxIiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.bEnjnEEOl70vZ5oxgGS9DB0_CPOMp1x7RAYwXpuvGAA)
 
 :::Info
Option to not add passenger contact details in case of passenger refusal to provide these details is allowed for some airlines. You can find the information on [this page](https://support.airgateway.com/en-US/kb/article/93/passenger-contact-details-refusal-option-during-order-creation){target="_blank"}.
 :::

# Flight not found on BookingPad Search

This article provides guidance on why a specific flight itinerary might not appear in the BookingPad Agent Desktop search results.

 :::Info
Content Scope Note: BookingPad provides only NDC (New Distribution Capability) content; GDS/EDIFACT content is not available (with the exception of agencies with access to AER consolidator content).
 :::

#### Troubleshooting Missing Flights

Follow these steps to determine the cause of a missing flight:

1. Check Availability on the Airline NDC Portal
    Verify if the specific itinerary is available on the airline's own NDC portal (e.g., SPRK, IAG Portal, etc.).**If the itinerary is not available on the airline's portal, it confirms the content is not being offered via NDC**, and it will therefore not        be available in BookingPad.

2. Contact Support if the Flight is Available via NDC Portal
    If the itinerary is available on the airline's NDC portal but is missing from your BookingPad search results, please contact BookingPad Support. **This discrepancy indicates a potential technical issue that requires immediate investigation      by our team.** Please provide the specific flight number, date, and origin/destination details when reporting the issue.

# Reset Your BookingPad Account Password

To successfully reset your password, follow these sequential steps:

1. Navigate to the BookingPad login screen and click the 'Forgot password' button.
 
 ![forgot-password.png](https://support.airgateway.com/kb/attachment/article/70/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIyMCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.cEMc7H8aEgxE0zOgV0Jq6aSthEdU38mmDOfqNIKRur8)

2. Enter your registered email address into the field provided and click the submit button. A message will show indicating email is being sent. 
 
 ![Password-recovery.png](https://support.airgateway.com/kb/attachment/article/70/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE1MCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.PjxE0ANAe-XWVDRCdsySxeCQxsClcv8HfgHgsMb6AqU)

 ![change-password-message.png](https://support.airgateway.com/kb/attachment/article/70/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE1MiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.U3NDObAaZP61Lf6JW5UR4PJxn9yZradrtokfnY_S-jA)

3. Check your email inbox for a message from BookingPad Support containing a password reset link and click on 'reset password'. **There is a step to complete before changing the password that includes an update on the 2FA.**
 
![reset-password-email.png](https://support.airgateway.com/kb/attachment/article/70/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE1MSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.sytheLW_oFC3FSeWuxUynfMEZiEU24NNc_0uQzP4UJE)
 
After clicking 'reset password', an email with Mobile Authenticator Setup is sent. It includes a QR code to activate the account.

*  Install one of the following applications on your mobile:
    *  Microsoft Authenticator
    * FreeOTP
    * Google Authenticator 
* Open the application 
* Scan the barcode
* Enter the One-Time code (OTP) in the field available right below the qr code:

![enter-otp.png](https://support.airgateway.com/kb/attachment/article/70/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMyNSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.YzySnsDQ_vsYMEfvocaTog_QdKNW_4CpBD8CyMhjnEE)

 ![OTP-updated.png](https://support.airgateway.com/kb/attachment/article/70/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE1NCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.5q-NcNWcxMyIOdQJmZxVYiONAlMAlA40-vVG6nN2O0U)

 :::Warning
For security, this link will expire in 5 minutes.
 :::

4. Once the OTP is updated, the pop up window for creating a new password will show. Enter your new password, ensuring it meets all the platform's security requirements (e.g., minimum length, complexity). Click the Submit button to save and activate your new password.
 
 ![reset-password.png](https://support.airgateway.com/kb/attachment/article/70/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE1NSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.n7zXsqS5yDFy5-7NjeQuFcpr4eGuiFHcxK1OtSLGcTE)

 :::Info
Remember that mandatory 2FA (Two-Factor Authentication) setup is required for all agent logins on the BookingPad Agent Desktop.
 :::


# BookingPad Chrome Extension: GDS to NDC Comparison

This extension is an essential, **free** tool designed to help you quickly find and access **better pricing and lower fares available via NDC** (AirGateway) compared to your GDS (Amadeus) results.

## Installation and Setup

1.  **Download**: Click the image below to access the BookingPad Chrome extension page. 
 
[![chrome_extension_google_store.png](https://support.airgateway.com/kb/attachment/article/43/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijg1Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.WzZm5OovaKIEc4SvCxvn326Idknm-8NAdz3DMwyGMXA)](https://chromewebstore.google.com/detail/bookingpad-browser-extens/joijngimdaaffpaalefnebhckhnpaiae){target="_blank"}

2. **Add to Chrome**: Click the "Add to Chrome" button to install the extension to your browser.
 
![chrome-web-store-extension.png](https://support.airgateway.com/kb/attachment/article/43/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjgzIiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.VTbyYnqJIIjVT9YUAEXJB3l7t8GfCOlBKS9laG2h_Vk)

3. **Log In**: Click on the extension icon in your browser toolbar and log into your AirGateway account.  
 
![bpe-login.png](https://support.airgateway.com/kb/attachment/article/43/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijg2Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.O44y_cnCKzAIZRwNPtadv2cKIpn85q4Wu8w1JYEfddg)

 :::Info
Logging in will direct you to the BookingPad platform briefly.
 :::

4. **Pin Extension**: To ensure easy access and visibility, make sure the extension is pinned to your Chrome browser toolbar.
 
![pinned_extension.png](https://support.airgateway.com/kb/attachment/article/43/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjgyIiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.HLTp_ESRbMsRHcsD8SoCCXFSvh0aGj30y72_gCteEpQ)

### How the Price Comparison Works

1. **Start in Amadeus**: Open your Amadeus session and begin a flight search (shopping).
2. **Automatic Comparison**: After using the pricing entry in GDS, the BookingPad extension automatically detects the flights you are searching for in Amadeus and simultaneously searches for the same itinerary via AirGateway (NDC).
3. **View NDC Offers:** If matching NDC flight results are found, the available offers, including pricing, will be displayed instantly in a pop-up window. This allows you to quickly compare the NDC options against your Amadeus results. 

![Article-bolddesk.jpg](https://support.airgateway.com/kb/attachment/article/43/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI4OSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.jwY5COvWajjEku5CXQRNKHf5CzBJMVBjPX2o4yLUxi8)

4. **Transition to BookingPad:** To proceed with the NDC offer, click 'Open' within the pop-up. You will be redirected to the BookingPad platform where you can finalize the booking in a few simple steps.
 
![alt text](video:https://youtu.be/8__saZ_qrBo){height=315 width=560}

### Other information

Below you can see what the pop up screen looks like when logged in and out.
 
![logged_in_screen.png](https://support.airgateway.com/kb/attachment/article/43/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijc5Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.QpGFHBwULvxgDtYZOI6ajVYVzDewi3H1qJic4A51HFg)
 
![login_chrome_ext.png](https://support.airgateway.com/kb/attachment/article/43/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjgwIiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.5N2-YjLSoPiUMgygZXgngVqsNLwFwrPUbwcjsqVa_PU)
 


# Order Servicing Workflows

In some orders, you might be interested in adding new services like seats, ancillaries or even change your orders. These are the basic workflows you can use for that.

***

### Order Cancelation

![voidorcancel.png] 
 ![ordercancelation.png] 
 ![ordercancelation.png](https://support.airgateway.com/kb/attachment/article/13/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjM3Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.zFzyI8c0BhsdpXVJf5b6LAYMHtf1XO9VmKhODZLyHDY)

1. OrderRetrieve
2. OrderReshopRefund
3. OrderCancel

***

### Add Services to Order

![servicestobooking.png] 
 ![AddServicestoOrder.png](https://support.airgateway.com/kb/attachment/article/13/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjM0Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.z-urTCN1w5F57UuFGGRiilpKd66xi2F-hGZeNh96j-o)
1. OrderRetrieve
2. ServiceList
3. PaymentInfo
4. OrderChange

***

### Add Seats to Order

![seatstobooking.png] 
 ![AddSeatstoOrder.png](https://support.airgateway.com/kb/attachment/article/13/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjM1Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.EzuzwDbIsiJ-r0CLVwZCBEO96BTzAfnHpat0FY0pwNE)

1. OrderRetrieve
2. SeatAvailability
3. PaymentInfo
4. OrderChange

***

### Order Reshop/Rebook

![changebookingdates.png] 
 ![OrderReshoPRebook.png](https://support.airgateway.com/kb/attachment/article/13/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjM2Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.pUwDgeEfzhz1neISSViV4_PS1m9TdQgglKwPpdahyGg)

1. OrderRetrieve
2. OrderReshop
3. OrderReshopReprice
4. PaymentInfo
5. OrderChange

# Payment Methods

Currently, there are three payment methods allowed by our API:
* On hold
* Cash
* Credit Card

## On hold
The status 'On hold,' in actuality, does not constitute a method of payment. Instead, it serves as our mechanism to generate orders without requiring immediate payment. This means that one can book a flight and defer the payment to a later time. It is important to note that certain airlines do not permit this option. However, there are others, such as AirFrance (AF) and Royal Dutch Airlines (KLM), which allow payment only after the order has been placed on hold. For further details, please refer to the Airlines/Providers table.

***

## Cash
Cash payment is the same as BSP. This payment method doesn’t require any configuration to use it. Not all providers allow it. Check Airlines/Providers table for more information.

***

## Credit Card

Payment method to use custom credit card data in order to do a payment. Not all providers allow it. Check Airlines/Providers table for more information.

In order to successfully test credit card payment with every provider which allows it, you should follow the following table that contains all our testing cards:

| Airline Code|Credit Card | Number| Exp. Date| CVC | Name, Surname and Title| Phone number | Email| Country | City| Postal Code | State | Street |
| ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ |
| BA| Master Card| 5199992312641465| 05/32| 123| JOHN DOE, MR| 	+34646666621| accept@accept.com| Spain| MAD| 28900 | 28 | 	Ibiza 21 |
| IB| Visa| 4012999999999999| 11/39	| 407| Dinel Garcia Garcia, MR| 	+34646666621| accept@accept.com| Spain| MAD| 28900 | 28 | Leganitos 21 |
| AF/KL | Visa| 4000020000000000| 03/30| 737| JOHN DOE, MR| 	+34646666621| accept@accept.com| Spain| MAD| 28900 | 28 | 	Ibiza 21 |
| VY| Visa| 4444333322221111| 03/30| 737| Manuel Martinez, MR| 	+34646666621| accept@accept.com| Spain| MAD| 28900 | 28 | Leganitos 21 |
| BT           | Visa        | 4005550000000001                  | 01/39        | 123      | JOHN DOE, MR            | +34646666621  | accept@accept.com | Spain          | MAD        | 28900       | 28     | Ibiza 21       |
| FR           | Visa        | 4910020011111118                  | 10/28        | 747      | JOHN DOE, MR            | +34646666621  | accept@accept.com | Spain          | MAD        | 28900       | 28     | Ibiza 21       |
| U2           | Visa        | 4444333322221111                  | 03/30        | 737      | JOHN DOE, MR            | +447400123456 | accept@accept.com | United Kingdom | LON        | 123         | 28     | Ibiza 21       |
| W6           | Master Card        | 5210000010001001                  | 02/28        | 123      | BookingPayer DOE, MR            | +34646666621 | accept@accept.com | Spain | MAD        | 28900         | 28     | Ibiza 21       |
| LS           | Visa        | 4005550000000001                  | 01/39        | 123      | JOHN DOE, MR            | +34646666621 | accept@accept.com | Spain | MAD        | 28900         | 28     | Ibiza 21       |
| LA | Visa| 4918019160034602| 12/34| 123| JOHN DOE, MR| +34646666621| accept@accept.com| Spain| MAD| 28900 | 28 | Ibiza 21 |
| LH| Master Card| 5577810000000004| 01/39| 123| JOHN DOE, MR| 	+34646666621| accept@accept.com| Spain| MAD| 28900 | 28 | 	Ibiza 21 |
| A3/OA| Master Card| 5577810000000004| 01/39| 123| JOHN DOE, MR| 	+34646666621| accept@accept.com| Spain| MAD| 28900 | 28 | 	Ibiza 21 |
| AA| Master Card | 5577810000000004| 01/39| 123| JOHN DOE, MR| 	+34646666621| accept@accept.com| Spain| MAD| 28900 | 28 | 	Ibiza 21 |
| UA| Visa| 4508750015741019| 01/39| 000| JOHN DOE, MR| 	+34646666621| accept@accept.com| Germany| Berlin| 14167 | BE | Goerzallee 156 |
| CM| Visa| 4005550000000001| 01/39| 123| JOHN DOE, MR| 	+34646666621| accept@accept.com| Spain| MAD| 28900 | 28 | Ibiza 21 |
| SQ| Visa| 4012999999999999| 10/23| 123| Manuel Martinez, MR| 	+34646666621| accept@accept.com | Germany| BER| 10115 | Berlin | Leganitos 21 |
| TK| Visa| 4917610000000000| 02/30| 123| JOHN DOE, MR| 	+34646666621| accept@accept.com | Spain| MAD| 28900 | 28 | Ibiza 21 |
| TP| Visa| 4005550000000001| 01/39| 123| JOHN DOE, MR| 	+34646666621| accept@accept.com | Spain| MAD| 28900 | 28 | Ibiza 21 |
| EY| Visa, UATP  | 4005550000000001, 135413000003080 | 01/39, 06/24 | 123, 927 | JOHN DOE, MR            | +34646666621  | accept@accept.com | Spain          | MAD        | 28900       | 28     | Ibiza 21       |



# Traveller Profiles Import

The BookingPad bulk import feature allows agencies to upload large volumes of traveler data into specific corporate accounts. This process requires a prepared CSV file and coordination with the [AirGateway support team](https://support.airgateway.com/en-US/support/tickets/create){target="_blank"}.

## Prerequisites

Before initiating an import, the Corporate Section must be enabled for your agency. 

![corporates-section.png](https://support.airgateway.com/kb/attachment/article/83/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI1NCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.sEGVYHDk89xmrYmNV34DUH9-Fd7X_DwgZ_HAbCmLaCA)

Make sure to provide the exact Corporate Account Name where the profiles should be assigned. If the account is not yet established, our team will create it in BookingPad as part of the setup.

### CSV Technical Standards

To ensure a successful data transfer, the CSV file must adhere to the following specifications:

**Mandatory Fields**: Every entry must include a first_name and last_name. 

**Data Integrity**: Check for and remove any duplicated traveler data. The system does not merge records; it will create duplicate profiles if the same data is submitted multiple times.

**Delimiters**: The import tool supports files using either semicolon ( ; ) or comma ( , ) as delimiters.

### Required Header Mapping

Use the following standardized headers in the first row of your CSV file:

| Field Name | Requirement | Details / Format |
| ------ | ------ | ------ |
| traveler_code | Optional | Unique internal agency identifier |
| first_name | Mandatory | Traveler's legal first name |
| last_name | Mandatory | Traveler's legal last name |
| email | Optional | email address |
| phone | Optional | phone number (to include the country code: +00) |
| date_of_birth | Optional | Use format: DD/MM/YYYY, DD-MM-YYYY, YYYY/MM/DD, YYYY-MM-DD |
| gender | Optional | male or female |
| homebase | Optional | Preferred airport code |


### Submission Procedure

To complete the traveler profile import, verify that no rows are missing mandatory names to avoid import errors and send the CSV file to the AirGateway team on our [Support Platform](https://support.airgateway.com/support/tickets/create){target="_blank"}, specifying the Corporate Account Name for the upload.

Our team will confirm once the list is successfully integrated into your Corporate Section.

To add travelers to an existing account later, submit a new CSV file containing only the new profiles.

### Common CSV Formatting Errors

Before submitting your file to the AirGateway team, review these common issues that can cause import failures or data corruption:

**Missing Mandatory Data**: First and Last name are mandatory.

**Header Mismatches**: Headers must match the standardized list exactly.

**Case Sensitivity for Gender**: Ensure the gender field is strictly populated with either male or female in lowercase.

**Hidden Characters**: Opening CSV files in certain spreadsheet software can sometimes introduce hidden formatting characters. Ensure the file is saved as a Plain CSV.

**Duplicate Entries**: Re-check that no traveler appears twice in the list, as the system will create two separate profiles for the same person.

Access our [Support Platform](https://support.airgateway.com/support/tickets/create){target="_blank"} and open a new ticket to request the import.

# Access Marine Fares in BookingPad

## How to include Marine Fares in BookingPad

This is a guide to provide you with assistance when creating presets for Marine fares. This type of fare requires more information than others such as VFR or TO fares. That’s why there are some additional elements you need to know when creating a booking for Seaman passengers.

 :::Info
Keep in mind that the presets settings can only be modified by the manager in BookingPad. A full guide on How to Create a Preset is available [here.](https://support.airgateway.com/en-US/kb/article/64/presets-bookingpad-tool-for-negotiated-fares){target="_blank"}
 :::

## Create a Preset

First, you will need to click on the presets and you’ll see a dropdown menu. Select the option ‘edit presets’. On this page, you can click on the plus symbol and add a new preset. 

![options-presets.png](https://support.airgateway.com/kb/attachment/article/63/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI2NCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.2NP43Q5jbBccZgwBTG5U6jhTE6uGL95gK-C4XRqUv2k)
 
![add-preset-arrow.png](https://support.airgateway.com/kb/attachment/article/63/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI5MSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.OANw1pDtS58B71fXfBFZ4rTkp-8USq_keN6KAcrBSA8)


When creating the preset, you'll need to include specific information for Marine fares if required by the airline, such as:

* **PTCs**: delete the default information and add SEA to the ADT tab.
* **Preferences**: Select the Shop preference required by the airline (i.e Marine Fare 758, Nego 749). 
* Include your Account ID in the Qualifier section.

![alt text](video:https://youtu.be/OKduGjrgqMA){height=315 width=560}

### Airline Requirements Table

The following table outlines the specific codes, Passenger Type Codes (PTCs), and qualifiers needed to successfully build Marine presets across different carriers:

| Airline | PTCs | Shop Preference | Qualifier | Output |
| ------ | ------ | ------ | ------ | ------ |
| IB | ADT, CHD, INF | 758 Marine | N/A | Priv (758) |
| BA | SEA, CHD, INF | 758 Marine | N/A | Priv (758) |
| LH | SEA| N/A | Contract ID (e.g. 123456) | - |
| LH | SEA | N/A | N/A | - |
| AFKL | SEA | 758 *add SC as TypeCode | N/A  | Priv (758) |
| AFKL | SEA | 758 Marine | N/A | Priv (758) |
| SQ | SEA | N/A | Account ID | - |
| AY | SEA | 758 | Account ID (e.g. 123456) | Priv (758) |
| A3 | SEA | 749 | N/A | Nego (749) |
| TK | SEA | N/A | Account ID | ESEA |

 :::Info
When booking Seaman fares, the OSI element has to be filled with the ship’s crew information 
 :::
 
![OSI-details.png](https://support.airgateway.com/kb/attachment/article/63/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI2MSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.GbMw6Bk-2dGqxGMGTFwt2IdQ0JLGOKIar0HhrZCNlqE)

### Airline-Specific Exceptions and Rules

There are some exceptions that apply to Marine fares for the airlines listed below. 

#### **Air France**

A preference has to be inserted:
* code: 758 
* definition: SC 

For FR market only the account code is required. In this case, two different Presets can be created for each of the scenarios. 
 
![AF-FR-MARKET.png](https://support.airgateway.com/kb/attachment/article/63/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMwNiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.mgvoMNo7anl9WrDX4TsbjrRqDB1LeyR94N6WCWeNUVQ)

Seaman fares for all markets except FR market, do not require the Account code:

![AF-NO-FR-MARKET.png](https://support.airgateway.com/kb/attachment/article/63/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMwNSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.uf6sqkwxe-I8drc2T5XN2wId9g3yaNpet4ZZdzGpki8)

 :::Info
Vessel name / location is mandatory at the moment of booking creation
 :::

#### **Iberia**

IB requires an OSI Code, an organization/vessel/platform name, and an optional Country. 

![IB-marine.png](https://support.airgateway.com/kb/attachment/article/63/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI4MiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.FWBQ6EZTQHB5CwbqeCXtE4Et-aw7pTkl34GLxE4TyN0)




# Corporates: Manage Client Accounts and Loyalty Programs

This article details how to leverage the Corporates feature in BookingPad to manage your corporate clients, including traveler profiles, loyalty programs, and discount codes.
 
 :::Info
The Corporates feature is not enabled by default. Please contact our [support team](https://support.airgateway.com/){target="_blank"} to request activation for your agency.
 :::

## What are Corporates?

The Corporates option allows your agency to create and manage accounts for corporate clients. Within a single corporate account, you can store and apply:

* Traveler Profiles: Traveler and Manager details.
* Corporate Loyalty Programs: Such as BlueBiz (AFKLM).
* Discount Codes
* Frequent Flyer Numbers

These saved details will automatically populate relevant fields during the booking process.

### Setting Up a Corporate Account

1. Add a New Corporate Account
    * Click the + icon on the right side of the screen.
    * In the new window, enter the corporate Name and Account ID.
    * Optional: Whitelist email domains for the corporate (e.g., @clientcompany.com).
    * Click Save.

![Add-Corporate-account.png](https://support.airgateway.com/kb/attachment/article/61/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyOSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.wPfNDVegBPbwyojRBYNidKdZBUExTypPvCT1FTvfLLs)

2. Configure Corporate Programs
    * Once the account is created, you can add specific programs:
    * Click the + icon on the right side of the screen.
    * Select the provider (airline) with which the corporate client has a special arrangement.
    * Enter the corporate discount code and/or corporate loyalty program (e.g., Bluebiz).

 :::Warning
Corporate Loyalty Programs are currently supported for the following providers: BA, IB, AFKLM, and LHG. The codes entered here will be automatically applied to passenger details in new orders.
 :::
 
![Add-discount-corporate.png](https://support.airgateway.com/kb/attachment/article/61/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEzMCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.dKQvJjc2LHvblWoZVERnmy2YxLl4hoVZUSDfY1Huf4M)

### Creating and Editing Profiles

Within the corporate account, you can create Traveler and Manager profiles:

* Click the + icon to add a new profile.
* Fill in the detailed passenger information. These details will be auto-filled when the profile is selected in the Passenger Details (PAX details) section of a booking.

**Managers have the option to enable a "Traveler Profile," while Travelers will always have one.**

 ![add-manager-corporate.png](https://support.airgateway.com/kb/attachment/article/61/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEzMSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.gzg9HpyeDTRe1VDdcL6RUbUgpPpypzewgJeK9j-x6SQ)

 ![add-traveller-corporate.png](https://support.airgateway.com/kb/attachment/article/61/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEzMiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.wDuSEOGw0CV_gX-SWGgTVLQXrV4dVbF_zT-rR49F3wU)

 
 :::Info
To request the import of the Traveller profiles from GDS, follow the steps available on [this page](https://support.airgateway.com/en-US/kb/article/83/traveller-profiles-import){target="_blank"}.
 :::

### Adding Frequent Flyer Numbers

You can link any existing Frequent Flyer Programs to a traveler's profile:

* Navigate to the Frequent Flyer Numbers section of the profile.
* Click the + button.
* Select the airline from the list.
* Fill in the member number and click Add.
  
 ![add-travellerFFN-corporate.png](https://support.airgateway.com/kb/attachment/article/61/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEzMyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.UtWO7xpOOc4N8PHvZuI4PiriqWHhp7d_jGvrxin5RD0)

### Shopping with a Corporate Account
You have two primary options for applying a corporate account to a booking:

**Option 1: Pre-select at Search Start**

* Click on the Corporate field at the top of the search page.
* Begin typing the corporate name; a list of options will display.
* Select the company.

**Option 2: Add in Passenger Details (PAX details)**

* If you are already in the booking process (after selecting an itinerary):
* Navigate to the PAX details section.
* Search for and select the corporate account using the same steps described above.

# Order List: Manage and Track Bookings

The Order List page allows you to view, search, and manage all existing orders created by you and your colleagues.

## Viewing Specific Order Statuses

You can switch between the following tabs at the top of the menu to filter the display and view specific booking types:
 
 ![Order-list.png](https://support.airgateway.com/kb/attachment/article/52/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEwNyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.q_UcopPPrALBxCyIlW_aN9ncXKL5E5y8d2sS6ZjcT74)

* All
* On Hold (Book on Hold)
* Ticketed (Issue ticket)
* Cancelled
* Voided
* Issuing
* Expired
* Unknown
* Notifications

### Search and Filtering

To refine the list, use the available filtering and sorting options:

* **Search**: Use the main search bar to find specific orders.

 ![Search-box.png](https://support.airgateway.com/kb/attachment/article/52/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIwMiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.JGSSnyVyXjzwTzOrbEMSvp9Kudh1NdSW517WlfhXIy0)

* **Filters**:
    * Use the **Scope option** to display only orders you have personally created.
     * Use the **Sort by** option to organize the list based on the date the order was made.

 ![scope-order-list.png](https://support.airgateway.com/kb/attachment/article/52/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.QlPq1EJb9JTzzPpCnPNIZsASHwtdgutbNjDeFFR-Rck)
 
 ![sort-by-list.png](https://support.airgateway.com/kb/attachment/article/52/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExNCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.jvv-4xXPm_IAKHdf5qeWO8ZkyKOWzQ3VMrcSzQO4EKk)

### Order List Data Fields

The list provides complete and detailed information for each order:

| Field | Description |
| ------ | ------ |
| Provider | The airline or system used for the booking |
| Booking Date | Date and time the order was initially booked |
| Expiration | Date and time the booking hold will expire |
| PNR | The Passenger Name Record (PNR) code |
| Type | The trip type (One-Way, Round Trip, or Multi-City) |
| O&D | Origin and Destination airports |
| PAX | Number of passengers (hover to view individual passenger names) |
| Departure Date | Date and time of the flight's departure (hover to view days remaining until departure) |
| Approval Status| Displays the approval status if your agency utilizes corporate approval workflows |
| Status | The current lifecycle status of the order (On Hold, Ticketed, Cancelled, Expired, etc.) |
| Action | Functionality that allows you to view, amend, or cancel the order |



# Service Selection: Add Services and Passenger Assistance

The Select Services and add SSRs features allow agents to manage additional requirements within a booking. Use this tool to add mandatory Special Service Requests (SSR) for passengers who require assistance or to include paid ancillaries.

 :::Warning
The airline provides these options directly; therefore, available services and assistance types vary depending on the carrier. Some Airlines may include the additional services to the 'Select Services' after booking. 
 :::

## Service Categories

The interface provides two distinct tools to manage additional requirements: the SSRs button and the Select Services button.

 :::Info
Some airlines (such as AF, BA) include free services in the 'Select services' option and no SSRs will be visible
 :::

 ![Select-services-SSRs.png](https://support.airgateway.com/kb/attachment/article/86/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI2NyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.f2vqKPK0IzaL9xf629xgVdXSA-R1eMDjd54_UDeaYsw)

**Paid Ancillaries**: Extra checked bags, special equipment (e.g., sports gear), and WiFi packages.

**Passenger Assistance**: Wheelchair support, assistance for passengers with reduced mobility, and unaccompanied minor (UMNR) services.

**In-flight Requests**: Special meals (VGML, KSML, etc.) and bassinet setups.

**Other SSRs**: Pet in cabin or medical oxygen requirements.

### How to Add Services to an Order

#### Add SSRs

* Locate the SSRs button within the booking flow before confirming the reservation (image above).
* Choose the passenger(s) who require the assistance or special request.
* Select the specific SSR from the airline's provided list.
* Confirm the selection to include it in the initial reservation request.

Some airlines will offer the option to add these free services after the order has been issued. In that case, click on 'Select Services' and the list will be displayed:
 
![aa-select-services.png](https://support.airgateway.com/kb/attachment/article/86/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI2OSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.RV7yHoFrVEuij2mbJbiz_kw4k8OWKICfh_fzXjMApLU)

#### Add Paid Services

* Click the **Select Services** button (depending on the airline this will be enabled during the booking process, after booking on hold, and/or booking has been issued).

![Select-services.png](https://support.airgateway.com/kb/attachment/article/86/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI2NSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.YBVbErP0TtMUzEbC1pt1kOAiShp72G5lwTLjk7naZPw)

* Select the passenger associated with the ancillary.
* Choose the desired service from the list.

![select-services-next.png](https://support.airgateway.com/kb/attachment/article/86/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI2NiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.qQYj5bjfj37ONMX53tuEQQfAm5X1JIXLiq2aI6zFYNc)

* Review the Price section. If available choose to book on hold or pay now option.
 
![select-service-pay.png](https://support.airgateway.com/kb/attachment/article/86/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI2OCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.bC7mw6_ZQDS1Uw47B3Tqe_ic2lO0QRid4ZXqIy9KraE)

**For certain SSRs such as MEDA (medical clearance) or OXYG (oxygen), always check the airline's specific confirmation policy. These requests often require manual carrier approval and may remain in a Pending status until the airline authorizes the service in the PNR/Order.**
 

# Order Log: Airline and System Communications

The **Order Log provides a complete, sequential history of all major actions**, notifications, confirmations, and errors associated with a specific order, sourced from both the airline and the BookingPad system.

You can access the log by opening the reservation in BookingPad and selecting Order Log from the menu.

 ![Order-Log.png](https://support.airgateway.com/kb/attachment/article/50/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijk4Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.HsGyBC-4MOQMdFT2FfcYA_PuMqi0V1_losOPGotr0aI)

## Log Content and Actions

The log records all actions performed on the order, including:

* Order Create: When an order is initially booked.
* AirDocIssue: When the ticket is processed (Issue Ticket).
* Other Events: Any notification, confirmation or error sent by the airline.

To adjust the viewing order, use the Date button to sort actions by ascending or descending time.
 
 ![date-button.png](https://support.airgateway.com/kb/attachment/article/50/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEwMSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.ZGp7WjzZTRT5X0phAqm54vheLEabu6tNSdp2P9dWnNA)

## Log Element Structure

Each entry in the Order Log contains the following detailed elements:

 ![order-history.png](https://support.airgateway.com/kb/attachment/article/50/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEwMyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.XvEXhe4999RVPkBUFy3pyEvHqVMz-_vncZRHFc24Wno)

* **Timestamp**: The precise date and time the event occurred
* **Status**: The outcome or type of communication (e.g., Confirmation, Warning, Error)
* **Title**: A concise description of the event that took place
*   **Request ID**
* **Source**: where does it come from (it can be from the API, the app or a task)

Some Elements may include a message with extra information about the action.

 
 ![Order-log-message.png](https://support.airgateway.com/kb/attachment/article/50/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEwNCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.9qc6i83kmGXtXglJ0d2Vb9lQx6qYV02FwwFT1YgoFCA)




# PDF Download: Document Options and Customization


The BookingPad platform allows users to download the details of any created order (Book on Hold or Issued ticket) as a PDF document to send to clients. These files serve as the official Booking Confirmation for the traveler. 

## Available PDF Document Types

When you access the PDF menu, you can choose from three distinct document formats based on the information your client requires. 

### Itinerary

This document displays comprehensive flight and itinerary details, including flight numbers, departure and arrival times, terminals, operating carriers, duration, aircraft equipment, baggage allowances, and frequent flyer information.

For this option, you can select one or multiple passengers to download the document individually or for the entire group.

### Itinerary and Fare Conditions

This format includes the complete flight details alongside baggage allowance and specific fare rules or restrictions. It provides a complete overview regarding ticket flexibility. Like the standard itinerary, you can download this document per passenger or for all passengers together.

### Proposal

This option works as a quotation tool for your agency. It displays the flight details, the total price, and the specific time limit from the airline to complete the booking. It is designed to send a proposal offer in bookings on hold to clients before you finalize the payment and Issue ticket. However the option to download the proposal, is available for both Book on Hold and ticketed Orders.

 :::Info
Passenger Selection: Unlike the other formats, the Proposal document is only available for the total price of the entire booking, not per passenger.
 :::

The Proposal option offers additional customization to present the information for the customer. 

**Agency Service Fees:** You can add a service fee directly to the total price within the document setup. This feature is designed to include a service fee that your agency adds to the airline fare for passenger informational purposes, and does not function as a markup on the ticket. The service fee amount can be disclosed in the total cost details or blended into the final price if required.

![Service-fee-pdf.png](https://support.airgateway.com/kb/attachment/article/44/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMwNyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.FaBuQQ7wV5Kmq7JjJIndNixvCcPU53Po160LJTSsj3g)

* Total Fare including Service fee 

![total-fare.png](https://support.airgateway.com/kb/attachment/article/44/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMwOSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.11KTUGQ5Fo1AZjqMHXzaDQ4LXM4LFopXkOcxBgnozJo)

*  Service Fee Disclosed with detail of the Airline fare, Service Fee and Total Price
 
![disclosed-fee.png](https://support.airgateway.com/kb/attachment/article/44/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMwOCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.6hxbbb0DMqgu4yi_MgIhZuQY0gFghR8uQPV5Lhds2SE)

 :::Info
The airline fare is the amount charged directly by the airline (including base fare and taxes). This amount is never modified on our side
 :::
 
**Ticketing Time Limit (TTL)**: The document automatically includes the specific ticketing time limit provided by the airline, which clarifies to the client how long the price is guaranteed before payment is required.

#### How to Download a Document

* Go to the Orders tab menu, and click on the Order (booking) from the list.
 
 ![List-of-orders.png](https://support.airgateway.com/kb/attachment/article/44/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMxNiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.Qae0Yt6mUqre7aT03ypfNEl4e3u4iQorvswrjnp5gsE)

* Click the menu available on the top-right of the order screen.
 
![export-download-arrow.png](https://support.airgateway.com/kb/attachment/article/44/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMxNSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.0U_ZKRC2QcnV1dhKT7hd6AXj5rJNRYBQ6CWuQACfdCo)

* Click on the PDF option to reveal the three document formats. Select your preferred format: Itinerary, Itinerary and Fare Conditions, or Proposal. You'll find the options to download the document per passenger or for all passengers (applicable to Itinerary and Itinerary and Fare Conditions).
 
![Itinerary-PDF.png](https://support.airgateway.com/kb/attachment/article/44/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMxMiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.Jgz9vOyzIoo436U-HNLuSEA_k8EfMl66ca_dMwrN98Y)

* For the Proposal, choose the Total Fare or Fee disclosed display.

 ![Proposal-PDF.png](https://support.airgateway.com/kb/attachment/article/44/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMxMyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.-OTJGThQpqkgzhMGhfhXxf7m9BPsGzKJbbuF-pjBCWA)

* Click the selected option to download the document.

![Itinerary-example.png](https://support.airgateway.com/kb/attachment/article/44/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMxNCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.UvjqAyTkdSDpLD8KJPQdBgIpUTBrrXq3aBbbsH7Y_qQ)

#### Configuration and Branding

**PDF Download Delivery**: Generated documents are available for immediate direct download. The system does not automatically email them to the client.

**Agency Branding**:  You can add your agency's logo and contact details directly on the Agency portal, within the settings tab (access to the Agency Portal is restricted to users from BookingPad with a Manager role).

# Order History: Tracking Order Modifications

The Order History tab provides a complete audit trail of all changes and events related to an existing order. This is an essential tool for agents to understand the timeline of modifications, from initial booking to final ticketing.

## Reviewing the History Log

To access the log, open any order and select the **Order History tab**.
 
 ![Order-history-list.png](https://support.airgateway.com/kb/attachment/article/53/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIwMSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.aZ4MT2NbyVmuPpRdiBL9YFv5wNJL2i5n2--CeJV_sfE)
 
 :::Info
You can sort the actions by date and time using the Date button to switch between ascending and descending order.
 :::

The log records system actions and agent activity, such as adding services (ServiceAddition), itinerary modifications (ItineraryChange), or receiving communication from the airline (Airline Notification).

### Data Elements within the History

Each entry in the log provides detailed information about the specific event:

| Detail | Description |
| ------ | ------ |
| **Timestamp** | The exact date and time the event occurred |
| **Action** | A description of the operation performed (e.g., Booking, Ticketing, ServiceAddition) |
| **User**| The agent or system responsible for the action |
| **Price** | Total cost of the issued element (TKT, EMD) |
| **Items** | A list of services or features added or removed (e.g., seats, baggage) |
| **Tickets** | The ticket numbers associated with new or re-issued tickets |
| **Changed** | Specific details regarding itinerary changes (e.g., new flight numbers, dates) |
| **Type** | The classification of an airline notification |
| **Context** | Information about the airline notification |
| **Remarks** | Details about the airline notification |
| **Seen by** | Who has marked a notification as seen |


# Sending Requests to the AGW API

We use **HTTP/1.1** as communication protocol to accept requests to the gateway. All NDC requests are sent using the POST HTTP method.

The public endpoint to our **NDC Gateway** remains immutable for all NDC requests and it is:

* **Version 1.2 (Sandbox)**: https://api.airgateway.net/v1.2/
* **Version 1.2 (Production)**: https://api.airgateway.com/v1.2/

We require some mandatory basic HTTP headers intended for message formatting:

* **Content-Type**: application/json
* **Accept**: application/json
* **Authorization**: XXXXXXXXXXXXX. You’ll have to send your API token for authentication purposes

# Special Fares

#### 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](https://help.bookingpad.com/en/article/shopping-presets-tvaizh/) 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](https://support.airgateway.com/kb/article/7/first-steps). 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](https://api.airgateway.net/v1.2/AgencyPresets){target="_blank"}

 This is a response example for that endpoint call (using your valid token): 
 ```json
{
  "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: 
 ```json
{
    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: 
 ```json
{
    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.  
 
 ```json
 {
    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:
 
 ```json
{
    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:
 
 ```json
"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:
 
 ```json
 {
    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.
 
 ```json
"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](https://help.bookingpad.com/en/article/special-fares-per-airline-fdny3j/).

#### Approach 2: Using Preset IDs

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

 ```json
{
    AirShopping payload...
    "presets" : [
        ...
         {
             "id" : "PRE_3fa85f64-5717-4562-b3fc-2c963f66afa6"
         },
         {
             "id" : "PRE_3fa85f64-5717-4562-b3fc-2c963f66afa7"
         }
        ...
    ]
}

 ```

To find the Preset ID:
1. Go to **BookingPad** and navigate to the **Presets** section.  
 
 ![presets1step.jpg](https://support.airgateway.com/kb/attachment/article/11/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjQ1Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.6REny6-hjkwtAB8PFTIiZfhjkDJPMG-6AxZmur3Pywo)

2. Click on the **Copy** button for the Preset whose ID you want to use.  
   
 ![presetCopy.png](https://support.airgateway.com/kb/attachment/article/11/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjQ4Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.7cQLqFQiiczF9TBdvdQ8BfeL2H_fnq0TMNjHr1u5Wkw)

3. Add the copied Preset ID into your AirShopping request.

# Multi-Provider Requests

These requests are limited to a single NDC method call (**AirShopping**) as it is the only method that can be concurrently requested from multiple NDC providers. 
To perform a Multi-Provider Request (MPR), a valid standard NDC **AirShopping** request must be sent with the HTTP header:

> **AG-Providers**: *

This header tells the NDC Gateway to send the request to all available NDC providers for the consumer. Alternatively, a list of providers can be specified using comma-separated standard IATA airline designators.

> **AG-Providers**: BA, AA, LH

## MPR Responses
MPR responses are handled asynchronously with the following HTTP headers:

> **Connection**: keep-alive

### MPR response formats:

There are two modes for MPR responses (applies only to AirShopping searches): Streaming or Standard HTTP.

To enable the streaming mode (recommended for GUI Applications), the following HTTP header is required:

> **AG-Connection**: keep-alive

Additionally, a timeout can be set on the server-side upon client request to define a maximum request lifetime.

> **AG-Request-Timeout**: X (where X is an integer in seconds)

Using this header allows the client to receive all results within the specified time. For example, with a timeout set at 6 seconds, results from airline 1 (returned in 5 seconds) will be received, but not from airline 2 (returned in 10 seconds).

###### Important note

> Please note that streaming mode responses utilize a non-standard JSON notation called JSON Streaming for a streamlined collection of valid JSON objects, rather than a standard JSON format.

# Notifications: BookingPad and Email notifications

AirGateway handles notifications through distinct email types and via the platform's interface. This ensures that agents are alerted to both airline changes and their own booking actions, while also managing how information appears to the traveler.

### Overview

The following table summarizes the types of information sent and where they are directed:

| Category | Information Type | Recipient |
| ------ | ------ | ------ |
| Email Contact | Display only (No alerts sent) | PDF Itinerary |
| Operational Email | Airline Notifications | Agency operational inbox |
| Agent Email | Order Action Alerts (Booking, Issuance), Airline Notifications | Individual Agent |
| Platform Alerts | Real-time Status (i.e. time limit). | BookingPad Interface |

**Email Contact and Operational Email can be found on the Agency Portal settings:**

![Agency-portal-agency-information.png](https://support.airgateway.com/kb/attachment/article/76/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI3OSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.ME6dVDFn9o5JwH1Nw2QsuoH4k0bC6IVXWj5nfinae-k)

### 1. Agency Contact (PDF Display)

The Agency Contact is not a communication channel for notifications. It is used exclusively for display on the PDF Itinerary provided to the traveler.

This ensures the client has your preferred contact information for any direct inquiries.

You can update this address at any time through the Agency Portal.

### 2. Airline Notifications

The Operational Email is where we send all alerts received from the airline regarding your bookings. This email address can be updated in the [Agency portal Settings tab](https://agency.airgateway.com/settings){target="_blank"} (only the agent with Manager role in BookingPad will be able to access the Agency Portal).

 :::Info
The delivery and content of these alerts depend on the specific airline.
 :::
 
### 3. Order Action Alerts

AirGateway sends automated notifications to the agent performing the booking to confirm specific actions taken within the system. These alerts are sent to the agent's specific login email (used to booked via BookingPad). Below are some examples of these notifications:

* Order create: Confirmation of a new reservation (no payment).
* Issue ticket: Confirmation once payment is completed.
* Rebooking: Alerts regarding modifications to an existing reservation (PNR/Order), such as changing a flight, date, or class.
* General Changes: Updates regarding manual modifications or status shifts in the booking.

#### Traveler and Emergency Contact Information

During the booking process, you can manage how the airline contacts the traveler:

**Booking Contact Email**: You can enter the traveler's email address or the agency's email address in the contact details field.

![Contact-details.png](https://support.airgateway.com/kb/attachment/article/76/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE2NyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.CyM7vdbYZkxY4eF_vHc25OYpYhYzq8Clbszps5T-r2w)

#### BookingPad Notifications

In addition to emails, agents can track updates directly within BookingPad:

Warning Icon: Real-time alerts for booking status changes will be visible in this section. 

 ![Orders-Notification.png](https://support.airgateway.com/kb/attachment/article/76/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE5MSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ._tlpm7uFYp6ZtSy51Db1I_ycM4Y_AburKrBCHGYaHVg)

* This opens a list of bookings requiring attention. From here, depending on the notification type, the agent can perform the action (accept changes, reprice, reissue). The agent can click on 'notification seen' to acknowledge the change.

 ![Notifications_tab.png](https://support.airgateway.com/kb/attachment/article/76/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE5MiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.O-g2oFV9aX3MaYjTF5_dH1Mtcd2orbEfDLM9afsFGpI)



# Issue Ticket and Payment Methods

After completing a booking or retrieving an existing Book on Hold reservation, the next step in the booking flow is to finalize the transaction.

To reach the ticketing and payment interface, follow these steps:

1. Locate your reservation via the **Orders section** or complete a new search and selection.
2. Click the **Order Issue button** located in the booking summary (bottom right).

![order-issue.png](https://support.airgateway.com/kb/attachment/article/34/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI1OCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.yD-YlNqiCvuvyy-y9_b7JTYhli-y8b7_Vzy2iltBzcc)

3. The system will display the Form of Payment (FOP) available. There are two main options to process the ticketing:
* **Agency Cash**: This method allows your agency to pay using the BSP system. The payment transaction is processed directly by the airline.
* **Credit / Debit Card**: This method is used to provide the airline with the customer's credit or debit card details. The payment transaction is handled directly by the airline.

:::Info
When selecting Card as the FOP, ensure all card information fields are fully completed. While some fields may not be visually marked as mandatory, you must enter all requested data to avoid Issuance failure.
Requirement criteria vary by airline; a field that is optional for one carrier may be mandatory for another. If this data is missing, the carrier may reject the payment at the moment of issuance, resulting in a failed transaction.
:::

![Order-Issue1.png](https://support.airgateway.com/kb/attachment/article/34/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI2MCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.IJ4QGVop_0-RTMbwZUpDh2-2wrsF1-DWR099AH04OdM)

**Important Note on Payment Exceptions**

Not all payment methods are accepted by every NDC provider. For details on specific airline payment methods, please check this [link](https://airgateway.com/providers/){target="_blank"}.

 


# Order Split

The Order Split function allows you to separate passengers from a single reservation into a new, independent booking. This is essential for scenarios where only one passenger needs to modify their flight, cancel their itinerary, or if servicing requirements differ among travelers in the original order.

## How to split an order

1. Scroll to the bottom of the page and click the **Order Split** button.

 ![order-split.png](https://support.airgateway.com/kb/attachment/article/73/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE2OSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.XDkM_8e6H7A4lJWK0F6F99gKxxEGuDM499p6rFJv0Gc)

2. In the pop-up window, review the Current Passenger List and the New Passenger List.

3. Select the passenger(s) you wish to separate and use the arrow icon to move them to the New Passenger List.

![image.png](https://support.airgateway.com/kb/attachment/article/73/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE1OCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.2cRKUAN0toRSlo1wfu7u_QlUVl5_HR9XtbKhz9j2TP4)

![image.png](https://support.airgateway.com/kb/attachment/article/73/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE1OSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.EINNPcfGMCTj0BIf40P3EsVzdMMF3EN3GSci3T2UylM)

![image.png](https://support.airgateway.com/kb/attachment/article/73/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE2MCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.KpSxV4d5K-27YX5itD9l_xgKSdnjzJc_3eK0xYc546M)

5. Click Split Order to finalize the action.

# Introduction to the AirGateway Platform API

Our Platform API is designed to achieve the integration of various airline content types such as NDC (New Distribution Capability), EDIFACT (Electronic Data Interchange for Administration, Commerce, and Transport), and LCC (Low-Cost Carrier) into a single, homogenised API.

This approach not only simplifies the process of content aggregation for developers and businesses but also ensures that end-users have access to a wide range of flight options and information through a unified interface. By streamlining this complexity, the platform empowers travel agencies, corporate travel managers, and online booking tools to provide more efficient and user-friendly services.

### API Documentation

Find here our API Documentation:

[https://api.airgateway.net/v1.2/swagger-ui/](https://api.airgateway.net/v1.2/swagger-ui/ "https://api.airgateway.net/v1.2/swagger-ui/")

You can find a [Postman collection](https://support.airgateway.com/kb/article/17/postman-examples "https://support.airgateway.com/kb/article/17/postman-examples") with examples [here](https://support.airgateway.com/kb/article/17/postman-examples "https://support.airgateway.com/kb/article/17/postman-examples") to get a fast-track approach to the API.

### Environments

Our API endpoints for our existing environments are:

- [API.AIRGATEWAY.NET](http://api.airgateway.net "http://api.airgateway.net") [**SANDBOX**] --&gt;  environment (requires a Sandbox API Key)
- [API.AIRGATEWAY.COM](http://API.AIRGATEWAY.COM "http://API.AIRGATEWAY.COM") [**LIVE**] --&gt; environment (requires a Production API Key)

Our Sandbox environment is connected to the airlines/providers' sandbox/test/UAT environments.

To move from our Sandbox environment, you need to complete a **certification process** to access our **LIVE platform**.

# Remarks

Remarks are internal details that serve the agency's purposes, such as accounting, invoicing, or mid/back-office system synchronization. Remarks function similarly to those in GDS environments and can be exported to your mid/back-office via AIR or MIR files.

## Remark Scenarios

BookingPad supports two scenarios for adding remarks:

1. Booking Remarks: Remarks added during the order creation process.

    * **Template Customization:** You must first confirm with AirGateway the specific template your agency requires. The template is fully customizable based on your necessary details.
    * **Mandatory Setting:** Remarks can be configured as mandatory during order creation. If set as mandatory, the template will appear automatically and must be completed to continue with the booking.
 
 ![Remarks-1.png](https://support.airgateway.com/kb/attachment/article/42/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjczIiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.TqIECDCwhBou0xKSBAOjD3THHyBT318JMi7-AdhtB0g)

2. Post Booking Remarks: Remarks added after the order has been created (unpaid). The Remarks section can be found within the order details once the booking is complete.
 
 ![Remarks-2.png](https://support.airgateway.com/kb/attachment/article/42/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijc0Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.siIVRmM42oBbe9M8d2YXvTUI-D0VPCPW_HBi-xUB-Ig)

### How to Use Remarks

**Procedure:**

1. Click the dropdown menu in 'Select template' and choose the required template.
 
 ![Remarks-3.png](https://support.airgateway.com/kb/attachment/article/42/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijc1Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.rMTpVvIpOmfh5yFAcuxaVgjlQTh7VjYPs8DPy9UvV-A)

2. Fill in the required data fields.
 
 ![Remarks-4.png](https://support.airgateway.com/kb/attachment/article/42/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijc2Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.lEuFNUcYQCWhwucfjoacm66c8pKF6nvD0PnxGMFDy3o)

 
 ![Remarks-6.png](https://support.airgateway.com/kb/attachment/article/42/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijc3Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.DpNmCEqIFSL-QJblphUlrf8K3H-Cm7BKNxe0ZHoRXKw)

3. Click 'Save' to preview how the remark will appear, or click 'Save and Continue' to proceed to the next step of the booking process.

### Field Types and Data Handling

The behavior of a remark field when exported to the AIR file depends on its field type:

| Field Type | Functionality | Export to AIR File |
| ------ | ------ | ------ |
| **Mandatory fields** | Must always be filled by the agent | The entire line is always sent |
| **Optional fields** | Can be skipped by the agent | Not sent if the field is left empty |
| **Regular fields** | Can be skipped by the agent | It will be sent even if the associated field is empty |
| **Auto fields** | Data is automatically entered by the system and cannot be changed | Sent automatically |

### Data Types for Field Configuration

The system supports various data types when configuring remark fields:

| Data Type| Description | Constraints |
| ------ | ------ | ------ |
| Int | Numeric values | Non-decimal (whole numbers) |
| Float | Numeric values | Decimal values allowed |
| Str | Text strings | Minimum or maximum character limits can be set |
| List | Selection from multiple pre-defined values | Single selection only |

### Auto Fields

Auto fields are system-generated data elements that are automatically entered into the remark template and cannot be modified by the agent.

| Auto Field Name | Data Source |
| ------ | ------ |
| Passenger ID | List of the name and number of each passenger |
| Passenger sales price | The price per passenger |
| Passenger index | Sequential number to identify each passenger (e.g., 001, 002, etc.) |
| Number | Single number to identify the passenger (e.g., P1, P2, etc.) |
| Origin | 3-letter IATA code for the origin airport |
| Destination | 3-letter IATA code for the destination airport |
| Traveler reference | Traveler reference used by the airline (e.g., ADT0, ADT1, etc.) |
| Agent ID | The current BookingPad user/Agent |





# Access Presets in BookingPad Chrome Extension

## Use the Presets to access Private Fares in the BookingPad Chrome Extension

The Presets tool available in BookingPad allows you to access the Private Fares from the different airline directly on our Chrome Extension while searching in GDS. 

By adding the Amadeus fare code in the BookingPad preset, the system can recognize matching fares and show them in the Chrome Extension, allowing you to compare and book directly in BookingPad, where prices may differ from Amadeus, offering better NDC fares.

## Step 1: Edit a Preset in BookingPad

* Log in to BookingPad.
* Go to Settings → Presets.
 
![options-presets.png](https://support.airgateway.com/kb/attachment/article/30/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI1NyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.zsoOk75uXR7XIl2jw7nRE_jp2x8zxNF1R3-ekTPZ7KI)

* Select the preset you want to link to an Amadeus nego fare or click the plus symbol to add a new preset. 

## Step 2: Add the Amadeus Pricing Modifier

* In the Edit Preset screen, **locate the field Amadeus pricing modifier**.
* Enter the private fare code used in Amadeus for this fare type.
* Click Save to update the preset.

![amadeus_price_modifier.png](https://support.airgateway.com/kb/attachment/article/30/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjU3Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.clElHgiN1k7HGTiPFnb-9D68enLsy96jRtzI6J3CcFo)

This links your amadeus private fare code to the corresponding BookingPad preset, allowing the Chrome Extension to detect available fares with that code.

# Requote Option: Add Frequent Flyer Benefits (selected airlines)

The Requote feature available for Iberia Bookings in the OfferPrice screen allows you to include the benefits that a frequent flyer has, after adding the Frequent Flyer Number (FFN).

This ensures that any benefits associated with the loyalty program are accurately reflected in the fare before proceeding with the booking. 

## How it works

Enter passenger details as usual on the OfferPrice screen and add the Frequent Flyer Number (FFN) for the passenger. Make sure to **add the FFN** code and then **click the Requote** button. **This functionality takes into account the membership details** and will include the benefits that the traveller is entitled to, such as extra baggage and preferred seat selection.

 ![Iberia_Requote.png](https://support.airgateway.com/kb/attachment/article/36/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY2Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.SN_jtZ8WIJ8HJMOwM8oBtCVJU1x8WORmcYQqO2i4u_E)


# Manage Pending Payments

This article explains how to manage additional charges - specifically for Seats, Services, Rebookings, or Upgrades - when immediate payment is not required or when a payment attempt fails.

## Leaving Changes On Hold

Certain providers allow changes to be added to a ticketed order without immediate payment. **This functionality is displayed as an On Hold (pending) payment method when adding these items.**

When changes are added using this method:

* The item will appear in the Pending Payments list, accessible via the button at the bottom of the order view.
 
 ![Pending-payment.png](https://support.airgateway.com/kb/attachment/article/49/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijk5Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.bZmWltgim5z4Za_roUgpovnjTD3__ckk0LBdeHspwsg)

* You can review the details of the pending item and initiate payment from this list.
 
 ![Pending-payment-items.png](https://support.airgateway.com/kb/attachment/article/49/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEwMCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.9uktuHCGxNALoKKRr0sYXHcaNOdM8HViCfvdfgefS_U)

* **Time Limit**: Each pending item has a time-to-live (TTL). If payment is not processed before the TTL expires, the item will be automatically removed from the list and must be re-added.
* **Simultaneous Payment**: You can add multiple items as On Hold, and they will accumulate in the Pending Payments list for simultaneous payment.

 :::Info
Due to system constraints, if Seats and Services are pending payment, the functions for Rebook and Upgrade are disabled. Conversely, if a Rebook or Upgrade charge is pending, the Seats and Services functions are disabled. 
 :::

### Handling Issuance Failure

If a payment attempt for an item fails during processing:

* The system will automatically place the item into the Pending Payments list.
* The Pending Payments button will appear at the bottom of the order, containing the details of the charge that could not be processed.
* You must access the Pending Payments list to review the payment issue and attempt payment again.

# Financial Settlement: BSP and ARC Reporting

This article clarifies the reporting process for NDC transactions to settlement systems such as BSP and ARC.

## Reporting Responsibility

The responsibility for reporting a ticket to BSP or ARC lies solely with the airline.

As an NDC aggregator, AirGateway does not have the ability or the authority to report transactions to these settlement bodies.

### General Reporting Standards

IATA-participating airlines typically report their NDC bookings to BSP or ARC regardless of the Form of Payment (FOP) used (e.g., BSP agency cash, card, easypay, or UATP), with specific carrier exceptions.

| Airline | Reporting Exception | Source |
| ------ | ------ | ------ |
| British Airways (BA) | Does not report CC transantions to BSP | [BA NDC FAQ](https://ndc.ba.com/faq/commercial/payments/Does%20British%20Airways%20accept%20IATA%20EasyPay){target="_blank"} |

 :::Info
We recommend that users who have not yet completed a training session on BookingPad schedule one to resolve questions regarding this and other core functions. You can send your request through the [Support Platform](https://support.airgateway.com/){target="_blank"}.
 :::


# Cancel Options - Void and Refund Capabilities

BookingPad offers two distinct actions for canceling a reservation: **Void** and **Refund**. The available options depend on the provider's policy and the time elapsed since the ticket was issued.

To initiate the cancellation process, click the **Cancel Options** button at the bottom of the order details page. A new window will open to display the fare rules and the potentially refundable amount.

 
 ![cancela-options.png](https://support.airgateway.com/kb/attachment/article/65/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIxNiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.f8ex1_PjnQ9rllY_fkJqJaPeLHeiasQbJX8pK80Xk2I)
 
 ![cancel-options.png](https://support.airgateway.com/kb/attachment/article/65/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE3MSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.XmxlWkBWXSzCLMm2rw_jHpVWofe3dhJ3UuCHGorvXQo)

### **Order Void**

Voiding a ticket is preferred when possible, as it typically reverses the transaction without penalty, provided the action is taken within the airline's specific voiding window.

* If the airline sends **VoidAllowed=true** only the **Order Void** button is displayed. Click Order Void to easily reverse the ticket.

![image.png](https://support.airgateway.com/kb/attachment/article/65/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEzNCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.PacM4svIhHhAl56pcrIopBD4raKeMN4EPvic7H6sZA4)

* If the airline sends **VoidAllowed=unknown** both **Cancel & Refund** and **Order Void** buttons are displayed, along with a warning message. The agent must check the airline's voiding policy directly. Attempting to click Order Void is possible, but its successful processing is not guaranteed.

Providers that currently send VoidAllowed=unknown are *BA, IB, and LA*.

![image.png](https://support.airgateway.com/kb/attachment/article/65/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEzNSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.g9OOQ_cviE3v3ypCLu1zVKCum3UJk5hCh_V926_8sEc)

### **Order Cancel**

If the voiding period has passed or is not permitted, you must proceed with a standard cancellation and refund.

1. Click the Cancel & Refund button.

2. Review the displayed fare rules and the calculated refund amount.

3. Confirm the action to proceed.

4. Once completed, a confirmation banner will display: *"Order has been successfully cancelled and refunded."*

![image.png](https://support.airgateway.com/kb/attachment/article/65/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEzNiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.p1vyl5BRx2AaSh7QHsD6UiCYMdsrYz0ART0rcJ8DiVY)

If the order is explicitly non-cancelable by the fare rules, the refunding process will proceed but will only process the refund for applicable returnable taxes.


# Order Rebook: Itinerary Changes

Use the **Order Rebook** feature to modify flight dates or routes for existing bookings. This process allows you to update an active PNR or Order without starting a new search from the beginning.

## How to modify an Order

1. Navigate to the bottom of the Order Page and click Order Rebook.
 
 ![order-rebook.png](https://support.airgateway.com/kb/attachment/article/71/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE3MiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.uAu5cygS6UYG8qMDOqCdn-NW1SGaoQtxmojQX-cEwkU)

2. Review the segments displayed in the itinerary:

* **Keep segment**: If a specific flight does not require changes, ensure this option is selected.

* **Change segment**: For any flight requiring a modification, select this option to enable editing.

![image.png](https://support.airgateway.com/kb/attachment/article/71/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE0MyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.Nb-ociYlqqmJFtLaWvQJatv4UZ5S5p6d7iBPbMzbXhk)

3. Update the necessary flight details:

* **Date Change**: Click the Calendar icon and select the new travel date.

![image.png](https://support.airgateway.com/kb/attachment/article/71/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE0NCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.FP5FtDI-JkkvWLL-LBEbrRgeEf2GjhbMyY6mUebG51I)

* **Airport Change**: Click the origin or destination and enter the new airport code. Be aware that not all airlines will support this feature.

![image.png](https://support.airgateway.com/kb/attachment/article/71/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE0NSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.QBpsCjczb_Y4YnN_dPLZVrQoNkkjyhknzlsU_i0EIbI)

4. Click Search to view available alternatives.

![image.png](https://support.airgateway.com/kb/attachment/article/71/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE0NiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.uT0NqV2k1CXxUS-bhra7J2V-IfehTErfHNs4Z_ymRqc)

![image.png](https://support.airgateway.com/kb/attachment/article/71/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE0NyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.NnwSaYEyCpEDvqaEVgMv6LVO27rmHWmA_IyEtk7EHJw)

5. Select the preferred offer and proceed to payment to finalize the change.

![image.png](https://support.airgateway.com/kb/attachment/article/71/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE0OCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.1fERcG52veCMq_6JUsu2P9VaRYVsILJ18psoVIjLlTo)

![image.png](https://support.airgateway.com/kb/attachment/article/71/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE0OSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.icrWAhqwTGuSWb5xkW4NtGYW4CsAWAv59NcTCFf54Fw)

### Modification Guidelines

The ability to change an itinerary depends on provider rules and the current status of the order.

* **Permitted Changes**: Most providers support date changes. Route changes (origin/destination) are supported by select carriers.
* **In-Sequence Rebooking**: If a new outbound flight departs after the original return flight, you must reschedule the return flight to a later date first.
* **Started Orders**: If any segment is already flown (Status: Started), the segment selector is disabled. You must contact the airline directly for these cases. 

# BookingPad Shopping: Understanding Providers responses

## Airline not returning results

When a provider does not return results following a search, an error notification is displayed in BookingPad. To understand the cause, view the detailed error message.

**Procedure:**

1. After a search, identify the provider that failed to return results.
2. Click the arrow icon next to the provider's name to view the detailed response.

### Understanding Provider Errors

Provider errors typically originate within the NDC environment of the airlines and are displayed in BookingPad, often within a red banner.

 :::Info
These errors are outside of BookingPad's control as they are generated by the external airline system. BookingPad only displays the response received.
 :::
 
 ![provider_error.png](https://support.airgateway.com/kb/attachment/article/40/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjcyIiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.EYtPQ9oY19q3lZhWTzX4bkc4WURDKv5PLdH1XHx-13A)

In the event of an NDC provider error, the recommended resolution methods are to use an alternative platform or contact the airline directly:

* **Use an Alternative Platform:** Access the action via the airline's own portal or the SPRK platform.
* **Contact Airline Support:** Reach out to the specific airline's support channel for assistance.

| Platform /Portal | Applicable Airlines | Action |
| ------ | ------ | ------ |
| SPRK | LHG, EK, US, CM (Farelogix airlines)| Used for actions not supported in BookingPad |
| IAG Portal | BA, IB | Used for actions not supported in BookingPad |
 
 :::Warning
Important Login Requirement:
The agency must log in to the SPRK or Airline Portal using the credentials valid for the PCC/IATA currently utilized with AirGateway.
Mandatory Note: If you log in with a different PCC/Agency ID, you will not be able to locate and manage orders that were created within BookingPad.
 :::

For information on the SPRK password reset process, refer to [this manual](https://drive.google.com/file/d/1nvUbXfyYNKXiDtBqtgenkHlu9JCtbRQe/view){target="_blank"}.

For more information on general airline portals and NDC servicing options, please check the [dedicated article.](https://support.airgateway.com/kb/article/69/airgateway-support-scope-and-limitations){target="_blank"}

For details on the scope of support BookingPad can provide, review the [support page](https://help.bookingpad.com/en/article/airgateway-support-terms-l7agrz/){target="_blank"}.

# Booking Workflows

This is the basic workflow you need to run to buy tickets from any airline.

***
### Regular Booking

![basicbooking.png] 
 ![RegularBooking.png](https://support.airgateway.com/kb/attachment/article/12/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjM4Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.aov9xmNTTHdUP0mGXs8aUyj6wagqn4k0VzSnGxGTlXo)


It is necessary to make a previous method before the verb that provides us to issue the tickets (AirDocIssue). This method is the OrderReshopReprice, it is used to get the reprice quote since the original price can change.

The flow is as follow:

1. AirShopping
2. OfferPrice
3. PaymentInfo
4. OrderCreate (without Form of Payment)
5. OrderReshopReprice (if needed)
6. AirDocIssue


***

### Booking Workflow with Autoticketing

![basicbookinginstant.png] 
 ![BookingWorkflowwithAutoticketing.png](https://support.airgateway.com/kb/attachment/article/12/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjQwIiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.0rI7sUH6MoqnMHvhfEdt1H_YOM-mSknhifQizTeweMc)

1. AirShopping
2. OfferPrice
3. PaymentInfo
4. OrderCreate (with Form of Payment)

***

### Booking with Seats or Services

![prebookingseatsservices.png] 
 ![BookingwithSeatsorServices.png](https://support.airgateway.com/kb/attachment/article/12/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjQxIiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.qW7gnghmf_YKxDSZrKqWO3uac4qJv8ZWjVto00abMDk)

1. AirShopping
2. OfferPrice
3. SeatAvailability
4. PaymentInfo
5. OrderCreate (with Form of Payment)

***

### Passenger information

A very important information to invoke the OrderCreate is the required infomation for each passenger, here you can find a explanation with examples regarding this topic.

# Mandatory 2FA Setup (Account Activation)

To maintain a highly secure environment for your account and sensitive agency data, BookingPad requires Two-Factor Authentication (2FA) for all agents accessing the platform via an email and password combination. This security measure mandates a time-sensitive verification code, making unauthorized access virtually not possible.

 :::Info
Agent accounts registered and logging in via Google Single Sign-On are exempt from this internal 2FA requirement, as Google manages that security layer.
 :::

## How does it work?

The system enforces 2FA setup during the agent's initial access (Account Activation). Upon initial login/account activation, the Two Factor Authentication setup page displays.

* **On your mobile device, download a compatible authenticator application, such as Google Authenticator or Microsoft Authenticator.**
 
![googleAuthenticator.png](https://support.airgateway.com/kb/attachment/article/66/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIyOSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.R0-hJLO3AADfMdDkxEVgYWhlbL9HYyEVzzX9jPitfx4)

* In the authenticator app, select the option to **Scan QR Code**.
* Scan the QR Code available in BookingPad after clicking the link from the email to setup the password.
* Enter the one-time code provided by the application and click Submit to finish the setup.

 :::Info
Alternative: If scanning is not possible, you can manually enter the provided code into the app.
 :::

You may add a descriptive Name to the device to easily identify the account.

**Once setup completes, subsequent logins will prompt you to enter the code generated by your authenticator app.**

To remove the Authentication App, click on your email on BookingPad to display a panel, select Account Settings and scroll down to the bottom of the page to find the option to remove it:

![AccountSettings-BP.png](https://support.airgateway.com/kb/attachment/article/66/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIyOCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.S_eKqPeQNvzsoUPEfEqjjPS9n-6I0MSwwJlVqSNG5_0)
 
![Remove-2fa.png](https://support.airgateway.com/kb/attachment/article/66/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEzNyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.yROjQEc_LsaEwLxIp2RTo8r_qKJ49RXrJ_E313ihoTA)

### Reactivate an Agent's Account

When an Agent already registered in BookingPad has not 2FA set up, the account remains inactive. To reactivate the account, please follow these steps:

* Set up the 2FA on the Signing in tab available [here](https://auth.airgateway.com/){target="_blank"}.
 
 ![auth-agw.png](https://support.airgateway.com/kb/attachment/article/66/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMyOCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.-vbVeEbbma28wgHrNE66FVlHa6w4lp3DGkIER7orccE)
* Ask your Manager to click the button below to reactivate the account in BookingPad (any agent with role 'Manager' can do it).
 
 ![reactivate-account.png](https://support.airgateway.com/kb/attachment/article/66/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMyOSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.gBV_fLGASM6TSRAcPFTAgPKXD41pgy5JJHaSHA2CKII)


# Order Warnings

When a provider sends a warning related to an order, this notification is displayed prominently at the top of the Order view.

It is essential to read these warnings to ensure the order is processed correctly and to prevent any potential issuance error or service disruption.

Once the warning has been reviewed and addressed, you can click the Hide button to minimize the space it occupies on the screen.
 
 ![warning-message.png](https://support.airgateway.com/kb/attachment/article/51/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI0NSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.-SqYExFXtnLvSOJ6dF5gKE08vS2vldloNdzl4R_5FRk)



# Postman examples

[Here you can find some postman examples in a single collection](https://github.com/AirGateway/postman-json-api){target="_blank"} with multiples cases and workflows.

***

### Clone the repo

Please, clone this repository with the collection and two environments: BA and IB. Import files and then edit the collection to modify the variable called AG-Authorization with the airgateway`s api-key.
![image.png](https://support.airgateway.com/kb/attachment/article/17/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE1Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.0_tz8o45yyKEDgOfosQ2kJmE8fYyWmWYDVUXIqjUP6c)

![image.png](https://support.airgateway.com/kb/attachment/article/17/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE2Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.8bbGs8THGCrv2ChGz445mthxAsIWXLUJKKDUaFl4QQE)

### Fork the repo

A different way to do this is to fork the repository in any of your organizations and then import in postman using the Code repository option.
![image.png](https://support.airgateway.com/kb/attachment/article/17/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE3Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.Bhm9BZKaSzMpur8tPAPFCKsbx3JguRRtNAvP9IEFNOg)

***

### Collection structure

There are many folders in the collection, each of them with a complete and concrete flow for the different scenarios, the caption for each case is simple:

* ADI: AirDocIssue
* AS: AirShopping
* OP: OfferPrice
* OC: OrderCreate
* OR: OrderRetrieve
* OCancel: OrderCancel
* OReshop: The OrderReshop flow to change the date
* SA: SeatAvailability
* SL: ServiceList

So if a folder is called AS-OP-SL-OC-OCancel is because it runs through all those methods. There are some hidden methods, because they are implicit in the transaction flow, these cases are:

* AirDocIssue: in the ticket issuing flow, before the ADI we have to invoke the OrderReshopReprice in order to check if the price has changed.
* OrderCancel: in order to do the OrderCancel it is mandatory in the most of the airlines call a previous OrderReshopRefund to know the amount to be refunded.
* OrderReshop: in the flow to change the date of a flight there are 3 methods involved: OrderReshop, OrderReshopReprice and OrderChange.
* SeatAvailability and ServiceList post order: in the post order scenario after the SA or the SL we need to call to an OrderChange to add the services in the order.

***
### Collection content

The current list of folders we have in this collection is this:

* AS-OP-OC-OCancel
* AS-OP-OC-ADI-OCancel
* AS-OP-SA-OC-OCancel
* AS-OP-SL-OC-OCancel
* AS-OP-OC-SA-OCancel
* AS-OP-OC-SL-OCancel
* AS-OP-OC-OReshop-OCancel

The SA and the SL can be pre and post order. It is determined by the position relative to the OC method, for example SA-OC would be a SeatAvailability in pre order scenario, while OC-SL would be a ServiceList post order.

# Frequent Flyer Number (FFN)

This article details the process for adding a passenger's Frequent Flyer Number (FFN) during order creation and post-booking.

## Adding FFN During Order Creation

The FFN can be inserted during the initial booking process in the Passenger Details step.

**Procedure:**

1. During the order creation flow, navigate to the second step: PAX (Passenger details).
2. Locate the FFN option below the passenger's personal details.
 
 ![ffn-details.png](https://support.airgateway.com/kb/attachment/article/41/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIwNCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.5TaDQg9HFXl0G80s3sZT6S2qoGDocTGox_3F-QCc-H4)

3. Open the dropdown 'Select Airline Designator' and choose the relevant airline; then, enter the passenger's FFN into the 'Frequent Flyer Number' field.
 
 ![FFN-Airline-designator.png](https://support.airgateway.com/kb/attachment/article/41/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIwNSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.EAG05H9tuklh4zF1zpwo_HLm_05fwHMX6UTi9JGdVms)

### Adding FFN Post-Booking

If the FFN was not included during the initial order creation, it may be added later using the post-booking modification tool.

 :::Info
Note on Provider Support: This post-booking modification option may not be supported by many providers. If the 'Change Passenger Data' button does not allow FFN modification, you must contact the airline directly to update the frequent flyer information.
 :::

**Procedure:**

1. Access the booked order.
2. Use the 'Change Passenger Data' button.
3. Follow the same steps as detailed above to select the airline and insert the FFN.


# Applying different filters to shopping requests (AirShopping)

# API Documentation: AirShopping & OrderRetrieve Headers

### AirShopping Endpoint HTTP Headers

| Header | Type | Description |
| :--- | :--- | :--- |
| **AG-Providers** | String | **Required.** Specifies which providers to query. Use `"*"` to request offers from all available providers, or use specific IATA codes (e.g., `BA`, `IB`, `AA`, `LH`) separated by commas. |
| **AG-Request-Timeout** | Integer | **Required.** Defines the maximum time (in seconds) the gateway waits for airline responses. If set to `5`, any offers received within 5 seconds are returned; responses arriving after this limit are discarded. |
| **AG-Connection** | String | Use `keep-alive` to enable **data streaming**. This allows the gateway to return results as they are received from individual airlines, rather than waiting for all providers to respond. For **non-streaming** mode, the header should be omitted or sent with any other value different than `keep-alive` . |
| **AG-Max-Stops** | Integer | **(WIP)** Set to `0` for non-stop or `1` for up to 1 stop. This limits the number of connections (not technical stops) that provided offers might have. For no limit on stops, the header should be omitted. |
| **AG-Max-Offers-Per-Cabin** | Integer | Limits the number of offers returned per cabin type for each provider. |
| **AG-Avoid-Disclosures** | Boolean | Set to `true` or `1` to exclude disclosure information from the response, resulting in a lighter payload. |

#### AG-Request-Timeout Error
When an airline fails to respond within the specified timeout, the following error is returned for that specific provider:
```json
{
  "code": "AGW_provider_time_out",
  "detail": "provider response timeout",
  "group": "provider_error",
  "offerExpiration": "XXXXXXXX",
  "provider": "XX"
} 
```

#### AG-Search-Mode
Use this header to filter or refine your results. **Note:** Including this header will overwrite your application's default search configuration.
* **`cheapest_flights`**: Returns only the single cheapest flight from each airline's response.
* **`cheapest_flights_per_cabin`**: Returns the cheapest flight for each available cabin type.
* **`combine_same_fares_only`**: (Supported by specific airlines like EK and LH). Combines legs only if they share the same fare family (e.g., Economy Basic Plus with Economy Basic Plus).
* **`cheapest_fare_with_baggage_only`**: Filters results to show only the lowest-priced offer that includes a baggage allowance.
* **Default behavior**: If omitted, the system combines all possible offers, which may result in a high volume of results for certain routes.

---

# Settings: Change Display Currency

To see fares in your desired currency, use the following steps:

1. Locate the settings icon next to your user in the platform interface and click on it to open the Settings menu.

![arrow-BP-settings.png](https://support.airgateway.com/kb/attachment/article/68/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMyNCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.iNHHl49GpFCGFDMXnoBZ5P9eXla_6Da4D3WjSciHOaQ)

2. On the Settings page, locate the Currency dropdown menu.
3. Select the desired currency from the list.
4. Click Save to apply the change.
 
 ![Currency-settings.png](https://support.airgateway.com/kb/attachment/article/68/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE0MiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.FSJ99HXfLm-Cb07CAAgh9wpXAqD09IAfXA7qaOQcybk)

# Mixed Cabin Search

The Mixed Cabin Search feature in BookingPad allows travel agencies to select different cabin classes for each bound of a round-trip journey. For example, agents can request Business class for the outbound travel and Economy class for the inbound return within a single shopping request.


## How to Search for Mixed Cabins

To run a search with mixed cabins, follow these steps:
* Open the main search page in BookingPad. Select the round trip option and choose mixed cabin from the cabin selection menu.
 
![round-trip-selector.png](https://support.airgateway.com/kb/attachment/article/91/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI5MiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.k9gVbpOXofh4bNyCujeq7vbHrXDQazw0EQFod8k-hcA)

![mixed-cabin-selector.png](https://support.airgateway.com/kb/attachment/article/91/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI5NyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.S7PAfgtpE_ddVoZafKHmbSonsiO-qmwrENTUJ7x4aGQ)

* Use the individual cabin selectors that appear next to each bound date to choose the preferred cabin for each specific bound.
 
![mixed-cabin-bounds.png](https://support.airgateway.com/kb/attachment/article/91/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI5NCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.ktWbIMgRZ2dhTzdRfQp_GZk8mJa3IaC48-MDTvHZBTo)

![select-cabin.png](https://support.airgateway.com/kb/attachment/article/91/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI5NSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.vahrBAeQDyWMljC4wdCMnopLelC8AfZvCqmZDGg11EQ)

* Click the Search button to view matching combined itinerary offers.

![Business-economy.png](https://support.airgateway.com/kb/attachment/article/91/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI5NiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.y7snkf_1tE5HY5ndow04KWNF_2CPhSPw6NPmL5aGQcs)

### Airline Support and Exceptions

Different airline providers handle bound-specific cabin preferences based on their technical capabilities. The table below outlines how these preferences are managed across various carriers:

| Airline / Provider | Mixed Cabin Search | How It Works for This Airline |
| ------ | ------ | ------ |
| AFKL | Available | Preferences are applied directly to each bound. Both bounds must have a specified selection; if you leave the first bound empty, BookingPad automatically sets it to Economy to ensure your search goes through |
| BA, CM, AY, LO, 4Z | Available | Fully supports different cabins for each bound and returns available results matching your choices |
| QF, A3, SQ, TP, UX, DE | Available | It returns mixed cabin results and upsells |
| EY | Available | Set a cabin preference for both bounds to ensure the search is processed correctly |
| LA | Available | Supports mixed cabin choices. If you choose Economy for one bound and leave the other unassigned, the search defaults to Economy for the full trip |
| 1G | Available | Standard support is available for traditional GDS flight searches | 
| TK | Not Available | This airline does not look at separate cabin selections per bound. The system will search for Economy for the entire trip unless you select Business for all bounds |
| IB, LHG, EK, AA, BT, UA | Not Available | These airlines do not accept different cabin requests. To avoid pricing errors or booking issues, BookingPad automatically removes the specific selections before sending the request to the airline |






# Export Order Details to GDS

This feature allows you to generate and copy flight and passenger information from a BookingPad order into your GDS terminal. This functionality is supported for Amadeus, Sabre, and Travelport.

## Export Procedure

1. **Open the order** and navigate to the menu on the right side.

![hamburger-icon.png](https://support.airgateway.com/kb/attachment/article/55/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI0NiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.48L8aUpZNuuXdZ-LLbssZNLM9LaKw4nydsN9g9y4yaQ)

2. **Select Exports** from the menu options.
3. **Click the GDS button** and select your desired GDS provider from the three available options. A new window will display the GDS input details.

![ExportGDS.png](https://support.airgateway.com/kb/attachment/article/55/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExOSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.h6PkhWQ_fBLbE3m48S9FYv3JoifraHZ8Tpjl4fMOE5s)

### Amadeus and Sabre Mode Options

For Amadeus and Sabre, you can select between two modes before copying the details:

* **Original mode**: Includes all standard airline and system provider details.
* **Anonymized mode**: Replaces actual provider codes with the generic value YY.
 
![GDS-MODE-OPTIONS.png](https://support.airgateway.com/kb/attachment/article/55/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyMCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.GiG7gBqs-AgXMt62OGHqsIhWjKD9XDJdzqT9QLwvymU)

Select the desired mode (Original mode or Anonymized mode) where applicable.

Click the Copy button next to the selected option, then paste the copied information directly into your GDS command line.

 :::Info
A Plain text export option is also available for simple, essential details of the booking.
 :::





# Downstream Reference Guide: Supported Versions and Transaction File Types

To maintain operational efficiency and financial accuracy, **AirGateway provides automated synchronization between Bookingpad and your agency’s mid/backoffice system**. This guide serves as a technical reference for the specific interface record versions and transaction types supported via our automated SFTP delivery.

## Supported Versions and File Types

We currently support the following specifications:

| Format | Version | Type | Book on-hold | Issue | Refund | EMDs | Void | Reissue |
| ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ |
| AIR | 207 | File/SFTP | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| AIR | 205 | File/SFTP | ✅ | ✅ | ❌ | ✅| ❌ | ❌ |
| MIR | - | File/SFTP | ✅  | ✅  | ❌ | ❌ | ✅ | ❌ |
| IUR |- | File/SFTP | - | - | - | - | - | - |
| Midoco | - | API/Push | - | ✅  | - | - | ✅ | - |











# PDF Monkey - Customized Itinerary PDF

While we do not offer Itinerary customization, you can manage your own custom templates by setting up a personal instance of [PDF Monkey](https://pdfmonkey.io/){target="_blank"}.

Once you've subscribed to PDF Monkey, simply provide us the API token of your instance and the template ID. We will connect it to your Consumer and, from there, you can test your custom template and start using it for your own "Itinerary PDF". 

It will work outside of the box and you will be able to tweak the templates in your own PDF Monkey instance as you wish.

A few things to keep in mind: 

- Make sure to create a template that includes the logic for creating PDFs for All passenger and by each passenger, so it can work out of the box with the setup we have in BookingPad
- It is important for you to familiarize yourself with our OrderRetrieve response, as only the data available there will be possible to include in the PDF Generation
- If you include a parameter that is not supported in our OrderRetrieveRS, it will not be included on the PDF
- As PDF Monkey fall outside our product, we are not able to provide direct support for it.

We are able to add your agency logo and color to your template. If you require further customization, you'll need to send us the new template done with [Liquid](https://shopify.github.io/liquid/){target="_blank"} so we can add it to your agency.

It's possible to customize both, PDF and email templates.

### Fields that can be used in templates for customization



* subject -> Subject of the mail

***

* agencyLogo -> agency's logo url served from our systems
* providerLogo -> provider's logo url served from our systems
* pnr -> order PNR
* status -> booking status
 
***

* passengers -> list of passengers with many information inside which can be looped in template
* passenger.data.title -> title of the passenger (Mr, Mrs...)
* passenger.data.name -> name of the passenger
* passenger.data.surname -> surname of the passenger
* passenger.data.birthdate -> passenger birthdate (if set)
* passenger.data.email -> passenger email (if set)
* passenger.data.phone -> passenger phone (if set)
* passenger.travelerReference -> passenger traveler reference from the airline
* passenger.document.documentType -> main document associated to the passenger type (passport, visa...)
* passenger.document.documentID -> main document associated to the passenger number
* passenger.documents -> list of documents associated to the passenger which can be looped in template

***

* document.documentType -> document type (passport, visa...)
* document.documentID -> document number

***

* agencyData -> information related to the agency with many fields inside
* agencyData.agency -> agency name
* agencyData.email -> agency email
* agentEmail -> email of agent responsible for the booking

***

* price.consumer.total -> total price paid by consumer
* price.consumer.currency -> consumer currency

***

* marketingProviderData -> holds details about airline in charge of the order
* marketingProviderData.name -> airline name
* marketingProviderData.id -> IATA code of airline

***

* flights -> list of flights which can be looped in template
* flight.segments -> list of segments inside a flight which can be looped in template
* flight.departure.date -> date of departure for that flight
* flight.departure.airportCode -> flight departure airport code
* flight.arrival.airportCode -> flight arrival airport code
* flight.arrival.airportName -> airport name property
* flight.departure.airportName -> airport name property
* flight.baggageAllowance.carryOn -> list of carry on baggages allowed for current
* bookingflight.baggageAllowance.options[0].quantity -> allowed number of carry on baggages for a given traveler
* flight.baggageAllowance.passengerRefs -> reference to the passenger associated to that carry on baggage
* flight.baggageAllowance.checked -> same as carry on but for carry on baggage

***

* flight.key -> reference key of that flight
* segment.originDestination.departure.airportCode -> airport code for that segment origin
* segment.originDestination.arrival.airportCode -> airport code for that segment arrival
* segment.originDestination.departure.city
* segment.originDestination.departure.airportName
* segment.operatingCarrier.airlineID -> airline IATA code for the operating carrier of that segment
* segment.equipment.aircraftCode -> aircraft code for that segment (it can be a plane number, train, bus...)
* segment.originDestination.departure.date -> segment departure date
* segment.originDestination.departure.time -> segment departure time
* segment.originDestination.arrival.date -> segment arrival date
* segment.originDestination.arrival.time -> segment arrival time
* segment.detail.duration -> duration of that segment
* segment.originDestination.arrival.terminalName -> name of the terminal in the arrival
* segment.detail.classOfService.code -> class of service code for that segment
* segment.detail.classOfService.cabinDesignator -> class of service cabin designator for that
* segment.disclosures -> list of disclosures which can be looped in template

* seats -> list of seats for passengers
* seat.segment -> reference to segment ID
* seat.passengerRefs -> passenger assigned to seat
* seat.location.row
* seat.location.column

***

* services -> list of services
* service.name
* service.segmentReferences
* service.travelerReferences
* service.isSSR -> a boolean which indicates if the service is an SSR

***

* passenger.data.fqtvInfo.number.account
* passenger.data.fqtvInfo.airlineID

***

* disclosures.descriptions -> list of descriptions in each disclosure
* disclosures.descriptions.originDestinationReference -> origin destination reference (flight keys)
* disclosures.descriptions[].category -> category of the disclosure (cancellation, change...)
* disclosures.descriptions[].text -> text of the disclosure
* disclosuresPerCategories -> map of disclosures based on categories
* disclosuresPerCategories.category_name.[].descriptions -> list of descriptions in each disclosure
* disclosuresPerCategories.category_name.[].descriptions.[].text -> text of the disclosure
* disclosuresPerCategories.category_name.[].descriptions.[].category -> category of the disclosure
* disclosuresPerCategories.category_name.[].descriptions.[].originDestinationReference -> reference of the disclosure
* disclosuresPerCategories.category_name.[].descriptions.[].units -> unit of the disclosure

***

* comments -> order-level message
* agencyData.alert -> agency-level message

Most airlines return disclosures for these categories:
**BAGGAGE_CARRYON
BAGGAGE_CHECKED
EXCHANGE
MILES
SEAT
SERVICE
UNKNOWN** (here we add all those we don't know how to include in any of the rest)

For instance, if you want to show all checked baggage disclosures, you could use:


![PDF-template.png](https://support.airgateway.com/kb/attachment/article/85/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI4MSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.KlfBrnjMGzM9zj46ZWaE2AaCEnmurMd4Y-MOvEQlHwc)

You can see an example in the attached article with our default template.

[PDF Liquid template](https://support.airgateway.com/en-US/kb/article/90/pdf-liquid-template){target="_blank"}

# Airline Notifications (Order Change Notifications)

Airline Notifications can be associated to a number of types/categories as described below:

* `FlightNumberChange`
* `FlightTimeChange`
* `FlightCancelation`
* `PermanentWithfrawan`
* `LaborDisrupt`
* `Strike`
* `Weather`
* `NaturalDisaster`
* `FlightBookingCancelledOutsideSchedule`
* `SeatChange`
* `Bereavement`
* `NoReasonGiven`
* `Illness`
* `Voluntary`
* `NeedDocumentation`
* `UnacceptableReacomodation`
* `PaymentTimeLimitExpired`
* `PassengerNoShowNotification`
* `ChangeByPassengerNotification`
* `UnknownNotification`

These categories are aligned with the NDC Standard and  will prevail as the basis of Airline Notifications for ALL providers providing such mechanism.




# Special Discounts: Applying Spanish Resident and Large Family Reductions

BookingPad facilitates the application of Special discounts for passengers entitled to Spanish government subsidies based on residency or large family status. 

These discounts currently apply to flights offered by Iberia and Vueling.

## Procedure for Applying Special Discounts

To apply a discount during the flight search process:

1. Click on the Special discounts option and Choose the applicable discount type:
    * Resident discount - Specify the resident location (e.g., Balearic Islands, Canary Islands).
    * Large Family discount - Specify the amount of children (General or Special category).

 ![Special_Discounts.png](https://support.airgateway.com/kb/attachment/article/37/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.7cE7nng87KQrvi1ArlMWwZYSFXDvfhU0weoXQolZxEM)

2. Proceed with the flight search and select the required flight offer. To access the details related to the discount, click on the information icon available next to the price:
 
 ![residents-discount.png](https://support.airgateway.com/kb/attachment/article/37/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIxNCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.IPZ9fyg3gXM2SgLI1glDoAFxb9NtFqXdT1UqQBHbJ2Y)

### Mandatory Passenger Data for Issuance

When entering passenger (PAX) details, specific information is essential for the discount to be validated and for Issue ticket to be successful. These details are required by the operating airline (e.g., IB/VY) and are submitted for validation via the Spanish government's Automatic Residency Accreditation System (SARA).

1. Navigate to the PAX details section (located under the identity document field).
2. You must enter the following mandatory details:
    * Identity document number
    * Code location (This is a core requirement enforced by the airline for validation.)

 ![Resident-discount-details.png](https://support.airgateway.com/kb/attachment/article/37/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIxNSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.Tq_Np-lIYlm6sOOx93r6QbAU4K3mCw2INFS8rkOXGMA)

3. Continue to the next step to complete the booking and proceed to Issue ticket (requires payment) or Book on Hold (no payment). 

# Special Fares per Airline

Access negotiated fares via BookingPad by using the 'Preset' tool. A full guide on how to configure these fares is [available here](https://support.airgateway.com/kb/article/64/presets-bookingpad-tool-for-negotiated-fares){target="_blank"}. Please check below for information about what requirements are necessary for each airline (contract, account ID,...)

 :::Warning
Information related to the agreement between the agency and the airline (such as contract id) is not provided by AirGateway. Please contact your airline Account Manager to obtain this information.
 :::

For Marine fares which may require additional information, please visit [this page](https://support.airgateway.com/en-US/kb/article/63/access-marine-fares-in-bookingpad){target="_blank"}.

### Iberia

| Type/Name | PTCs | Shop Preference | Qualifier | Output |
| ------ | ------ | ------ | ------ | ------ |
| Tour Operator Deferred | ADT, CHD, INF | 758 Tour Operator Deferred | N/A | Priv (758) |
| Tour Operator Semi-Deferred | ADT, CHD, INF | 758 Tour Operator Semi-Deferred | N/A | Priv (758) |
| Visit Friends and Family | ADT, CHD, INF | 758 | N/A | Priv (758)
| Disney | ADT, CHD, INF | 758 | N/A | Priv (758) |
| Sport | ADT, CHD, INF | 758 | N/A | Priv (758) |
| Humanitarian | ADT, CHD, INF | 758 | N/A | Priv (758) |
| Entertainment | ADT, CHD, INF | 758 | N/A | Priv (758) |
| Hola Madrid | ADT, CHD, INF | 758 | HM (DefinitionCode) | Priv (758) | 

 :::Info
IB automatically activates all special fares when it activates NDC content by default. 
 :::
**Additional information:**
* If you are unable to find the special fares in your IAG portal, and therefore also in BookingPad, **please contact IB directly** at this email address: [IBNDC.Support@iberia.es](IBNDC.Support@iberia.es)

### British Airways

| Type/Name | PTCs | Shop Preference | Qualifier | Output |
| ------ | ------ | ------ | ------ | ------ |
| Tour Operator Deferred | IIT, CHD, INF | 758 Tour Operator Deferred | N/A | Priv (758) |
| Tailor Mader Fares | TIM, CHD, INF | 758 Tour Operator Deferred | N/A | Priv (758) |
| Private Fares | PFA, CHD, INF | 758 Private Fare | N/A | Priv (758) |
| TMC NETT fares | ADT, CHD, INF | 758 BA TMC NET Fares | N/A | Priv (758) |

### Lufthansa

| Type/Name | PTCs | Shop Preference | Qualifier | Output |
| ------ | ------ | ------ | ------ | ------ |
| Tour Operator | ADT, CHD, INF | N/A | Contract ID (e.g. 123456) | N/A |
| Student Fares | STU, CHD, INF | N/A | Contract ID (e.g. 123456) | N/A |
| JCB Fares | JCB, CHD, INF | N/A | Contract ID (e.g. 123456) | N/A |
| PEP Fares | ADT, CHD, INF | N/A | Contract ID (e.g. 123456) | NEGO/PP20 |
| EXPAT Fares | EMI, CHD, INF | N/A | Contract ID (e.g. EXPAT) | ET2 |
| EXPAT1 Fares | EMI, CHD, INF | N/A | Contract ID (e.g. EXPAT1) | ET1 |

##### ITA (provider: LHG)

 :::Info
For Flights to and from the United States and Japan, ITA (airline included in the provider LHG) requires to access this content via a Preset. 
 :::

| Type/Name | PTCs | Shop Preference | Qualifier | Output |
| ------ | ------ | ------ | ------ | ------ |
| Published (US, Japan) | ADT, CHD, INF | N/A | Add new preference with code: AZ and definition: AirlinePreference | N/A |

### Air France/KLM

| Type/Name | PTCs | Shop Preference | Qualifier | Output |
| ------ | ------ | ------ | ------ | ------ |
| Tour Operator | ADT or IIT, CHD or INN, INF or ITF | 758 Tour Operator Deferred | Account ID (e.g. 123456) | Priv (758) |
| Tour Operator | ADT or IIT, CHD or INN, INF or ITF | 758 Tour Operator Deferred | Account ID (e.g. TOU01/TOU02) | Priv /TO01NA/TO02NA |
| Tour Operator | ADT or IIT, CHD or INN, INF or ITF | 758 Tour Operator Deferred | N/A | Priv (758) |
| Ethnic Fares/VFR | ADT, CHD, INF | Add new Preference with code: 758 and title: VF | N/A | Priv (758) |
| Disney Fares/TD | ADT, CHD, INF | Select Preference: Disney | Account ID (e.g. 123456) | Priv (758) |
| Trade Fares | ADT, CHD, INF | Select Preference: Trade Fares | Account ID (e.g. 123456) | Priv (758) |
| Net/Consolidator Fares | ADT, CHD, INF | AFKL NET fares | N/A | Priv (758) |
 
 :::Warning
Private fares for Multi-city bookings are currently not supported by AFKL.
 :::

### Air Europa

| Type/Name | PTCs | Shop Preference | Qualifier | Output |
| ------ | ------ | ------ | ------ | ------ |
| Tour Operator | ADT, CHD, INF | 758 Tour Operator Deferred | Account ID (e.g. 123456) | Corp. (70G) |
| VFR Fares | ADT, YAD, CHD, INF | 758 Visit Friends and Family | Account ID (e.g. 123456) | Corp. (70G) |


### Singapore Airlines

| Type/Name | PTCs | Shop Preference | Qualifier | Output |
| ------ | ------ | ------ | ------ | ------ |
| Tour Operator | ADT, CHD, INF | 758 Tour Operator Deferred | Account ID (e.g. 123456) | Corp. (70G) |
| JCB Fares | JCB, CHD, INF | 758 | Account ID (e.g. 123456) | Corp. (70G) |
| VFR Fares | ADT, CHD, INF | 758 | Account ID (e.g. 123456) | Corp. (70G) |
| Student Fares | STU | 758 | Account ID (e.g. 123456) | Corp. (70G) |

### Emirates

| Type/Name | PTCs | Shop Preference | Qualifier | Output |
| ------ | ------ | ------ | ------ | ------ |
| Tour Operator | ADT/ITX, CHD, INF | N/A | Contract ID (e.g. VFN2/ITN2/NETITNXX) | ITN2 |
| Tailor Made Fares | ADT, CHD, INF | N/A | Contract ID | N/A |
| IGHS Fares | ADT, CHD, INF | N/A | Contract ID (e.g. IHI3) | IHI2 |
| Ethnic Fares/VFR | ADT, CHD, INF | N/A | Contract ID (e.g. VFR2/NETVFNXX) | VFN2 |
| Ethnic Fares/VFR | ADT, CHD/CNN, YAD/GBE, INF | N/A | Contract ID (e.g. VFA2) | VFA2 |
| Cruise Fares | JCB, CHD, INF | N/A | Contract ID (e.g. ASE2) | ASE2 |

### TAP Air Portugal

| Type/Name | PTCs | Shop Preference | Qualifier | Output |
| ------ | ------ | ------ | ------ | ------ |
| Tour Operator | ADT, CHD, INF | N/A | Account ID (e.g. NDCXXXX) | 70G |
| VFR Fares | ADT, CHD, INF | N/A | Account ID (e.g. NDCXXXX) | 70G |

### Copa Airlines

| Type/Name | PTCs | Shop Preference | Qualifier | Output |
| ------ | ------ | ------ | ------ | ------ |
| Negotiated Fares | PFA, CHD, INF | N/A | Contract ID (e.g. WTEST) | N/A |

### LATAM Airlines 

| Type/Name | PTCs | Shop Preference | Qualifier | Output |
| ------ | ------ | ------ | ------ | ------ |
| Tour Operator | ADT, CHD, INF | 758 Tour Operator Deferred | Account ID (e.g. C000987/TTOOABCD/AB1234) | Priv (758) |
| Private Fares | ADT, CHD, INF | 758 Tour Operator Deferred | Account ID (e.g. C000987/CHTG/AB1234) | Priv (758) |
| VFR Fares | ADT, CHD, INF | 758 | Account ID (e.g. C000987/CHTG/AB1234) | Priv (758) |
| Private Fares | ADT, CHD, INF | 758 | Account ID (e.g. PYMES) | Priv (758) |

### LOT Polish Airlines 

| Type/Name | PTCs | Shop Preference | Qualifier | Output |
| ------ | ------ | ------ | ------ | ------ |
| Negotiated Fares | ADT, CHD, INF | N/A | Promo Code (e.g. BWXX) | N/A |
| TMC Fares | ADT, CHD, INF | N/A | Account ID (e.g. TMCXX) | N/A |

### Turkish Airlines

| Type/Name | PTCs | Shop Preference | Qualifier | Output |
| ------ | ------ | ------ | ------ | ------ |
| Negotiated Fares | ADT, CHD, INF | N/A | Account Code (eg. XXXXXX) | Nego (749) |
| Tour Operator Fares | IT, INN, INF/ITF | N/A | Account Code (eg. XXXXX) | Nego (749) |
| Corporate Fares | ADT, CHD, INF | N/A | Account Code (eg. XXXXXX) | Corp (70F) |
| VFR Fares | VFR, VFN, VFF | N/A | Account Code (eg. XXXXXX) | Priv (758) |
| ITX Fares | IT | N/A | Account Code (eg. XXXXXX) | Priv (758) |

### Etihad Airways

| Type/Name | PTCs | Shop Preference | Qualifier | Output |
| ------ | ------ | ------ | ------ | ------ |
| Tour Operator | ADT, CHD, INF | No Preferences | Account ID (e.g. NDCTO01/02) | 70G |
| Private Fares | ADT, CHD, INF | No Preferences | Account ID (e.g. NDCTO01) | 70G |
| VFR Fares | ADT, CHD, INF | No Preferences | Account ID (e.g. NDCVFR01/02) | 70G |

Refer to [this page](https://support.airgateway.com/en-US/kb/article/64/presets-bookingpad-tool-for-negotiated-fares){target="_blank"} or instructions on how special fares are loaded in BookingPad using the Presets tool.

If you are not able to load the specials fare **previously validated by the airline**, you can open a ticket with us through our [Support Channel](https://support.airgateway.com/). 

# Secure Flight Information Requirements

Flights to the USA and China are designated as 'Secure Flights' by regulatory bodies and require the inclusion of extra passenger information (Secure Flight Passenger Data, or SFPD) during the booking process.

## What is Required?

To ensure compliance with provider and government regulations, you must include specific identifying details for each passenger in the reservation. This information is **mandatory** for ticket issuance:

* **Date of Birth (DOB)**
* **Passport Information** (or other government-approved identification details)
* **Gender**, as indicated on government-issued ID
* Redress Number/Canadian Travel Number (where applicable)

### Missing Information Warning

If the mandatory Secure Flight information is not provided when attempting to ticket the reservation, the provider will reject the request, and an error will be returned.

Example of a Secure flight warning:

 
 ![Secure_flights_Info.png](https://support.airgateway.com/kb/attachment/article/32/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYwIiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.NXTO_2s7cMXlmYA1zlxTVkWOXRm3Fkcw1sSo1IpFca8)

Information about Passenger Data Changes supported by each Airline is available [here](https://help.bookingpad.com/en/article/passenger-data-changes-per-airline-zl6vfk/){target="_blank"}.

# Search an Order in BookingPad

To quickly locate a specific order (PNR/Booking) within BookingPad, use the central Orders search function.

## How to use the search filters

* From the main menu, click Orders.
* Select Search (located in the top-right corner).
* Utilize the provided filters, such as PNR, Status, Destination, Passenger's name, or Ticket number.
* Enter the required detail into the appropriate filter field.
* Click the Search button to display the corresponding order(s).

 ![search-tab.png](https://support.airgateway.com/kb/attachment/article/54/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIwMCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.7kE_vOOTF6lYNyGmPD5CvZz2ngKVbAF3pRGiNAhgv34)

### Subagency Data Retrieval

If you are managing multiple subagencies, you can use a dedicated search view to filter orders and agency-specific data.

* From the main menu, click Subagencies.
* Select Search (located in the top-right corner).
* The search parameters are identical to the Core Order Search, with the addition of the Agency filter.
* Use the Agency filter to narrow results to a specific subagency, or use other filters to locate particular bookings across your subagency network.
 
![agency-filter.png](https://support.airgateway.com/kb/attachment/article/54/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIzMiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.GVUhBJ2r9fANkKc52niRNORANnb5N6uHY-75T3ycWWQ)

# PDF Liquid Template


```html
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Manrope:wght@400;600&display=swap" rel="stylesheet">
<html>
<head>
    <title>{{ subject }}</title>
</head>
<body>
<div class="image-container">
    {% if agencyLogo %}
      <img src="{{ agencyLogo }}"/>
    {% endif %}
    {% if agencyLogo == '' and bookingpadLogo %}
      <img src="{{ bookingpadLogo }}"/>
    {% endif %}
</div>
<header style="background-color: {{ agencyData.brandColor }};">
    <div class="flex-container align-items-center">
      <div class="header-column trip-column font-weight-600 col-50">Your trip</div>
      <div class="header-column col-25">
        <div>Booking ref:</div>
        {% if issuedAtDate %}
          <div>Document Issue Date:</div>
        {% endif %}
      </div>
      <div class="header-column col-25">
        <div class="font-weight-600 text-end">{{ pnr }}</div>
        {% if issuedAtDate %}
          <div class="font-weight-600 text-end">{{ issuedAtDate | date: "%d %b %Y" }}</div>
        {% endif %}
      </div>
    </div>
</header>
<div class="traveler-details-container">
  <div class="flex-container">
    <div class="traveler-details-column col-15">Travelers</div>
    <div class="traveler-details-column col-35">
      {% for item in passengers %}
          <div class="font-weight-600">{{ item.data.title | capitalize }} {{ item.data.name }} {{ item.data.surname }} </div>
      {% endfor %}
    </div>
    <div class="traveler-details-column col-15">
      <div>Agency</div>
      {% if agencyData.address and (agencyData.address.street or agencyData.address.city) %}
        <div class="empty-div"></div>
      {% endif %}
      <div>Email</div>
      {% if agencyData.phoneContact %}
        <div>Phone Contact</div>
      {% endif %}
      {% if agentEmail %}
        <div>Agent</div>
      {% endif %}
    </div>
    <div class="traveler-details-column col-35 text-end">
      <div class="font-weight-600">{{ agencyData.name }}</div>
      {% if agencyData.address and (agencyData.address.street or agencyData.address.city) %}
        <div class="font-weight-600">{{ agencyData.address.street }} {{ agencyData.address.city }}</div>
      {% endif %} 
      <div class="font-weight-600 text-decoration-underline">{{ agencyData.email }}</div>
      {% if agencyData.phoneContact %}
        <div class="font-weight-600">{{ agencyData.phoneContact }}</div>
      {% else %}
        -
      {% endif %}
      {% if agentEmail %}
        <div class="font-weight-600">{{ agentEmail }}</div>
      {% endif %}
    </div>
  </div>
</div>
<div class="flex-container bordered-div-top align-items-left marketing-logo-container">
  {% if marketingProviderData %}
      <img class="marketing-logo" src="https://web.bookingpad.work/assets/img/providers/jpg/{{ marketingProviderData.id }}.jpg"/>
      <span class="marketing-logo-name font-weight-700">{{ marketingProviderData.name }}</span>
  {% endif %}
</div>
<div class="flight-details-container">
  {% for flight in flights %}
    {% for segment in flight.segments %}
      <div class="flight-details-header mt-30 mb-5">
        <span class="font-weight-600">{{ flight.departure.date | date: "%d %b %Y" }}</span>
      </div>
      <div class="flight-details-body">
        <div class="row flex-container">
          <div class="flight-details-column col-15"></div>
          <div class="flight-details-column col-16">
            <div>Flight Number</div> 
          </div>
          <div class="flight-details-column col-19">
          </div> 
          <div class="flight-details-column col-35">
            <div class="flex-container font-weight-600">
                {% if segment.marketingCarrier.flightNumber and segment.marketingCarrier.flightNumber != "" %}
                  {{  segment.marketingCarrier.airlineID }}{{ segment.marketingCarrier.flightNumber }} 
                {% else %}
                   -
                {% endif %}
            </div>
          </div>
          <div class="flight-details-column col-15"></div>
        </div>
        <div class="row flex-container">
          <div class="flight-details-column col-15"></div>
          <div class="flight-details-column col-16">
            <div>Operated by</div> 
          </div>
          <div class="flight-details-column col-19">
          </div> 
          <div class="flight-details-column col-35">
            <div class="flex-container font-weight-600">
              {{ segment.operatingCarrier.name }}  
              <img class="provider-logo" src="https://web.bookingpad.work/assets/img/providers/jpg/{{ segment.operatingCarrier.airlineID }}.jpg">
              {% if segment.operatingCarrier.flightNumber and segment.operatingCarrier.flightNumber != "" %}
                  {{ segment.operatingCarrier.airlineID }}{{ segment.operatingCarrier.flightNumber }} 
              {% endif %}
              <!--{% if segment.equipment.aircraftCode == 'BUS' %}
                (Bus)
              {% elsif segment.equipment.aircraftCode == 'TRS' %}  
                (Train)
              {% else %}  
                (Plane: {{ segment.equipment.aircraftCode }})
              {% endif %}
              -->
            </div>
          </div>
          <div class="flight-details-column col-15"></div>
        </div>
        
        <div class="row flex-container">
          <div class="flight-details-column col-15"></div>
          <div class="flight-details-column col-16">
            <div>Departure</div> 
          </div>
          <div class="flight-details-column col-19">
            <div class="font-weight-600 text-end mr-5">
            {{ segment.originDestination.departure.date | date: "%d %b" }} {{ segment.originDestination.departure.time }}
            </div>
          </div> 
          <div class="flight-details-column col-35">
            <div class="font-weight-600">
              {{segment.originDestination.departure.city}} ({{ segment.originDestination.departure.airportName }})
            </div>

          </div>
          <div class="flight-details-column col-15">
            <div class="font-weight-600 text-end mr-10">
              {% if segment.originDestination.departure.terminalName %}
                {% if segment.originDestination.departure.terminalName ==  segment.originDestination.departure.city %}
                  Terminal: -
                {% else %}
                  Terminal: {{segment.originDestination.departure.terminalName | default: "-" }}
                {% endif %}
              {% endif %}
            </div>
          </div>
        </div>
        
        {% for stop in segment.detail.stopLocations %}
          <div class="row flex-container">
            <div class="flight-details-column col-15"></div>
            <div class="flight-details-column col-16">
              {% assign position = forloop.index0 %}
              {% if position == 0 %}
              <div class="dark-red-color">
                {% if segment.detail.stopLocations.size > 1 %}
                  Stops
                {% else %}
                  Stop
                {% endif %}
              </div>
            {% endif %}
            </div>
            <div class="flight-details-column col-19">
              <div class="font-weight-600 text-end mr-5">
              {{ stop.arrivalDate | date: "%d %b" }} {{ stop.arrivalTime }}
              </div>
            </div> 
            <div class="flight-details-column col-35">
              <div class="font-weight-600">
                {{stop.city}} ({{ stop.airportName }})
              </div>
            </div>
            <div class="flight-details-column col-15"></div>
          </div>
        {% endfor %}
        
        <div class="row flex-container">
          <div class="flight-details-column col-15"></div>
          <div class="flight-details-column col-16">
            <div>Arrival</div> 
          </div>
          <div class="flight-details-column col-19">
            <div class="font-weight-600 text-end mr-5">
            {{ segment.originDestination.arrival.date | date: "%d %b" }} {{ segment.originDestination.arrival.time }}
            </div>
          </div> 
          <div class="flight-details-column col-35">
            <div class="font-weight-600">
              {{segment.originDestination.arrival.city}} ({{ segment.originDestination.arrival.airportName }})
            </div>
          </div>
          <div class="flight-details-column col-15">
            <div class="font-weight-600 text-end mr-10">
              {% if segment.originDestination.arrival.terminalName %}
                {% if segment.originDestination.arrival.terminalName == segment.originDestination.arrival.airportCode %}
                  Terminal: -
                {% else %}
                  Terminal: {{segment.originDestination.arrival.terminalName | default: "-" }}
                {% endif %}
              {% endif %}
            </div>
          </div>
        </div>
        
        <div class="row flex-container">
          <div class="flight-details-column col-15"></div>
          <div class="flight-details-column col-16">
            <div>Duration</div> 
          </div>
          <div class="flight-details-column col-19"></div> 
          <div class="flight-details-column col-35">
            {% if segment.detail.duration and segment.detail.duration != '' %}
             <div class="font-weight-600">
               {{ segment.detail.duration }}
               {% assign stopQuantity = segment.detail.stopQuantity %}
               {% if stopQuantity and stopQuantity != '' %}
                 <span>
                   {% if stopQuantity == '0' %}
                   (Non stop)
                   {% elsif stopQuantity == '1' %}
                   (1 Stop)
                   {% else %}
                   (2 Stops or More)
                   {% endif %}
                 </span>
               {% endif %}
              </div>
            {% else %}
              - 
            {% endif %}
          </div>
          <div class="flight-details-column col-15"></div>
        </div>

        <div class="row flex-container">
          <div class="flight-details-column col-15"></div>
          <div class="flight-details-column col-16">
            <div>Booking status</div> 
          </div>
          <div class="flight-details-column col-19"></div> 
          <div class="flight-details-column col-35">
             <div class="font-weight-600">{{ status }}</div>
          </div>
          <div class="flight-details-column col-15"></div>
        </div>
        
        <div class="row flex-container">
          <div class="flight-details-column col-15"></div>
          <div class="flight-details-column col-16">
            <div>Class</div> 
          </div>
          <div class="flight-details-column col-19"></div> 
          <div class="flight-details-column col-35">
            <div class="font-weight-600">
              {{ segment.detail.classOfService.code }}, {{ segment.detail.classOfService.cabinDesignator }}
            </div>
          </div>
          <div class="flight-details-column col-15"></div>
        </div>
        
        <div class="row flex-container">
          <div class="flight-details-column col-15"></div>
          <div class="flight-details-column col-16">
            <div>Fare</div> 
          </div>
          <div class="flight-details-column col-19"></div> 
          <div class="flight-details-column col-35">
            <div class="font-weight-600">
              {{ segment.detail.classOfService.fare.marketingName }}
            </div>
          </div>
          <div class="flight-details-column col-15"></div>
        </div>
        
        <div class="row flex-container">
          <div class="flight-details-column col-15"></div>
          <div class="flight-details-column col-16">
            <div>Baggage allowance</div> 
          </div>
          <div class="flight-details-column col-19">
            <div class="text-end mr-5">
              CARRYON:
            </div>
          </div> 
          <div class="flight-details-column col-35">
            {% assign passengerFound = false %}
            {% if flight.baggageAllowance.carryOn.size > 0 %}
              {% for passenger in passengers %}
                {% for item in flight.baggageAllowance.carryOn %}
                  {% assign position = forloop.index0 %}
                  {% if position == 0 %}
                    {% if item.passengerRefs contains passenger.travelerReference %}
                      <div class="font-weight-600">
                        {{ item.options[0].quantity }} Piece(s) for {{ passenger.data.title | capitalize}} {{ passenger.data.name }} {{ passenger.data.surname }}
                        {% assign passengerFound = true %}
                      </div> 
                    {% endif %}
                  {% endif %}
                {% endfor %}
              {% endfor %}
            {% endif %}
            {% unless passengerFound %}
              <div class="font-weight-600"> - </div>
            {% endunless  %}
          </div>
          <div class="flight-details-column col-15"></div>
        </div>
        
        <div class="row flex-container">
          <div class="flight-details-column col-15"></div>
          <div class="flight-details-column col-16">
          </div>
          <div class="flight-details-column col-19">
            <div class="text-end mr-5">
              CHECKED:
            </div>
          </div> 
          <div class="flight-details-column col-35">
            {% assign passengerFound = false %}
            {% if flight.baggageAllowance.checked.size > 0 %}
              {% for passenger in passengers %}
                {% for item in flight.baggageAllowance.checked %}
                  {% assign position = forloop.index0 %}
                  {% if position == 0 %}
                    {% if item.passengerRefs contains passenger.travelerReference %}
                      <div class="font-weight-600">
                        {{ item.options[0].quantity }} Piece(s) for {{ passenger.data.title | capitalize}} {{ passenger.data.name }} {{ passenger.data.surname }}
                        {% assign passengerFound = true %}
                      </div> 
                    {% endif %}
                  {% endif %}
                {% endfor %}
              {% endfor %}
            {% endif %}
            {% unless passengerFound %}
              <div class="font-weight-600"> - </div>
            {% endunless  %}
          </div>
          <div class="flight-details-column col-15"></div>
        </div>
        
        {% if seats.size > 0 %}
          <div class="row flex-container">
            <div class="flight-details-column col-15"></div>
            <div class="flight-details-column col-16">
              <div>Seats</div> 
            </div>
            <div class="flight-details-column col-19"></div> 
            <div class="flight-details-column col-35">
              {% assign seatsFound = false %}
              {% for passenger in passengers %}
                {% for seat in seats %}
                {% if seat.segment == segment.segmentID and seat.passengerRefs == passenger.travelerReference %}
                 <div class="font-weight-600">
                  {{seat.location.row}}{{seat.location.column}}
                  for {{ passenger.data.title | capitalize}} {{ passenger.data.name }} {{ passenger.data.surname }}
                  {% assign seatsFound = true %}
                  </div>
                {% endif %}
                {% endfor %}
              {% endfor %}
              {% unless seatsFound %}
                <div class="font-weight-600"> - </div>
              {% endunless  %}
            </div>
            <div class="flight-details-column col-15"></div>
          </div>
        {% endif %}
        
        {% if services.size > 0 %}
          <div class="row flex-container">
            <div class="flight-details-column col-15"></div>
            <div class="flight-details-column col-16">
              <div>Services</div> 
            </div>
            <div class="flight-details-column col-19"></div> 
            <div class="flight-details-column col-35">
              {% assign servicesFound = false %}
              {% for passenger in passengers %}
                {% for service in services %}
                {% if service.segmentReferences contains segment.segmentID and service.travelerReferences contains passenger.travelerReference and service.isSSR == false %}
                 <div class="font-weight-600">
                  {{service.name}} for {{ passenger.data.title | capitalize}} {{ passenger.data.name }} {{ passenger.data.surname }}
                  {% assign servicesFound = true %}
                  </div>
                {% endif %}
                {% endfor %}
              {% endfor %}
              {% unless servicesFound %}
                <div class="font-weight-600"> - </div>
              {% endunless %}
            </div>
            <div class="flight-details-column col-15"></div>
          </div>
        {% endif %}
        
        {% if segment %} 
          <div class="row flex-container">
            <div class="flight-details-column col-15"></div>
            <div class="flight-details-column col-16">
              <div>Equipment</div> 
            </div>
            <div class="flight-details-column col-19"></div> 
            <div class="flight-details-column col-35">
              <div class="font-weight-600">
                  {% if segment.equipment.name and segment.equipment.name != "" %}
                    {{ segment.equipment.name }} 
                  {% else %}
                     -
                  {% endif %}
              </div>
            </div>
            <div class="flight-details-column col-15"></div>
          </div>
        {% endif %}
        
        {% if disclosures %}
          {% assign mealFound = false %}
          {% for dsc in disclosures %}
             {% assign meals = dsc.descriptions | where: 'category', 'MEALS' %}
             {% for item in meals %}
              {% if item.originDestinationReference == flight.key %}
                {% assign mealFound = true %}
              {% endif %}
             {% endfor %}
          {% endfor %}
          {% if mealFound %} 
                <div class="row flex-container">
                <div class="flight-details-column col-15"></div>
                <div class="flight-details-column col-16">
                  <div>Flight meal</div> 
                </div>
                <div class="flight-details-column col-19"></div> 
                <div class="flight-details-column col-35">
                  <div class="font-weight-600">
                    {% assign mealFound = false %}
                    {% for dsc in disclosures %}
                      {% assign meals = dsc.descriptions | where: 'category', 'MEALS' %}
                      {% if meals.size > 0 %}
                        <span>{{item}}</span>
                        {% for item in meals %}
                          {% if item.originDestinationReference == flight.key %}
                            {% assign mealFound = true %}
                            {{item.text}}{% if forloop.index < meals.size %},{% endif %}
                          {% endif %}
                        {% endfor %}
                      {% endif %}
                    {% endfor %}
                    {% unless mealFound %}
                      <div class="font-weight-600"> - </div>
                    {% endunless  %}
                  </div>
                </div>
                <div class="flight-details-column col-15"></div>
              </div>
          {% endif %}
        {% endif %}
        
        <div class="row flex-container">
          <div class="flight-details-column col-15"></div>
          <div class="flight-details-column col-16">
            <div class="text-nowrap">Frequent Flyer Number</div> 
          </div>
          <div class="flight-details-column col-19"></div> 
          <div class="flight-details-column col-35">
            {% assign ffnFound = false %}
              {% for passenger in passengers %}
                {% if passenger.data.fqtvInfo and passenger.data.fqtvInfo.airlineID %}
                  <div class="font-weight-600">
                    {{passenger.data.fqtvInfo.airlineID}} {{passenger.data.fqtvInfo.account.number}}
                    for {{ passenger.data.title | capitalize}} {{ passenger.data.name }} {{ passenger.data.surname }}
                    {% assign ffnFound = true %}
                  </div>
                {% endif %}
              {% endfor %}
              {% unless ffnFound %}
                <div class="font-weight-600"> - </div>
              {% endunless %}
          </div>
          <div class="flight-details-column col-15"></div>
        </div>
      </div>
    {% endfor %}
  {% endfor %}
</div>

{% if tickets.size > 0 %}
  <div class="mt-30">
    <div class="bordered-div">
        <span class="font-weight-600">Ticket details</span>
    </div>
    <div class="pl-10">
    {% for item in tickets %}
      {% assign passenger = passengers | where: 'travelerReference', item.travelerReference | first %}
      <div>
        E-ticket {{ item.number }}
        {% if passenger %}
          for <span class="font-weight-600">{{ passenger.data.title | capitalize }} {{ passenger.data.name }} {{ passenger.data.surname }}</span>
        {% endif %}
      </div>
    {% endfor %}
    </div> 
  </div>
{% endif %}

{% if comments and comments.size > 0 %}
  <div class="mt-30">
      <div class="bordered-div">
          <span class="font-weight-600">Comments</span>
      </div>
      <div class="pl-10 text-pre-line">
        {{ comments }}
      </div>
  </div>
{% endif %}

{% if agencyData.alert %}
  <div class="mt-30">
      <div class="bordered-div">
          <span class="font-weight-600">Alert</span>
      </div>
      <div class="pl-10 text-pre-line">
        {{ agencyData.alert }}
      </div>
  </div>
{% endif %}

</body>
</html>
```

# Search Airports by Code or Name

BookingPad offers two methods for identifying origin and destination airports within the search bar, streamlining the booking process for your agents.

1. **Search by Airport Code**

The most common and direct method is to search using the official three-letter IATA airport code.

Example: To search for London Heathrow, use LHR. To search for Barcelona, use BCN.
 
 ![airport-search.png](https://support.airgateway.com/kb/attachment/article/67/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE0MCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.l7-Z09KGNpr8g0lFBCJCAEwWMlpsrpCpWV5B76zvbSE)

2. **Search by Full Airport Name**

Agents also have the capability to search using the full or partial name of the airport or the city.

Example: You can search using Heathrow or John F. Kennedy.
 
 ![search-by-airportname.png](https://support.airgateway.com/kb/attachment/article/67/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE0MSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.C67dHYIE-d9cLLd51hK5siA5lstvQw6DbbUK9ukZQZk)



# Alternate IDs: How to Locate Booking Identifiers

Certain external airline portals (like SPRK) or booking systems may require a specific booking identifier if the primary PNR is not recognized or accepted. **This alternate ID is available within BookingPad**.

## Locate the Alternate ID

* Navigate to the Order Details page for the required booking.
* Locate the primary PNR display.
* Hover your cursor over the information icon next to the PNR.
* The Alternate ID will be displayed in the hover text.

 ![AlternateID.png](https://support.airgateway.com/kb/attachment/article/56/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyMSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.ZVpsYDOVatfjqCD86zjul9RVG--MFDJItWgzKDyegU8)




# Subagencies: Setup and Management Overview

The Subagency structure is designed for main agencies (Superagencies) that operate multiple branches, groups, or affiliated entities which issue tickets under the same IATA/ARC credentials. You can connect these entities as Subagencies under your Superagency account.

## Role Capabilities

The system defines clear access and visibility rules for Superagencies and Subagencies:

| Role | Order Visibility | Permissions |
| ------ | ------ | ------ |
| **SuperAgency** (visible as Agency) | Can view, filter, and search all orders created by all connected Subagencies (via a dedicated tab next to the Orders tab) | Can manage (add/remove) Subagencies and modify Agents within those Subagencies via the Superagency interface |
| **Subagency** | Only has access to the orders created by its own agents | Requires at least one Manager. The Manager can invite and manage Agents only within their specific Subagency |

### Subagency Management

To add or remove entities from your Superagency structure:

* Navigate to the Subagency management option.
 
 ![Subagency-management.png](https://support.airgateway.com/kb/attachment/article/57/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyMiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.LJxZeTfmMyryVwYZ_35j4xKFjeqi11dOeK2P4uqavnc)

* To create a new subagency, click the + icon.
* To remove an existing subagency, click the trash can icon located in that subagency's row in the table.
 
 ![add-subagency.png](https://support.airgateway.com/kb/attachment/article/57/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyNSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.aSKWe3V0BTzqETiQc9iGdbD1vE7DKknNWWu21Xl8ZyU)

### Agent Management within Subagencies

**Managing Agents**

The ability to manage agents depends on your specific access level:

Superagency Managers: Can manage agents for all linked Subagencies. To do this, you must first switch your view to the specific subagency you wish to manage.

Subagency Managers: Can invite and manage agents directly within their own subagency.

**How to Switch Subagency View**

If you are a Superagency Manager or have access to multiple offices, follow these steps to switch your view and manage different agents:

1. Click your email address in the top-right corner of the screen.
2. Select the target subagency from the dropdown menu.
3. The dashboard will update to show the settings and agent list for that specific subagency.
 
![switch-agency.gif](https://support.airgateway.com/kb/attachment/article/57/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyNCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.92nq6AQObPBlxTC0zBXFF1yqw1iPqEUZyMv9gVBsV3w)

 :::Info
2FA Requirement: All agents must set up Two-Factor Authentication (2FA) during their first login. A complete guide is available [here](https://support.airgateway.com/en-US/kb/article/66/mandatory-2fa-setup-account-activation){target="_blank"}.
 :::

# Passenger Contact Details: Refusal Option During Order Creation

Travel agencies can manage bookings on BookingPad when a passenger declines to provide their contact information. This functionality ensures compliance with airline preferences while allowing agents to complete reservations without entering placeholder data.

## Overview

During the passenger details step, a checkbox titled 'Passenger refuses to provide contact data' allows agents to bypass mandatory contact fields for specific passengers when permitted by the operating airline.

Selecting this option waives mandatory input requirements for that passenger, clearing active validation errors and disabling the contact fields. If the checkbox is unselected, standard validation rules are immediately restored.

![pax-refusal.png](https://support.airgateway.com/kb/attachment/article/93/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMyNyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.-JJ5qj9OapUf2wtZsF_NivEFob19_uhDJOVtDEqFXyA)

## Supported Airlines

The contact refusal option is supported on bookings with carriers including QF, AA, UA, A3, CM, LH, EK, AF, KL, and IB.

For standard traveler information rules and field requirements, you can find more details on our [Passenger Documents page](https://support.airgateway.com/en-US/kb/article/38/passenger-documents){target="_blank"}.



# Sign In to Your BookingPad Account

Once you have received an invitation and successfully set up your password, you can easily access your BookingPad account. For security, Two-Factor Authentication (2FA) set up is required before accessing the platform.
 
 ![login-screen.png](https://support.airgateway.com/kb/attachment/article/26/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE4NiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.PQRs45ObMz_eGYKqNQ-TgO-6o3S7TA99G4g1vNPoqP4)

## Login Options

You have two ways to sign in to the platform after initial setup:

### Standard Email and Password

* Enter your registered email address and password.
* 2FA Prompt: You will then be prompted to enter the 6-digit code generated by your authenticator app to complete the login (steps included below).

### Social Login

* Select your preferred social media login option (e.g., Google or Microsoft).
* First-Time Verification: If this is your first time using social login, you will be prompted to follow a brief, one-time verification process.
* Account Confirmation: An email will be sent to your registered address to securely link your social login account with your BookingPad account. Subsequent social logins will be instant.

## Mandatory Security: Two-Factor Authentication (2FA)

To protect your account and sensitive data, 2FA adds an essential layer of security by requiring a verification code in addition to your password.

### Setup Process (Required on First Login):

1. **First Login**: When you log in for the first time using the standard email and password method, you will be automatically presented with the Two-Factor Authentication setup page.
2. **Download App**: Search for and install an authenticator app on your smartphone, such as Google Authenticator or Microsoft Authenticator.
3. **Link Account**: Open the authenticator app and select the option to scan a QR code. Scan the QR Code displayed on the BookingPad setup screen to link your account.
(Note: If scanning does not work, you can manually enter the provided code.)
4. **Verify & Complete**: Enter the verification code generated by the app into the BookingPad setup page to finalize the 2FA enrollment.











# 3D Secure Integration Guide

# 3D Secure Integration Guide

**for AirGateway API partners**

*Document version 1.7 · API version v1.2*

This guide walks a partner that operates its own frontend and backend through the 3D Secure cardholder authentication flow exposed by the AirGateway API before an `OrderCreate` for a 3DS-enabled airline.

* * *

## 1. Overview

Some airlines (for example VY, IB) require EMVCo 3D Secure 2 (3DS2) authentication before accepting a payment. Rather than have every partner onboard directly with a 3DS vendor, the API wraps the full protocol behind a single HTTP endpoint. The underlying vendor is an implementation detail and may change without impact on the integration.

The flow is a classical browser-driven challenge:

- The backend asks for a 3DS session tied to a card, amount and airline, and provides the three landing-page URLs where the cardholder will land after the challenge.
- The frontend renders the challenge to the cardholder by loading a challenge URL inside an iframe.
- On success the backend attaches the returned session ID to the `OrderCreate` payload; the API resolves the cryptographic proof of authentication and forwards it to the airline.

### 1.1 Key concepts

| Term | Meaning |
| --- | --- |
| **Session ID** | Opaque identifier that represents an ongoing / completed 3DS session. Echo it back on `OrderCreate`. |
| **Challenge URL** | Opaque URL that the browser must load to render the ACS challenge. Delivered in the `X-Challenge-URL` response header. Do **NOT** hard-code the host — it can change without notice. |
| **ACS** | Access Control Server. The card issuer’s page that prompts the cardholder for the OTP or biometric. Runs at the challenge URL. |
| **Redirect URLs** | The three URLs (`successUrl`, `cancelUrl`, `errorUrl`) hosted by the partner, one per outcome of the challenge. Sent on every `ThreeDSSession` request. |
| **CAVV / ECI / DS Trx ID** | 3DS2 authentication tokens produced by the ACS. Resolved server-side; the partner never sees them. They are eventually forwarded to the airline as part of `OrderCreate`. |

* * *

## 2. When is 3DS required?

The response to `POST /v1.2/OfferPrice` carries the flag `allowedPaymentMethods.threeDSecure` — the single source of truth. When it is `true`, the airline requires 3DS on the `OrderCreate` and the flow must run before submitting the payment. When it is `false`, a plain card payment is fine and this document does not apply.

    // Example fragment of an OfferPrice response
    {
      "allowedPaymentMethods": {
        "card":         false,
        "threeDSecure": true,       // ← run 3DS before OrderCreate
        "agencyCash":   false,
        "agencyCard":   false,
        "none":         true
      }
    }

The same flag also appears in `OrderView` and `OrderChange` responses, so post-booking flows (ancillaries, seat purchases after issuance) can require 3DS independently.

* * *

## 3. High-level sequence

![3ds-flow](https://support.airgateway.com/kb/attachment/article/92/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMxOSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.-cs4OxXxBhWYicg1rl2oNtk5kjDHoNbenEsQL2GIvyg)

*Figure 1. End-to-end 3D Secure flow.*

* * *

## 4. Step-by-step integration

### 4.1 Step 1 — Detect that 3DS is required

After pricing the offer, inspect `allowedPaymentMethods.threeDSecure`. If it is `false`, skip the 3DS flow and submit the `OrderCreate` with the plain card as before.

### 4.2 Step 2 — Create a 3DS session

Post the card details, amount and the three landing-page URLs. This endpoint is server-to-server, authenticated with the same credentials used everywhere else (JWT / `Ag-Auth-Key`). Do **NOT** expose it directly to the frontend.

    POST /v1.2/ThreeDSSession
    Content-Type: application/json
    Authorization: Bearer <your API token>
    
    {
      "provider": "IB",                 // AgW carrier code (offer owner)
      "cardNumber": "4000001000000042", // PAN
      "expirationMonth": "06",
      "expirationYear": "28",
      "amount": 88341,                  // minor units (883.41 EUR)
      "currency": "eur",
    
      // Redirect landing pages hosted by the partner (see §5).
      "successUrl": "https://partner.example.com/3ds/success",
      "cancelUrl":  "https://partner.example.com/3ds/cancel",
      "errorUrl":   "https://partner.example.com/3ds/error"
    }

A successful response is a small JSON body plus a custom response header that must be forwarded to the frontend:

    HTTP/1.1 200 OK
    X-Challenge-URL: <opaque URL the browser must load in an iframe>
    Access-Control-Expose-Headers: X-Challenge-URL
    
    {
      "sessionId": "<opaque session id>",  // echo back on OrderCreate
      "status": ""
    }

The `X-Challenge-URL` value is fully opaque; copy it verbatim into the iframe’s `src`. Its host, path and query string are implementation details and may change without notice.

The `Access-Control-Expose-Headers` hint is critical: without it the browser hides custom headers from JavaScript. The server already sets it, but a partner backend that proxies the response must forward `X-Challenge-URL` to the frontend (as a body field, another header, or however fits the architecture).

### 4.3 Step 3 — Render the challenge

Mount an iframe pointing at the `challengeUrl`. The card issuer’s ACS runs inside: it fingerprints the browser, negotiates 3DS2 with the Directory Server, and (for challenge flows) prompts the cardholder for an OTP.

    <!-- Minimum viable markup -->
    <iframe
      src="{{ challengeUrl }}"
      frameborder="0"
      allow="payment *"
      style="width:520px; height:640px; border:0; background:#fff;">
    </iframe>

For a good UX, render the iframe as a modal-style overlay (centered, dimmed backdrop, above the rest of the page). When the challenge finishes, the ACS redirects the iframe to **one of the three URLs sent in step 2**. Those landing pages notify the host page via `window.postMessage`, and the host page then tells the backend to continue with `OrderCreate`.

### 4.4 Step 4 — Attach the session on OrderCreate

Once the challenge resolves successfully, submit the `OrderCreate` as usual, adding a `payment.threeDSecure` block that carries the session ID. Do not attempt to fill in any authentication tokens; they are resolved server-side.

    POST /v1.2/OrderCreate
    
    {
      "query": { ...standard fields... },
      "payment": {
        "method":     "3ds",
        "cardType":   "CC",
        "cardCode":   "VI",
        "cardNumber": "4000001000000042",
        "expiration": "0628",
        "cardHolderName":    "JANE",
        "cardHolderSurname": "DOE",
        "cardHolderEmail":   "jane@example.com",
        "threeDSecure": {
          "evervaultSessionId": "<sessionId from step 2>"
        }
      }
    }

The field is named `evervaultSessionId` for historical reasons in the contract; the name is purely conventional and does not imply anything about how the session was obtained. Put here the exact `sessionId` string that `POST /v1.2/ThreeDSSession` returned.

* * *

## 5. Redirect landing pages

The challenge iframe ends by redirecting itself (not the top window) to one of the three URLs passed on the `ThreeDSSession` request. Host these three pages on your own domain, and each must post a message to the parent window with the outcome:

| URL kind | Purpose | `postMessage` payload |
| --- | --- | --- |
| `successUrl` | Landing after a successful authentication. May carry vendor-specific query-string parameters; forward the whole set verbatim to the parent. | `{ type: '3ds-outcome', outcome: 'success', params }` |
| `cancelUrl` | Landing when the cardholder abandoned the challenge (e.g. closed the OTP prompt). | `{ type: '3ds-outcome', outcome: 'cancel' }` |
| `errorUrl` | Landing when the ACS or the network failed. | `{ type: '3ds-outcome', outcome: 'error' }` |

### 5.1 Example landing page

    <!-- /3ds/success (analogous for /3ds/cancel and /3ds/error) -->
    <!DOCTYPE html>
    <html>
    <body>
      <p>Redirecting…</p>
      <script>
        // Forward every query-string param the ACS appended.
        // Field names may vary and are considered opaque.
        const params = Object.fromEntries(new URLSearchParams(location.search));
        window.parent?.postMessage({
          type: "3ds-outcome",
          outcome: "success",   // or "cancel" | "error"
          params                // raw query-string, verbatim
        }, "*");
      </script>
    </body>
    </html>

Read every query-string parameter into a plain object and pass it to the parent. Do not assume a specific parameter name; the exact keys depend on the underlying provider and may change — treat them opaquely and log the whole set for auditing if needed.

### 5.2 Host-page listener

In the host page (the one that owns the challenge iframe), add a single `message` listener that dispatches on the outcome:

    window.addEventListener("message", (ev) => {
      const d = ev.data || {};
      if (d.type !== "3ds-outcome") return;
      closeChallengeOverlay();
      if (d.outcome === "success") {
        // Backend submits OrderCreate with the sessionId already held.
        submitOrderCreate(sessionId);
      } else if (d.outcome === "cancel") {
        showRetry("Authentication was cancelled.");
      } else {
        showRetry("Authentication could not be completed.");
      }
    });

The critical guard is `d.type !== "3ds-outcome"` — that keeps unrelated `postMessage`s from other libraries out of the handler.

### 5.3 Hosting requirements

- HTTPS in production.
- Must resolve to a real page (200 OK) even without a session.
- Reachable from the browser rendering the iframe (not just from the backend). In development, `http://localhost` may hit Chrome’s Local Network Access restrictions when the iframe (public origin) tries to redirect to localhost. Workarounds: expose the dev server via a tunnel (ngrok, cloudflared), or disable the Chrome flag *Local Network Access Checks* at `chrome://flags`.
- A simple pattern: derive the three URLs from `window.location.origin` on the client and pass them to the backend, which forwards them on the `ThreeDSSession` request. That way local, staging and production automatically use the correct host without per-env config.

* * *

## 6. Test cards (sandbox)

Use the following PANs in sandbox for end-to-end testing. Expiry is `06/28` for all. When the ACS asks for an OTP, enter `4444` to authenticate successfully, or `4009` to trigger a declined authentication.

### Visa

| PAN | Flow | Outcome |
| --- | --- | --- |
| `4000001000000018` | Frictionless | Authenticated |
| `4000001000000034` | Frictionless | Declined |
| `4000001000000042` | Challenge | Depends on OTP |
| `4000001000000026` | Challenge | Depends on OTP |

### Mastercard

| PAN | Flow | Outcome |
| --- | --- | --- |
| `5100001000000014` | Frictionless | Authenticated |
| `5100001000000030` | Frictionless | Declined |
| `5100001000000022` | Challenge | Depends on OTP |
| `5100001000000048` | Challenge | Depends on OTP |

### American Express

| PAN | Flow | Outcome |
| --- | --- | --- |
| `340000100000016` | Frictionless | Authenticated |
| `340000100000032` | Frictionless | Declined |
| `340000100000024` | Challenge | Depends on OTP |
| `340000100000040` | Challenge | Depends on OTP |

Frictionless cards never show an OTP prompt — the ACS resolves automatically. For additional card schemes (JCB, Discover, Diners) ask your AirGateway account manager.

* * *

## 7. Error handling

| Situation | Action |
| --- | --- |
| 4xx on `POST /v1.2/ThreeDSSession` | Show a generic “payment could not be initialised” message; do **NOT** retry automatically — the cardholder must correct the details or restart the flow. If the error mentions missing redirect URLs, ensure the three fields are included in the request body. |
| Challenge iframe never redirects (timeout / cardholder closes) | Treat as `error`. Reset the payment form; do not reuse the `sessionId` — request a new one. |
| `outcome = 'cancel'` | The cardholder deliberately aborted. Prompt to try again or choose a different card. Do not resubmit the same session. |
| `outcome = 'error'` | Log the outcome and any parameters received; show a retry option. |
| `OrderCreate` 4xx after successful 3DS | The airline rejected the payment. The authentication tokens have been consumed and cannot be reused — repeat the 3DS flow if the cardholder retries. |
| Screen too small (browser `innerWidth < 768` in an iframe) | If the host page hides content on narrow viewports, exclude the challenge-callback routes from that guard, otherwise the landing page will not render and the `postMessage` will never fire. |

* * *

## 8. Partner checklist

- [ ] Read `allowedPaymentMethods.threeDSecure` from every `OfferPrice` / `OrderView` response.
- [ ] When `true`, call `POST /v1.2/ThreeDSSession` from the backend, never from the browser.
- [ ] Include the three redirect URLs (`successUrl`, `cancelUrl`, `errorUrl`) in that call.
- [ ] Read the `X-Challenge-URL` header and forward it to the frontend as an opaque string.
- [ ] Host the three redirect landing pages on the partner’s own domain, HTTPS, publicly reachable.
- [ ] In each landing page, forward the raw query-string params to the parent with `window.parent.postMessage({ type: '3ds-outcome', outcome, params }, '*')`.
- [ ] In the host page, listen for that message, tear down the iframe, and submit `OrderCreate` with the `sessionId` inside `payment.threeDSecure.evervaultSessionId` (historical field name; purely the destination for the opaque `sessionId`).
- [ ] Never fill in CAVV / ECI / DS Transaction ID manually; they are resolved from the `sessionId`.
- [ ] Do not reuse a `sessionId` once `OrderCreate` has consumed it, or after any error path.

# Webhooks (Callbacks)

We offer some event based services like mails or slack notifications after orders are created, changes in orders or orders are canceled. We can personalize some of these services if needed, but we offer a really versatile service you can use to be notified on every event you want to track: **webhooks**.

This is the list of events produced out of a transaction happening through our platform:

- `OrderCreated`
- `OrderCanceled`
- `OrderTicketed`
- ~~OrderStarted~~ (deprecated Nov 2025)
- ~~OrderCompleted~~ (deprecated Nov 2025)
- `ItineraryChange`
- `ServicesAddition`
- `ServicesRemoval`
- `SeatsAddition`
- `SeatsRemoval`

There is an additional event which is only triggered as a PUSH starting on an Airline Notification from a Provider (normally airlines). This 

- `AirlineNotification`


#### Wehook Payload Messages

- **agwID**: Order id in our platform
- **orderID**: Order id from airline
- **pnr**
- **recordLocator**
- **bookingType**: One Way, Round Trip or Multicity
- **origin**
- **destination**
- **fullPath**: All legs in the order (MAD-LHR, LHR-MAD...)
- **adultsPax**: number of adults
- **childrenPax**: number of children
- **infantsPax**: number of infants
- **orderStatus**: cancelled, on hold...
- **totalAmount**
- **createdOn**
- **updatedOn**
- **sessionId**
- **agentEmail**: email from the agent that triggered the event
- **consumerEmail**: email from the consumer in the order
- **psgPhone**: contact passenger phone
- **psgEmail**: contact passenger email
- **consumerIataCode**
- **consumerCountryCode**
- **consumer**: consumer name
- **provider**: provider code
- **agent**: agent name
- **agency**: agency name

#### Webhook Payload Sample

Webhook Payloads can be fully customisable per consumer as long as it is based on JSON structure.
Below see an example of an standard payload for the webhooks sent out to the consumer's platform.

```
{
    "orderID": "AGW-E1TLLZH0HB",
    "agent": "agent-001",
    "agency": "agency-001",
    "pnr": "YMCP6O",
    "freeText": "Order with the order ID `AGW-E1TLLZH0HB` has been issued"
}
```

# Add and purchase seats

You can add seats to your booking during the fulfillment process or after the order is confirmed. Follow these steps to select and purchase seats for your passengers.

## Step-by-step seat selection

1. Navigate to the bottom of the page and click the Select Seats button.

 ![select-seats.png](https://support.airgateway.com/kb/attachment/article/72/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE3MyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.badfE8o9ewlI70LSUOCicmR3CswnItYTPbi6JpOmA10)

2. Select the specific flight segment for which you wish to add a seat. Seats must be added per segment.

3. Hover over the interactive seat map to view the price for each available seat.

![image.png](https://support.airgateway.com/kb/attachment/article/72/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE1NiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.QyukYkYDswqksQHYYQJbSZcjt80n2ajICTeC7EUQBwE)

4. Click on the desired seat to select it and click Next.

5. Review the summary page, which displays the selected seat numbers and the total price.

![image.png](https://support.airgateway.com/kb/attachment/article/72/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE1NyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.oLVP0TJAIHJaqo156D54HveTlNjg2r1hJkcgJkcI9TE)

6. Click Payment to proceed with the transaction.

# Agency Portal Navigation

This guide provides an overview of the BookingPad Agency Portal. The portal is designed to help you manage your agency’s settings, access reports and available applications.

## Account Log In

**To get started, go to the [Agency Portal login page](https://agency.airgateway.com/){target="_blank"}.**

**Who can log in?**

This portal is exclusively for Manager agents. If you have a different role, you won’t be able to access it. 

**Your Login details**

Simply use the same username, agency ID and password that you use for your BookingPad account. 
 
![login-options.png](https://support.airgateway.com/kb/attachment/article/78/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIzOCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.UOvYbCD-6GuVKxLpXYsjOeCxhpDXXAoSr76tqfx607g)

If you need assistance with signing into your account please [check this page](https://support.airgateway.com/kb/article/26/sign-in-to-your-bookingpad-account){target="_blank"}. 

### Navigating the Dashboard

After you log in, the main dashboard is displayed. This is where you can view key details about your agency. At the top of the screen, you’ll find the different **sections you can access in the portal**:

* Dashboard
* Providers
* Applications
* Reports
* Settings

#### Dashboard

Here you can quickly find relevant information such as your agency’s name and ID, number of agents in your agency and which airlines you have access to via AirGateway. 

In addition to this, you can also log in to the BookingPad and visit our Knowledge Base for useful information. 
 
![consumer-info-managers.png](https://support.airgateway.com/kb/attachment/article/78/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI0MSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.hHc4aq_F6ekork49AxchO2gl3tXURYJIvw2hFe8YQso)

#### Reports: Downloading Reports for Agency’s Bookings

The Reports section allows you to generate detailed reports to evaluate your agency’s performance on BookingPad. It provides details on total booking, tickets bookings, and the airlines. 

* Use the **Date Range** selector to define the specific period you wish to analyze.
* Apply the **Group By** filter to aggregate data by Day, Week, Month, or Year.
* Select the relevant **Agencies** from the dropdown menu if you manage multiple branch locations.

Click the **Export button** to download the raw data in CSV format for external accounting.

![reports-agency-portal.png](https://support.airgateway.com/kb/attachment/article/78/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI1MiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.QCqo61mmyMIQjq1c9kkTkZtkezyKu_fqlE9idBcHhqI)

The reporting dashboard is divided into two primary graphical sections to help identify patterns at a glance:

**Booking Status Distribution**: A visual breakdown of the current state of all PNRs. This chart distinguishes between Book on Hold (reservations without payment) and Issue Ticket (completed transactions). It also tracks any Issuance failure to help identify technical or credit issues.

**Booking Trends**: A chronological graph showing fluctuations in booking volume over the selected period. This is core for identifying peak booking times and seasonal shifts in demand.
 
![agency-portal-report-chart.png](https://support.airgateway.com/kb/attachment/article/78/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI1MyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.aywXjy7FQX6Kkxi0yMQando_JM2ZoDfExKgznI1SgRw)

#### Applications: Connecting to Technology Providers and AirGateway tools

The Applications section is where you can navigate through the different services and tools available for your agency. From here, you can:

Activate Third-Party Providers (“API Partners”): connect with your selected API partner to access our NDC content through their platform. 

Access AirGateway Tools: use dedicated tools, such as Tracer, for tracking and monitoring bookings.
 
![aplications-AgencyPortal-ndc-tokens.png](https://support.airgateway.com/kb/attachment/article/78/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIzMyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.9zydjjOhlqUdukK0sUeQtdcEshOpk84m5OHAf34Vi3o)

A complete list of partners is available on our website here. Once you request to access AirGateway NDC content through an API partner, we will enable the provider in the Applications tab. 

Here you can also check the permissions allowed for this provider (it can include: shop, book, issue, cancel…) and the access token details.

#### Providers

This section shows you a complete list of all the airlines your agency has access to. It is also where you can manage its access. 

View enabled Airlines: see which airlines are active and ready for you to book with.

Manage Access: to deactivate an airline and remove your agency’s access, simply click the tick box to its name. 

This feature helps you control which airlines appear in your search results and keeps your list up to date. 
 
![providers-AgencyPortal.png](https://support.airgateway.com/kb/attachment/article/78/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIzNyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.HipTLn0AHfVlpmPabs9HF-hsRmqyR6BHklpLzYvbGtg)

#### Settings: Managing your Account

To manage your agency profile and settings, click on the settings icon. 

Under Branding, you can: Add your Agency logo, edit your contact information (including the Agencyt Alerts Email), and log out.
 
![branding.png](https://support.airgateway.com/kb/attachment/article/78/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI1MCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.VS6uCmf2lzuYECCU3Kzi7aXXtSv09k9tN4ZNBwscnUE)




# Access Umbrella Faces profiles in BookingPad

This article explains how to link your Umbrella Faces account to BookingPad. 

Completing this step allows you to access and use your Corporate Travellers' profiles directly during the booking process.

## How to connect Umbrella Faces Account in BookingPad

Contact our Support Team, available on the Live Chat on BookingPad, to request the Umbrella integration to be enabled in your Account. Once we confirm it is enabled, you can proceed with the steps below.

Now your BookingPad is ready and connected to Umbrella travellers' profiles. When you make a booking, you'll be able to **add the traveller details from the Umbrella account directly in the BookingPad platform**.

Type your account name and an authentication message will pop up.
 
 ![Umbrella_auth.png](https://support.airgateway.com/kb/attachment/article/60/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyNyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.VqcplK2aW0Y72r0vuuqaGIUqTBbiez6mjjdPOOugMDg)

Once authorized, you can add the account details to the search. The corporate fares available, will be displayed in the search results.



# Airline Payment Exceptions: FOP Limitations

Payment methods are not uniform across all NDC providers. **The following airlines have specific limitations or exceptions regarding accepted FOP, including Agency Cash (BSP) and Credit/Debit Card use**.

Reviewing this table is essential to ensure you use an accepted payment method, thereby avoiding issuance failures.

## Payment Method Exceptions by Airline

|  | Agency Cash (BSP Payment)| Credit / Debit Card | Others |
| ------ | ------ | ------ | ------ |
| VY | BSP only available for EUR currency countries | — | VCC payments are available in the following currencies: EUR, BP, USD, CHF, DKK, SEK, NOK |
| BT | BSP only available for EUR currency countries | — | — |
| BA | — | CC payments are not reflected in BA BSP billing report | — |
| AA| — | — | Seats payment only with CC |
| DE | No BSP payment, Agency Deposit only | — | — |
| AY | — | Only card payment allowed: EasyPay | — |
| UX | — | — | Only one FOP allowed per IATA (BSP cash or CC) |


You can find more details about the form of payment available for each of the airlines **[here](https://airgateway.com/providers/){target="_blank"}**. 


# Passenger Information

The required information for all passengers is the next:
* Name.
* Surname.
* Birthdate.
* Title or Gender: you can send both, but we recommend use only Title since we can infer gender from it.
* Document: with the id, document type (passport PP, or national identity NI) and the expiration date (format aaaa-mm-dd).
* Passenger reference.
* Passenger type.


An example of this can be like:

 ```
{
    "data": {
        "birthdate": "2002-06-28",
        "name": "Anesu",
        "surname": "Mccord",
        "title": "MS"
    },
    "document": {
        "documentID": "115233245A",
        "documentType": "PP",
        "expirationDate": "2025-04-09"
    },
    "passengerType": "ADT",
    "travelerReference": "ADT0"
}
 ```

In addition to the personal information (mandatory for all passengers), we need to add the contact information only to the first adult in the request. The fields for the contact information are:
* Address: with the city, the country code, postal code and street.
* Email
* Phone: with country code and number


Here you have an example of these nodes:
 
 ```
 {
    "data": {
        "email": "smith@airgateway.net",
        "phone": "+34666123123",
    },
}
 ```

Another optional field you can use is the related to the Frequent Flyer Number. The fields needs to use this functionality are:
* Account number
* Airline ID
* An example of this node could be like:

 ```
{
    "data": {
        "fqtvInfo": {
            "account": {
                "number": "0000000"
            },
            "airlineID": "XX"
        },
    }
} 
 ```

 An example of passengers node (for 2ADT + 1CHD + 1INF) could be like:
 
 ```
{
    "passengers": [
        {
            "data": {
                "address": {
                    "cityName": "Saint-Petersburg",
                    "countryCode": "RU",
                    "postalCode": "197373",
                    "street": "Test"
                },
                "birthdate": "2002-08-21",
                "email": "smith@airgateway.net",
                "fqtvInfo": {
                    "account": {
                        "number": "99999"
                    },
                    "airlineID": "XX"
                },
                "name": "Diamond",
                "phone": "+34666123123",
                "surname": "Sellon",
                "title": "MSTR"
            },
            "document": {
                "documentID": "115233245A",
                "documentType": "PP",
                "expirationDate": "2024-06-23"
            },
            "passengerType": "ADT",
            "travelerReference": "ADT0"
        },
        {
            "data": {
                "birthdate": "2002-04-27",
                "name": "Alondra",
                "surname": "Hesch",
                "title": "MS"
            },
            "document": {
                "documentID": "115233246A",
                "documentType": "PP",
                "expirationDate": "2026-10-20"
            },
            "passengerType": "ADT",
            "travelerReference": "ADT1"
        },
        {
            "data": {
                "birthdate": "2012-02-21",
                "name": "Payton",
                "surname": "Cast",
                "title": "MRS"
            },
            "document": {
                "documentID": "115233266A",
                "documentType": "PP",
                "expirationDate": "2025-01-04"
            },
            "passengerType": "CHD",
            "travelerReference": "CHD0"
        },
        {
            "data": {
                "birthdate": "2021-04-25",
                "name": "Naomi",
                "surname": "Soulis",
                "title": "MR"
            },
            "document": {
                "documentID": "113233266A",
                "documentType": "PP",
                "expirationDate": "2026-03-11"
            },
            "passengerType": "INF",
            "travelerReference": "INF0"
        }
    ],
}
 ```



### Attach infants to specific adults

There is a new functionality implemented by some airlines (AFKLM for now) that allows to choose which infant goes with an adult. This information must be specified in OrderCreate request with infantReference tag:
 
 ```
{
    "data": {
    "address": {
        "cityName": "Parla Gabrielton",
        "countryCode": "ES",
        "postalCode": "44911",
        "street": "Espinal Rua"
    },
    "birthdate": "1944-09-17",
    "email": "colby-beer@airgateway.net",
    "gender": "Female",
    "name": "Colby",
    "phone": "+34928541338",
    "surname": "Beer",
    "title": "MS"
    },
    "document": {
    "citizenshipCountryCode": "AM",
    "documentID": "272689688A",
    "documentType": "PP",
    "expirationDate": "2024-02-28",
    "issuingCountryCode": "CH",
    "residenceCountryCode": "BH"
    },
    "infantReference": "PAX5",
    "passengerType": "ADT",
    "travelerReference": "PAX2"
} 
 ```

 If the order has been created successfully, you should expect the same information in response:
 
 ```
 {
    "data": {
    "address": {
        "cityName": "",
        "countryCode": "",
        "postalCode": "",
        "street": ""
    },
    "birthdate": "1944-09-17",
    "email": "kira-hahn@airgateway.net",
    "gender": "Female",
    "name": "Colby",
    "phone": "34920964742",
    "surname": "Beer",
    "title": "MS"
    },
    "document": {
    "citizenshipCountryCode": "AM",
    "documentID": "272689688A",
    "documentType": "PP",
    "expirationDate": "2024-02-28",
    "fiscalName": "",
    "issuingCountryCode": "CH",
    "residenceCountryCode": "BH"
    },
    "infantReference": "PAX5",
    "passengerType": "ADT",
    "travelerReference": "PAX2"
}
 ```

# Presets:  Access Special Fares on BookingPad

 
 :::Info
AirGateway is NOT entitled to authorize or grant access to any special fare. On a first stance, it's the airline who through their sales representatives and commercial networks grant access to them via private agreements that fall completely out of our responsibility. In order to be able to obtain special fares in BP or the AGW platform you first need to get some written confirmation from the airline representatives that this fares have been granted for your agency IATA in question.
 :::

## Presets: Manage Special Fares for your Agency

Presets is a feature within the BookingPad desktop tool designed to manage access to unpublished fares. It allows you to store and automate the identifiers required to retrieve Negotiated and private fares.

By configuring your Account Codes and Corporate IDs, the search engine automatically includes your negotiated contracts in the results alongside published fares. This core functionality ensures you can efficiently compare specialized net rates before choosing to Book on Hold or Issue ticket, removing the need for manual data entry during the search process. There are two main features where to configure this information.

**Corporate Section**: For Corporate fares and Traveller profiles, we offer a dedicated section where to include all related information with corporate discounts, companies and traveller details. Please visit [this link](https://support.airgateway.com/kb/article/61/corporates-manage-client-accounts-and-loyalty-programs){target="_blank"} for more information.

**Presets**: For special fare types that are not strictly tied to a specific corporate client (like general marine or tour operator fares), the agency can set up Presets in the settings. These presets define the fare type, the airline, and any required qualifier.

 
 :::Info
A detailed list of elements (i.e. account id) required per airline is [available here](https://support.airgateway.com/en-US/kb/article/62/special-fares-per-airline){target="_blank"}. You'll find the general settings that each of the airlines requires in order to access the special fares.
 :::

### Preset Management Overview

**Visibility**: All agents within the same agency access the same centralized list of presets.

**Permissions**: Only users with Manager roles can create or customize presets.

**Access**: Open the Presets page via the search filter dropdown or through the Settings menu at the top of the BookingPad Agent Desktop.
 
![options-presets.png](https://support.airgateway.com/kb/attachment/article/64/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI0MiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.wFdmdFv6DggJH51U9wkQGSawlMNUHMVMVjEK9n51q7U)

### Setup Procedure

To configure a preset for a specific contract, navigate to the Presets page and click the Add New. Below are the fields that can be completed:

* **Title**: Enter a descriptive name for the preset
* **Airline**: Select the carrier providing the negotiated content.
* **PTC**: Map the Passenger Type Code to the airline's requirements.
* **Preference**: Select the underlying fare type (e.g., TO, Marine, Humanitarian).
* **Qualifier**: Enter the Account ID, Contract ID, or Promo Code provided by the airline.
* **Amadeus Pricing Modifier**: by using this field, you can access these fares directly on our BookingPad Chrome Extension (our fares comparison tool with Amadeus GDS). Check [this link](https://support.airgateway.com/en-US/kb/article/30/access-presets-in-bookingpad-chrome-extension){target="_blank"} for more details. 
 
 ![Presets-create.png](https://support.airgateway.com/kb/attachment/article/64/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE4MiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.r-GI0ynPsN1XNzr13pKWZQuYsgtqempQi1gwTIewHls)

Remember to click to update and save changes.

 :::Info
Note: Requirements are determined by the airline; some carriers may only require an Account ID, while others require both a Preference and a Qualifier.
 :::

### Default and Mandatory Presets

Managers can define how Negotiated Fares are prioritized during the shopping process:

* **Default**: Automatically selects a preset when the search page opens. The agent can deselect it or choose different presets.
* **Mandatory**: Forces a specific preset to be active for every search. Agents cannot deselect a mandatory preset.

 ![default-mandatory.png](https://support.airgateway.com/kb/attachment/article/64/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE4MSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.B_epUbDOa6iJ9aC-oFczvYYWfIKHXELG4XhBZe7J9dY)

### Search Logic and Results

When you select a preset, BookingPad modifies the search request to pull specific contract rates:

* **Targeted Search**: A specific request is sent to the airline using the stored Negotiated Fare credentials.
* **Generic Search**: A standard search is sent to all other selected Providers.
* **Removal of Duplicate Searches**: If a preset is active for an airline (e.g., Lufthansa), the system will only request the negotiated content for that carrier and skip the generic search to avoid duplicate results.

 :::Info
Example: If you select a Nego Fare preset for BA and set Providers to "All,", search will be sent as follows: Special fare with LH, AF, BA + generic search for all other Providers EXCEPT for LH, AF, BA
 :::

A warning message is included in the presets section, informing that only mandatory or default option can be chosen for each preset, and limitations for the number of total presets selected at once:
 
 ![presets-message-mandatory.png](https://support.airgateway.com/kb/attachment/article/64/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE2NSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.uh6CpctocQeF0b8cU5uR9sQ9wlyP_nmQE_5pFvMSFcY)




# BookingPad Orders: Status Reference Guide

All reservations and associated ticketing actions are managed within the Orders section of BookingPad. The status of an order, displayed on the right-hand side, indicates its current state in the booking.
 
 ![order-status.png](https://support.airgateway.com/kb/attachment/article/47/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyMyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.pF5YCbL-OLuTf_csYY8-u_hzg1p8QqPBiG2VEoztxQ0)

## Core Order Statuses

The table below provides a detailed explanation of each possible order status:

| Status | Definition | Ticketing / Flight Impact |
| ------ | ------ | ------ |
| **On Hold** | The reservation (PNR/Order) has been created but the ticket has not been issued. No payment has been processed | Ready for Issue ticket. Subject to Ticket Time Limit (TTL) |
| **Issuing** | Payment has been processed or authorized, and the system is currently attempting to issue the ticket | Awaiting ticket number (ETKT) confirmation |
| **Ticketed** | The ticket has been successfully issued | Ready for travel or subsequent changes/actions. |
| **Voided** | The ticket was canceled shortly after issuance, typically within 24 hours or according to specific airline policy | Ticket is invalid and cannot be used for travel |
| **Canceled** | The reservation or ticket has been formally canceled | Order is closed |
| **Expired** | The Ticket Time Limit (TTL) passed before the Issue ticket action was completed | The reservation is typically lost or requires re-booking |
| **Blocked** | An external modification was made to the reservation outside of the BookingPad environment | No further changes or actions are possible within BookingPad. Action must be handled directly with the airline |
| **Unused** | All flights associated with the ticket have not been flown | May be eligible for refund or future use according to fare rules |
| **Started** | At least one flight segment in the order has been flown | The order is actively being consumed by the traveler |
| **Completed** | All flight segments in the order have been flown | The transaction is complete |
| **Unknown** | An issue happened trying to obtain last booking status from the airline | Refresh order and in the case the issue persists, contact the airline |


# Book on Hold: Create and Manage Pending Orders

**Book on Hold** is an essential function that allows the creation of a pending order without requiring immediate payment. This order has not been Issued (paid) and will expire after a defined time period. Agents typically use this option to provide offers to clients before proceeding to Issue ticket upon approval.

## Create an Order On Hold

Most airlines support the Book on Hold option.

Procedure:
 
1. **Check Eligibility**: To confirm which airlines offer the On Hold option, refer to the list of Airlines [on this page](https://airgateway.com/providers/){target="_blank"} and check the Issuing column.
2. **Check if On Hold permitted**: During the shopping process, check the bottom of the chosen order details to see if the Book On-hold option is available.

![onhold-message-permitted.png](https://support.airgateway.com/kb/attachment/article/39/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI4NSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.PF9xJvO6Pzn2DsF-6t6huzo5GCyHBXvp2BeIlBc13BY)

![onhold-notallowed-messsage.png](https://support.airgateway.com/kb/attachment/article/39/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI4NyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.BZAfiZh6OwLNuP2HfKWWADnhUH2PhuNbjNRYX_-Prpc)

3. **Complete Order**: After entering the passenger details, click the Book On-hold button. Ancillaries can be added at this stage or at any point after the order is Issued.
 
![bookOnHold.png](https://support.airgateway.com/kb/attachment/article/39/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIwOSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.bOa9Yn0fctmmWFAVcfK1NmTkR-vCfGUZufOnCGWzBgQ)

### Order Expiration and Time Limits

The expiration period for a pending order is set by the airline and can vary significantly based on the carrier, fare class, and time of booking.
 
 ![BookOnHold-timeLimits.png](https://support.airgateway.com/kb/attachment/article/39/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIxMCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.m3RdseGprJEeGXhEd1LCr0YCRnalkGO2UNC3lgW5O7U)

**Expiration Details:**

*  Navigate to your Orders and select the On Hold filter.
* Click on the desired order.
* The expiration details will be visible below the order summary.

**Two time limits:** In some cases, you may see two expiration times: one for the Order validity and one for the Price guarantee.

 
 :::Warning
Some airlines may only provide a ticketing time limit (order expiration) without including a specific fare time limit. We recommend performing an order refresh after a few minutes to capture any updates from the airline, as time limits may change shortly after the initial booking.
 :::

![EK-TicketingTimeLimit.png](https://support.airgateway.com/kb/attachment/article/39/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI4MyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.0iRUuQixDNL5YE9NvBI5H5Gf84gyui3OpioY4afckSE)

![EK-TicketingTimeLimit-2.png](https://support.airgateway.com/kb/attachment/article/39/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI4NCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.FYNFnfoQlkSj8Opxhdf6u80TotxAdl9Jj7L8xiipUp8)
 
:::Info
You can export the order to PDF to share the booking details with the passenger.
 :::

### Order Cancellation

If the airline permits cancellation of an On Hold booking, the Order Cancel button will be visible in BookingPad.
 
 ![OnHold-Cancel.png](https://support.airgateway.com/kb/attachment/article/39/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIxMSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.veiwe-4fDTkI5BgjoP6AxPd--gSwmbUrtj4kFxPaeJc)

If the airline does not allow manual cancellation, the button will not appear, and the order will automatically expire after the defined period.

### Issuing the Ticket (Payment)

To transition the pending order to a finalized, paid status (Issue ticket), follow this procedure:

1. Click the Order Issue button.
2. Ensure all required data and remarks are accurately completed. The system will notify you if any mandatory fields are missing.
3. Choose the preferred Form of Payment (FOP): BSP (agency cash), card (credit and debit cards), easypay, or UATP.
4. Click Proceed to finalize the payment and issuance.      
 
 ![Payment_options_Order_Issue.png](https://support.airgateway.com/kb/attachment/article/39/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIxMiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.Xv8faL5YuRfwSpoZXa8lj2Y7HMMw1ALruPe0j67knos)

The order status will update from On Hold to Ticketed in BookingPad. You will retain the ability to add remaining seats and services or make changes to the order.



# NDC Servicing per Airline

**Overview of NDC servicing per airline**

This article provides a comprehensive table of airline-specific support channels and procedures for managing additional post-booking servicing requests that fall outside the automated capabilities of BookingPad.

| Airline | Order Split | Refunds | Rebooks | Rebook with EMDs | Refund Disrupted Orders | Rebook Disrupted Orders | NDC Agency Portal | Help Desk |
|--------|-------------|---------|---------|-------------------|--------------------------|--------------------------|-------------------|-----------|
| BA | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | [IAG Portal](https://agencyportal.iag.cloud/login) | [BA Help Desk](https://ndc.ba.com/contact-us) |
| IB | ❌ | ✅ | ✅ * | ❌ | ✅ | ✅ | [IAG Portal](https://agencyportal.iag.cloud/login) | [IB Help Desk](https://transform.atlassian.net/wiki/spaces/NDCDOC/pages/3612180488/Iberia+NDC+Support) |
| AF/KL | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | [AgentConnect Biz](https://www.secure.afkl.biz/FR/fr/local/process/prehome/choose_country.wadis?marche=FR) | [AFKL Help Portal](https://www.afkl.biz/trade/s/support-detail?Id=000002288&language=en_US&country=RO) |
| LHG | ❌ | ✅ | ✅ * | ❌ | ❌ | ❌ | [SPRK](https://dcwebc.farelogix.com/sprk-lhg/User/Login?ReturnUrl=%2fsprk-lhg%2f) | [Lufthansa Experts](https://www.lufthansaexperts.com/choose_country.php) |
| VY | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | [Vueling Agency Portal](https://tickets.vueling.com/AgencyHome.aspx) | [ndc.commercial@vueling.com](mailto:ndc.commercial@vueling.com) |
| AY | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | [FAST Portal](https://fast.finnair.com/) | [Finnair Help Desk](https://easy.finnair.com/en/finnair-ndc/agent-support) |
| A3/OA | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | [A3 SPRK](https://a3oa.farelogix.com/sprk/User/Login?ReturnUrl=%2fsprk) | A3 Help Desk |
| TK | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | [TK AgencyPortal](https://tkconnect.thy.com/login) | [TK Help Desk](https://www.turkishairlines.com/en-int/any-questions/get-in-touch/) |
| SQ | ✅ | ✅ | ✅ * | ❌ | ✅ | ✅ | [Agent 360 SQ](https://agent360.singaporeair.com/en_UK/us/NDC) | [Krisconnect@singaporeair.com.sg](mailto:Krisconnect@singaporeair.com.sg) |
| QF | ✅ | ✅ | ✅ * | ❌ | ✅ | ✅ | [QF SPRK](https://qf.farelogix.com/sprk/User/Login?ReturnUrl=%2fsprk) | [AgencyConnect](https://www.qantas.com/agencyconnect/eu/en/support/contact-us.html) |
| AA | ✅ | ✅ | ✅ * | ❌ | ❌ | ❌ | [AA SPRK](https://dcwebc.farelogix.com/sprk-aa/User/Login?ReturnUrl=%2fsprk-aa%2f) | [AA Help Desk](https://ssc.aa.com/siebel/aaedocsENU/AAEContactUs.html) |
| UA | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | [UA SPRK](https://dcwebc.farelogix.com/sprk-ua/User/Login?ReturnUrl=%2fsprk-ua%2f) | [UA Help Desk](https://jetstream.united.com/#/sub-link/a0F36000006V2vmEAC) |
| HA | ✅ | ✅ | ✅ * | ❌ | ❌ | ❌ | [HA SPRK](https://ha.farelogix.com/sprk/User/Login) | [HA Agency Portal](https://haconnect.hawaiianairlines.com/s/login/?startURL=%2Fs%2F%3Ft%3D1637073885055) |
| EK | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | [EK SPRK](https://sprk.accelya.io/ek/prod/User/Login?ReturnUrl=%2fek%2fprod%2f) | [EK Partners Help](https://www.emirates.partners/) |
| EY | ✅ | ✅ | ✅ * | ❌ | ❌ | ❌ | [Agency Portal EY](https://www.etihadhub.com/en-ae/login) | NDCsupport@etihad.ae |
| 4Z | ✅ | ✅ | ✅ * | ❌ | ❌ | ❌ | [4Z SPRK](https://sprk.accelya.io/4z/prod/User/Logout/?session=n) | NDCdesk@flyairlink.com |
| CM | ✅ | ✅ | ✅ * | ❌ | ❌ | ❌ | [SPRK](https://cm.farelogix.com/sprk/User/Login?ReturnUrl=%2fsprk%2f) | [CM Call Center](https://www.copaair.com/es-gs/atencion-al-cliente/centro-de-llamadas/) |
| LA | ✅ | ✅ | ✅ * | ❌ | ❌ | ❌ | Inhouse | [support_ndc@latam.com](mailto:support_ndc@latam.com) |
| BT | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | Inhouse | [BT Help Desk](https://www.airbaltic.com/en/help-and-contact/) |
| AER | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | Inhouse | [global-ops@aer.de](mailto:global-ops@aer.de) |
| TAP | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | [TAP Agencies](https://www.tapagents.com/Partners_UI/HomePage.aspx) | |
| LOT | ✅ | ✅ | ✅ * | ❌ | ❌ | ❌ | Inhouse | [LOT Call Center](https://www.lot.com/es/en/help-center/contact/lot-offices/) - agent.helpdesk@lot.pl |
| UX | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | Inhouse | [Air Europa Call Center](https://www.aireuropa.com/ot/en/aea/customer-service.html) |
| DE | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | [Condor Extranet](https://agent.condor.com/extranet/en/home/secure/login.xhtml?_gl=1*334pt9*_ga*MTE0MDgzNjY4OS4xNzcxMDAwOTEx*_ga_FPR0JQ8CJX*czE3NzEwMDA5MTAkbzEkZzEkdDE3NzEwMDEwNzgkajUwJGwwJGgxOTEyNjc2NDQz*_fplc*ZDZQajRIUFp4SkRRM1RXOThsbFZCUlF6enpzcFZkRU52aiUyRlM1WVo4OFJERFVNSDA2QTdJdFBCN1dISnFDRjAwbGRJZUlUWGk5Q3IlMkI2U3lYYnFBNjElMkI5U3FWcGpzeGwyd2hNazBzMW1iaVdWbkVYY3YwQTdnQVkyS2JYN0RnJTNEJTNE ) | |

## Servicing terminology
**Order Split** – division of passengers booked in one reservation into several reservations.
**Automated Refund** – tool that simplifies the refund by calculating and applying penalties automatically.
**Automated Rebook** – tool to rebook the passenger on an alternative flight and automatically reissue the ticket.
**Managing Disrupted Orders** – possibility to manage (refund or rebook) orders with disrupted flights.

 :::Info
Rebook marked with * its available only instant (not on hold)
 :::

Information about Low Cost Carrier contact center and manage booking channels, is available [here](https://support.airgateway.com/en-US/kb/article/87/low-cost-carriers-post-booking-management-and-airline-support-channels){target="_blank"}.

# Order Reprice

The Reprice function performs a fare validation on your existing order by calling the provider’s API. This ensures that the final price and offer details are current immediately before you proceed to ticketing.

If any changes are detected by the provider, the updated information will be displayed in BookingPad, allowing you to decide whether to continue with the Issue ticket process.

## Locating the Reprice function

The Reprice function is located on the final confirmation screen:

Click the Order Issue button at the bottom of the order details page.
The Reprice button will be visible next to the total amount on the resulting screen.

![image.png](https://support.airgateway.com/kb/attachment/article/59/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyNiIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.y1YDgbDOjEE64FGG4g2hGbefXiJR4b4Tbnyim_lwvmA)

**When to use Reprice**

The requirement for manual repricing depends on the specific airline provider’s rules:

* Automatic Repricing: Some providers, such as BA, enforce automatic repricing for all orders upon issuance, meaning the Reprice button will not be displayed in BookingPad.

![image.png](https://support.airgateway.com/kb/attachment/article/59/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyOCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.BPhwsseqZmBIuEBAqIttA4fWojz35pnbCI1lUEGjLhc)

* Manual/Conditional Repricing: Other providers, including those using the Accelya platform (A3, AA, CM, EK, HA, LHG, QF, UA), may require manual repricing depending on the time elapsed or changes in the fare conditions.

**Repricing Scenarios and Outcomes**

1. If the price did not change a message displays “Price didn’t change”. Just click Proceed to continue with the issuance.

2. When there are changes detected a comparison is displayed: the old offer (greyed out) and the new offer (bottom). Please be aware that changes may include fare type, fare conditions, or current offer features like baggage allowance.
If you accept the new offer, click Proceed to continue with Issue ticket. If you do not accept the change, you must void or cancel the order.

 ![old-new-fare.png](https://support.airgateway.com/kb/attachment/article/59/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI0MyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.Fpz2Qda-Y5OGgYCNeNik3EagsGoCRNa4OAB2ZLXl2Ak)

3. If the repricing is not required the issuance will be successful upon clicking Proceed, as no action will be needed.

4. When the repricing is required but skipped, there will be an issuance failure with a provider error message indicating that the order must be repriced. In this situation it will be needed to click Reprice, review the changes, and decide whether to proceed to issue the ticket or void/cancel the order. Review the new offer completely to confirm changes before proceeding with ticketing.

# Managing Multiple Agencies in BookingPad

## How to Switch Agencies

For agents with access to different agencies (and/or subagencies) you can easily swicth between them by following these simple steps: 

* **Access Profile:** Click on your profile icon (or email address) located in the top-right corner of the screen.

* **View Agencies:** A dropdown menu will appear, displaying a list of all agencies your account is currently associated with.

* **Select Agency:** Click on the name of the agency you wish to switch to.
 
 ![switch-agency.gif](https://support.airgateway.com/kb/attachment/article/28/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE4NSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.vUjEyLfugUx5tQX_tJPI3mlhD9TT2bvl1W_vMbX1iYw)

### What Updates when you Select another Agency

Upon selecting a new agency, the platform instantly updates your view and permissions to reflect the settings of the selected agency. The following elements will change:

**Your Role:** Your permissions (e.g., Booker, Issuer, Manager) will update based on the role assigned to you within the newly selected agency.

**Orders:** The Orders section will display only the bookings and transaction history created under the selected agency.

**Providers Available:** The specific airlines and NDC content providers available for searching and booking will update according to the contracts and configurations of the selected agency.


# First Steps

Once you have been granted access to our platform, you should have your username, agency, and password.

By using that information, you can access our agency portal and begin inviting and managing your agents on the platform.

You have an agency portal manual here.

### Developers information

Once you have been invited as a developer to your agency, please log in here.

If you visit the “Applications” tab, you’ll see all the enabled applications in that environment (including yours). If you click on the “Activate” button, you’ll get your unique and personal AGW NDC v1.2 key, which you can use to call our sandbox environment.
![image.png](https://support.airgateway.com/kb/attachment/article/7/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIiLCJvcmdpZCI6IjQ1MDAiLCJpc3MiOiJzdXBwb3J0LmFpcmdhdGV3YXkuY29tIn0.V6x8jBORHKFE15iEhr-Gsz4VIwWhvbpPDsE5OByUbO0)

Of course, these credentials that you have will allow you to log in to:

**Bookingpad**: https://web.bookingpad.net/

**Tracer**: https://tracer.airgateway.net/

If you want to get examples, the best way is to use BookingPad to do your use case and then go to Tracer to see the exchange of JSON API input and output.
![image.png](https://support.airgateway.com/kb/attachment/article/7/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMiLCJvcmdpZCI6IjQ1MDAiLCJpc3MiOiJzdXBwb3J0LmFpcmdhdGV3YXkuY29tIn0.eUUqsdeRX-gZeepNpml1_kZwgVD2YUdrw91HGE1KWZQ)
![image.png](https://support.airgateway.com/kb/attachment/article/7/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjQiLCJvcmdpZCI6IjQ1MDAiLCJpc3MiOiJzdXBwb3J0LmFpcmdhdGV3YXkuY29tIn0.xztXxLDDHQrE43PEmWWtnLMHgWZ-fcTy52aaUzdQEUk)

Apart from that, remember you have all our docs available at:
**Swagger doc**: https://api.airgateway.net/v1.2/swagger-ui/index.html

**Release notes**: https://airgateway.launchnotes.io/ It’s recommended that you subscribe to these updates.

**Postman examples**: https://github.com/AirGateway/postman-json-api

Just as a reminder, all the URLs that we use for the sandbox are “.net” domains. In production, we use “.com” and that should be the most notable change you need to make once you finish your integration.

If you need help, please open a ticket in our ticketing system tool: https://airgateway.bolddesk.com/support/tickets/create

# OrderPoll Endpoint: Efficient Order Retrieval and Synchronization

The `/OrderPoll` endpoint provides an efficient way to retrieve and synchronize orders from the AirGateway API. This endpoint is designed to replace the deprecated `/OrderList` endpoint and offers improved performance through advanced filtering, pagination, and cursor-based retrieval.

This approach not only simplifies the process of order synchronization for developers and businesses but also ensures that integrations have access to real-time order updates through a unified interface. 
## Parameters
The `/OrderPoll` endpoint accepts the following optional parameters:

• **nextCursor** (String) - When omitted, returns orders from the last month. When provided, returns orders that were modified since the previous request. It also saves the filters from the first request, meaning filters are not needed on subsequent requests. 
Example:
```
# First request with filter
GET /OrderPoll?subagencyName=MyTravelAgency

# Response includes nextCursor
{
  "nextCursor": "MDI0NDA3MzU3MQ==",
  "orders": [...]
}

# Subsequent request - filter automatically applied
GET /OrderPoll?nextCursor=MDI0NDA3MzU3MQ==
# This will automatically include subagencyName=MyTravelAgency filter
```

• **subagencyName** (String) - Filter orders by specific subagency name.

• **providers** (String) - Filter by providers. Multiple providers separated by commas (e.g., "BA,FR").

## Response Structure

The response includes the following fields:

• **nextCursor** - Cursor value for retrieving newer orders in subsequent requests, using the same filters used in the first request

• **orders** - Array of order objects containing id, pnr, createdAt (Unix timestamp), modifiedAt (Unix timestamp), and subagencyName

Orders are returned sorted by their modification timestamp (modifiedAt) in ascending order (oldest to newest).

## Usage Examples

**Basic Request (Last Month's Orders):**
```
GET /OrderPoll
```

**Next cursor request, using the same filters used in the first request:**
```
GET /OrderPoll?nextCursor=MDI0NDA3MzU3MQ==
```

**Filtered Request by Subagency:**
```
GET /OrderPoll?subagencyName=MyTravelAgency
```

**Filtered Request by Providers:**
```
GET /OrderPoll?providers=BA,FR
```

## Error Handling

Our API handles errors as follows:

• **HTTP 422 Bad Request** - Returned when the nextCursor parameter is in an invalid format.

• **HTTP 404 Not Found** - Returned when the subagencyName does not exist.

• **HTTP 200 OK** - Successful request with results. When no orders match the criteria, the response contains an empty orders array.

• **HTTP 540 Platform Maintenance** - When the AirGateway platform is undergoing maintenance, the API returns this specific error code.

## Key Features

**Cursor-Based updates:** Uses nextCursor parameter for efficiently fetching updates and eliminates the need to fetch all orders repeatedly.

**Advanced Filtering:** Filter by subagency name and specific providers, with the ability to combine multiple filters for precise results.

**Efficient Synchronization:** Retrieve only new or modified orders since last poll, reducing data transfer and processing overhead.

## Migration from OrderList

**Important Deprecation Notice:** The `/OrderList` endpoint will be fully decommissioned in **Sept 2025**. All integrations must migrate to `/OrderPoll` before this date.

To migrate from OrderList:

1. Update API calls to use `/OrderPoll` instead of `/OrderList`
2. Implement cursor-based fetching updates logic in your integration
3. Update response parsing to handle the new response structure
4. Test thoroughly to ensure compatibility
5. Monitor performance improvements

The new endpoint provides better efficiency, advanced filtering capabilities, and improved real-time synchronization compared to the legacy OrderList endpoint.

# Low-Cost Carriers: Post-Booking Management and Airline Support Channels

On this page, we provide details for Low Cost Carrier Agency portals, instructions on managing functionalities not supported via BookingPad, and official Contact Support channels. If you require further assistance, please consult the respective airline's website.

## Ryanair

**Ryanair Online Management**

To Access the Ryanair Servicing portal, [click here](https://www.ryanair.com/gb/en/lp/login?returnTo=%2Fmyryanair%2Fhome){target="_blank"}.

Ryanair requires all passengers to check in online to avoid additional fees at the airport. Use the following steps to manage contact details and documentation:

**Online Check-in**: Customers must complete their check-in online before arriving at the airport.

**Passenger Access**: If a personal email was used for the booking, the boarding pass is automatically available in the Ryanair app.

**Agency Email Management**: If an agency email was used, the agency can update the contact details via the Update Contact Information section of the Ryanair portal. This allows the passenger to view their booking.

**Booking Import**: Travelers can import the reservation into their personal Ryanair account if they have access to the email address used for the reservation.

**Digital Boarding Portal**: Ryanair are moving to 100% Digital Boarding Passes (DBP) from 12 Nov 2025. This means from Wed 12 Nov, all passengers will receive a DBP to their Ryanair App when they check-in online as paper boarding passes will no longer be issued. Online check-in can be completed on the Ryanair App. Please note that Ryanair requires the passenger to generate their boarding pass directly. Information [available here](https://help.ryanair.com/hc/en-ie/categories/38653074432913){target="_blank"}.

You can find more information available on the [Ryanair Help Center](https://help.ryanair.com/hc/en-ie/categories/38653074432913){target="_blank"} for specific troubleshooting and FAQs.

[Airline support channel](https://help.ryanair.com/hc/zh-cn/categories/12504593426961-Contact-Us){target="_blank"}
 
 :::Info
Ryanair sends email notification to the email included in the contact details and the cardholder email's field.
 :::

## WizzAir

#### Account Creation

If a booking is created using an email address that does not have an existing Wizz Air account, the airline will automatically generate one. The client should receive a separate "Wizz Air Welcome Email" with account details alongside their booking confirmation.

#### Agency Login

Wizz Air requires access via a logged-in account for all booking management. You may use your agency email to log in to the Wizz Air website. From there, you can:

* Manage existing reservations.
* Perform online check-in.
* Purchase ancillary services (bags, seats, etc.) directly.

[WizzAir Account login](https://www.wizzair.com/en-gb/profile){target="_blank"}

[Airline Contact center](https://www.wizzair.com/en-gb/help-centre/contact-us){target="_blank"}

## EasyJet

[Manage booking portal](https://www.easyjet.com/en/help/booking-and-check-in/managing-your-booking){target="_blank"}

[Help center](https://www.easyjet.com/en/help-centre/contact/contact-us){target="_blank"}

 :::Info
EasyJet sends notification emails to the email address registered in the initial request; if you would like these notifications to be sent to a different email address, please let us know by creating a ticket through our [support platform](https://support.airgateway.com/en-US/support/tickets/create){target="_blank"}.
There are two options: to choose an email where all notifications from Easyjet will be sent, or to be sent to the email included in the booking contact details.
 :::

## Jet2

[Manage booking portal](https://www.jet2.com/en/Login){target="_blank"}

[Help center](https://www.jet2.com/en/contact-us){target="_blank"}

## Transavia

Transavia does not require the agency or the passengers to create an account. To manage your booking, you can do it without login [here](https://partner.transavia.com/en-EU/home/){target="_blank"}, or by registering to My Transavia website [here](https://customerlogin.transavia.com/379fb04b-964b-4985-965c-2d9097eef215/b2c_1a_customer_signuporsignin/oauth2/v2.0/authorize?client_id=ed9a43b5-64fb-47b1-abac-bc510a1802e5&redirect_uri=https%3a%2f%2fwww.transavia.com%2fapi%2fpersonalaccountauth%2fcallback&response_mode=form_post&response_type=code&scope=openid+https%3a%2f%2ftransaviacustomerprod.onmicrosoft.com%2fshared-api%2fcustomer.profile.read&state=OpenIdConnect.AuthenticationProperties%3dyt7yuXrNY_U74-F0nK6LfqT_AyKQ6jYjKe3P2-yLWIQt664lICDDngLAAGj0fwGXTady6Hcxc14YAYoOUV3qUE1RKZZtddlG_rcrHPSW-5_ySBvXg5wElv1ytSNa5nnsgUaeXR0fr5mkIR6DpXlQxiOqn-8FHiBceqXEYN6hILRfMmspIlE7wCMXhD98oXUxQGKUNe_BhLvOO5R1_JUe1hOHX9X3IVFqw8TAN1QPsnwuJf4FMo3iomdWkAvznQ3uq9oklPxe-xC5ncGCvYcEUTZ3bfO__MjEbUyPutAG23GnEKx5zgoqXw9z-PYhv2mUHb43JfQ5X2P9fFRsSqaQZfjmm6TtZ7EjwSc7xn7FUuBCIJv5P8RfjqLqWmrpfywbNSLGv_FEIGmP8dJSvFOddwlklbPCh0XHf5rOIk4JvQQXmQzcVJuNLPUb05PFeLnuYBQrlLWG6ZktlpCkNFbO5OysK9e-Mhg3e-eAbRWcgTQ&ui_locales=en-uk&locale=en-uk&x-client-SKU=ID_NET&x-client-ver=1.0.40306.1554){target="_blank"}.




# Agency Management: Branding and Contact Information

You can customize your agency's profile by adding your corporate logo and contact information via the Agency Portal.

 :::Info
Access Requirement: Only users with Manager roles can access the Agency Portal (same login details as BookingPad).
 :::

### Agency Logo

To update your agency branding and details, follow these steps:

* Log in to the Agency Portal.
* Click on the Settings button located on the far right of the main menu.
 
![Settings-Agency-portal.png](https://support.airgateway.com/kb/attachment/article/77/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI0NyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.JS0CVr6otcmeJQ00DSKNK1q3gU9a8E5z808qSQE5T_Q)

* Select the Branding option from the menu.
* Upload your agency logo by clicking the Upload New Logo button.
 
![branding.png](https://support.airgateway.com/kb/attachment/article/77/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI0OSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.S7rLCLkln7donFPo32UsD_3wx_FB0use3kQXKU8GX5Q)

### Agency Contact Details

On the same tab (settings) Navigate to the Agency Information section to enter your contact and business details.

Scroll to the bottom of the page and click Save to apply the changes.

![Agency-portal-agency-information.png](https://support.airgateway.com/kb/attachment/article/77/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIyNSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.LyrHCPJP_RVz8M-QkFfnvHzhenFjo99VxY5ML5_xfV4)

Now you’re all set! Your agency details and logo will be used in BookingPad to display the logo on the PDF tickets, and the notifications sent by AirGateway and the airlines to the agency. 

If you need further assistance, feel free to reach out to our [support team](https://support.airgateway.com/){target="_blank"}.



# GDS Downstream files for Mid/Backoffice synchronisation (AIR-MIR files)

The AGW platform can generate AIR/MIR files that enable you to sync bookings with your existing back office, ERP/accounting software.

 :::Info
These files are made available via an SFTP interface, where each agency has its own credentials to access its SFTP account.
 :::

#### Supported Downstream Formats

- **AIR** (Amadeus Interface Record) 
- **MIR** (Machine Interface Record)

These files are essential for enabling your downstream process, as they are automatically transferred to your mid- or back-office system to ensure accurate tracking and reconciliation of all orders created in BookingPad. 

Detailed technical information on supported versions (including AIR v205) and transaction types is available in our [Downstream Reference Guide](https://support.airgateway.com/en-US/kb/article/84/downstream-reference-guide-supported-versions-and-transaction-file-types){target="_blank"}.

## How it Works

The generated AIR/MIR files will be securely uploaded to this dedicated SFTP directory. Your agency is then responsible for configuring your internal program (e.g., your mid/back-office system) to download these files from the FTP directory for processing automatically. We recommend using a tool like [WinSCP](https://winscp.net/eng/download.php){target="_blank"} as an example SFTP client program.

## Setting Up the Automated Downstream Process

Establishing an automated transfer of AIR/MIR files requires coordination between your agency and AirGateway. The process is initiated as follows:

* Request Downstream Setup: Contact our operations team by submitting a ticket on our [Support platform](https://support.airgateway.com/){target="_blank"}.

* **AirGateway Setup (AGW)**: Our team will configure the file generation process within the AirGateway system.

* **SFTP Setup**: We will establish a secure File Transfer Protocol (SFTP) directory for your agency.

## Regenerating AIR/MIR Files from BookingPad

In situations where a file needs to be re-sent or was not correctly transferred, you can manually regenerate the AIR/MIR files directly within BookingPad:

1. Navigate to the 'Exports' function within the platform.

 ![exports-dropdown](https://support.airgateway.com/kb/attachment/article/25/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjQ5Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.fa-d-U1yfmev6vm1zMNPg6AoMVKNY7hs0cl0l65wG0A)

2. Select 'Files' from the menu.
3. Choose the specific file or files you wish to regenerate.
4. Once the file is generated, a new log entry recording this action will be created for tracking purposes.
  
 ![orders-log.png](https://support.airgateway.com/kb/attachment/article/25/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjUwIiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.9dj2dTgpnLj7AHOnUFoJIx-sHgCj8lafdkAYd6pGJjo)




# Order Refresh: Update Order Details

The Order Refresh (Retrieve) function updates an existing order and updates the details that are outdated or missing from the initial view.

## When to Use Order Refresh

It is essential to use the Order Refresh function anytime the order data may be incomplete or if an external action has changed the order status and details, but these changes are not yet reflected in the system.

 ![Notificatons-display.png](https://support.airgateway.com/kb/attachment/article/45/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijk1Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.oBcWtERpmsGRAGHsNzRklUlIC0zqy0fExwrZiuew_7A)

### Examples of when to refresh

* A flight was disrupted, but details about the change (e.g., new times) have not been provided in the order view.
* A Book on Hold booking was ticketed, but the order status has not changed, and ticket numbers are not displayed.
* Data appears incomplete due to a previous system error or delay.

### Procedure for Order Refresh

1. Open the affected order.
2. Locate and click the arrow icon (refresh icon) at the top right of the order page.
3. A pop-up will display a confirmation or notification that Order Recovery has been activated.
4. The order will be updated, and any missing or outdated information should now be displayed correctly.

![Add-arrow-refresh-order.png](https://support.airgateway.com/kb/attachment/article/45/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI4OCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.lF8WCv19JoAIK0ThbNibF8B41edfVOdN8kzDb-Lk5xQ)

 :::Info
The Order Refresh utilizes the Order Recovery mechanism to pull the most current data directly from the supplier system, ensuring complete and accurate display of the order status.
 :::





# Order Details: Ticket and Coupon Data

The Tickets Information section within Order Details provides comprehensive data regarding issued tickets and their associated flight coupons.

## Viewing Ticket Information

The following details are available for each ticket number assigned to the passenger:

* Ticket Number
* Date of Issue
* Price

![Ticket-details.png](https://support.airgateway.com/kb/attachment/article/48/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijk2Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.jGG2DtkynK1jZrZ4TNQrO61pbv-3-FIC8z_9sLjkwtE)

### Accessing Coupon Details

To view detailed segment information for a specific ticket, click on the Coupons bar. This expands the section to show details for each flight segment (coupon) attached to the ticket.
 
![Coupon-details.png](https://support.airgateway.com/kb/attachment/article/48/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijk3Iiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.kKKgVF63KVYXliMSUyDXsu_vH7qb5WDMIUrBHzW_igc)



# AirGateway Support: Scope and Limitations

This article details the scope of support provided for issues related to BookingPad and the Chrome Extension (GDS-BookingPad comparison tool). We focus on capabilities within the desktop platform, but cannot assist with external airline portals, GDS systems, or technical issues related to the AirGateway API partner integrations.

#### Shopping and Fares

We provide guidance on obtaining and comparing fares within BookingPad.

| We Can Help With | We Cannot Help With |
| ------ | ------ |
|  ✅ How to obtain Nego and private fares in the BookingPad Agent Desktop using Presets | ❌ Support for external Airline NDC Portals (e.g., SPRK, IAG Portal, etc.) |
| ✅ Comparison of NDC fares available in the Airline NDC Portal versus those in the BookingPad Agent Desktop | ❌ Comparisons to GDS/EDIFACT, airline websites, other OTAs, or metasearch fare results |

#### NDC Servicing Actions
Our support is focused on guiding you through the servicing workflow in the BookingPad Agent Desktop. We will provide assistance but cannot perform the actual actions for you.

| We Can Help With | We Cannot Help With |
| ------ | ------ |
| ✅ Access and login problems for your BookingPad Agent Desktop (mandatory 2FA setup is required for all logins) | ❌ Access to Airline-owned NDC Portals (e.g., SPRK, IAG Portal, etc.) |
| ✅ Guidance on how to perform [servicing actions](https://support.airgateway.com/kb/article/23/ndc-servicing-per-airline){target="_blank"} on NDC bookings (e.g., voluntary changes, cancellations) | ❌ Determining what servicing actions can be done on bookings within external Airline NDC Portals |
| ✅ Providing live, step-by-step assistance on how to execute servicing actions on NDC bookings within the BookingPad Agent Desktop | ❌ Performing servicing actions on bookings (e.g., cancellations, rebooking) on your behalf |
| ✅ Providing airline NDC Helpdesk contact details | ❌ Contacting the airline to request servicing actions for your bookings |

#### Airline Disputes (ADMs, Refunds, etc.)

| We Can Help With | We Cannot Help With |
| ------ | ------ |
| ✅ Performing a quick technical analysis to determine the root cause of an issue and identify responsibility (e.g., system failure vs. agency error) | ❌ Initiating or managing a dispute on behalf of the agency. This process must be handled via BSP |
| ✅ Providing the relevant XML traces and evidence to the agency to support a BSP dispute  | ❌ Chasing airlines for a solution or status update regarding a dispute |

#### BookingPad Browser Extension

The browser extension is a technical tool designed to read fare data from specific Amadeus displays.

| We Can Help With | We Cannot Help With |
| ------ | ------ |
| ✅ Problems with the extension while operating within Google Chrome | ❌ Problems with the extension while operating within other browsers (e.g., Edge, Firefox) |






# BookingPad Navigation

This guide covers the main sections and essential settings available upon logging in to the BookingPad platform.

## Platform Access

You can sign in to BookingPad [here](https://web.bookingpad.com/){target="_blank"}, following the login instructions that were sent in the registration email.

## Main Navigation Sections

Once logged in, you will find the main tools of the platform organized in these primary sections:

### Shop (The Main Search Interface)

This is the first screen you see and is used for searching flight offers.

Search Bar: Search for offers using either the airport code or the city name.

 :::Info
For a detailed overview of all search options, please refer to [this article](https://support.airgateway.com/kb/article/57/subagencies-setup-and-management-overview){target="_blank"}.
 :::
 
 ![webbookingpadshop](https://support.airgateway.com/kb/attachment/article/24/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjUxIiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.zrZozZfX8PWkfgB8kfbWKOqz77wpxKaNAgXLIEK4HQk)

### Orders

This section is your central hub for managing all bookings.

* **Status Filters**: Easily locate orders by filtering them based on their current status (e.g., Active, Cancelled, Voided).

* **Search Function**: Use the "**Search**" option on the right to find specific orders quickly using criteria such as **PNR**, **Order ID**, or **Passenger Name**.
 
 ![orders-table](https://support.airgateway.com/kb/attachment/article/24/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjUyIiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.rKkM1GZCgc8EgG48OrxImsD2K43Dm1zvzifp5kdFCSI)

### Subagencies

If your primary agency manages multiple branches, this section provides a comprehensive overview of orders placed by those subagencies. Visit [this page](https://support.airgateway.com/kb/article/57/subagencies-setup-and-management-overview){target="_blank"} for more information.
 
 ![sub-agencies](https://support.airgateway.com/kb/attachment/article/24/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjUzIiwib3JnaWQiOiI0NTAwIiwiaXNzIjoic3VwcG9ydC5haXJnYXRld2F5LmNvbSJ9.H4ebHZ3C_mjfmQ7QZp16kLQIuEP94fsUquD3lHdE-68)

### Account and Management Tools (The Settings Icon)

On the top right corner of the platform, next to your email address, you will find the Cog Icon. Clicking this icon grants access to essential administrative and personalization options:
 
 ![settings-BP.png](https://support.airgateway.com/kb/attachment/article/24/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE4NyIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.QG6KZcEmNZAbu8vaSCtFoyx52UAk35HxxHB8STAyqG8)

### Agents Management

Use this section to manage all agents who have access to your BookingPad account.

**Agent Roles**. Each agent is assigned one of three specific roles, determining their capabilities:

* Booker: Can shop for flights and create on-hold bookings.
* Issuer: Can shop for flights and issue (ticket) orders.
* Manager: Has full authority, including all Booker and Issuer actions, plus the ability to manage other agents (invite/delete).
* Consultant: same functions as Issuers, just for their own bookings.

### Subagencies Management

This feature allows you to administer and manage your agency's multiple branches directly within BookingPad.

Invite New Subagency: Click the “Invite New Subagency” button, fill in the Agency Name and Manager Email, and click “Invite” to complete the process.

### Settings

Use this area to customize your platform experience. You can change account-wide settings such as:
* Search by airport name preference
* Default Currency
* Date Format
* Preferred stops filter
* Country phone code

 ![settings-modal.png](https://support.airgateway.com/kb/attachment/article/24/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE4OCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.4vT8YETGOu5gxL33wd-hhbSR400UN066UnR9GEcxL4E)

### Account Information

Click on your account email to view a list of Your Agencies (and switch between them) or to find the Logout option.

 ![list-of-agencies.png](https://support.airgateway.com/kb/attachment/article/24/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE4OSIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.zf-CcfyzLGRWUWjTSaakriihtl4y2kthga1Z9dmE2nE)

### Chat

A chat widget that allows you to contact the support team during business hours.

 ![chat-icon.png](https://support.airgateway.com/kb/attachment/article/24/inline?token=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE5MCIsIm9yZ2lkIjoiNDUwMCIsImlzcyI6InN1cHBvcnQuYWlyZ2F0ZXdheS5jb20ifQ.q2Q2Tv_7Jm3lpH7nlk_z9ADVuGBQL_hWSbEFRFTxrX8)





