Shopping and Ticketing

Search

post

Dependency: No preceding function needs to be called before Search.

The search results will include a lot of items. Some highlights are:

  • The returned currency is by configuration according to the business agreement between you and Atlas

  • The total cost to purchase for a single adult passenger is: adultPrice+adultTax+transactionFeePerPax

  • For the airlines which support pass through payment method, we would set supportCreditTransPayment to 1 and present the vendor's fare in the vendorFare element. Alternatively, if the airline doesn't support pass through payment method, we would set supportCreditTransPayment to 0 and the vendorFare element will be null.

  • You can choose to show or hide ancillaryProductElements in search response, according to the configuration of each client in the backend system.

  • The links element will have the link to the terms and conditions of the airlines.

  • Display Currency is only to be used for display purposes. The amount in the response is not to be used for fare comparison or accounting purposes. The display currency conversion will be available in fares, taxes and ancillary baggage sections of the search and verify response. When the "vendorFare" element is available, the conversion will be from the vendor fare. In the absence of the "vendorFare" element, the conversion would be from the transacted fare.

Endpoint: https://sandbox.atriptech.com/search.do

Header parameters
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
Accept-EncodingstringRequiredExample: gzip
x-atlas-client-idstringRequiredExample: <YOUR_CLIENT_ID>
x-atlas-client-secretstringRequiredExample: <YOUR_CLIENT_SECRET>
Body
tripTypestring · enumRequired

The trip type(one way or round trip) you want to search.

  • 1: Oneway
  • 2: Return Trip
Example: 1Possible values:
adultNuminteger · min: 1 · max: 9Required

Adult passenger count. Please note that the total number of adults(adultNum) and children(childNum) cannot exceed 9.

Default: 0Example: 1
childNuminteger · max: 8Required

Child passenger count. Please note that the total number of adults(adultNum) and children(childNum) cannot exceed 9

Default: 0Example: 0
infantNuminteger · max: 9Required

Infant passenger count, no more than the number of adult

Default: 0Example: 0
fromCitystringRequired

IATA code of the departure city or airport (in capital letters).When the airport code you sent is different from the code of the city where the airport is located, we can recognize that it is an airport, otherwise we will treat it as a city code. We will filter flights based on your departure location type.

Example: LON
toCitystringRequired

IATA code of the arrival city or airport (in capital letters).When the airport code you sent is different from the code of the city where the airport is located, we can recognize that it is an airport, otherwise we will treat it as a city code. We will filter flights based on your departure location type.

Example: PAR
fromDatestring · dateRequired

Departure date, the format is YYYYMMDD

Example: 20251010
retDatestring · date · nullableOptional

Return date, the format is YYYYMMDD. If you are searching for round-trip, the return date is mandatory.

airlinesstring[] · nullableOptional

An array of IATA Codes(in capital letters) of airlines. The result will only contain the airlines specified in the search request.

Example: U2
fromFlightNumbersstring[] · nullableOptional

Search for specified departure flights. Each element represents one flight. Connecting flight numbers are separated by "," (comma). Example:

  • ["FR123"]: A direct flight
  • ["FR456,FR789"]: A connecting flight
  • ["FR123", "FR456,FR789"]: 2 flights, a direct flight and a connecting flight
retFlightNumbersstring[] · nullableOptional

Search for specified return flights. Each element represents one flight. Connecting flight numbers are separated by "," (comma).

includeMultipleFareFamilyboolean · nullableOptional

Search only for the lowest fare or for the Fare Families. By default, each flight only returns the lowest fare, and each array element in the response represents: flight - lowest fare. If this parameter is turned on, each element of the search results will be a combination of flight and one of the fares, that is, different elements will have the same flight but different ticket fare.

Default: false
currencystring · nullableOptional

This is the settlement currency. The 3-letter currency code should be entered. This field is optional, and when you want to settle with Atlas in different currencies (especially when you have opened multiple deposit accounts in different currencies in Atlas), you need to use this parameter.

requestSourcestring · nullableOptional

Identify the source of the search traffic, E.g. Google Flights, Oganic Search, SkyScanner.

residentCodestringRequired

Resident discount code

