Introduction Last updated: 2025-01-15

Welcome to our Flight Booking API! Our API provides developers with a powerful set of tools to integrate flight booking functionality into their applications, allowing users to search for flights, view flight details, make reservations, and manage bookings seamlessly.

With our API, developers can access a vast database of airlines, routes, schedules, and prices to provide users with comprehensive flight options tailored to their needs. Whether you're building a travel app, a booking platform, or integrating flight booking features into your existing service, our API offers the flexibility and reliability you need.

New Feature: Interaction Tracking

Version 2.0.0 introduces interaction tracking capabilities that allow you to monitor complete user journeys across multiple API calls. Each API response now includes an x-interaction-id header that you can use to track related requests and analyze user behavior patterns.

Key features of our Flight Booking API include:
  1. Search and Filter: Easily search for flights based on various criteria such as destination, departure date, airline, and price range.
  2. Flight Details: Retrieve detailed information about flights, including departure and arrival times, duration, layovers, aircraft type, and more.
  3. Booking Management:Enable users to make flight reservations, modify bookings, cancel flights, and view their booking history.
  4. Authentication and Security: Secure authentication mechanisms ensure that only authorized users can access sensitive booking information.
  5. Real-Time Updates: Receive real-time updates on flight status, schedule changes, and ticket availability to keep users informed.
  6. Customization: Customize the API integration to match the look and feel of your application, providing a seamless user experience.

Our Flight Booking API aims to simplify the flight booking process for developers and users alike, offering a reliable and efficient solution for all your travel needs. Get started today and empower your application with the ability to book flights from anywhere in the world!

Get Started with our Swagger Get Started with our Postman Collection Postman environment

Authorization

The Authorization header is mandatory for all API requests and is used to authenticate the client with the server. It should include the access token obtained from the "Get Token" endpoint. This access token serves as a bearer token and grants the client permission to access protected resources. It is essential to include this header in all API requests to ensure proper authentication and authorization. Without a valid access token, requests to other endpoints will be rejected. Ensure that the access token is securely stored and transmitted, as it provides access to sensitive data and operations.

Get Token Endpoint

The "Get Token" endpoint allows to obtain an access token for authentication and authorization purposes. This endpoint is typically used in OAuth 2.0 authentication flows to acquire a token that grants access to protected resources.

Endpoint

  • URL: /api/auth/token
  • Method: : POST
  • Content Type: application/json
Sample Request:
                  
  {
    "clientId": "your clientId",
    "clientSecret": "your clientSecret"
  }
                  
                
Request object description:
clientId* String A unique identifier assigned to the client application by the authorization server. This identifier is used to associate the client application with its registered information on the server.
clientSecret* String A confidential secret known only to the client application and the authorization server. This secret is used to authenticate the client application to the authorization server when requesting an access token. It must be kept secure and never exposed to unauthorized parties.

Note

All properties marked with an asterisk (* ) are required fields. Please ensure that you provide values for these mandatory fields when making requests to the API endpoints. Missing required fields may result in validation errors

Sample Success Response:
                  
  {
    "status": "SUCCESS",
    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "token_type": "Bearer",
    "expires_in": 3600
  }
                  
              
Sample Error Response:
                  
  {
    "status": "ERROR",
    "message": "INCORRECT_CLIENT"
  }
                  
              
Response object description:
status String Indicates the status of the token retrieval operation. "SUCCESS" suggests that the operation was successful. "ERROR" suggests that the operation was not successful
access_token String The generated access token. This token is used to authenticate and authorize requests made by the client application to access protected resources on behalf of the user. It typically has a limited lifespan and must be included in the authorization header of API requests.
refresh_token String A token used to obtain a new access token when the current one expires. It provides a way to maintain ongoing access to resources without requiring the user to re-authenticate. This token should be kept secure as it holds sensitive authorization information.
token_type String Specifies the type of token issued. In this case, "Bearer" indicates that the token is a bearer token, which means it can be used by anyone who possesses it to gain access to protected resources.
expires_in Int The duration of time in seconds for which the access token is valid. After this period elapses, the access token will no longer be accepted for authentication, and a new one must be obtained.
message String | String[] Provides additional information about the error encountered during the token retrieval process. In this case,
  • INCORRECT_CLIENT : indicates that the provided client credentials (clientId and clientSecret) were incorrect or invalid
  • NO_CLIENT_EXIST : Indicates that no client exists with the provided credentials (clientId and clientSecret).
  • INTERNAL_SERVER_ERROR : Indicates that an internal server error occurred during the token retrieval process, and the operation could not be completed successfully.

Note

It's essential to store the client ID and client secret in a secure environment. Treat them as sensitive information and avoid hardcoding them directly into your code or exposing them publicly. Consider using environment variables or secure storage mechanisms provided by your platform to protect these credentials from unauthorized access.

Note

Please note that access to all API endpoints requires authentication using a token. You'll need to include your authentication token in the request headers for each API call. Without the token, access to the API endpoints will be denied. Make sure to include the token in your requests to ensure seamless access to the desired functionalities.

Flight Booking API

The Flight Booking API empowers users to book flights seamlessly by providing a straightforward interface to reserve seats, confirm bookings, and manage reservations efficiently. This API streamlines the flight booking process, enhancing the user experience and facilitating travel arrangements.

Flight Search

The Flight Search API enables users to search for available flights based on various criteria such as departure and arrival locations, travel dates, preferred airlines, and cabin class. This API provides a convenient way to retrieve flight information and facilitates the booking process for travelers.

Endpoint

  • URL: /api/v1/booking/SearchFlight
  • Method: : POST
  • Content Type: application/json
  • Authorization: Bearer <token>