Responses
chevron-right
200Success
application/json
statusinteger · enumRequired
  • 100: Missing required request data. Description: You should pass the necessary parameters in the HTTP request body.
  • 101: Illegal request data. Description: Check the format of request
  • 102: Illegal request param. Description: Some parameters do not meet the requirements. Please adjust them according to the error message.
  • 105: OD is not in client's round-trip white list. Description: This city pair has not been whitelisted. Check with your account manager if there is a restriction to your account.
  • 106: You are not allowed to search. Description: Check with your account manager if there is a restriction to your account.
  • 107: Insufficient balance. Description: The account balance is below the agreed threshold. Top-up your account on a priority.
  • 108: Route is restricted / System limitations. Description: The airline has flights and quotations, but Atlas has closed sales for some reasons. The reasons can be 1) The sales were manually closed 2) The system has detected a risk of sold out 3) Prohibitions on nearby flights.
  • 109: The number of searches exceeded the limit. Description: The searches per day have exceeded the allowed limit. Check with your account manager if there is a restriction to your account.
  • 110: Too many concurrent requests.. Description: The QPS (Queries Per Second) is higher than the allowed limit. If your business requires more resources, please contact your account manager.
  • 111: Real time search is not allowed. Description: This feature is not activated for your account. Connect with your account manager if you require this service.
  • 112: Timed out. Description: The search request has timed-out. For further details please refer to FAQs --> Atlas API General Information.
  • 113: Airline is under maintenance. Description: Airline is in "Inactive" or "Maintenance" status with Atlas. This does not necessarily mean that there is an issue with the Airline website itself. Wait for the status to change to “active”.
  • 114: No flights present. Description: This may happen when: - The airline does not fly on that date for the searched city pair. Check the airline website to see if the flight is operational for that date.
  • 116: Search data not captured. Description: An error was reported during the search data stoprage at Atlas' end. If this error is not constantly reported, you can try trying again. If the error persists, then it is necessary to contact the account manager.
  • 123: Too many requests but too few paid orders. Description: The service has been blocked as the search requests are too many and the paid orders are very less.
  • 124: Unsupported settlement currency. Description: The settlement currency is different than what is accepted by Atlas. Change the currency to the currency accepted by Atlas for settlement.
  • 126: requestId does not exist or request is already ended. Description:
  • 900: Unauthorized access. Description: Incorrect credentials Or the account status is incorrect Or try to access other customer's data. Check credentials. If the error still persists, contact your account manager.
  • 9999: Inner error. Description: There is a problem or a bug in the system. Contact your account manager.
Possible values:
msgstringOptional

It serves as an additional description of the response result. Especially when the interface reports an error (status !=0), it is usually a human-readable error message. Note: Do not use this field in any programming scenarios. For example, do not judge whether the interface responds successfully based on this field. Instead, you should only determine it by checking whether the status is equal to0at any time.

post
/search.do
200Success

Verify

post

Dependency: The search function should be called prior to this call.

  • When there is no price change, the "original" and the "new" price and tax will always be the same.

  • When there is price change, there will be some difference between the "original" and the "new" price and tax.

  • If paymentMethod in the request is 5(MoR)the MoR currency will be returned and amount in “VendorFare” and it’s paymentFee in cardChargeList. The paymentFee amount will not be added to the “VendorFare”.

  • If paymentMethod in the request is 3(VCC Passthrough)the VCC Passthrough currency will be returned and amount in “VendorFare” and it’s paymentFee in cardChargeList (if any). The paymentFee amount will be added to the “VendorFare”.

Endpoint: https://sandbox.atriptech.com/verify.do

Header parameters
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
Accept-EncodingstringRequiredExample: gzip
x-atlas-client-idstringRequiredExample: <YOUR_CLIENT_ID>
x-atlas-client-secretstringRequiredExample: <YOUR_CLIENT_SECRET>
Body
routingIdentifierstringRequired

TheroutingIdentifierfrom search response.

maxResponseTimeinteger · nullableOptional

The interface timeout(in milliseconds), with a default of 5000ms. Note: Due to the influence of network transmission and computational performance, the client may still receive a normal result (instead of a timeout) when the response duration exceeds. This time is used to control the overall response duration of the interface within a certain range, and the error generally will not exceed several hundred milliseconds. If you have strict requirements for the timeout time, it is recommended that you set the timeout time of your HTTP tool library. If the HTTP tool library you use does not support this capability, you may need to use other tools to achieve it, and most programming languages provide relevant capabilities.

Default: 15000
requestSourcestring · nullableOptional

The tag to identify which channel does this traffic come from. For example: SkyScanner,Google,Oganic search,etc…

Responses
chevron-right
200Success
application/json
statusinteger · enumRequired
  • 200: Illegal routing identifier. Description: The "routingIdentifier" in request contains invalid content. Please check the content of this field to ensure that the content returned by the search is passed back exactly as it is.
  • 201: Invalid routing. Description: The airline has flights and quotations, but Atlas has closed sales for some reasons. The reasons can be 1) The sales were manually closed 2) The system has detected a risk of sold out 3) Prohibitions on nearby flights. Try booking after some time.
  • 202: Routing identifier expired. Description: The routingIdentifier has a certain validity period. If the “routingIdentifier” is used after this time period, then this error is displayed. Conduct “Search” again and use the new “routingIdentifier”.
  • 203: Airline closed. Description: The airline is no longer in business.
  • 205: Timed out. Description:
  • 207: Flight not available. Description: The required flight is no longer available at the airline's side, possibly due to the flight being sold out.
  • 210: Fare family sold out. Description: The flight or the fare family is no longer available with the airline. Conduct the search again and rebook.
  • 212: Illegal Request Parameter. Description: Some parameters do not meet the requirements. Please adjust them according to the error message.
  • 213: Flight information changed. Description: Conduct the search again and rebook.
  • 222: Fail to obtain baggage from airline. Description: Fail to obtain baggage from airline, pls retry the request.
  • 299: Verify failed. Description: This is an error for which Atlas needs to take action. In some uncontrollable situations, such as network issues, upgrades, and restarts, 299 errors may occur. It is possible that the airline is not available or there are challenges at Atlas' end. Atlas needs to handle these errors internally.
Possible values:
msgstring · nullableOptional

It serves as an additional description of the response result. Especially when the interface reports an error (status !=0), it is usually a human-readable error message. Note: Do not use this field in any programming scenarios. For example, do not judge whether the interface responds successfully based on this field. Instead, you should only determine it by checking whether the status is equal to0at any time.

sessionIdstringRequired

The unique identifier for this verification. It is required when you call order function to make a reservation to identify which flight and fare the client is choosing.

maxSeatsintegerRequired

Max seats allowed when booking. Please refer this element and prevent the end-users to choose more passengers than seat count.

post
/verify.do
200Success

Order

post

Dependency: Verify function should be called in prior to this call.

The booking requirements need to be read from the "bookingRequirement" array in the "verify.do" response. The "Booking Requirements" can be different at the route level. Alternatively, you can add all the details but please note that all the fields should have actual data and not fictitious information. Please follow this approach.

Endpoint: https://sandbox.atriptech.com/order.do

Header parameters
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
Accept-EncodingstringRequiredExample: gzip
x-atlas-client-idstringRequiredExample: <YOUR_CLIENT_ID>
x-atlas-client-secretstringRequiredExample: <YOUR_CLIENT_SECRET>
Body
sessionIdstring · nullableOptional

sessionIdreturned by verify response. If you got offer by verify api, then this parameter is required.

offerIdstring · nullableOptional

offerIDreturned by get offer response. If you got offer by "get offer" api, then this parameter is required.

useAtlasMailForContactboolean · nullableOptional

The tag denoting whether to use Atlas email id for contact information.

  • true: Use Atlas email as contact email.
  • false: It is determined according to the strategy agreed upon with the customer or the default strategy of the system.

Please refer to the terms and conditions for usage of Atlas email.

Default: false
requestSourcestring · nullableOptional

The tag to identify which channel does this traffic come from. For example: SkyScanner,Google,Oganic search,etc…

ifSeatOccupiedstring · enum · nullableOptional

Configuration of ordering when the seat is occupied.

  • SIMILAR_SEAT: Select a similar seat automatically
  • STOP_SEAT: Stop seat and continue ticketing
  • STOP_TICKET: Stop ticketing and cancel the order
Possible values:
localestring · nullableOptional

The country and language environment preferences of the ticket purchaser/contact person. This information may be useful for certain airlines. For example, airlines will use this information to communicate with users in appropriate languages (e.g., via emails). We have prepared the language environments supported by each airline for your reference: Locale

Responses
chevron-right
200Success
application/json
statusinteger · enumRequired
  • 301: Session does not exist or timed out. Description: The "sessionID" has a validity of 2 hrs. If the “sessionID” is used after this time period, then this error is displayed
  • 302: The target flight is no longer available. Description: In the period between verify and book, the flight has been sold out. This can also be due to the number of passengers booked. The number of pax when booking and the number of pax when verifying may be different. When create a booking, the price is verified based on the actual number of pax booked
  • 303: Airline closed. Description: Airline has either ceased to exist or not operational.
  • 304: Verify failed. Description: In some uncontrollable situations, such as network issues, upgrades, and restarts, 304 error may occur, but not many. If there are many 304 errors, it is possible that the airline is not available or some technical issue at Atlas' end. Contact your account manager if this error keeps on repeating.
  • 305: Invalid routing. Description: When generating an order, the system found that the flight was no longer sold for various reasons, such as 1) L2B 2) The system has identified that there may be a risk of the flight being sold out 3) The airline's sales have been closed
  • 307: Illegal booking request parameters. Description: Some request parameters have problem. Please check the message.
  • 308: Price changed. Description: The price has changed between the price verification and order. Please verify the price again and generate the order.
  • 309: Ancillary not found. Description: Incorrect ancillary product code has been entered. Check and enter the correct ancillary product code.
  • 310: Infant not allowed. Description: The offer does not support infant. Create a new booking without infant passenger type.
  • 312: Too many seats booked. Description: The number of pax booked exceeds the remaining (or allowed) seats on the current flight.
  • 313: Fare family sold out. Description: Selected offer is no longer available. Conduct the search again and rebook.
  • 315: Not enough seats. Description: Seats have been sold out
  • 316: Timed out. Description: There is a time-out error at the airline’s end
  • 317: Booking unsuccessful with Airline. Description: An error has happened at the airline’s end.
  • 318: Check if a booking with the same passenger details and flight numbers exists. After confirming, ignore this booking.
  • 319: Flight information has changed. Description: Re-verify the price (query the latest flight information) and generate the order.
  • 320: The requested seats were not found or they are already occupied. Description: Rebook seats and submit a new order.
  • 321:
  • 322: Seat price changed. Description: Seat price changed. Re-query the seat map and select seats
  • 323: The format of the e-mail in the contact information is incorrect
  • 324: Airline system issues. Description: Retry after some time. If the issue persists, please contact our operations team.
  • 325: The airline has deemed the passenger unserviceable
  • 326: Your account balance on the airline side is insufficient(BYOA scenario)
  • 327: Passenger information does not meet the requirements. Description: Check and correct the passenger information according to the error message
  • 328: Selected seat is no longer available. Description: The selected seat has been occupied.
  • 329: No payment method is available. Description: No payment method is available. Please check whether the quotation currency or account configuration is correct.
  • 330: operation is in progress. Description: operation is in progress
  • 407: Some mandatory element for the passenger has not been submitted.. Description: Check the information and correct the same and resubmit.
  • 408: Passenger can not board alone. Description: Create a new order and add an adult passenger with the child passenger
  • 409: Additional baggage does not match the flight segment. Description: Luggage purchased for each segment of a connecting flight must be the same.
  • 410: The contact information is not in the correct format.. Description: Check the contact information and confirm that it matches the required format.