Sample Request:
                  
  {
    "origin": "ADD",
    "destination": "DXB",
    "departureDate": "2024-06-06",
    "returnDate": "2024-06-08",
    "passengers": 1,
    "agencyLabourId" :"12345"
  }
                  
                
Request object description:
origin* String This field specifies the airport code for the departure location. It should be provided in the International Air Transport Association (IATA) format
destination* String This field specifies the airport code for the destination location. Similar to the origin, it should be provided in the IATA format.
departureDate* String This field indicates the date of departure for the flight. It should be in the format "YYYY-MM-DD", representing the year, month, and day of the departure.
returnDate String If applicable, this field represents the date of return for the flight. It follows the same format as the departure date ("YYYY-MM-DD").
passengers* Int This field specifies the number of passengers traveling on the flight. It is a numeric value, with a minimum of 1 passenger required.
agencyLabourId* String This field specifies the selected travel agency Labour Id.

Note

All properties marked with an asterisk (* ) are required fields. Please ensure that you provide values for these mandatory fields when making requests to the API endpoints. Missing required fields may result in validation errors

Sample Success Response:
                  
    {
      "status" :"SUCCESS",
      "responseID": "IRO31PYWYT4E1LX",
      "outbound": [
        {
          "flightId": "FLT001",
          "flightOfferId": "OFFER001",
          "departureAirport": {
            "airportCode": "DXB",
            "airportName": "Dubai International Airport"
          },
          "arrivalAirport": {
            "airportCode": "ADD",
            "airportName": "Bole Addis Ababa International Airport"
          },
          "flightSegment": [
            {
              "departureAirport": {
                "airportCode": "ADD",
                "airportName": "Bole Addis Ababa International Airport"
              },
              "departureDate": "2024-06-06",
              "departureTime": "00:10",
              "arrivalAirport": {
                "airportCode": "JED",
                "airportName": "King Abdulaziz International Airport"
              },
              "arrivalDate": "2024-06-06",
              "arrivalTime": "02:40",
              "flightAircraft": "787",
              "flightNumber": "ET402",
              "flightDuration": "PT2H30M"
            },
            {
              "departureAirport": {
                "airportCode": "JED",
                "airportName": "King Abdulaziz International Airport"
              },
              "departureDate": "2024-06-06",
              "departureTime": "07:10",
              "arrivalAirport": {
                "airportCode": "DXB",
                "airportName": "Dubai International Airport"
              },
              "arrivalDate": "2024-06-06",
              "arrivalTime": "11:15",
              "flightAircraft": "320",
              "flightNumber": "XY501",
              "flightDuration": "PT3H5M"
            }
          ],
          "departureDate": "2024-06-06",
          "departureTime": "00:10",
          "arrivalDate": "2024-06-06",
          "arrivalTime": "11:15",
          "flightFares": [
            {
              "fareId": "OFFERITEM-6172305229",
              "fareCurrency": "USD",
              "fareBaseAmount": "1135.00",
              "fareSurcharges": "0",
              "fareTaxes": "127.40",
              "fareCurrency": "USD",
              "fareName": "ECONOMY FLEX"
            }
          ]
        }
      ]
    }
                  
              
Sample Error Response:
                  
  {
    "status": "ERROR",
    "message": "NO_FLIGHT_FOUND"
  }
                  
              
Response object description:
status String Indicates the status of the token retrieval operation. "SUCCESS" suggests that the operation was successful. "ERROR" suggests that the operation was not successful
responseID String A unique identifier for the flight search response.
outbound Flight[] An array containing information about each outbound flight found in the search.
inbound Flight[] An array containing information about each return flight found in the search.
message String | String[] Provides additional information about the error encountered during the search flight process. In this case,
  • NO_FLIGHT_FOUND : No flights were found matching the specified criteria.
  • INTERNAL_SERVER_ERROR : Indicates that an internal server error occurred during the search flight process, and the operation could not be completed successfully.