Possible values:
msgstringRequired

It serves as an additional description of the response result. Especially when the interface reports an error (status !=0), it is usually a human-readable error message. Note: Do not use this field in any programming scenarios. For example, do not judge whether the interface responds successfully based on this field. Instead, you should only determine it by checking whether the status is equal to0at any time.

sessionIdstringRequired

Echo thesessionIdin the request parameters.

offerIdstring · nullableOptional

Echo theofferIdin the request parameters.

orderNostringRequired

Order number of the created order.

pnrCodestringRequired

The pnrCode is the single reference for the booking. This is the Atlas PNR, not airline's.

totalPricenumberRequired

Total price(not including service fee) of this order in the currency TheAtlas settled with you

totalTransactionFeenumberRequired

Total technical fees for this order in the currency TheAtlas settled with you.

currencystringRequired

The currency TheAtlas settled with you.

vendorTotalPricenumber · nullableOptional

Total price of this order in the vendor's currency, reference for you to generate the specific credit card.

vendorCurrencystring · nullableOptional

Vendor's currency.

tktLimitTimestringRequired

Payment deadline for this order. This time will be displayed in SGT (GMT +8). The fromat is:yyyy-MM-dd HH:mm:ss.

duplicateOrdersstring[] · nullableOptional

If the api returns error code318(duplicate booking), then the list will contain duplicate order numbers.

post
/order.do
200Success

Order Commit

post

This API is only required in the FR integration process. After create an order and before payment, you need to call this API to obtain the link of the FR order confirmation page and display it to users. Users should confirm the order through this page, and finally customer pay to Atlas.

Endpoint: https://sandbox.atriptech.com/orderCommit.do

Header parameters
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
Accept-EncodingstringRequiredDefault: gzipExample: gzip
x-atlas-client-idstringRequiredDefault: <YOUR_CLIENT_ID>Example: <YOUR_CLIENT_ID>
x-atlas-client-secretstringRequiredDefault: <YOUR_CLIENT_SECRET>Example: <YOUR_CLIENT_SECRET>
Body
orderNostringRequired

Order number

redirectUristring · nullableOptional

The redirect localtion to which when users confirm an order on the FR's confirmation page. If you choose to display the confirmation page in Popup mode, please specify this.

iframestring · nullableOptional

If you want to display the FR's order confirmation page in iframe mode, please specify iframe=true, and in this case, the redirectUri will be ignored.

timeoutinteger · nullableOptional

Maximum response time of the API in milliseconds.

Default: 8000
Responses
chevron-right
200Success
application/json
statusinteger · enumRequired
  • 307: illegal booking request param
  • 800: order not exists
  • 316: timed out
  • 317: airline error
Possible values:
msgstring · nullableOptional

It serves as an additional description of the response result. Especially when the interface reports an error (status !=0), it is usually a human-readable error message. Note: Do not use this field in any programming scenarios. For example, do not judge whether the interface responds successfully based on this field. Instead, you should only determine it by checking whether the status is equal to0at any time.

confirmationUrlstringRequired

The FR order confirmation page link.

post
/orderCommit.do
200Success

Payment

post

Dependency: Order function should be called in prior to this call.

  • Atlas provides the information from the search.do API response itself whether VCC can be accepted as a mode of payment for an order. Please read the "supportCreditTransPayment" field in the search.do and verify.do responses. When this field is equal to "0" (zero), it means that only "deposit" mode of payment can be used and when this field is equal to "1" (one), it means that both the "deposit" as well as the "VCC" mode of payment can be used.

  • For VCC payments, the Test Cards to be used for testing in SANDBOX: Visa: ◦ 4532015112830366 ◦ 4916931584764308 ◦ 4485275742308327 ◦ 4556737586899855 ◦ 4532644189324563 Mastercard: ◦ 5555555555554444 ◦ 5105105105105100 ◦ 5223456789012346 ◦ 5301250070000191 ◦ 5454545454545454 American Express: ◦ 378282246310005 ◦ 371449635398431 ◦ 340000000000009 ◦ 370000000000002 ◦ 375987654321001 Discover: ◦ 6011111111111117 ◦ 6011000990139424 ◦ 6011987612345678 JCB: ◦ 3566002020360505

Endpoint: https://sandbox.atriptech.com/pay.do

Header parameters
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
Accept-EncodingstringRequiredExample: gzip
x-atlas-client-idstringRequiredExample: NAR65434_api_1
x-atlas-client-secretstringRequiredExample: <YOUR_CLIENT_SECRET>
Body
orderNostringRequired

Order number you want to do the payment.

paymentMethodinteger · enumRequired

The payment method you want to use

  • 1: balance
  • 3: vcc passthough
  • 4: BYOA
  • 5: MoR
Possible values:
clientOrderNostring · nullableOptional

Order number at the customer side.

requestSourcestring · nullableOptional

The tag to identify which channel does this traffic come from. For example: SkyScanner,Google,Oganic search,etc…

Responses
chevron-right
200Success
application/json
statusinteger · enumRequired
  • 400: Illegal request param. Description: Check and correct the request parameters according to the error message.
  • 401: Later than the payment deadline. Description: Payment for the booking was initiated later than the payment deadline.
  • 402: Order status does not support payment. Description: The order status maybe “ticketing” or “ticketed” where the payment has already been made. Check if the order status is unpaid
  • 403: Unsupported payment method. Description: The payment method is not supported for this order.
  • 404: The order is already paid. Description: Check if the order has been paid. If “yes”, do not send the payment request
  • 406: Payment operation is in progress. Description: The previous payment request is still in process. Wait for the airline PNR to be received in the PNR details response.
  • 407: Some mandatory element for the passenger has not been submitted.. Description: Check the information and correct the same and resubmit.
  • 408: Passenger can not board alone. Description: Create a new order and add an adult passenger with the child passenger
  • 409: Additional baggage does not match the flight segment. Description: Luggage purchased for each segment of a connecting flight must be the same.
  • 410: The contact information is not in the correct format.. Description: Check the contact information and confirm that it matches the required format.
  • 411: Some error happened with the payment gateway. Description: Some error happened with the payment gateway
  • 412: No available payment methods. Description: No available payment methods for this order
  • 413: Card is not supported. Description: For MoR, the brand of the card sent by customer is not supported by Atlas.
  • 414: Card mismatch. Description: The brand of the card sent during payment is inconsistent with the "cardType" sent when generating the order.
  • 415: order is not confirmed by user. Description: order is not confirmed by user
Possible values:
msgstring · nullableOptional

It serves as an additional description of the response result. Especially when the interface reports an error (status !=0), it is usually a human-readable error message. Note: Do not use this field in any programming scenarios. For example, do not judge whether the interface responds successfully based on this field. Instead, you should only determine it by checking whether the status is equal to0at any time.

orderNostringRequired

Echo the order number

paymentMethodinteger · enumRequired

Payment method

Possible values:
post
/pay.do
200Success

Retrieve Booking

post

Dependency: Order function should be called in prior to this call.

Please refer to the below information for the usage of the queryOrderDetails.do API.

  1. All the parameters can be used together, if required.

  2. “OrderNo” is “required” if “airlinePNR” and “carrier” cannot be provided upon calling the API. Inversely, “airlinePNR” and “carrier” are “required” if “OrderNo” cannot be provided. All remaining fields in the request are optional.

  3. The PNR (Passenger Name Record) for an airline ticket order or a luggage purchase order must be kept consistent, as per airline regulations.

  4. The input parameters orderNo, airlinePNR, carrier, and other optional fields will be validated together to ensure they belong to the same order data source. If any of these input parameters do not match with others, the API will return an error.

  5. Airline ticket orders and associated post-booking ancillary orders can be retrieved using the following methods: (airline ticket orders + post-booking ancillary orders):

    • orderNo

    • airlinePNR + carrier

    • orderNo + airlinePNR + carrier

    • orderNo + airlinePNR + carrier + other optional parameters

  6. In case the parameters of “airlinePNR” and “carrier” cannot identify an unique order (e.g BC - PNR is made up with 4 number), customer needs to enter additional parameters such as "name" for identification. In such scenarios, API will respond with error msg ”Multi-orderNos are identified, please request again with extra parameters added.”

Endpoint: https://sandbox.atriptech.com/queryOrderDetails.do

Header parameters
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
Accept-EncodingstringRequiredExample: gzip
x-atlas-client-idstringRequiredExample: NAR65434_api_1
x-atlas-client-secretstringRequiredExample: <YOUR_CLIENT_SECRET>
Body
orderNostring · nullableOptional

Order number of the order you want to retrieve

pnrCodestring · nullableOptional

The pnrCode is the single reference for the booking. This is the Atlas PNR.

Responses
chevron-right
200Success
application/json
statusinteger · enumRequired
  • 800: Order not exists
  • 701: Multi-order are identified, please request again with extra parameters added
  • 702: airlinePNR and carrier are mandatory to fill in for order retrieval, please check and request again
  • 703: No order found, please check the parameter
  • 704: Parameters don't match, please check and retry
  • 705: Timeout
Possible values:
msgstring · nullableOptional

It serves as an additional description of the response result. Especially when the interface reports an error (status !=0), it is usually a human-readable error message. Note: Do not use this field in any programming scenarios. For example, do not judge whether the interface responds successfully based on this field. Instead, you should only determine it by checking whether the status is equal to0at any time.

orderNostringRequired

Order number

pnrCodestringRequired

The pnrCode is the single reference for the booking. This is the Atlas PNR.

orderStatusstringRequired

Order status -0: Unpaid -1: Ticketing-in-Process -2: Ticketed --3: Cancelled

ticketStatusstringRequired

Ticket status -0: Ticket not issued -1: Ticket issued

totalPricenumberRequired

Total price(not include the technical service fee) of this order in the currency TheAtlas settled with you.

currencystringRequired

The currency TheAtlas settled with you.

tktLimitTimestringRequired

Payment deadline for this order. This time will be displayed in SGT (GMT +8). The format is:yyyy-MM-dd HH:mm:ss

vendorTotalPricenumber · nullableOptional

Total price of this order in the vendor's currency, reference for you to generate the specific credit card. If the order does not support VCC passthrough or BYOA, this fare will not be displayed.

vendorCostnumber · nullableOptional