Flight object description:
flightId String Unique identifier for the flight.
flightOfferId String Unique identifier assigned to a specific flight offer.
departureAirport Airport Information about the departure airport.
arrivalAirport Airport Information about the arrival airport.
flightSegment FlightSegment[] An array containing details of each segment of the flight.
flightFares FlightFares[] An array containing information about the fares for the flight.
FlightSegment object description:
departureAirport Airport Information about the departure airport for the segment.
departureDate String Date of departure for the segment in YYYY-MM-DD format.
departureTime String Time of departure for the segment in HH:mm format.
arrivalAirport Airport Information about the arrival airport for the segment.
arrivalDate String Date of arrival for the segment in YYYY-MM-DD format.
arrivalTime String Time of arrival for the segment in HH:mm format.
flightAircraft String Code for the type of aircraft for the segment.
flightNumber String Flight number for the segment.
flightDuration String Duration of the flight segment in ISO 8601 format (PT#H#M).
Airport object description:
airportCode String Three-letter (IATA) code for the airport.
airportName String Name of the airport.
flightFares object description:
fareId String The fareId is a unique identifier assigned to a specific fare.
fareName String Name of the fare type.
fareCurrency String Currency code for the fare.
fareBaseAmount String Base amount of the fare.
fareSurcharges String Additional surcharges for the fare
fareTaxes String Total taxes for the fare

Flight Select

This endpoint enables users to finalize their flight selection by choosing a specific flight from the search results obtained through the /flights/search endpoint. After reviewing available flight options, users can use this endpoint to confirm their choice and proceed with the booking process.

Endpoint

  • URL: /api/v1/booking/SelectFlight
  • Method: : POST
  • Content Type: application/json
  • Authorization: Bearer <token>
Sample Request:
                    
  {
    "responseId": "YHN0308TDOWLP1A",
    "flightOfferId": "OFFER001",
    "fareId": "OFFERITEM-6172305229",
    "returnFlightOfferId": "OFFER002",
    "returnFareId": "OFFERITEM-6172305210"
  }
                    
                  
Request object description:
responseId* String The unique identifier assigned to this particular flight search response. It helps in tracking and referencing the specific search request and its corresponding results.
flightOfferId* String Identifies the primary flight offer selected from the search results. This ID is associated with the main outbound flight option chosen by the user.
fareId* String Identifies the fare or pricing information for the primary flight offer. It includes details such as fare rules, restrictions, and total cost for the selected outbound flight.
returnFlightOfferId String Indicates the supplementary flight offer chosen for the return journey, if applicable. This ID corresponds to the selected return flight option, complementing the primary outbound flight offer.
returnFareId String Specifies the fare or pricing details for the return flight offer. Similar to the Fare ID for the outbound flight, this identifier encompasses fare specifics and total price for the chosen return journey.

Note

All properties marked with an asterisk (* ) are required fields. Please ensure that you provide values for these mandatory fields when making requests to the API endpoints. Missing required fields may result in validation errors

Sample Success Response:
                    
  {
    "status": "SUCCESS",
    "responseID": "PRMIQZLXJPP5D2X",
    "BagDisclosureList": {
      "bagRule": [
        "BAG ALLOWANCE     -ADDDXB-02P/ET/EACH PIECE UP TO 50 POUNDS/23",
        "KILOGRAMS",
        "CARRY ON ALLOWANCE",
        "ADDJED-01P/ET",
        "01/UP TO 15 POUNDS/7 KILOGRAMS AND UP TO 45 LINEAR INCHES/115 L",
        "INEAR CENTIMETERS",
        "JEDDXB-01P/XY",
        "CARRY ON CHARGES",
        "ADDJED-ET",
        "A HAND BAG EXCES CHARGE PER KG-USD14.00 PER KILO",
        "JEDDXB-XY-CARRY ON FEES UNKNOWN-CONTACT CARRIER",
        "ADDITIONAL ALLOWANCES AND/OR DISCOUNTS MAY APPLY DEPENDING ON",
        "FLYER-SPECIFIC FACTORS /E.G. FREQUENT FLYER STATUS/MILITARY/",
        "CREDIT CARD FORM OF PAYMENT/EARLY PURCHASE OVER INTERNET,ETC./"
      ]
    },
    "flightDetail": {
      "departureAirport": {
        "airportCode": "ADD",
        "airportName": "ADD"
      },
      "departureDate": "2024-06-06",
      "departureTime": "11:00",
      "arrivalAirport": {
        "airportCode": "DXB",
        "airportName": "DXB"
      },
      "arrivalDate": "2024-06-06",
      "arrivalTime": "20:55",
      "flightOfferId": "PRICEDOFFER",
      "flightSegment": [
        {
          "departureAirport": {
            "airportCode": "ADD",
            "airportName": "ADD"
          },
          "departureDate": "2024-06-06",
          "departureTime": "11:00",
          "arrivalAirport": {
            "airportCode": "JED",
            "airportName": "JED"
          },
          "arrivalDate": "2024-06-06",
          "arrivalTime": "13:30",
          "flightAircraft": "7M8",
          "flightNumber": "ET462",
          "flightDuration": "PT2H30M"
        },
        {
          "departureAirport": {
            "airportCode": "JED",
            "airportName": "JED"
          },
          "departureDate": "2024-06-06",
          "departureTime": "16:50",
          "arrivalAirport": {
            "airportCode": "DXB",
            "airportName": "DXB"
          },
          "arrivalDate": "2024-06-06",
          "arrivalTime": "20:55",
          "flightAircraft": "320",
          "flightNumber": "XY509",
          "flightDuration": "PT3H5M"
        }
      ]
    },
    "priceDetail": {
      "fareBaseAmount": "1135.00",
      "fareCurrency": "USD",
      "fareName": "ECONOMY FLEX",
      "fareSurcharges": "0",
      "fareTaxes": "158.36",
      "fareTotalPrice": "1293.36",
      "fareId": "OFFERITEM-1563513643"
    }
  }
                    
                
Sample Error Response:
                    
    {
      "status": "ERROR",
      "message": "NO_FLIGHT_FOUND"
    }
                    
                
Response object description:
status String Indicates the status of the token retrieval operation. "SUCCESS" suggests that the operation was successful. "ERROR" suggests that the operation was not successful
responseID String A unique identifier for the flight select response.
flightDetail Flight Information about selected flight.
BagDisclosureList BagDisclosure Disclosure rules associated with the flight or fare
priceDetail PriceDetail Information about the fares for the selected flight.
message String | String[] Provides additional information about the error encountered during the search flight process. In this case,
  • NO_FLIGHT_FOUND : No flights were found matching the specified criteria.
  • INTERNAL_SERVER_ERROR : Indicates that an internal server error occurred during the search flight process, and the operation could not be completed successfully.
Flight object description:
flightId String Unique identifier for the flight.
flightOfferId String Unique identifier assigned to a specific flight offer.
departureAirport Airport Information about the departure airport.
arrivalAirport Airport Information about the arrival airport.
flightSegment FlightSegment[] An array containing details of each segment of the flight.
flightFares FlightFares[] An array containing information about the fares for the flight.
FlightSegment object description:
departureAirport Airport Information about the departure airport for the segment.
departureDate String Date of departure for the segment in YYYY-MM-DD format.
departureTime String Time of departure for the segment in HH:mm format.
arrivalAirport Airport Information about the arrival airport for the segment.
arrivalDate String Date of arrival for the segment in YYYY-MM-DD format.
arrivalTime String Time of arrival for the segment in HH:mm format.
flightAircraft String Code for the type of aircraft for the segment.
flightNumber String Flight number for the segment.
flightDuration String Duration of the flight segment in ISO 8601 format (PT#H#M).
Airport object description:
airportCode String Three-letter (IATA) code for the airport.
airportName String Name of the airport.
BagDisclosure object description:
bagRule String[] This array contains bag disclosure rules associated with the flight or fare. Bag disclosure rules typically outline information related to baggage allowances, restrictions, charges, and other relevant details for passengers. Each element in the array represents a single bag disclosure rule.
PriceDetail object description:
fareId String The fareId is a unique identifier assigned to a specific fare.
fareName String Name of the fare type.
fareCurrency String Currency code for the fare.
fareBaseAmount String Base amount of the fare.
fareSurcharges String Additional surcharges for the fare
fareTaxes String Total taxes for the fare

Add Passenger and Book Flight

This API is used to add passenger information for booking a flight. It allows users to submit passenger details such as name, age, gender, and contact information. After adding passengers, users can proceed to confirm the booking and proceed to payment to finalize the reservation process. Upon successful booking confirmation, users receive a booking reference or confirmation number.

Endpoint

  • URL: /api/v1/booking/AddPassenger
  • Method: : POST
  • Content Type: application/json
  • Authorization: Bearer <token>
Sample Request:
                      
  {
    "responseId": "YHN0308TDOWLP1A",
    "flightOfferId": "PRICEDOFFER",
    "fareId": "OFFERITEM-6172305229",
    "returnFlightOfferId": "PRICEDOFFER",
    "returnFareId": "OFFERITEM-6172305210",
    "passengers": [
      {
        "nameTitle": "MRS",
        "givenName": "Jane",
        "surName": "Smith",
        "gender": "Male",
        "birthDate": "1998-01-01",
        "passportNumber": "EP0987654321",
        "passportIssuingCountryCode": "ET",
        "passportCitizenshipCountryCode": "ET",
        "passportIssueDate": "2024-01-01",
        "passportExpiryDate": "2028-01-01",
        "passportBirthplace": "ET"
      }
    ],
    "contactInformation": {
      "emailAddress": "example@example.com",
      "countryDialingCode": "251",
      "phoneNumber": "987654321"
    },
    "paymentNotifyUrl" :"https://webhook.site/077164d6-29cb-40df-ba29-8a00e59a7e60",
    "ticketNotifyUrl" :"https://webhook.site/077164d6-29cb-40df-ba29-8a00e59a7e60",
    "redirectUrl" :"https://doaminname.com"
  }
                      
                    
Request object description:
responseId* String The unique identifier assigned to this particular flight select response. It helps in tracking and referencing the specific search request and its corresponding results.
flightOfferId* String Identifies the primary flight offer selected from the search results. This ID is associated with the main outbound flight option chosen by the user.
fareId* String Identifies the fare or pricing information for the primary flight offer. It includes details such as fare rules, restrictions, and total cost for the selected outbound flight.
returnFlightOfferId String Indicates the supplementary flight offer chosen for the return journey, if applicable. This ID corresponds to the selected return flight option, complementing the primary outbound flight offer.
returnFareId String Specifies the fare or pricing details for the return flight offer. Similar to the Fare ID for the outbound flight, this identifier encompasses fare specifics and total price for the chosen return journey.
passengers* Passenger[] An array containing details of the passengers to be added to the booking. Each object in the array represents a single passenger and includes attributes such as name, gender, birthdate, passport information, etc.
contactInformation* ContactInformation An object containing the contact information of the traveler making the booking.
paymentNotifyUrl* String This property is a webhook URL to receive notifications about the payment status status.
ticketNotifyUrl* String This property is a webhook URL to receive notifications about the ticket status status.
redirectUrl* String This property is a URL to that will redirect the user after the payment is completed status.
Passenger object description:
nameTitle* String The title or salutation of the passenger, vaild values are MR, MRS, MS,MISS, MASTER,DR, PROF, AMB, SIR
givenName* String The given name or first name of the passenger.
surName* String The surname or last name of the passenger.
gender* String The gender of the passenger.
birthDate* String The date of birth of the passenger. Format YYYY-MM-DD
passportNumber* String The passport number of the passenger.
passportIssuingCountryCode* String The country code of the passport issuing authority. 2 letter country code of passport e.g. ET, GB
passportCitizenshipCountryCode* String The country code of the passenger's citizenship. 2 letter country code of nationality e.g. ET
passportIssueDate* String The date when the passport was issued. Format YYYY-MM-DD
passportExpiryDate* String The expiration date of the passport. Format YYYY-MM-DD
passportBirthplace* String The place of birth as indicated in the passport. 2 letter country code of birth
ContactInformation object description:
emailAddress* String The email address of the passenger to contact for information updates.
countryDialingCode* String The country dialing code without + of the passenger to contact for information updates
phoneNumber* String The phone number without country code of the of the passenger to contact for information updates.

Note

All properties marked with an asterisk (* ) are required fields. Please ensure that you provide values for these mandatory fields when making requests to the API endpoints. Missing required fields may result in validation errors

Sample Response:
                      
  {
    "status": "SUCCESS",
    "bookingReference": "QOKGGN",
    "passengerDetail": [
      {
        "nameTitle":  "MRS",
        "givenName": "Jane",
        "surName": "Smith",
        "gender": "Female",
        "birthDate": "1998-01-01",
        "passportNumber": "EP0987654321",
        "passportIssuingCountryCode":"ET",
        "passportCitizenshipCountryCode": "ET",
        "passportIssueDate": "2024-01-01",
        "passportExpiryDate": "2028-01-01",
        "passportBirthplace": "ET"
      }
    ],
    "flightDetail": {
      "departureAirport": {
        "airportCode": "ADD",
        "airportName": "ADD"
      },
      "flightSegment": [
        {
          "departureAirport": {
            "airportCode": "ADD",
            "airportName": "ADD"
          },
          "departureDate": "2024-06-08",
          "departureTime": "11:00",
          "arrivalAirport": {
            "airportCode": "JED",
            "airportName": "JED"
          },
          "arrivalDate": "2024-06-08",
          "arrivalTime": "13:30",
          "flightAircraft": "7M8",
          "flightNumber": "ET462",
          "flightDuration": "PT2H30M"
        },
        {
          "departureAirport": {
            "airportCode": "JED",
            "airportName": "JED"
          },
          "departureDate": "2024-06-08",
          "departureTime": "16:50",
          "arrivalAirport": {
            "airportCode": "DXB",
            "airportName": "DXB"
          },
          "arrivalDate": "2024-06-08",
          "arrivalTime": "20:55",
          "flightAircraft": "320",
          "flightNumber": "XY509",
          "flightDuration": "PT3H5M"
        }
      ],
      "departureDate": "2024-06-08",
      "departureTime": "11:00",
      "arrivalAirport": {
        "airportCode": "DXB",
        "airportName": "DXB"
      },
      "arrivalDate": "2024-06-08",
      "arrivalTime": "20:55"
    },
    "priceDetail": {
      "fareBaseAmount": "1135.00",
      "fareCurrency": "USD",
      "fareSurcharges": "0",
      "fareTaxes": "158.36",
      "fareTotalPrice": "1293.36"
    },
    "BagDisclosureList": {
      "bagRule": [
        "BAG ALLOWANCE     -ADDDXB-02P/ET/EACH PIECE UP TO 50 POUNDS/23",
        "KILOGRAMS",
        "CARRY ON ALLOWANCE",
        "ADDJED-01P/ET",
        "01/UP TO 15 POUNDS/7 KILOGRAMS AND UP TO 45 LINEAR INCHES/115 L",
        "INEAR CENTIMETERS",
        "JEDDXB-01P/XY",
        "CARRY ON CHARGES",
        "ADDJED-ET",
        "A HAND BAG EXCES CHARGE PER KG-USD14.00 PER KILO",
        "JEDDXB-XY-CARRY ON FEES UNKNOWN-CONTACT CARRIER",
        "ADDITIONAL ALLOWANCES AND/OR DISCOUNTS MAY APPLY DEPENDING ON",
        "FLYER-SPECIFIC FACTORS /E.G. FREQUENT FLYER STATUS/MILITARY/",
        "CREDIT CARD FORM OF PAYMENT/EARLY PURCHASE OVER INTERNET,ETC./"
      ]
    }
  }
                      
                    
Response object description:
status String Indicates the status of the token retrieval operation. "SUCCESS" suggests that the operation was successful. "ERROR" suggests that the operation was not successful
bookingReference String A unique identifier for the flight booking, also known as Passenger Name Record(PNR).
flightDetail Flight Information about selected flight.
BagDisclosureList BagDisclosure Disclosure rules associated with the flight or fare
priceDetail PriceDetail Information about the fares for the selected flight.
passengerDetail Passenger[] Information about the passegers for the selected flight.
message String | String[] Provides additional information about the error encountered during the search flight process. In this case,
  • NO_FLIGHT_FOUND : No flights were found matching the specified criteria.
  • INTERNAL_SERVER_ERROR : Indicates that an internal server error occurred during the search flight process, and the operation could not be completed successfully.
Flight object description:
flightId String Unique identifier for the flight.
flightOfferId String Unique identifier assigned to a specific flight offer.
departureAirport Airport Information about the departure airport.
arrivalAirport Airport Information about the arrival airport.
flightSegment FlightSegment[] An array containing details of each segment of the flight.
flightFares FlightFares[] An array containing information about the fares for the flight.
FlightSegment object description:
departureAirport Airport Information about the departure airport for the segment.
departureDate String Date of departure for the segment in YYYY-MM-DD format.
departureTime String Time of departure for the segment in HH:mm format.
arrivalAirport Airport Information about the arrival airport for the segment.
arrivalDate String Date of arrival for the segment in YYYY-MM-DD format.
arrivalTime String Time of arrival for the segment in HH:mm format.
flightAircraft String Code for the type of aircraft for the segment.
flightNumber String Flight number for the segment.
flightDuration String Duration of the flight segment in ISO 8601 format (PT#H#M).
Airport object description:
airportCode String Three-letter (IATA) code for the airport.
airportName String Name of the airport.
BagDisclosure object description:
bagRule String[] This array contains bag disclosure rules associated with the flight or fare. Bag disclosure rules typically outline information related to baggage allowances, restrictions, charges, and other relevant details for passengers. Each element in the array represents a single bag disclosure rule.
Passenger object description:
nameTitle String The title or salutation of the passenger, vaild values are MR, MRS, MS,MISS, MASTER,DR, PROF, AMB, SIR
givenName String The given name or first name of the passenger.
surName String The surname or last name of the passenger.
gender String The gender of the passenger.
birthDate String The date of birth of the passenger. Format YYYY-MM-DD
passportNumber String The passport number of the passenger.
passportIssuingCountryCode String The country code of the passport issuing authority. 2 letter country code of passport e.g. ET, GB
passportCitizenshipCountryCode String The country code of the passenger's citizenship. 2 letter country code of nationality e.g. ET
passportIssueDate String The date when the passport was issued. Format YYYY-MM-DD
passportExpiryDate String The expiration date of the passport. Format YYYY-MM-DD
passportBirthplace String The place of birth as indicated in the passport. 2 letter country code of birth
PriceDetail object description:
fareId String The fareId is a unique identifier assigned to a specific fare.
fareName String Name of the fare type.
fareCurrency String Currency code for the fare.
fareBaseAmount String Base amount of the fare.
fareSurcharges String Additional surcharges for the fare
fareTaxes String Total taxes for the fare

Flight Exchange API

The Flight Exchange API empowers users to seamlessly exchange flights by providing a straightforward interface to manage reservations, confirm changes, and handle seat reassignments efficiently. This API streamlines the flight exchange process, enhancing the user experience and facilitating smooth travel adjustments.

Get Booking

The Exchange Get Booking API endpoint allows clients to retrieve the details of a specific booking by its unique booking ID. This endpoint is useful for applications that need to display booking information to users or administrators.

Endpoint

  • URL: /api/v1/exchange/getBooking
  • Method: : GET
  • Param: : pnr=ABCDEF & lastName=Smith
  • Content Type: application/json
  • Authorization: Bearer <token>
  • Response Type: HTML
Request object description:
pnr* String A unique identifier for the flight booking, also known as Passenger Name Record(PNR).
lastName* String The first passenger last Name
Sample Success Response:
                      
                        {
                          "status": "SUCCESS",
                          "bookingReference": "RGVILT",
                          "passengerDetail": [
                              {
                                  "nameTitle": "MRS",
                                  "givenName": "TESFALEM",
                                  "surName": "NIGUSSIE",
                                  "gender": "Male",
                                  "birthDate": "1998-01-01",
                                  "passportNumber": "EP0987654321",
                                  "passportIssuingCountryCode": "ET",
                                  "passportCitizenshipCountryCode": "ET",
                                  "passportIssueDate": "",
                                  "passportExpiryDate": "2028-01-01",
                                  "passportBirthplace": "ET",
                                  "ticketNumber": ""
                              }
                          ],
                          "flightDetail": {
                              "departureAirport": {
                                  "airportCode": "ADD",
                                  "airportName": "Addis Ababa (ADD) Ethiopia Africa"
                              },
                              "flightSegment": [
                                  {
                                      "departureAirport": {
                                          "airportCode": "ADD",
                                          "airportName": "Addis Ababa (ADD) Ethiopia Africa"
                                      },
                                      "departureDate": "2024-12-29",
                                      "departureTime": "21:45",
                                      "arrivalAirport": {
                                          "airportCode": "DXB",
                                          "airportName": "Dubai (DXB) United Arab Emirate"
                                      },
                                      "segementId": "SEG_ADDDXB_001",
                                      "arrivalDate": "2024-12-30",
                                      "arrivalTime": "02:55",
                                      "flightAircraft": "350",
                                      "flightNumber": "ET0600",
                                      "flightDuration": "PT4H10M"
                                  }
                              ],
                              "departureDate": "2024-12-29",
                              "departureTime": "21:45",
                              "arrivalAirport": {
                                  "airportCode": "DXB",
                                  "airportName": "DXB"
                              },
                              "arrivalDate": "2024-12-30",
                              "arrivalTime": "02:55"
                          },
                          "priceDetail": {
                              "fareBaseAmount": "40595",
                              "fareCurrency": "ETB",
                              "fareSurcharges": "0",
                              "fareTaxes": "16192",
                              "fareTotalPrice": "56787"
                          },
                          "BagDisclosureList": {
                              "bagRule": []
                          },
                          "RuleMetadatas": [
                            {
                              "RuleID" : "ATC_EXCHANGE_ELIGIBILITY",
                              "staus" : true
                            }
                          ]
                      }
                      
                  
Response Object Description
status* String Indicates the overall status of the booking request.
bookingReference* String A unique identifier assigned to the booking.
passengerDetail
nameTitle String Passenger's title (e.g., "Mr.", "Mrs.", "Ms.")
givenName String Passenger's first name
surName String Passenger's last name
gender String Passenger's gender
flightDetail
departureAirport Object Departure airport details.
flightSegment Array of Objects Details of each flight segment.
departureDate String Overall departure date of the entire flight itinerary
departureAirport
airportCode String Airport code
airportName String Airport name
flightSegment
departureAirport Object Departure airport details.
departureDate String Departure date and time
arrivalAirport Object Arrival airport details.
arrivalDate String Arrival date and time
priceDetail
fareBaseAmount String Base fare amount
fareCurrency String Currency of the fare
fareSurcharges String Surcharges applied to the fare
fareTaxes String Taxes included in the total fare
fareTotalPrice String Total fare amount including all taxes and surcharges
BagDisclosureList
bagRule Array of Objects Baggage rules and allowances
RuleMetadatas
RuleID String Identifier for a specific rule
Status boolean Identifier for a specific rule
Sample Error Response:
                      
      {
        "status": "ERROR",
        "message": "NO_FLIGHT_FOUND"
      }
                      
                  

Exchange Flight Search

The Exchange Flight Search API enables users to search for available flights based on various criteria such as departure and arrival locations, travel dates, preferred airlines, and cabin class. This API provides a convenient way to retrieve flight information and facilitates the booking process for travelers.

Endpoint

  • URL: /api/v1/exchange/exchangeSearchFlight
  • Method: : POST
  • Content Type: application/json
  • Authorization: Bearer <token>
Sample Request:
                  
                    {
                      "bookingReference": "RBCSKF",
                      "lastName": "Nigussie",
                      "flightList": [
                          {
                              "segementId": "SEG_ADDDXB_001",
                              "origin": "ADD",
                              "destination": "DXB",
                              "departureDate": "2025-02-26",
                              "returnDate": ""
                          }
                      ]
                  }
                  
                
Request object description:
bookingReference* String A unique identifier assigned to the booking.
lastName* String Last name of the passenger.
flightList
segementId* String Unique identifier for the flight segment to be changed.
origin* String Origin airport code.
destination* String Destination airport code.
departureDate* String Departure date of the flight segment.
returnDate* String Return date of the flight segment.

Note

All properties marked with an asterisk (* ) are required fields. Please ensure that you provide values for these mandatory fields when making requests to the API endpoints. Missing required fields may result in validation errors

Sample Success Response:
                  
    {
      "status" :"SUCCESS",
      "responseID": "IRO31PYWYT4E1LX",
      "outbound": [
        {
          "flightId": "FLT001",
          "flightOfferId": "OFFER001",
          "departureAirport": {
            "airportCode": "DXB",
            "airportName": "Dubai International Airport"
          },
          "arrivalAirport": {
            "airportCode": "ADD",
            "airportName": "Bole Addis Ababa International Airport"
          },
          "flightSegment": [
            {
              "departureAirport": {
                "airportCode": "ADD",
                "airportName": "Bole Addis Ababa International Airport"
              },
              "departureDate": "2024-06-06",
              "departureTime": "00:10",
              "arrivalAirport": {
                "airportCode": "JED",
                "airportName": "King Abdulaziz International Airport"
              },
              "arrivalDate": "2024-06-06",
              "arrivalTime": "02:40",
              "flightAircraft": "787",
              "flightNumber": "ET402",
              "flightDuration": "PT2H30M"
            },
            {
              "departureAirport": {
                "airportCode": "JED",
                "airportName": "King Abdulaziz International Airport"
              },
              "departureDate": "2024-06-06",
              "departureTime": "07:10",
              "arrivalAirport": {
                "airportCode": "DXB",
                "airportName": "Dubai International Airport"
              },
              "arrivalDate": "2024-06-06",
              "arrivalTime": "11:15",
              "flightAircraft": "320",
              "flightNumber": "XY501",
              "flightDuration": "PT3H5M"
            }
          ],
          "departureDate": "2024-06-06",
          "departureTime": "00:10",
          "arrivalDate": "2024-06-06",
          "arrivalTime": "11:15",
          "flightFares": [
            {
              "fareId": "OFFERITEM-6172305229",
              "fareCurrency": "USD",
              "fareBaseAmount": "1135.00",
              "fareSurcharges": "0",
              "fareTaxes": "127.40",
              "fareCurrency": "USD",
              "fareName": "ECONOMY FLEX"
            }
          ]
        }
      ]
    }
                  
              
Sample Error Response:
                  
  {
    "status": "ERROR",
    "message": "NO_FLIGHT_FOUND"
  }
                  
              
Response object description:
status String Indicates the status of the token retrieval operation. "SUCCESS" suggests that the operation was successful. "ERROR" suggests that the operation was not successful
responseID String A unique identifier for the flight search response.
outbound Flight[] An array containing information about each outbound flight found in the search.
inbound Flight[] An array containing information about each return flight found in the search.
message String | String[] Provides additional information about the error encountered during the search flight process. In this case,
  • NO_FLIGHT_FOUND : No flights were found matching the specified criteria.
  • INTERNAL_SERVER_ERROR : Indicates that an internal server error occurred during the search flight process, and the operation could not be completed successfully.
Flight object description:
flightId String Unique identifier for the flight.
flightOfferId String Unique identifier assigned to a specific flight offer.
departureAirport Airport Information about the departure airport.
arrivalAirport Airport Information about the arrival airport.
flightSegment FlightSegment[] An array containing details of each segment of the flight.
flightFares FlightFares[] An array containing information about the fares for the flight.
FlightSegment object description:
departureAirport Airport Information about the departure airport for the segment.
departureDate String Date of departure for the segment in YYYY-MM-DD format.
departureTime String Time of departure for the segment in HH:mm format.
arrivalAirport Airport Information about the arrival airport for the segment.
arrivalDate String Date of arrival for the segment in YYYY-MM-DD format.
arrivalTime String Time of arrival for the segment in HH:mm format.
flightAircraft String Code for the type of aircraft for the segment.
flightNumber String Flight number for the segment.
flightDuration String Duration of the flight segment in ISO 8601 format (PT#H#M).
Airport object description:
airportCode String Three-letter (IATA) code for the airport.
airportName String Name of the airport.
flightFares object description:
fareId String The fareId is a unique identifier assigned to a specific fare.
fareName String Name of the fare type.
fareCurrency String Currency code for the fare.
fareBaseAmount String Base amount of the fare.
fareSurcharges String Additional surcharges for the fare
fareTaxes String Total taxes for the fare

Exchange Flight Select

This endpoint enables users to finalize their exchange flight selection by choosing a specific flight from the search results obtained through the /flights/search endpoint. After reviewing available flight options, users can use this endpoint to confirm their choice and proceed with the booking process.

Endpoint

  • URL: /api/v1/exchange/ExchangeSelectFlight
  • Method: : POST
  • Content Type: application/json
  • Authorization: Bearer <token>
Sample Request:
                    
                      {
                        "bookingReference": "RBCSKF",
                        "lastName": "Nigussie",
                        "responseId": "YHN0308TDOWLP1A",
                        "flightList": [
                            {
                                "segementId": "SEG_ADDDXB_001",
                                "origin": "ADD",
                                "destination": "DXB",
                                "departureDate": "2025-02-26",
                                "returnDate": "",
                                "flightOfferId": "OFFER001",
                                "fareId": "OFFERITEM-6172305229",
                                "returnFlightOfferId": "OFFER002",
                                "returnFareId": "OFFERITEM-6172305210"
                            }
                        ]
                    }
  
                    
                  
Request object description:
bookingReference* String A unique identifier assigned to the booking.
lastName* String Last name of the passenger.
responseId* String Unique identifier assigned to this particular flight select response.
flightList
Property Name* Data Type Description
segementId* String Unique identifier for the flight segment.
origin* String Origin airport code.
destination* String Destination airport code.
departureDate* String Departure date of the flight segment.
returnDate* String Return date of the flight segment.
flightOfferId* String Identifies the primary flight offer selected from the search results.
fareId* String Identifies the fare or pricing information for the primary flight offer.
returnFlightOfferId* String Indicates the supplementary flight offer chosen for the return journey.
returnFareId* String Specifies the fare or pricing details for the return flight offer.

Note

All properties marked with an asterisk (* ) are required fields. Please ensure that you provide values for these mandatory fields when making requests to the API endpoints. Missing required fields may result in validation errors

Sample Success Response:
                
                  






Choose Action




Choose Simulation Action

Sample Error Response:
                    
    {
      "status": "ERROR",
      "message": "INTERNAL_SERVER_ERROR
    }
                    
                

Manage Booking API

The Manage Booking API allows clients to create, retrieve, update, and delete bookings for services or events. This API is designed for seamless integration into applications that require a booking system, such as travel, hospitality, events, or appointment scheduling.

Get Booking

The Get Booking API endpoint allows clients to retrieve the details of a specific booking by its unique booking ID. This endpoint is useful for applications that need to display booking information to users or administrators.

Endpoint

  • URL: /api/v1/booking/getBooking
  • Method: : GET
  • Param: : pnr=ABCDEF & lastName=Smith
  • Content Type: application/json
  • Authorization: Bearer <token>
  • Response Type: HTML
Request object description:
pnr* String A unique identifier for the flight booking, also known as Passenger Name Record(PNR).
lastName* String The first passenger last Name

WebHook API

The Webhook API allows you to receive real-time notifications from our system when payment and ticketing events occur. Webhooks provide a way for your application to respond to changes or updates without having to poll our API continuously.

Payment Confirmation Webhook

The Payment Confirmation Webhook is triggered whenever a payment processed. This webhook sends a POST request to the configured endpoint with details about the payment and the associated booking. The receiving system can use this information to update its records, trigger further actions, or notify users.

Endpoint

  • URL: YOUR PAYMENT NOTIFY URL PASSED ON BOOK FLIGHT API
  • Method: : POST
  • Content Type: application/json
Sample Response:
                  
  {
    "status": "SUCCESS",
    "booingReference": "SQPISY",
    "firstName": "MRS Jane",
    "lastName": "Smith",
    "ticketStatus": "NOT_TICKETED",
    "paidStatus": "PAID",
    "paidAt": "2024-08-30T08:06:38.988Z",
    "paymentReference": ""
  }
                  
                
Response object description:
notificationType* String Specifies the type of notification. For this webhook, it will always be `"PAYMENT_CONFIRMATION"`.
status* String Indicates the status of the payment processing. The expected value for a successful payment is "SUCCESS" and for failed payment is "FAILED".
pnr String Booing Reference is a unique identifier for the flight booking, also known as Passenger Name Record(PNR).
firstName String The first name of the passenger associated with the booking.
lastName String The last name of the passenger associated with the booking.
ticketStatus String The current status of the ticket associated with the booking. Indicates whether the ticket has been issued or not.
paidStatus String The status of the payment for the booking. "PAID" indicates payment completion.
paidAt String (ISO 8601) The timestamp when the payment was successfully made, provided in UTC.
paymentReference String A unique reference for the payment transaction, used to track the payment. This field may be empty if the reference is not available.

Ticket Confirmation Webhook

The Ticket Confirmation Webhook is triggered when a ticket is successfully issued for a booking. This webhook sends a POST request to the configured endpoint with details about the ticket, the associated booking, and payment status. The receiving system can use this information to update its records, confirm the issuance of the ticket, or notify the passenger.

Endpoint

  • URL: YOUR TICEKT NOTIFY URL PASSED ON BOOK FLIGHT API
  • Method: : POST
  • Content Type: application/json
Sample Response:
                  
  {
    "booingReference": "SQPISY",
    "firstName": "MRS Jane",
    "lastName": "Smith",
    "ticketStatus": "TICKETED",
    "paymentStatus": "PAID",
    "ticketedAt": "2024-08-30T08:08:42.384Z",
    "ticketNumber": "",
    "ticketBy": "1234"
  }
                  
                
Response object description:
notificationType String Specifies the type of notification. For this webhook, it will always be "TICKET_CONFIRMATION".
booingReference String BookingReference is The Passenger Name Record (PNR) associated with the ticket. This is a unique identifier for the booking.
firstName String The first name of the passenger associated with the booking.
lastName String The last name of the passenger associated with the booking.
ticketStatus String The current status of the ticket associated with the booking. Indicates whether the ticket has been issued or not.
paymentStatus String The status of the payment for the booking. "PAID" indicates payment completion. and "NOT_PAID"
ticketedAt String (ISO 8601) The timestamp when the ticket was successfully issued, provided in UTC.
ticketNumber String A unique number assigned to the ticket.
ticketBy String The identifier of the agency that issued the ticket.