The actual price charged by the airline, which is denominated in the airline's currency(vendorCurrency). We will only display the actual amount charged by the airline if the order supports VCC passthrough or BYOA, otherwise, this field will benull.

vendorTotalAncillaryPricenumber · nullableOptional

Total ancillary price of this order in the vendor's currency. If the order does not support VCC passthrough or BYOA, this fare will not be displayed.

vendorCurrencystring · nullableOptional

Vendor's currency.

adultTotalFarenumberRequired

Total adult price of this order in the currency TheAtlas settled with you.

childTotalFarenumberRequired

Total child price of this order in the currency TheAtlas settled with you.

infantTotalFarenumber · nullableOptional

Total infant price of this order in the currency TheAtlas settled with you.

totalAncillaryPricenumber · nullableOptional

Total ancillary price of this order in the currency TheAtlas settled with you.

totalTransactionFeenumberRequired

Total technical fees for this order in the currency TheAtlas settled with you.

supportPaymentMethodnumberRequiredDeprecated

This tag shows which payment method is supported for that particular booking. -1: Prepayment Only -3: Both Credit Card Payment and Prepayment Available

This field has been deprecated, pls usesupportPaymentMethods instead.

paymentMethodinteger · enum · nullableOptional

This is the mode of payment used to pay for the booking. If the order is not paid, this field will benull.

Possible values:
itineraryDownloadstringRequired

The link to download the itinerary of the trip.

errorCodestring · enumRequired

An error code used to indicate the specific reason for ticket issuance failure. Note that this error code will only be displayed when the order is canceled due to ticket issuance failure.

Possible values:
errorMessagestringOptional

A brief message used to explain theerrorCode.

airlineMessagestringOptional

A piece of error message on the airline side that is used to explain theerrorCode.

ifSeatOccupiedstring · enum · nullableOptional

Configuration of ordering when the seat is occupied.

Possible values:
paymentAttemptedboolean · nullableOptional

Only used for VCC transparent transmission, indicating whether Atlas has initiated payment operations with the airline using your VCC. true/false/null (meaningless). -true: Atlas has previously initiated a payment operation with the airline. -false: Atlas has not initiated a payment operation with the airline. -null: meaningless Note: true only indicates that Atlas has previously initiated a payment operation with the airline, and does not represent the payment result (successful or failed)

post
/queryOrderDetails.do
200Success

Smart Search(Only For TMC)

post

Advantages of Smart Search:

  • Supports real-time search for booking windows and routes not covered in "Search API".

  • Enhances search result rate and overall coverage.

Points to note:

  • Smart Search will be activated "on demand". Please contact your account manager or sales director if you want this feature to be activated.

  • The ist response will return the results from the cache. if the "smartEnd"=false, send the subsequent requests until if the "smartEnd"=true to get all the results from the LIVE search.

  • Use production endpoint being used for APls other than search APl.

Workflow:

  • Send the "Smart Search" request(called First Request) and receive the response, which includes an ID (requestId) used to identify the entire search process, and may also contain part of the flight data(routings).

  • After receiving the response, if thesmartEnd=false, then send another request (called Subsequent Request) only with therequestId.

  • Follow this flow untilsmartEnd=true. This means that the smart search has been completed.

Endpoint: https://sandbox.atriptech.com/smartSearch.do

Header parameters
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
Accept-EncodingstringRequiredExample: gzip
x-atlas-client-idstringRequiredExample: <YOUR_CLIENT_ID>
x-atlas-client-secretstringRequiredExample: <YOUR_CLIENT_SECRET>
Body
requestIdstringRequired

Only required in Subsequent Request

tripTypestring · enumRequired

The trip type(1=one way or 2=round trip) you want to search

Example: 1Possible values:
adultNuminteger · min: 1 · max: 9Required

Adult passenger count. Please note that the total number of adults(adultNum) and children(childNum) cannot exceed 9.

Default: 0Example: 1
childNuminteger · max: 8Required

Child passenger count. Please note that the total number of adults(adultNum) and children(childNum) cannot exceed 9

Default: 0Example: 0
infantNuminteger · max: 9Required

Infant passenger count, no more than the number of adult

Default: 0Example: 0
fromCitystringRequired

IATA code of the departure city or airport (in capital letters).When the airport code you sent is different from the code of the city where the airport is located, we can recognize that it is an airport, otherwise we will treat it as a city code. We will filter flights based on your departure location type.

Example: LON
toCitystringRequired

IATA code of the arrival city or airport (in capital letters).When the airport code you sent is different from the code of the city where the airport is located, we can recognize that it is an airport, otherwise we will treat it as a city code. We will filter flights based on your departure location type.

Example: PAR
fromAirportstring · nullableOptional

IATA code of the departure airport

Example: AAA
toAirportstring · nullableOptional

IATA code of the arrival airport

Example: AAA
fromDatestring · dateRequired

Departure date, the format is YYYYMMDD

Example: 20251010
retDatestring · date · nullableOptional

Return date, the format is YYYYMMDD. If you are searching for round-trip, the return date is mandatory.

airlinesstring[] · nullableOptional

An array of IATA Codes(in capital letters) of airlines. The result will only contain the airlines specified in the search request.

fromFlightNumbersstring[] · nullableOptional

Search for specified departure flights. Each element represents one flight. Connecting flight numbers are separated by "," (comma). Example:

  • ["FR123"]: A direct flight
  • ["FR456,FR789"]: A connecting flight
  • ["FR123", "FR456,FR789"]: 2 flights, a direct flight and a connecting flight
retFlightNumbersstring[] · nullableOptional

Search for specified return flights. Each element represents one flight. Connecting flight numbers are separated by "," (comma).

includeMultipleFareFamilyboolean · nullableOptional

Search only for the lowest fare or for the Fare Families. By default, each flight only returns the lowest fare, and each array element in the response represents: flight - lowest fare. If this parameter is turned on, each element of the search results will be a combination of flight and one of the fares, that is, different elements will have the same flight but different ticket fare.

Default: false
currencystring · nullableOptional

This is the settlement currency. The 3-letter currency code should be entered. This field is optional, and when you want to settle with Atlas in different currencies (especially when you have opened multiple deposit accounts in different currencies in Atlas), you need to use this parameter.

displayCurrencystring · nullableOptional

The currency for the display fares in response. If no display currency is specified, the display amount will be null.

requestSourcestring · nullableOptional

Identify the source of the search traffic, E.g. Google Flights, Oganic Search, SkyScanner.

syncbooleanOptional

Is smart search synchronized return, default is asynchronous

residentCodestring · nullableOptional

Resident discount code

Responses
chevron-right
200Success
application/json
statusinteger · enumRequired
  • 100: Missing required request data. Description: You should pass the necessary parameters in the HTTP request body.
  • 101: Illegal request data. Description: Check the format of request
  • 102: Illegal request param. Description: Some parameters do not meet the requirements. Please adjust them according to the error message.
  • 105: OD is not in client's round-trip white list. Description: This city pair has not been whitelisted. Check with your account manager if there is a restriction to your account.
  • 106: You are not allowed to search. Description: Check with your account manager if there is a restriction to your account.
  • 107: Insufficient balance. Description: The account balance is below the agreed threshold. Top-up your account on a priority.
  • 108: Route is restricted / System limitations. Description: The airline has flights and quotations, but Atlas has closed sales for some reasons. The reasons can be 1) The sales were manually closed 2) The system has detected a risk of sold out 3) Prohibitions on nearby flights.
  • 109: The number of searches exceeded the limit. Description: The searches per day have exceeded the allowed limit. Check with your account manager if there is a restriction to your account.
  • 110: Too many concurrent requests.. Description: The QPS (Queries Per Second) is higher than the allowed limit. If your business requires more resources, please contact your account manager.
  • 111: Real time search is not allowed. Description: This feature is not activated for your account. Connect with your account manager if you require this service.
  • 112: Timed out. Description: The search request has timed-out. For further details please refer to FAQs --> Atlas API General Information.
  • 113: Airline is under maintenance. Description: Airline is in "Inactive" or "Maintenance" status with Atlas. This does not necessarily mean that there is an issue with the Airline website itself. Wait for the status to change to “active”.
  • 114: No flights present. Description: This may happen when: - The airline does not fly on that date for the searched city pair. Check the airline website to see if the flight is operational for that date.
  • 116: Search data not captured. Description: An error was reported during the search data stoprage at Atlas' end. If this error is not constantly reported, you can try trying again. If the error persists, then it is necessary to contact the account manager.
  • 123: Too many requests but too few paid orders. Description: The service has been blocked as the search requests are too many and the paid orders are very less.
  • 124: Unsupported settlement currency. Description: The settlement currency is different than what is accepted by Atlas. Change the currency to the currency accepted by Atlas for settlement.
  • 126: requestId does not exist or request is already ended. Description:
  • 900: Unauthorized access. Description: Incorrect credentials Or the account status is incorrect Or try to access other customer's data. Check credentials. If the error still persists, contact your account manager.
  • 9999: Inner error. Description: There is a problem or a bug in the system. Contact your account manager.
Possible values:
msgstring · nullableOptional

It serves as an additional description of the response result. Especially when the interface reports an error (status !=0), it is usually a human-readable error message. Note: Do not use this field in any programming scenarios. For example, do not judge whether the interface responds successfully based on this field. Instead, you should only determine it by checking whether the status is equal to0at any time.

requestIdstringRequired

Unique identifier for the search process.

smartEndbooleanRequired

Informing whether the request has been completed. -true: Indicates that the search has ended -false: Indicates that the search is still in progress

post
/smartSearch.do
200Success

Get Offer

post

Dependency: No preceding function needs to be called before Get Offer.

  • Compared to the Verify API, the GetOffer API does not rely on Search results and improves the success rate of price verify. Since using our GetOffer real-time search increases the L2B Ratio of our requesting carrier API, not all carriers support price verification via the GetOffer.

  • Please contact your Key Account Manager if you want to use the GetOffer API. Atlas will review your workflow and if deemed aplicable, Atlas will provide further information and support you with the implementation of this API.

Endpoint: https://sandbox.atriptech.com/getOffers.do

Header parameters
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
Accept-EncodingstringRequiredExample: gzip
x-atlas-client-idstringRequiredExample: NAR65434_api_1
x-atlas-client-secretstringRequiredExample: <YOUR_CLIENT_ID>
Body
adultsinteger · min: 1 · max: 9Required

Number of adults

Default: 0Example: 1
childreninteger · max: 9 · nullableOptional

Number of children

Default: 0Example: 0
infantsinteger · max: 9 · nullableOptional

Number of infants

Default: 0Example: 0
currencystring · nullableOptional

Quotation currency, optional, default will be determined based on a certain strategy, such as the currency of the customer's pre deposit account

Example: USD
residentCodestring · nullableOptional

Resident discount code

Responses
chevron-right
200Success
application/json
statusinteger · enumRequired
  • 0: success
  • 116: airline error
  • 112: timed out
  • 9999: system error
Possible values:
msgstring · nullableOptional

As an additional description of the response result. Especially when the interface reports an error (status ≠ 0), it is usually a human-readable error message. Note: Do not use this field in any programming scenarios, such as judging whether the interface response is successful based on this field. You should always judge solely based on whether the status is equal to 0.

post
/getOffers.do
200Success

Seat Availability

post

Dependency: Verify or getOffer function should be called in prior to this call.

The seat map API is divided into independent mode and non-independent mode.

  • Independent mode means it can be used standalone without relying on other APIs.

  • Non-independent mode depends on the price verification API or the get offer API.

In a booking process, please call the 'seatAvailability' API to get seat availability information after price verification via 'verify' or 'getOffer'. Steps:

  1. API sequence

    • Search - Verify- seatAvailability - Order - Pay

    • getOffer - seatAvailability - Order - Pay

  2. Pass 'offerId' in 'seatAvailability' requests:

    • From 'verify': Use sessionId directly. From 'getOffer': Use its offerId.

  3. In the Order step, use the productCode to add specific seat to the ticket order.

Endpoint: https://sandbox.atriptech.com/seatAvailability.do

Header parameters
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
Accept-EncodingstringRequiredExample: gzip
x-atlas-client-idstringRequiredExample: NAR65434_api_1
x-atlas-client-secretstringRequiredExample: <YOUR_CLIENT_SECRET>
Body
sessionIdstringRequired

ThesessionIdreturned by price verification api(verify.do). Only required in Non-independent mode.

offerIdstringRequired

TheofferIDreturned by get offer api(getOffers.do). Only required in Non-independent mode.

carrierstringRequired

The IATA code of MSC(known as Most Significant Carrier) of the itinerary.

Responses
chevron-right
200Success
application/json
statusinteger · enumRequired
  • 214: Session ID invalid or expired.
  • 215: Segment index missing.
  • 216: Seat selection failed.
  • 217: Unknown error.
  • 218: The airline don’t support seat selection currently.
  • 219: The route don’t support seat selection currently.
  • 220: illegal request parameter.
  • 221: Fare family is empty and not configured with lowest price fare family.
  • 223: The ratio of seat quotation requests to payment orders has exceeded the allowed threshold.
Possible values:
msgstring · nullableOptional

It serves as an additional description of the response result. Especially when the interface reports an error (status !=0), it is usually a human-readable error message. Note: Do not use this field in any programming scenarios. For example, do not judge whether the interface responds successfully based on this field. Instead, you should only determine it by checking whether the status is equal to0at any time.

post
/seatAvailability.do
200Success

Get Luggage

post

In a booking process, please call the 'getLuggage' API to get precise baggage quotes after price verification via 'verify' or 'getOffer'. Steps:

  1. API sequence

    • Search - Verify- getLuggage - Order - Pay

    • getOffer - getLuggage - Order - Pay

  2. For exact baggage prices, request 'getLuggage'.

  3. Pass 'offerId' in 'getLuggage' requests:

    • From 'verify': Use sessionId as offerId

    • From 'getOffer': Use its offerId directly.

  4. 'getLuggage' returns all flight segments' baggage data, each identified by a unique productCode.

  5. In the Order step, use the productCode to add specific baggage products to the ticket order.

Endpoint: https://sandbox.atriptech.com/getLuggage.do

Header parameters
x-atlas-client-idstringRequired

api access id

Example: NAR65434_api_1
x-atlas-client-secretstringRequired

api access secret

Example: changeit
Accept-EncodingstringOptional

建议设置该请求头,能很大程度地减小网络传输报文的大小

Example: gzip
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
Body
offerIdstringRequired

ThesessionIdreturned by verify api(verify.do)

Example: 85540632-ef14-4cb2-900e-453ef0a19477
maxResponseTimeinteger · nullableOptional

Query timeout, unit: milliseconds, default 5000ms. Note: Due to network transmission and computational performance impacts, the client may still receive a normal result (rather than a timeout) even if this duration is exceeded. This time is used to control the overall response time of the interface within a certain range, with an error generally not exceeding a few hundred milliseconds. If you have strict requirements for the timeout, it is recommended to set the timeout of your HTTP toolkit. If the HTTP toolkit you are using does not support this capability, you may need to leverage other tools—related capabilities are generally provided in most programming languages.

Default: 5000
Responses
chevron-right
200Success
application/json
statusinteger · enumRequired
  • 212: illegal parameter.
  • 214: offer not exists.
  • 205: timed out.
  • 299: airline error.
  • 9999: system error.
Possible values:
msgstring · nullableOptional

As an additional description of the response result. Especially when the interface reports an error (status ≠ 0), it is usually a human-readable error message. Note: Do not use this field in any programming scenarios, such as judging whether the interface response is successful based on this field. You should always judge solely based on whether the status is equal to 0.

post
/getLuggage.do
200Success

Last updated

Was this helpful?