Shopping and Ticketing
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+transactionFeePerPaxFor the airlines which support pass through payment method, we would set
supportCreditTransPaymentto1and present the vendor's fare in thevendorFareelement. Alternatively, if the airline doesn't support pass through payment method, we would setsupportCreditTransPaymentto0and thevendorFareelement will benull.You can choose to show or hide
ancillaryProductElementsin search response, according to the configuration of each client in the backend system.The
linkselement 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
application/jsonapplication/jsongzip<YOUR_CLIENT_ID><YOUR_CLIENT_SECRET>The trip type(one way or round trip) you want to search.
- 1: Oneway
- 2: Return Trip
1Possible values: Adult passenger count. Please note that the total number of adults(adultNum) and children(childNum) cannot exceed 9.
0Example: 1Child passenger count. Please note that the total number of adults(adultNum) and children(childNum) cannot exceed 9
0Example: 0Infant passenger count, no more than the number of adult
0Example: 0IATA 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.
LONIATA 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.
PARDeparture date, the format is YYYYMMDD
20251010Return date, the format is YYYYMMDD. If you are searching for round-trip, the return date is mandatory.
An array of IATA Codes(in capital letters) of airlines. The result will only contain the airlines specified in the search request.
U2Search 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
Search for specified return flights. Each element represents one flight. Connecting flight numbers are separated by "," (comma).
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.
falseThis 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.
Identify the source of the search traffic, E.g. Google Flights, Oganic Search, SkyScanner.
Resident discount code
POST /search.do HTTP/1.1
Host:
Accept: text
Content-Type: application/json
Accept-Encoding: text
x-atlas-client-id: text
x-atlas-client-secret: text
Content-Length: 313
{
"tripType": "2",
"adultNum": 1,
"childNum": 0,
"infantNum": 0,
"fromCity": "LON",
"fromAirport": "",
"toCity": "PAR",
"toAirport": "",
"fromDate": "20250818",
"retDate": "20250820",
"airlines": [
"U2"
],
"fromFlightNumbers": [
"U28405"
],
"retFlightNumbers": [
"U28410"
],
"includeMultipleFareFamily": false,
"currency": null,
"requestSource": null
}{
"status": 0,
"msg": null,
"routings": [
{
"routingIdentifier": "TE9OX1BBUl8yXzIwMjUwODE4XzIwMjUwODIwXzFfMF8wfHR2aWluNjU0Mjh8MnwyMzIuMzhfMjMyLjM4XzYwLjE5XzQuMDBfNTI4Ljk1X1VTRHxMT05fUEFSXzFfMjAyNTA4MThfXzFfMF8wXkxHVy1VMjg0MDUtLUNERy0yMDI1MDgxODE2NDAtMjAyNTA4MTgxODU1LVN0YW5kYXJkLTEtXjE3MC4xNV8xNzAuMTVfMzUuMTZfMi4wMF8zNzcuNDZeQUVDQUVVUl9BRUNeXkFFQzFMT05QQVIyMDAyMDI1MDgxOF5HQlBeMTI1LjMwXjEyNS4zMF4yNS44OV4xJFBBUl9MT05fMl8yMDI1MDgyMF9fMV8wXzBeQ0RHLVUyODQxMC0tTEdXLTIwMjUwODIwMTkxMC0yMDI1MDgyMDE5MjAtU3RhbmRhcmQtMS1eNjIuMjNfNjIuMjNfMjUuMDNfMi4wMF8xNTEuNDleQUVDQUVVUl9BRUNeXkFFQzFQQVJMT04yMDAyMDI1MDgyMF5FVVJeNTMuMTJeNTMuMTJeMjEuMzZeMXwwfDIwMjUwODE2MTUyNzU2fDB8MTc1NTMyOTI3MTAyNFJ2VzdJfHx8fDF8Mi4wMHwzfDB8fG5vcm1hbHxmYWxzZQ==.zkLMRkU3ohHS9/5p28KK1Jw4PTWTsICx24yIQoygMMw=",
"supportCreditTransPayment": "0",
"supportPaymentMethods": [
1,
5
],
"currency": "USD",
"adultPrice": 232.38,
"adultTax": 0.00,
"adultDetails": [
{
"code": "tax",
"type": "tax",
"amount": 0.00,
"description": ""
},
{
"code": "farePrice",
"type": "base",
"amount": 232.38,
"description": ""
}
],
"childPrice": 232.38,
"childTax": 0.00,
"childDetails": [
{
"code": "tax",
"type": "tax",
"amount": 0.00,
"description": ""
},
{
"code": "farePrice",
"type": "base",
"amount": 232.38,
"description": ""
}
],
"infantPrice": 60.19,
"infantTax": 0.00,
"infantDetails": [
{
"code": "tax",
"type": "tax",
"amount": 0.00,
"description": ""
},
{
"code": "farePrice",
"type": "base",
"amount": 60.19,
"description": ""
}
],
"infantAllowed": true,
"childMandatorySeatingFee": null,
"transactionFeePerPax": 2.00,
"transactionFee": 2.00,
"transactionFeeMode": "PER_PAX",
"fromSegments": [
{
"aircraftCode": "",
"arrAirport": "CDG",
"arrTerminal": "",
"arrTime": "202508181855",
"cabin": "",
"cabinClass": 1,
"carrier": "U2",
"codeShare": false,
"depAirport": "LGW",
"depTerminal": "",
"depTime": "202508181640",
"duration": 75,
"fareFamily": "Standard",
"flightNumber": "U28405",
"operatingCarrier": "",
"operatingFlightnumber": "",
"seatCount": 3,
"segmentIndex": 1,
"stopCities": ""
}
],
"retSegments": [
{
"aircraftCode": "",
"arrAirport": "LGW",
"arrTerminal": "",
"arrTime": "202508201920",
"cabin": "",
"cabinClass": 1,
"carrier": "U2",
"codeShare": false,
"depAirport": "CDG",
"depTerminal": "",
"depTime": "202508201910",
"duration": 70,
"fareFamily": "Standard",
"flightNumber": "U28410",
"operatingCarrier": "",
"operatingFlightnumber": "",
"seatCount": 6,
"segmentIndex": 2,
"stopCities": ""
}
],
"rule": {
"hasBaggage": 1,
"baggageElements": [
{
"segmentNo": 1,
"baggageType": "CabinBaggageUnderSeat",
"passengerType": 0,
"baggagePiece": 1,
"baggageWeight": 15,
"baggageSize": "45*36*20cm"
},
{
"segmentNo": 1,
"baggageType": "StandardCheckInBaggage",
"passengerType": 0,
"baggagePiece": 0,
"baggageWeight": 0,
"baggageSize": ""
},
{
"segmentNo": 2,
"baggageType": "CabinBaggageUnderSeat",
"passengerType": 0,
"baggagePiece": 1,
"baggageWeight": 15,
"baggageSize": "45*36*20cm"
},
{
"segmentNo": 2,
"baggageType": "StandardCheckInBaggage",
"passengerType": 0,
"baggagePiece": 0,
"baggageWeight": 0,
"baggageSize": ""
}
],
"refundRules": [
{
"refundType": 0,
"refundStatus": "T",
"refundMethod": "CashBackToOriginalPayment",
"refundFee": 0.0,
"currency": "GBP",
"refNoshow": "T",
"refNoShowCondition": 0,
"refNoshowFee": 0.0,
"ruleDetailList": [
{
"status": "T",
"refundMethod": "CashBackToOriginalPayment",
"startMinute": 525600,
"endMinute": 0,
"amount": 0.0,
"currency": "GBP"
},
{
"status": "T",
"refundMethod": "CashBackToOriginalPayment",
"startMinute": 0,
"endMinute": -525600,
"amount": 0.0,
"currency": "GBP"
}
]
},
{
"refundType": 0,
"refundStatus": "T",
"refundMethod": "CashBackToOriginalPayment",
"refundFee": 0.0,
"currency": "GBP",
"refNoshow": "T",
"refNoShowCondition": 0,
"refNoshowFee": 0.0,
"ruleDetailList": [
{
"ruleId": 47379,
"status": "T",
"refundMethod": "CashBackToOriginalPayment",
"startMinute": 525600,
"endMinute": 0,
"amount": 0.0,
"currency": "GBP"
},
{
"ruleId": 47381,
"status": "T",
"refundMethod": "CashBackToOriginalPayment",
"startMinute": 0,
"endMinute": -525600,
"amount": 0.0,
"currency": "GBP"
}
]
}
],
"changesRules": [
{
"changesType": 0,
"changesStatus": "T",
"changesFee": 0.0,
"currency": "GBP",
"revNoshow": "T",
"revNoShowCondition": 0,
"revNoshowFee": 0.0,
"ruleDetailList": [
{
"status": "H",
"refundMethod": null,
"startMinute": 525600,
"endMinute": 86400,
"amount": 30.0,
"currency": "GBP"
},
{
"ruleId": 47387,
"status": "H",
"refundMethod": null,
"startMinute": 86400,
"endMinute": 120,
"amount": 49.0,
"currency": "GBP"
},
{
"ruleId": 47389,
"status": "T",
"refundMethod": null,
"startMinute": 120,
"endMinute": 0,
"amount": 0.0,
"currency": "GBP"
},
{
"ruleId": 47391,
"status": "T",
"refundMethod": null,
"startMinute": 0,
"endMinute": -525600,
"amount": 0.0,
"currency": "GBP"
}
]
},
{
"changesType": 0,
"changesStatus": "T",
"changesFee": 0.0,
"currency": "GBP",
"revNoshow": "T",
"revNoShowCondition": 0,
"revNoshowFee": 0.0,
"ruleDetailList": [
{
"ruleId": 47385,
"status": "H",
"refundMethod": null,
"startMinute": 525600,
"endMinute": 86400,
"amount": 30.0,
"currency": "GBP"
},
{
"ruleId": 47387,
"status": "H",
"refundMethod": null,
"startMinute": 86400,
"endMinute": 120,
"amount": 45.91,
"currency": "GBP"
},
{
"ruleId": 47389,
"status": "T",
"refundMethod": null,
"startMinute": 120,
"endMinute": 0,
"amount": 0.0,
"currency": "GBP"
},
{
"ruleId": 47391,
"status": "T",
"refundMethod": null,
"startMinute": 0,
"endMinute": -525600,
"amount": 0.0,
"currency": "GBP"
}
]
}
],
"serviceElements": [
{
"hasFreeSeat": 0,
"hasFreeMeal": 0
},
{
"hasFreeSeat": 0,
"hasFreeMeal": 0
}
]
},
"ancillaryProductElements": [
{
"ancillaryCode": "CBOL_1PC_15KG_MAXIMUM SIZE 56 X 45 X 25 CM",
"auxBaggageElement": {
"piece": 1,
"weight": 15,
"isAllWeight": true,
"size": "Maximum Size 56 x 45 x 25 cm"
},
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"categoryCode": "CabinBaggageOverheadLocker",
"clientTechnicalServiceFee": 0,
"currency": "USD",
"maxQty": 1,
"minQty": 1,
"price": 26.57,
"productCode": "CBOL_1PC_15KG_MAXIMUM SIZE 56 X 45 X 25 CM",
"segmentIndex": 1,
"vendorPrice": 19.56,
"vendorCurrency": "GBP"
},
{
"segmentIndex": 1,
"productCode": "SCI_BAG_1PC_15KG",
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 27.12,
"currency": "USD",
"vendorPrice": 19.97,
"vendorCurrency": "GBP",
"clientTechnicalServiceFee": 0,
"clientTechnicalServiceFeeMode": null,
"auxBaggageElement": {
"piece": 1,
"weight": 15,
"isAllWeight": true,
"size": ""
},
"maxQty": 1,
"minQty": 1,
"categoryCode": "StandardCheckInBaggage",
"ancillaryCode": "SCI_BAG_1PC_15KG"
},
{
"segmentIndex": 1,
"productCode": "SCI_BAG_2PC_30KG",
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 39.95,
"currency": "USD",
"vendorPrice": 29.42,
"vendorCurrency": "GBP",
"clientTechnicalServiceFee": 0,
"clientTechnicalServiceFeeMode": null,
"auxBaggageElement": {
"piece": 2,
"weight": 30,
"isAllWeight": true,
"size": ""
},
"maxQty": 1,
"minQty": 1,
"categoryCode": "StandardCheckInBaggage",
"ancillaryCode": "SCI_BAG_2PC_30KG"
},
{
"segmentIndex": 2,
"productCode": "CBOL_1PC_15KG_MAXIMUM SIZE 56 X 45 X 25 CM",
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 41.67,
"currency": "USD",
"vendorPrice": 35.56,
"vendorCurrency": "EUR",
"clientTechnicalServiceFee": 0,
"clientTechnicalServiceFeeMode": null,
"auxBaggageElement": {
"piece": 1,
"weight": 15,
"isAllWeight": true,
"size": "Maximum Size 56 x 45 x 25 cm"
},
"maxQty": 1,
"minQty": 1,
"categoryCode": "CabinBaggageOverheadLocker",
"ancillaryCode": "CBOL_1PC_15KG_MAXIMUM SIZE 56 X 45 X 25 CM"
},
{
"segmentIndex": 2,
"productCode": "SCI_BAG_1PC_15KG",
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 31.09,
"currency": "USD",
"vendorPrice": 26.53,
"vendorCurrency": "EUR",
"clientTechnicalServiceFee": 0,
"clientTechnicalServiceFeeMode": null,
"auxBaggageElement": {
"piece": 1,
"weight": 15,
"isAllWeight": true,
"size": ""
},
"maxQty": 1,
"minQty": 1,
"categoryCode": "StandardCheckInBaggage",
"ancillaryCode": "SCI_BAG_1PC_15KG"
},
{
"segmentIndex": 2,
"productCode": "SCI_BAG_2PC_30KG",
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 74.57,
"currency": "USD",
"vendorPrice": 63.64,
"vendorCurrency": "EUR",
"clientTechnicalServiceFee": 0,
"clientTechnicalServiceFeeMode": null,
"auxBaggageElement": {
"piece": 2,
"weight": 30,
"isAllWeight": true,
"size": ""
},
"maxQty": 1,
"minQty": 1,
"categoryCode": "StandardCheckInBaggage",
"ancillaryCode": "SCI_BAG_2PC_30KG"
}
],
"links": [
{
"carrier": "U2",
"kind": "terms",
"link": "https://www.easyjet.com",
"description": null
}
],
"separateBookings": true,
"refreshTime": "2025-08-15T22:48:58Z",
"expireTime": "2025-08-16T07:27:56Z",
"ancillarySupported": null,
"cardChargeList": [
{
"cardType": "Visa",
"percentage": 0.0300,
"charge": null,
"currency": ""
},
{
"cardType": "MasterCard",
"percentage": 0.0300,
"charge": null,
"currency": ""
}
],
"vendorFare": {
"vendorAdultPrice": 232.38,
"vendorAdultTax": 0.00,
"vendorChildPrice": 232.38,
"vendorChildTax": 0.00,
"vendorInfantPrice": 60.19,
"vendorInfantTax": 0.00,
"vendorCurrency": "USD",
}
}
]
}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
application/jsonapplication/jsongzip<YOUR_CLIENT_ID><YOUR_CLIENT_SECRET>TheroutingIdentifierfrom search response.
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.
15000The tag to identify which channel does this traffic come from. For example: SkyScanner,Google,Oganic search,etc…
POST /verify.do HTTP/1.1
Host:
Accept: text
Content-Type: application/json
Accept-Encoding: text
x-atlas-client-id: text
x-atlas-client-secret: text
Content-Length: 769
{
"routingIdentifier": "TE9OX1BBUl8yXzIwMjUwODE4XzIwMjUwODIwXzFfMF8wfHR2aWluNjU0Mjh8MnwyMzIuMzhfMjMyLjM4XzYwLjE5XzQuMDBfNTI4Ljk1X1VTRHxMT05fUEFSXzFfMjAyNTA4MThfXzFfMF8wXkxHVy1VMjg0MDUtLUNERy0yMDI1MDgxODE2NDAtMjAyNTA4MTgxODU1LVN0YW5kYXJkLTEtXjE3MC4xNV8xNzAuMTVfMzUuMTZfMi4wMF8zNzcuNDZeQUVDQUVVUl9BRUNeXkFFQzFMT05QQVIyMDAyMDI1MDgxOF5HQlBeMTI1LjMwXjEyNS4zMF4yNS44OV4xJFBBUl9MT05fMl8yMDI1MDgyMF9fMV8wXzBeQ0RHLVUyODQxMC0tTEdXLTIwMjUwODIwMTkxMC0yMDI1MDgyMDE5MjAtU3RhbmRhcmQtMS1eNjIuMjNfNjIuMjNfMjUuMDNfMi4wMF8xNTEuNDleQUVDQUVVUl9BRUNeXkFFQzFQQVJMT04yMDAyMDI1MDgyMF5FVVJeNTMuMTJeNTMuMTJeMjEuMzZeMXwwfDIwMjUwODE2MTUyNzU2fDB8MTc1NTMyOTI3MTAyNFJ2VzdJfHx8fDF8Mi4wMHwzfDB8fG5vcm1hbHxmYWxzZQ==.zkLMRkU3ohHS9/5p28KK1Jw4PTWTsICx24yIQoygMMw=",
"maxResponseTime": null,
"requestSource": null
}{
"status": 0,
"msg": "success",
"sessionId": "a39fc063-3192-4058-b179-998ebfb2fed8",
"maxSeats": 9,
"routing": {
"routingIdentifier": "TE9OX1BBUl8yXzIwMjUwODE4XzIwMjUwODIwXzFfMF8wfHR2aWluNjU0Mjh8MXwyNDIuMTRfMjQyLjE0XzY0LjE3XzIuMDBfNTUwLjQ1X1VTRHxMT05fUEFSXzFfMjAyNTA4MThfMjAyNTA4MjBfMV8wXzBeTEdXLVUyODQwNS0tQ0RHLTIwMjUwODE4MTY0MC0yMDI1MDgxODE4NTUtU3RhbmRhcmQtMS0jQ0RHLVUyODQxMC0tTEdXLTIwMjUwODIwMTkxMC0yMDI1MDgyMDE5MjAtU3RhbmRhcmQtMi1eMjQyLjE0XzI0Mi4xNF82NC4xN18yLjAwXzU1MC40NV5BRUNBRVVSX0FFQ15eQUVDMkxPTlBBUjIwMDIwMjUwODE4MjAyNTA4MjBeR0JQXjE3OC4zMl4xNzguMzJeNDcuMjVeMHwwfDIwMjUwODE2MTU1NzQ1fDB8MTc1NTMzMTA2NTU0MkJOYm1HfHx8fHwyLjAwfDN8MHx8bm9ybWFsfGZhbHNl.5FDcOQsu5zTUOBN/jPsM23gT5WuaPAs7g8AmH8q/m0U=",
"supportCreditTransPayment": "0",
"supportPaymentMethods": [
1,
5
],
"currency": "USD",
"adultPrice": 242.14,
"adultTax": 0,
"adultDetails": [
{
"code": "farePrice",
"type": "base",
"amount": 242.14,
"description": ""
},
{
"code": "tax",
"type": "tax",
"amount": 0,
"description": ""
}
],
"childPrice": 242.14,
"childTax": 0,
"childDetails": [
{
"code": "farePrice",
"type": "base",
"amount": 242.14,
"description": ""
},
{
"code": "tax",
"type": "tax",
"amount": 0,
"description": ""
}
],
"infantPrice": 64.17,
"infantTax": 0,
"infantDetails": [
{
"code": "farePrice",
"type": "base",
"amount": 64.17,
"description": ""
},
{
"code": "tax",
"type": "tax",
"amount": 0,
"description": ""
}
],
"infantAllowed": true,
"childMandatorySeatingFee": null,
"transactionFeePerPax": 2,
"transactionFee": 2,
"transactionFeeMode": "PER_PAX",
"fromSegments": [
{
"segmentIndex": 1,
"carrier": "U2",
"flightNumber": "U28405",
"depAirport": "LGW",
"depTime": "202508181640",
"arrAirport": "CDG",
"arrTime": "202508181855",
"stopCities": null,
"duration": 75,
"codeShare": false,
"cabin": "",
"cabinClass": 1,
"seatCount": 9,
"aircraftCode": "",
"depTerminal": "",
"arrTerminal": "",
"operatingCarrier": "",
"operatingFlightnumber": "",
"fareFamily": "Standard"
}
],
"retSegments": [
{
"segmentIndex": 2,
"carrier": "U2",
"flightNumber": "U28410",
"depAirport": "CDG",
"depTime": "202508201910",
"arrAirport": "LGW",
"arrTime": "202508201920",
"stopCities": null,
"duration": 70,
"codeShare": false,
"cabin": "",
"cabinClass": 1,
"seatCount": 9,
"aircraftCode": "",
"depTerminal": "",
"arrTerminal": "",
"operatingCarrier": "",
"operatingFlightnumber": "",
"fareFamily": "Standard"
}
],
"rule": {
"hasBaggage": 1,
"baggageElements": [
{
"segmentNo": 1,
"baggageType": "CabinBaggageUnderSeat",
"passengerType": 0,
"baggagePiece": 1,
"baggageWeight": 15,
"baggageSize": "45*36*20cm"
},
{
"segmentNo": 1,
"baggageType": "StandardCheckInBaggage",
"passengerType": 0,
"baggagePiece": 0,
"baggageWeight": 0,
"baggageSize": ""
},
{
"segmentNo": 2,
"baggageType": "CabinBaggageUnderSeat",
"passengerType": 0,
"baggagePiece": 1,
"baggageWeight": 15,
"baggageSize": "45*36*20cm"
},
{
"segmentNo": 2,
"baggageType": "StandardCheckInBaggage",
"passengerType": 0,
"baggagePiece": 0,
"baggageWeight": 0,
"baggageSize": ""
}
],
"refundRules": [
{
"refundType": 0,
"refundStatus": "T",
"refundMethod": "CASH_BACK_TO_ORIGINAL_PAYMENT",
"refundFee": 0,
"currency": "GBP",
"refNoshow": "T",
"refNoShowCondition": 0,
"refNoshowFee": 0,
"ruleDetailList": [
{
"status": "T",
"refundMethod": "CashBackToOriginalPayment",
"startMinute": 525600,
"endMinute": 0,
"amount": 0,
"currency": "GBP"
},
{
"status": "T",
"refundMethod": "CashBackToOriginalPayment",
"startMinute": 0,
"endMinute": -525600,
"amount": 0,
"currency": "GBP"
}
]
},
{
"refundType": 0,
"refundStatus": "T",
"refundMethod": "CASH_BACK_TO_ORIGINAL_PAYMENT",
"refundFee": 0,
"currency": "GBP",
"refNoshow": "T",
"refNoShowCondition": 0,
"refNoshowFee": 0,
"ruleDetailList": [
{
"status": "T",
"refundMethod": "CashBackToOriginalPayment",
"startMinute": 525600,
"endMinute": 0,
"amount": 0,
"currency": "GBP"
},
{
"status": "T",
"refundMethod": "CashBackToOriginalPayment",
"startMinute": 0,
"endMinute": -525600,
"amount": 0,
"currency": "GBP"
}
]
}
],
"changesRules": [
{
"changesType": 0,
"changesStatus": "T",
"changesFee": 0,
"currency": "GBP",
"revNoshow": "T",
"revNoShowCondition": 0,
"revNoshowFee": 0,
"ruleDetailList": [
{
"status": "H",
"startMinute": 525600,
"endMinute": 86400,
"amount": 30,
"currency": "GBP"
},
{
"status": "H",
"startMinute": 86400,
"endMinute": 120,
"amount": 49,
"currency": "GBP"
},
{
"status": "T",
"startMinute": 120,
"endMinute": 0,
"amount": 0,
"currency": "GBP"
},
{
"status": "T",
"startMinute": 0,
"endMinute": -525600,
"amount": 0,
"currency": "GBP"
}
]
},
{
"changesType": 0,
"changesStatus": "T",
"changesFee": 0,
"currency": "GBP",
"revNoshow": "T",
"revNoShowCondition": 0,
"revNoshowFee": 0,
"ruleDetailList": [
{
"status": "H",
"startMinute": 525600,
"endMinute": 86400,
"amount": 30,
"currency": "GBP"
},
{
"status": "H",
"startMinute": 86400,
"endMinute": 120,
"amount": 49,
"currency": "GBP"
},
{
"status": "T",
"startMinute": 120,
"endMinute": 0,
"amount": 0,
"currency": "GBP"
},
{
"status": "T",
"startMinute": 0,
"endMinute": -525600,
"amount": 0,
"currency": "GBP"
}
]
}
],
"serviceElements": [
{
"hasFreeSeat": 0,
"hasFreeMeal": 0
},
{
"hasFreeSeat": 0,
"hasFreeMeal": 0
}
]
},
"ancillaryProductElements": [
{
"ancillaryCode": "CBOL_1PC_15KG_MAXIMUM SIZE 56 X 45 X 25 CM",
"auxBaggageElement": {
"piece": 1,
"weight": 15,
"isAllWeight": true,
"size": "Maximum Size 56 x 45 x 25 cm"
},
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"categoryCode": "CabinBaggageOverheadLocker",
"clientTechnicalServiceFee": 0,
"currency": "USD",
"maxQty": 1,
"minQty": 1,
"price": 26.57,
"productCode": "CBOL_1PC_15KG_MAXIMUM SIZE 56 X 45 X 25 CM",
"segmentIndex": 1,
"vendorPrice": 19.56,
"vendorCurrency": "GBP"
},
{
"segmentIndex": 1,
"productCode": "SCI_BAG_1PC_15KG",
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 27.12,
"currency": "USD",
"vendorPrice": 19.97,
"vendorCurrency": "GBP",
"clientTechnicalServiceFee": 0,
"auxBaggageElement": {
"piece": 1,
"weight": 15,
"isAllWeight": true,
"size": ""
},
"maxQty": 1,
"minQty": 1,
"categoryCode": "StandardCheckInBaggage",
"ancillaryCode": "SCI_BAG_1PC_15KG"
},
{
"segmentIndex": 1,
"productCode": "SCI_BAG_2PC_30KG",
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 39.95,
"currency": "USD",
"vendorPrice": 29.42,
"vendorCurrency": "GBP",
"clientTechnicalServiceFee": 0,
"auxBaggageElement": {
"piece": 2,
"weight": 30,
"isAllWeight": true,
"size": ""
},
"maxQty": 1,
"minQty": 1,
"categoryCode": "StandardCheckInBaggage",
"ancillaryCode": "SCI_BAG_2PC_30KG"
},
{
"segmentIndex": 2,
"productCode": "CBOL_1PC_15KG_MAXIMUM SIZE 56 X 45 X 25 CM",
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 41.67,
"currency": "USD",
"vendorPrice": 30.69,
"vendorCurrency": "GBP",
"clientTechnicalServiceFee": 0,
"auxBaggageElement": {
"piece": 1,
"weight": 15,
"isAllWeight": true,
"size": "Maximum Size 56 x 45 x 25 cm"
},
"maxQty": 1,
"minQty": 1,
"categoryCode": "CabinBaggageOverheadLocker",
"ancillaryCode": "CBOL_1PC_15KG_MAXIMUM SIZE 56 X 45 X 25 CM"
},
{
"segmentIndex": 2,
"productCode": "SCI_BAG_1PC_15KG",
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 31.09,
"currency": "USD",
"vendorPrice": 22.9,
"vendorCurrency": "GBP",
"clientTechnicalServiceFee": 0,
"auxBaggageElement": {
"piece": 1,
"weight": 15,
"isAllWeight": true,
"size": ""
},
"maxQty": 1,
"minQty": 1,
"categoryCode": "StandardCheckInBaggage",
"ancillaryCode": "SCI_BAG_1PC_15KG"
},
{
"segmentIndex": 2,
"productCode": "SCI_BAG_2PC_30KG",
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 74.57,
"currency": "USD",
"vendorPrice": 54.91,
"vendorCurrency": "GBP",
"clientTechnicalServiceFee": 0,
"auxBaggageElement": {
"piece": 2,
"weight": 30,
"isAllWeight": true,
"size": ""
},
"maxQty": 1,
"minQty": 1,
"categoryCode": "StandardCheckInBaggage",
"ancillaryCode": "SCI_BAG_2PC_30KG"
}
],
"vendorFare": null,
"links": [],
"separateBookings": false,
"refreshTime": null,
"expireTime": null,
"ancillarySupported": [
"seat",
"luggage"
],
"cardChargeList": [
{
"cardType": "Visa",
"percentage": 0.03,
"charge": null,
"currency": ""
},
{
"cardType": "MasterCard",
"percentage": 0.03,
"charge": null,
"currency": ""
}
]
},
"bookingRequirement": {
"passenger": {
"cardIssuePlace": {
"required": false
},
"birthday": {
"required": true
},
"cardNum": {
"required": false
},
"passengerType": {
"required": true
},
"nationality": {
"required": false
},
"gender": {
"required": true
},
"cardExpired": {
"required": false
},
"cardType": {
"required": false
},
"name": {
"required": true
}
}
},
"priceChange": {
"isPriceChange": true,
"originalAdultPrice": 232.38,
"originalAdultTax": 0,
"originalChildPrice": 232.38,
"originalChildTax": 0,
"originalInfantPrice": 60.19,
"originalInfantTax": 0,
"newAdultPrice": 242.14,
"newAdultTax": 0,
"newChildPrice": 242.14,
"newChildTax": 0,
"newInfantPrice": 64.17,
"newInfantTax": 0
}
}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
application/jsonapplication/jsongzip<YOUR_CLIENT_ID><YOUR_CLIENT_SECRET>sessionIdreturned by verify response. If you got offer by verify api, then this parameter is required.
offerIDreturned by get offer response. If you got offer by "get offer" api, then this parameter is required.
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.
falseThe tag to identify which channel does this traffic come from. For example: SkyScanner,Google,Oganic search,etc…
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
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
POST /order.do HTTP/1.1
Host:
Accept: text
Content-Type: application/json
Accept-Encoding: text
x-atlas-client-id: text
x-atlas-client-secret: text
Content-Length: 647
{
"sessionId": "a39fc063-3192-4058-b179-998ebfb2fed8",
"offerId": "",
"passengers": [
{
"name": "For/Test",
"passengerType": 0,
"gender": "M",
"birthday": "19900101",
"cardType": "NATIONAL_ID_CARD",
"cardNum": "636940383",
"cardIssuePlace": "PT",
"cardExpired": "20250101",
"nationality": "US",
"ffpCardNo": null,
"ffpCarrier": null,
"ancillaries": [
{
"productCode": "SCI_BAG_1PC_15KG",
"segmentIndex": 1
},
{
"productCode": "SCI_BAG_1PC_15KG",
"segmentIndex": 2
}
]
}
],
"contact": {
"name": "For/Test",
"address": "For test",
"postcode": "",
"email": "[email protected]",
"mobile": "0001-12345678900"
},
"useAtlasMailForContact": false,
"locale": "",
"requestSource": "",
"ifSeatOccupied": "",
"payment": null
}{
"status": 0,
"msg": null,
"sessionId": "a39fc063-3192-4058-b179-998ebfb2fed8",
"offerId": "",
"orderNo": "TESTA20250816160804096",
"pnrCode": "MDQZ7U",
"totalPrice": 300.35,
"totalTransactionFee": 2,
"currency": "USD",
"vendorTotalPrice": 221.19,
"vendorCurrency": "GBP",
"tktLimitTime": "2025-08-16 16:58:04",
"paxTicketInfos": [
{
"name": "For/Test",
"passengerType": 0,
"birthday": "19900101",
"gender": "M",
"cardNum": "636940383",
"cardType": "NATIONAL_ID_CARD",
"cardIssuePlace": "PT",
"cardExpired": "20250101",
"nationality": "US",
"ticketNos": [],
"airlinePNRs": [],
"contactEmails": [
"[email protected]"
],
"contactPhones": [
"0001-12345678900"
],
"ancillaries": [
{
"productCode": "SCI_BAG_1PC_15KG",
"segmentIndex": 1,
"currency": "USD",
"ancillaryPrice": 27.12,
"auxBaggageElement": {
"piece": 1,
"weight": 15,
"isAllWeight": true,
"size": ""
},
"vendorPrice": null,
"vendorCurrency": null
},
{
"productCode": "SCI_BAG_1PC_15KG",
"segmentIndex": 2,
"currency": "USD",
"ancillaryPrice": 31.09,
"auxBaggageElement": {
"piece": 1,
"weight": 15,
"isAllWeight": true,
"size": ""
},
"vendorPrice": null,
"vendorCurrency": null
}
]
}
],
"routing": {
"routingIdentifier": "TE9OX1BBUl8yXzIwMjUwODE4XzIwMjUwODIwXzFfMF8wfHR2aWluNjU0Mjh8MXwyNDIuMTRfMjQyLjE0XzY0LjE3XzIuMDBfNTUwLjQ1X1VTRHxMT05fUEFSXzFfMjAyNTA4MThfMjAyNTA4MjBfMV8wXzBeTEdXLVUyODQwNS0tQ0RHLTIwMjUwODE4MTY0MC0yMDI1MDgxODE4NTUtU3RhbmRhcmQtMS0jQ0RHLVUyODQxMC0tTEdXLTIwMjUwODIwMTkxMC0yMDI1MDgyMDE5MjAtU3RhbmRhcmQtMi1eMjQyLjE0XzI0Mi4xNF82NC4xN18yLjAwXzU1MC40NV5BRUNBRVVSX0FFQ15eQUVDMkxPTlBBUjIwMDIwMjUwODE4MjAyNTA4MjBeR0JQXjE3OC4zMl4xNzguMzJeNDcuMjVeMHwwfDIwMjUwODE2MTU1NzQ1fDB8MTc1NTMzMTA2NTU0MkJOYm1HfHx8fHwyLjAwfDN8MHx8bm9ybWFsfGZhbHNl.5FDcOQsu5zTUOBN/jPsM23gT5WuaPAs7g8AmH8q/m0U=",
"supportCreditTransPayment": "0",
"supportPaymentMethods": [
1,
5
],
"currency": "USD",
"adultPrice": 242.14,
"adultTax": 0,
"adultDetails": [
{
"code": "farePrice",
"type": "base",
"amount": 242.14,
"description": ""
},
{
"code": "tax",
"type": "tax",
"amount": 0,
"description": ""
}
],
"childPrice": 242.14,
"childTax": 0,
"childDetails": [
{
"code": "farePrice",
"type": "base",
"amount": 242.14,
"description": ""
},
{
"code": "tax",
"type": "tax",
"amount": 0,
"description": ""
}
],
"infantPrice": 64.17,
"infantTax": 0,
"infantDetails": [
{
"code": "farePrice",
"type": "base",
"amount": 64.17,
"description": ""
},
{
"code": "tax",
"type": "tax",
"amount": 0,
"description": ""
}
],
"infantAllowed": true,
"childMandatorySeatingFee": null,
"transactionFeePerPax": 2,
"transactionFee": 2,
"transactionFeeMode": "PER_PAX",
"fromSegments": [
{
"segmentIndex": 1,
"carrier": "U2",
"flightNumber": "U28405",
"depAirport": "LGW",
"depTime": "202508181640",
"arrAirport": "CDG",
"arrTime": "202508181855",
"stopCities": null,
"duration": 75,
"codeShare": false,
"cabin": "",
"cabinClass": 1,
"seatCount": 9,
"aircraftCode": "",
"depTerminal": "",
"arrTerminal": "",
"operatingCarrier": "",
"operatingFlightnumber": "",
"fareFamily": "Standard"
}
],
"retSegments": [
{
"segmentIndex": 2,
"carrier": "U2",
"flightNumber": "U28410",
"depAirport": "CDG",
"depTime": "202508201910",
"arrAirport": "LGW",
"arrTime": "202508201920",
"stopCities": null,
"duration": 70,
"codeShare": false,
"cabin": "",
"cabinClass": 1,
"seatCount": 9,
"aircraftCode": "",
"depTerminal": "",
"arrTerminal": "",
"operatingCarrier": "",
"operatingFlightnumber": "",
"fareFamily": "Standard"
}
],
"rule": {
"hasBaggage": 1,
"baggageElements": [
{
"segmentNo": 1,
"baggageType": "CabinBaggageUnderSeat",
"passengerType": 0,
"baggagePiece": 1,
"baggageWeight": 15,
"baggageSize": "45*36*20cm"
},
{
"segmentNo": 1,
"baggageType": "StandardCheckInBaggage",
"passengerType": 0,
"baggagePiece": 0,
"baggageWeight": 0,
"baggageSize": ""
},
{
"segmentNo": 2,
"baggageType": "CabinBaggageUnderSeat",
"passengerType": 0,
"baggagePiece": 1,
"baggageWeight": 15,
"baggageSize": "45*36*20cm"
},
{
"segmentNo": 2,
"baggageType": "StandardCheckInBaggage",
"passengerType": 0,
"baggagePiece": 0,
"baggageWeight": 0,
"baggageSize": ""
}
],
"refundRules": [
{
"refundType": 0,
"refundStatus": "T",
"refundMethod": "CASH_BACK_TO_ORIGINAL_PAYMENT",
"refundFee": 0,
"currency": "GBP",
"refNoshow": "T",
"refNoShowCondition": 0,
"refNoshowFee": 0,
"ruleDetailList": [
{
"status": "T",
"refundMethod": "CashBackToOriginalPayment",
"startMinute": 525600,
"endMinute": 0,
"amount": 0,
"currency": "GBP"
},
{
"status": "T",
"refundMethod": "CashBackToOriginalPayment",
"startMinute": 0,
"endMinute": -525600,
"amount": 0,
"currency": "GBP"
}
]
},
{
"refundType": 0,
"refundStatus": "T",
"refundMethod": "CASH_BACK_TO_ORIGINAL_PAYMENT",
"refundFee": 0,
"currency": "GBP",
"refNoshow": "T",
"refNoShowCondition": 0,
"refNoshowFee": 0,
"ruleDetailList": [
{
"status": "T",
"refundMethod": "CashBackToOriginalPayment",
"startMinute": 525600,
"endMinute": 0,
"amount": 0,
"currency": "GBP"
},
{
"status": "T",
"refundMethod": "CashBackToOriginalPayment",
"startMinute": 0,
"endMinute": -525600,
"amount": 0,
"currency": "GBP"
}
]
}
],
"changesRules": [
{
"changesType": 0,
"changesStatus": "T",
"changesFee": 0,
"currency": "GBP",
"revNoshow": "T",
"revNoShowCondition": 0,
"revNoshowFee": 0,
"ruleDetailList": [
{
"status": "H",
"startMinute": 525600,
"endMinute": 86400,
"amount": 30,
"currency": "GBP"
},
{
"status": "H",
"startMinute": 86400,
"endMinute": 120,
"amount": 49,
"currency": "GBP"
},
{
"status": "T",
"startMinute": 120,
"endMinute": 0,
"amount": 0,
"currency": "GBP"
},
{
"status": "T",
"startMinute": 0,
"endMinute": -525600,
"amount": 0,
"currency": "GBP"
}
]
},
{
"changesType": 0,
"changesStatus": "T",
"changesFee": 0,
"currency": "GBP",
"revNoshow": "T",
"revNoShowCondition": 0,
"revNoshowFee": 0,
"ruleDetailList": [
{
"status": "H",
"startMinute": 525600,
"endMinute": 86400,
"amount": 30,
"currency": "GBP"
},
{
"status": "H",
"startMinute": 86400,
"endMinute": 120,
"amount": 49,
"currency": "GBP"
},
{
"status": "T",
"startMinute": 120,
"endMinute": 0,
"amount": 0,
"currency": "GBP"
},
{
"status": "T",
"startMinute": 0,
"endMinute": -525600,
"amount": 0,
"currency": "GBP"
}
]
}
],
"serviceElements": [
{
"hasFreeSeat": 0,
"hasFreeMeal": 0
},
{
"hasFreeSeat": 0,
"hasFreeMeal": 0
}
]
},
"ancillaryProductElements": [
{
"ancillaryCode": "CBOL_1PC_15KG_MAXIMUM SIZE 56 X 45 X 25 CM",
"auxBaggageElement": {
"piece": 1,
"weight": 15,
"isAllWeight": true,
"size": "Maximum Size 56 x 45 x 25 cm"
},
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"categoryCode": "CabinBaggageOverheadLocker",
"clientTechnicalServiceFee": 0,
"currency": "USD",
"maxQty": 1,
"minQty": 1,
"price": 26.57,
"productCode": "CBOL_1PC_15KG_MAXIMUM SIZE 56 X 45 X 25 CM",
"segmentIndex": 1,
"vendorPrice": 19.56,
"vendorCurrency": "GBP"
},
{
"segmentIndex": 1,
"productCode": "SCI_BAG_1PC_15KG",
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 27.12,
"currency": "USD",
"vendorPrice": 19.97,
"vendorCurrency": "GBP",
"clientTechnicalServiceFee": 0,
"auxBaggageElement": {
"piece": 1,
"weight": 15,
"isAllWeight": true,
"size": ""
},
"maxQty": 1,
"minQty": 1,
"categoryCode": "StandardCheckInBaggage",
"ancillaryCode": "SCI_BAG_1PC_15KG"
},
{
"segmentIndex": 1,
"productCode": "SCI_BAG_2PC_30KG",
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 39.95,
"currency": "USD",
"vendorPrice": 29.42,
"vendorCurrency": "GBP",
"clientTechnicalServiceFee": 0,
"auxBaggageElement": {
"piece": 2,
"weight": 30,
"isAllWeight": true,
"size": ""
},
"maxQty": 1,
"minQty": 1,
"categoryCode": "StandardCheckInBaggage",
"ancillaryCode": "SCI_BAG_2PC_30KG"
},
{
"segmentIndex": 2,
"productCode": "CBOL_1PC_15KG_MAXIMUM SIZE 56 X 45 X 25 CM",
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 41.67,
"currency": "USD",
"vendorPrice": 30.69,
"vendorCurrency": "GBP",
"clientTechnicalServiceFee": 0,
"auxBaggageElement": {
"piece": 1,
"weight": 15,
"isAllWeight": true,
"size": "Maximum Size 56 x 45 x 25 cm"
},
"maxQty": 1,
"minQty": 1,
"categoryCode": "CabinBaggageOverheadLocker",
"ancillaryCode": "CBOL_1PC_15KG_MAXIMUM SIZE 56 X 45 X 25 CM"
},
{
"segmentIndex": 2,
"productCode": "SCI_BAG_1PC_15KG",
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 31.09,
"currency": "USD",
"vendorPrice": 22.9,
"vendorCurrency": "GBP",
"clientTechnicalServiceFee": 0,
"auxBaggageElement": {
"piece": 1,
"weight": 15,
"isAllWeight": true,
"size": ""
},
"maxQty": 1,
"minQty": 1,
"categoryCode": "StandardCheckInBaggage",
"ancillaryCode": "SCI_BAG_1PC_15KG"
},
{
"segmentIndex": 2,
"productCode": "SCI_BAG_2PC_30KG",
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 74.57,
"currency": "USD",
"vendorPrice": 54.91,
"vendorCurrency": "GBP",
"clientTechnicalServiceFee": 0,
"auxBaggageElement": {
"piece": 2,
"weight": 30,
"isAllWeight": true,
"size": ""
},
"maxQty": 1,
"minQty": 1,
"categoryCode": "StandardCheckInBaggage",
"ancillaryCode": "SCI_BAG_2PC_30KG"
}
],
"vendorFare": null,
"links": [],
"separateBookings": false,
"refreshTime": null,
"expireTime": null,
"ancillarySupported": [
"seat",
"luggage"
],
"cardChargeList": [
{
"cardType": "Visa",
"percentage": 0.03,
"charge": null,
"currency": ""
},
{
"cardType": "MasterCard",
"percentage": 0.03,
"charge": null,
"currency": ""
}
]
},
"duplicateOrders": null,
"paymentOptions": [
{
"paymentMethod": 1,
"serviceFee": {
"amount": 2,
"currency": "USD",
"deductFrom": "DEPOSIT"
},
"ticketFare": {
"amount": 300.35,
"currency": "USD",
"deductFrom": "DEPOSIT"
},
"paymentFee": {
"amount": 0,
"currency": "USD",
"deductFrom": "CARD"
},
"cardType": null
}
]
}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
application/jsonapplication/jsongzipExample: gzip<YOUR_CLIENT_ID>Example: <YOUR_CLIENT_ID><YOUR_CLIENT_SECRET>Example: <YOUR_CLIENT_SECRET>Order number
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.
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.
Maximum response time of the API in milliseconds.
8000POST /orderCommit.do HTTP/1.1
Host:
Accept: text
Content-Type: application/json
Accept-Encoding: gzip
x-atlas-client-id: <YOUR_CLIENT_ID>
x-atlas-client-secret: <YOUR_CLIENT_SECRET>
Content-Length: 113
{
"orderNo": "AMSEA20250816154139093",
"redirectUri": "https://your_confirmation_url",
"iframe": false,
"timeout": 30000
}{
"confirmationUrl": "https://www.ryanair.com/gb/en/flights-confirmation?partnerId=ATLAS&session=63361e2d-50fa-409c-bdc6-019d87660889&redirectUri=https://your_confirmation_url",
"status": 0,
"msg": null
}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
application/jsonapplication/jsongzipNAR65434_api_1<YOUR_CLIENT_SECRET>Order number you want to do the payment.
The payment method you want to use
- 1: balance
- 3: vcc passthough
- 4: BYOA
- 5: MoR
Order number at the customer side.
The tag to identify which channel does this traffic come from. For example: SkyScanner,Google,Oganic search,etc…
POST /pay.do HTTP/1.1
Host:
Accept: text
Content-Type: application/json
Accept-Encoding: text
x-atlas-client-id: NAR65434_api_1
x-atlas-client-secret: text
Content-Length: 462
{
"orderNo": "AFKMN20250819153129241",
"paymentMethod": 3,
"creditCard": {
"cardNumber": "525797******8735",
"cardCVV": "***",
"cardExpireMonth": "07",
"cardExpireYear": "2027",
"cardHolderLastName": "C***",
"cardHolderFirstName": "J******",
"cardHolderCountry": "C*",
"cardHolderProvince": "G*",
"cardHolderCity": "S*******",
"cardHolderPostCode": "5*****",
"cardHolderAddress": "S************",
"threeDS": null,
"reusable": null,
"paymentLimit": null
},
"clientOrderNo": null,
"requestSource": null
}{
"orderNo": "AFKMN20250819153129241",
"pnrCode": "SOVID9",
"paymentMethod": 3,
"airlines": [
"5J"
],
"status": 0,
"msg": "success"
}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.
All the parameters can be used together, if required.
“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.
The PNR (Passenger Name Record) for an airline ticket order or a luggage purchase order must be kept consistent, as per airline regulations.
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.
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
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
application/jsonapplication/jsongzipNAR65434_api_1<YOUR_CLIENT_SECRET>Order number of the order you want to retrieve
The pnrCode is the single reference for the booking. This is the Atlas PNR.
POST /queryOrderDetails.do HTTP/1.1
Host:
Accept: text
Content-Type: application/json
Accept-Encoding: text
x-atlas-client-id: NAR65434_api_1
x-atlas-client-secret: text
Content-Length: 36
{
"orderNo": "TESTA20250816160804096"
}{
"status": 0,
"msg": "success",
"orderNo": "TESTA20250210154142832",
"pnrCode": "XVOCMN",
"orderStatus": "2",
"ticketStatus": "1",
"paxTicketInfos": [
{
"name": "aaaaa/aaaaaabs",
"passengerType": 0,
"birthday": "19900101",
"gender": "M",
"cardNum": "636940383",
"cardType": "NATIONAL_ID_CARD",
"cardIssuePlace": "PT",
"cardExpired": "20250101",
"nationality": "US",
"ticketNos": [
"S77182"
],
"airlinePNRs": [
"S77182"
],
"contactEmails": [
"[email protected]"
],
"contactPhones": [
"0001-982736245"
],
"ancillaries": []
}
],
"totalPrice": 114.99,
"currency": "USD",
"tktLimitTime": "2025-02-11 16:31:43",
"vendorTotalPrice": 1281.9,
"vendorCost": 1346,
"vendorTotalAncillaryPrice": 0,
"vendorCurrency": "NOK",
"adultTotalFare": 114.99,
"childTotalFare": 114.99,
"infantTotalFare": 96.74,
"totalAncillaryPrice": 0,
"totalTransactionFee": 5,
"supportPaymentMethod": 3,
"supportPaymentMethods": [
1,
3,
5
],
"paymentMethod": 5,
"routing": {
"routingIdentifier": "TE9OX1BBUl8yXzIwMjUwODE4XzIwMjUwODIwXzFfMF8wfHR2aWluNjU0Mjh8MXwyNDIuMTRfMjQyLjE0XzY0LjE3XzIuMDBfNTUwLjQ1X1VTRHxMT05fUEFSXzFfMjAyNTA4MThfMjAyNTA4MjBfMV8wXzBeTEdXLVUyODQwNS0tQ0RHLTIwMjUwODE4MTY0MC0yMDI1MDgxODE4NTUtU3RhbmRhcmQtMS0jQ0RHLVUyODQxMC0tTEdXLTIwMjUwODIwMTkxMC0yMDI1MDgyMDE5MjAtU3RhbmRhcmQtMi1eMjQyLjE0XzI0Mi4xNF82NC4xN18yLjAwXzU1MC40NV5BRUNBRVVSX0FFQ15eQUVDMkxPTlBBUjIwMDIwMjUwODE4MjAyNTA4MjBeR0JQXjE3OC4zMl4xNzguMzJeNDcuMjVeMHwwfDIwMjUwODE2MTU1NzQ1fDB8MTc1NTMzMTA2NTU0MkJOYm1HfHx8fHwyLjAwfDN8MHx8bm9ybWFsfGZhbHNl.5FDcOQsu5zTUOBN/jPsM23gT5WuaPAs7g8AmH8q/m0U=",
"supportCreditTransPayment": "0",
"supportPaymentMethods": [
1,
5
],
"currency": "USD",
"adultPrice": 242.14,
"adultTax": 0,
"adultDetails": [
{
"code": "farePrice",
"type": "base",
"amount": 242.14,
"description": ""
},
{
"code": "tax",
"type": "tax",
"amount": 0,
"description": ""
}
],
"childPrice": 242.14,
"childTax": 0,
"childDetails": [
{
"code": "farePrice",
"type": "base",
"amount": 242.14,
"description": ""
},
{
"code": "tax",
"type": "tax",
"amount": 0,
"description": ""
}
],
"infantPrice": 64.17,
"infantTax": 0,
"infantDetails": [
{
"code": "farePrice",
"type": "base",
"amount": 64.17,
"description": ""
},
{
"code": "tax",
"type": "tax",
"amount": 0,
"description": ""
}
],
"infantAllowed": true,
"childMandatorySeatingFee": null,
"transactionFeePerPax": 2,
"transactionFee": 2,
"transactionFeeMode": "PER_PAX",
"fromSegments": [
{
"segmentIndex": 1,
"carrier": "U2",
"flightNumber": "U28405",
"depAirport": "LGW",
"depTime": "202508181640",
"arrAirport": "CDG",
"arrTime": "202508181855",
"stopCities": null,
"duration": 75,
"codeShare": false,
"cabin": "",
"cabinClass": 1,
"seatCount": 9,
"aircraftCode": "",
"depTerminal": "",
"arrTerminal": "",
"operatingCarrier": "",
"operatingFlightnumber": "",
"fareFamily": "Standard"
}
],
"retSegments": [
{
"segmentIndex": 2,
"carrier": "U2",
"flightNumber": "U28410",
"depAirport": "CDG",
"depTime": "202508201910",
"arrAirport": "LGW",
"arrTime": "202508201920",
"stopCities": null,
"duration": 70,
"codeShare": false,
"cabin": "",
"cabinClass": 1,
"seatCount": 9,
"aircraftCode": "",
"depTerminal": "",
"arrTerminal": "",
"operatingCarrier": "",
"operatingFlightnumber": "",
"fareFamily": "Standard"
}
],
"rule": {
"hasBaggage": 1,
"baggageElements": [
{
"segmentNo": 1,
"baggageType": "CabinBaggageUnderSeat",
"passengerType": 0,
"baggagePiece": 1,
"baggageWeight": 15,
"baggageSize": "45*36*20cm"
},
{
"segmentNo": 1,
"baggageType": "StandardCheckInBaggage",
"passengerType": 0,
"baggagePiece": 0,
"baggageWeight": 0,
"baggageSize": ""
},
{
"segmentNo": 2,
"baggageType": "CabinBaggageUnderSeat",
"passengerType": 0,
"baggagePiece": 1,
"baggageWeight": 15,
"baggageSize": "45*36*20cm"
},
{
"segmentNo": 2,
"baggageType": "StandardCheckInBaggage",
"passengerType": 0,
"baggagePiece": 0,
"baggageWeight": 0,
"baggageSize": ""
}
],
"refundRules": [
{
"refundType": 0,
"refundStatus": "T",
"refundMethod": "CASH_BACK_TO_ORIGINAL_PAYMENT",
"refundFee": 0,
"currency": "GBP",
"refNoshow": "T",
"refNoShowCondition": 0,
"refNoshowFee": 0,
"ruleDetailList": [
{
"status": "T",
"refundMethod": "CashBackToOriginalPayment",
"startMinute": 525600,
"endMinute": 0,
"amount": 0,
"currency": "GBP"
},
{
"status": "T",
"refundMethod": "CashBackToOriginalPayment",
"startMinute": 0,
"endMinute": -525600,
"amount": 0,
"currency": "GBP"
}
]
},
{
"refundType": 0,
"refundStatus": "T",
"refundMethod": "CASH_BACK_TO_ORIGINAL_PAYMENT",
"refundFee": 0,
"currency": "GBP",
"refNoshow": "T",
"refNoShowCondition": 0,
"refNoshowFee": 0,
"ruleDetailList": [
{
"status": "T",
"refundMethod": "CashBackToOriginalPayment",
"startMinute": 525600,
"endMinute": 0,
"amount": 0,
"currency": "GBP"
},
{
"status": "T",
"refundMethod": "CashBackToOriginalPayment",
"startMinute": 0,
"endMinute": -525600,
"amount": 0,
"currency": "GBP"
}
]
}
],
"changesRules": [
{
"changesType": 0,
"changesStatus": "T",
"changesFee": 0,
"currency": "GBP",
"revNoshow": "T",
"revNoShowCondition": 0,
"revNoshowFee": 0,
"ruleDetailList": [
{
"status": "H",
"startMinute": 525600,
"endMinute": 86400,
"amount": 30,
"currency": "GBP"
},
{
"status": "H",
"startMinute": 86400,
"endMinute": 120,
"amount": 49,
"currency": "GBP"
},
{
"status": "T",
"startMinute": 120,
"endMinute": 0,
"amount": 0,
"currency": "GBP"
},
{
"status": "T",
"startMinute": 0,
"endMinute": -525600,
"amount": 0,
"currency": "GBP"
}
]
},
{
"changesType": 0,
"changesStatus": "T",
"changesFee": 0,
"currency": "GBP",
"revNoshow": "T",
"revNoShowCondition": 0,
"revNoshowFee": 0,
"ruleDetailList": [
{
"status": "H",
"startMinute": 525600,
"endMinute": 86400,
"amount": 30,
"currency": "GBP"
},
{
"status": "H",
"startMinute": 86400,
"endMinute": 120,
"amount": 49,
"currency": "GBP"
},
{
"status": "T",
"startMinute": 120,
"endMinute": 0,
"amount": 0,
"currency": "GBP"
},
{
"status": "T",
"startMinute": 0,
"endMinute": -525600,
"amount": 0,
"currency": "GBP"
}
]
}
],
"serviceElements": [
{
"hasFreeSeat": 0,
"hasFreeMeal": 0
},
{
"hasFreeSeat": 0,
"hasFreeMeal": 0
}
]
},
"ancillaryProductElements": [
{
"ancillaryCode": "CBOL_1PC_15KG_MAXIMUM SIZE 56 X 45 X 25 CM",
"auxBaggageElement": {
"piece": 1,
"weight": 15,
"isAllWeight": true,
"size": "Maximum Size 56 x 45 x 25 cm"
},
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"categoryCode": "CabinBaggageOverheadLocker",
"clientTechnicalServiceFee": 0,
"currency": "USD",
"maxQty": 1,
"minQty": 1,
"price": 26.57,
"productCode": "CBOL_1PC_15KG_MAXIMUM SIZE 56 X 45 X 25 CM",
"segmentIndex": 1,
"vendorPrice": 19.56,
"vendorCurrency": "GBP"
},
{
"segmentIndex": 1,
"productCode": "SCI_BAG_1PC_15KG",
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 27.12,
"currency": "USD",
"vendorPrice": 19.97,
"vendorCurrency": "GBP",
"clientTechnicalServiceFee": 0,
"auxBaggageElement": {
"piece": 1,
"weight": 15,
"isAllWeight": true,
"size": ""
},
"maxQty": 1,
"minQty": 1,
"categoryCode": "StandardCheckInBaggage",
"ancillaryCode": "SCI_BAG_1PC_15KG"
},
{
"segmentIndex": 1,
"productCode": "SCI_BAG_2PC_30KG",
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 39.95,
"currency": "USD",
"vendorPrice": 29.42,
"vendorCurrency": "GBP",
"clientTechnicalServiceFee": 0,
"auxBaggageElement": {
"piece": 2,
"weight": 30,
"isAllWeight": true,
"size": ""
},
"maxQty": 1,
"minQty": 1,
"categoryCode": "StandardCheckInBaggage",
"ancillaryCode": "SCI_BAG_2PC_30KG"
},
{
"segmentIndex": 2,
"productCode": "CBOL_1PC_15KG_MAXIMUM SIZE 56 X 45 X 25 CM",
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 41.67,
"currency": "USD",
"vendorPrice": 30.69,
"vendorCurrency": "GBP",
"clientTechnicalServiceFee": 0,
"auxBaggageElement": {
"piece": 1,
"weight": 15,
"isAllWeight": true,
"size": "Maximum Size 56 x 45 x 25 cm"
},
"maxQty": 1,
"minQty": 1,
"categoryCode": "CabinBaggageOverheadLocker",
"ancillaryCode": "CBOL_1PC_15KG_MAXIMUM SIZE 56 X 45 X 25 CM"
},
{
"segmentIndex": 2,
"productCode": "SCI_BAG_1PC_15KG",
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 31.09,
"currency": "USD",
"vendorPrice": 22.9,
"vendorCurrency": "GBP",
"clientTechnicalServiceFee": 0,
"auxBaggageElement": {
"piece": 1,
"weight": 15,
"isAllWeight": true,
"size": ""
},
"maxQty": 1,
"minQty": 1,
"categoryCode": "StandardCheckInBaggage",
"ancillaryCode": "SCI_BAG_1PC_15KG"
},
{
"segmentIndex": 2,
"productCode": "SCI_BAG_2PC_30KG",
"canPurchaseWithTicket": 1,
"canPurchasePostTicket": 0,
"price": 74.57,
"currency": "USD",
"vendorPrice": 54.91,
"vendorCurrency": "GBP",
"clientTechnicalServiceFee": 0,
"auxBaggageElement": {
"piece": 2,
"weight": 30,
"isAllWeight": true,
"size": ""
},
"maxQty": 1,
"minQty": 1,
"categoryCode": "StandardCheckInBaggage",
"ancillaryCode": "SCI_BAG_2PC_30KG"
}
],
"vendorFare": null,
"links": [],
"separateBookings": false,
"refreshTime": null,
"expireTime": null,
"ancillarySupported": [
"seat",
"luggage"
],
"cardChargeList": [
{
"cardType": "Visa",
"percentage": 0.03,
"charge": null,
"currency": ""
},
{
"cardType": "MasterCard",
"percentage": 0.03,
"charge": null,
"currency": ""
}
]
},
"airlineBookings": [
{
"airlineCode": "D8",
"airlineName": "Norwegian Air Sweden",
"airlinePnr": "S77182",
"airlineWebSiteAddress": "https://www.norwegian.com",
"mmbEmail": "[email protected]",
"tailDigitsOfPaymentCard": null
}
],
"itineraryDownload": "http://121.40.236.223:8081/itineraryDownload.do?orderNo=FKEm34znpwya%2FiJBirhBW5YFgj2M7dX4",
"contact": {
"name": "Smith/Jane",
"address": "189, Sky Garden Walk/London/US/US",
"postcode": "EC3M 8AF",
"email": "[email protected]",
"mobile": "0001-982736245"
},
"errorCode": null,
"errorMessage": null,
"airlineMessage": null,
"locale": "",
"refundRules": [
{
"airline": "D8",
"ruleType": "1",
"passengerType": "",
"penaltyAmount": null,
"penaltyPercent": null,
"penaltyPercentBase": null,
"airlineFee": null,
"taxRefundable": false,
"fareRefundable": false,
"refundableAncillaries": null,
"startMinute": 525600,
"endMinute": 0,
"refundMethod": "CashBackToOriginalPayment"
},
{
"airline": "D8",
"ruleType": "1",
"passengerType": "",
"penaltyAmount": null,
"penaltyPercent": null,
"penaltyPercentBase": null,
"airlineFee": null,
"taxRefundable": false,
"fareRefundable": false,
"refundableAncillaries": null,
"startMinute": 0,
"endMinute": -525600,
"refundMethod": "CashBackToOriginalPayment"
},
{
"airline": "D8",
"ruleType": "0",
"passengerType": "",
"penaltyAmount": "0",
"penaltyPercent": 0,
"penaltyPercentBase": null,
"airlineFee": "0",
"taxRefundable": true,
"fareRefundable": true,
"refundableAncillaries": [],
"startMinute": 525600,
"endMinute": 300,
"refundMethod": "CashBackToOriginalPayment"
},
{
"airline": "D8",
"ruleType": "0",
"passengerType": "",
"penaltyAmount": "0",
"penaltyPercent": 0,
"penaltyPercentBase": null,
"airlineFee": "0",
"taxRefundable": true,
"fareRefundable": true,
"refundableAncillaries": [],
"startMinute": 525600,
"endMinute": -525600,
"refundMethod": "CashBackToOriginalPayment"
},
{
"airline": "D8",
"ruleType": "0",
"passengerType": "",
"penaltyAmount": null,
"penaltyPercent": null,
"penaltyPercentBase": null,
"airlineFee": null,
"taxRefundable": false,
"fareRefundable": false,
"refundableAncillaries": null,
"startMinute": 300,
"endMinute": -300,
"refundMethod": "CashBackToOriginalPayment"
},
{
"airline": "D8",
"ruleType": "0",
"passengerType": "",
"penaltyAmount": "0",
"penaltyPercent": 0,
"penaltyPercentBase": null,
"airlineFee": "0",
"taxRefundable": true,
"fareRefundable": true,
"refundableAncillaries": [],
"startMinute": -300,
"endMinute": -525600,
"refundMethod": "CashBackToOriginalPayment"
}
],
"ifSeatOccupied": "SIMILAR_SEAT",
"paymentOptions": null,
"payment": {
"paymentMethod": 5,
"serviceFee": {
"amount": 5,
"currency": "USD",
"deductFrom": "DEPOSIT"
},
"ticketFare": {
"amount": 111.41,
"currency": "EUR",
"deductFrom": "CARD"
},
"paymentFee": {
"amount": 4.8,
"currency": "EUR",
"deductFrom": "CARD"
},
"cardType": null
},
"paymentAttempted": null
}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 the
smartEnd=false, then send another request (called Subsequent Request) only with therequestId.Follow this flow until
smartEnd=true. This means that the smart search has been completed.
Endpoint: https://sandbox.atriptech.com/smartSearch.do
application/jsonapplication/jsongzip<YOUR_CLIENT_ID><YOUR_CLIENT_SECRET>Only required in Subsequent Request
The trip type(1=one way or 2=round trip) you want to search
1Possible values: Adult passenger count. Please note that the total number of adults(adultNum) and children(childNum) cannot exceed 9.
0Example: 1Child passenger count. Please note that the total number of adults(adultNum) and children(childNum) cannot exceed 9
0Example: 0Infant passenger count, no more than the number of adult
0Example: 0IATA 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.
LONIATA 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.
PARIATA code of the departure airport
AAAIATA code of the arrival airport
AAADeparture date, the format is YYYYMMDD
20251010Return date, the format is YYYYMMDD. If you are searching for round-trip, the return date is mandatory.
An array of IATA Codes(in capital letters) of airlines. The result will only contain the airlines specified in the search request.
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
Search for specified return flights. Each element represents one flight. Connecting flight numbers are separated by "," (comma).
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.
falseThis 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.
The currency for the display fares in response. If no display currency is specified, the display amount will be null.
Identify the source of the search traffic, E.g. Google Flights, Oganic Search, SkyScanner.
Is smart search synchronized return, default is asynchronous
Resident discount code
POST /smartSearch.do HTTP/1.1
Host:
Accept: text
Content-Type: application/json
Accept-Encoding: text
x-atlas-client-id: text
x-atlas-client-secret: text
Content-Length: 223
{
"adultNum": 2,
"childNum": 0,
"currency": "GBP",
"fromCity": "ACE",
"fromDate": "20250920",
"includeMultipleFareFamily": false,
"infantNum": 0,
"maxResponseTime": 15000,
"requestSource": "Dynamic",
"sync": true,
"toCity": "LON",
"tripType": "1"
}{
"status": 0,
"requestId": "17553346623104JGpo",
"smartEnd": true,
"routings": [
{
"adultDetails": [
{
"amount": 12.09,
"code": "farePrice",
"description": "",
"type": "base"
},
{
"amount": 76.07,
"code": "tax",
"description": "",
"type": "tax"
}
],
"adultPrice": 12.09,
"adultTax": 76.07,
"ancillaryProductElements": [
{
"ancillaryCode": "SCI_BAG_3PC_66KG",
"auxBaggageElement": {
"allWeight": true,
"piece": 3,
"size": "",
"weight": 66
},
"canPurchasePostTicket": 0,
"canPurchaseWithTicket": 1,
"categoryCode": "StandardCheckInBaggage",
"clientTechnicalServiceFee": 0,
"currency": "GBP",
"maxQty": 1,
"minQty": 1,
"price": 134.56,
"productCode": "SCI_BAG_3PC_66KG",
"segmentIndex": 1,
"vendorCurrency": "GBP",
"vendorPrice": 133.57
},
{
"ancillaryCode": "SCI_BAG_1PC_22KG",
"auxBaggageElement": {
"allWeight": true,
"piece": 1,
"size": "",
"weight": 22
},
"canPurchasePostTicket": 0,
"canPurchaseWithTicket": 1,
"categoryCode": "StandardCheckInBaggage",
"clientTechnicalServiceFee": 0,
"currency": "GBP",
"maxQty": 1,
"minQty": 1,
"price": 44.86,
"productCode": "SCI_BAG_1PC_22KG",
"segmentIndex": 1,
"vendorCurrency": "GBP",
"vendorPrice": 44.53
},
{
"ancillaryCode": "SCI_BAG_2PC_44KG",
"auxBaggageElement": {
"allWeight": true,
"piece": 2,
"size": "",
"weight": 44
},
"canPurchasePostTicket": 0,
"canPurchaseWithTicket": 1,
"categoryCode": "StandardCheckInBaggage",
"clientTechnicalServiceFee": 0,
"currency": "GBP",
"maxQty": 1,
"minQty": 1,
"price": 89.71,
"productCode": "SCI_BAG_2PC_44KG",
"segmentIndex": 1,
"vendorCurrency": "GBP",
"vendorPrice": 89.05
}
],
"ancillarySupported": [
"seat",
"luggage"
],
"bundleOptions": [],
"childDetails": [
{
"amount": 12.09,
"code": "farePrice",
"description": "",
"type": "base"
},
{
"amount": 76.07,
"code": "tax",
"description": "",
"type": "tax"
}
],
"childPrice": 12.09,
"childTax": 76.07,
"combineIndexs": [],
"currency": "GBP",
"expireTime": "2025-08-16T12:19:38Z",
"fid": "z8NUOiqt5NX05yUOdg0-RfZls9ockAhaJJ6w56FfZVEKQtULkxLefdhdb239v6gV",
"fromSegments": [
{
"aircraftCode": "",
"arrAirport": "STN",
"arrTerminal": "",
"arrTime": "202509210155",
"cabin": "",
"cabinClass": 1,
"carrier": "LS",
"codeShare": false,
"depAirport": "ACE",
"depTerminal": "",
"depTime": "202509202150",
"duration": 245,
"fareFamily": "low",
"flightNumber": "LS1422",
"operatingCarrier": "",
"operatingFlightnumber": "",
"seatCount": 2,
"segmentIndex": 1,
"stopCities": ""
}
],
"infantAllowed": true,
"infantDetails": [
{
"amount": 25.19,
"code": "farePrice",
"description": "",
"type": "base"
},
{
"amount": 0,
"code": "tax",
"description": "",
"type": "tax"
}
],
"infantPrice": 25.19,
"infantTax": 0,
"nationality": "",
"nationalityType": 0,
"paxType": "ADT",
"refreshTime": "2025-08-16T03:30:38Z",
"retSegments": [],
"riskSellout": false,
"routingIdentifier": "QUNFX0xPTl8xXzIwMjUwOTIwX18yXzBfMHxYSEc3MjczMV9hcGlfMXwxfDg4LjE2Xzg4LjE2XzI1LjE5XzAuNjVfMjAyLjE2X0dCUHxBQ0VfTE9OXzFfMjAyNTA5MjBfXzJfMF8wXkFDRS1MUzE0MjItLVNUTi0yMDI1MDkyMDIxNTAtMjAyNTA5MjEwMTU1LWxvdy0xLV44OC4xNl84OC4xNl8yNS4xOV8wLjY1XzIwMi4xNl5BTFNBUElfQUxTXl5BTFMxQUNFTE9OMjAwMjAyNTA5MjBeR0JQXjg3LjUwXjg3LjUwXjI1LjAwXjF8MXwyMDI1MDgxNjE2NTc1NnwwfDE3NTUzMzQ2NjIzMTA0Skdwb3x8fHx8MS4zMHw0fDB8R0JQfG5vcm1hbHxmYWxzZQ==.Q86tmtSTKhG8cbOGw3SsCJVxdMAfHLwnafWbeP2Sjw4=",
"rule": {
"baggageElements": [
{
"baggagePiece": 0,
"baggageSize": "",
"baggageType": "StandardCheckInBaggage",
"baggageWeight": 0,
"passengerType": 0,
"segmentNo": 1
},
{
"baggagePiece": 0,
"baggageSize": "",
"baggageType": "StandardCheckInBaggage",
"baggageWeight": 0,
"passengerType": 1,
"segmentNo": 1
},
{
"baggagePiece": 0,
"baggageSize": "",
"baggageType": "StandardCheckInBaggage",
"baggageWeight": 0,
"passengerType": 2,
"segmentNo": 1
},
{
"baggagePiece": 1,
"baggageSize": "56*45*25cm",
"baggageType": "CabinBaggageOverheadLocker",
"baggageWeight": 10,
"passengerType": 0,
"segmentNo": 1
},
{
"baggagePiece": 1,
"baggageSize": "56*45*25cm",
"baggageType": "CabinBaggageOverheadLocker",
"baggageWeight": 10,
"passengerType": 1,
"segmentNo": 1
},
{
"baggagePiece": 0,
"baggageSize": "56*45*25cm",
"baggageType": "CabinBaggageOverheadLocker",
"baggageWeight": 0,
"passengerType": 2,
"segmentNo": 1
}
],
"changesRules": [
{
"changesFee": 0,
"changesStatus": "T",
"changesType": 0,
"currency": "GBP",
"revNoShowCondition": 0,
"revNoshow": "T",
"revNoshowFee": 0,
"ruleDetailList": [
{
"amount": 75.5,
"currency": "GBP",
"endMinute": 300,
"ruleId": 38876,
"startMinute": 525600,
"status": "H"
},
{
"amount": 0,
"currency": "GBP",
"endMinute": 0,
"ruleId": 38877,
"startMinute": 300,
"status": "T"
},
{
"amount": 0,
"currency": "GBP",
"endMinute": -525600,
"ruleId": 38878,
"startMinute": 0,
"status": "T"
}
]
}
],
"hasBaggage": 1,
"refundRules": [
{
"currency": "GBP",
"refNoShowCondition": 0,
"refNoshow": "T",
"refNoshowFee": 0,
"refundFee": 0,
"refundMethod": "CASH_BACK_TO_ORIGINAL_PAYMENT",
"refundStatus": "T",
"refundType": 0,
"ruleDetailList": [
{
"amount": 0,
"currency": "GBP",
"endMinute": 0,
"refundMethod": "CashBackToOriginalPayment",
"ruleId": 31451,
"startMinute": 525600,
"status": "T"
},
{
"amount": 0,
"currency": "GBP",
"endMinute": -525600,
"refundMethod": "CashBackToOriginalPayment",
"ruleId": 31452,
"startMinute": 0,
"status": "T"
}
]
}
],
"serviceElements": [
{
"hasFreeMeal": 0,
"hasFreeSeat": 0
}
]
},
"separateBookings": false,
"suitAge": "",
"supportCreditTransPayment": "1",
"supportPaymentMethods": [
1,
3
],
"transactionFee": 1.3,
"transactionFeeMode": "PER_BOOKING",
"transactionFeePerPax": 0.65,
"vendorFare": {
"vendorAdultPrice": 12,
"vendorAdultTax": 75.5,
"vendorChildPrice": 12,
"vendorChildTax": 75.5,
"vendorCurrency": "GBP",
"vendorInfantPrice": 25,
"vendorInfantTax": 0
}
}
]
}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
application/jsonapplication/jsongzipNAR65434_api_1<YOUR_CLIENT_ID>Number of adults
0Example: 1Number of children
0Example: 0Number of infants
0Example: 0Quotation currency, optional, default will be determined based on a certain strategy, such as the currency of the customer's pre deposit account
USDResident discount code
POST /getOffers.do HTTP/1.1
Host:
Accept: text
Content-Type: application/json
Accept-Encoding: text
x-atlas-client-id: NAR65434_api_1
x-atlas-client-secret: <YOUR_CLIENT_ID>
Content-Length: 304
{
"adults": 1,
"children": 0,
"infants": 0,
"inboundSegments": [
{
"arrivalAirport": "NRT",
"carrier": "IJ",
"departureAirport": "PVG",
"departureDate": "20250908",
"flightNumber": "004"
}
],
"outboundSegments": [
{
"arrivalAirport": "PVG",
"carrier": "IJ",
"departureAirport": "NRT",
"departureDate": "20250904",
"flightNumber": "001"
}
]
}{
"data": [
{
"bookingRequirement": {
"passenger": {
"cardIssuePlace": {
"required": true,
"type": "string"
},
"birthday": {
"required": true,
"type": "string"
},
"cardNum": {
"required": true,
"type": "string"
},
"passengerType": {
"required": true,
"type": "int"
},
"nationality": {
"required": true,
"type": "string"
},
"gender": {
"required": true,
"type": "string"
},
"cardExpired": {
"required": true,
"type": "string"
},
"cardType": {
"required": true,
"type": "string"
},
"name": {
"required": true,
"type": "string"
}
}
},
"offer": {
"inboundJourney": {
"journeyID": "ij",
"segments": [
{
"cabinClass": "Economy",
"carrier": "IJ",
"duration": 180,
"fareFamily": "Lucky Spring",
"flightNumber": "4",
"legs": [
{
"aircraftType": "",
"arrivalAirport": "NRT",
"arrivalTerminal": "",
"arrivalTime": "202509082135",
"departureAirport": "PVG",
"departureTerminal": "",
"departureTime": "202509081735"
}
],
"rBD": "R1",
"seatsLeft": 9,
"segmentID": "is-2"
}
]
},
"offerID": "o_e11c74d10d85485a8732b3800aa55f1d_1",
"offerToken": "VFlPX1NIQV8yXzIwMjUwOTA0XzIwMjUwOTA4XzFfMF8wfFJDUzc3NDc4X2FwaV8xfDF8MTg0LjcyXzE2Ny41OV81NS43M18wLjUwXzQwOC41NF9VU0R8VFlPX1NIQV8xXzIwMjUwOTA0XzIwMjUwOTA4XzFfMF8wXk5SVC1JSjAwMS1SMS1QVkctMjAyNTA5MDQyMjQ1LTIwMjUwOTA1MDEyNS1MdWNreSBTcHJpbmctMS0jUFZHLUlKMDA0LVIxLU5SVC0yMDI1MDkwODE3MzUtMjAyNTA5MDgyMTM1LUx1Y2t5IFNwcmluZy0yLV4xODQuNzJfMTY3LjU5XzU1LjczXzAuNTBfNDA4LjU0XkFJSl9BSUpeXl5DTlleMTMyNi4wMF4xMjAzLjAwXjQwMC4wMF4wfDB8MjAyNTA4MTYxNzA4MTl8MHxvX2UxMWM3NGQxMGQ4NTQ4NWE4NzMyYjM4MDBhYTU1ZjFkfHx8R2V0T2ZmZXJ8fDAuNTB8M3wwfHxub3JtYWx8ZmFsc2U=.PaLlOsP6tMoDuhw9U/VyFOL5mcAdLP2PeAGRBzPunwg=",
"outboundJourney": {
"journeyID": "oj",
"segments": [
{
"cabinClass": "Economy",
"carrier": "IJ",
"duration": 220,
"fareFamily": "Lucky Spring",
"flightNumber": "1",
"legs": [
{
"aircraftType": "",
"arrivalAirport": "PVG",
"arrivalTerminal": "",
"arrivalTime": "202509050125",
"departureAirport": "NRT",
"departureTerminal": "",
"departureTime": "202509042245"
}
],
"rBD": "R1",
"seatsLeft": 9,
"segmentID": "os-1"
}
]
},
"paxFares": [
{
"paxType": "ADT",
"price": {
"baseAmount": 94.73,
"currency": "USD",
"taxes": 89.99
}
},
{
"paxType": "CHD",
"price": {
"baseAmount": 94.73,
"currency": "USD",
"taxes": 72.86
}
},
{
"paxType": "INF",
"price": {
"baseAmount": 55.73,
"currency": "USD",
"taxes": 0
}
}
],
"penalties": [
{
"amount": 576,
"currency": "CNY",
"journeyRefIDs": [
"oj"
],
"rule": {
"airlineFee": 0,
"currency": "CNY",
"effectiveMinutes": 525600,
"expirationMinutes": 43200,
"fixedAmount": 576,
"levelType": "Partial",
"paxTypes": [
"ADT",
"CHD"
],
"percent": 0,
"percentBase": "fare+tax",
"type": "Refund"
}
},
{
"amount": 615,
"currency": "CNY",
"journeyRefIDs": [
"oj"
],
"rule": {
"airlineFee": 0,
"currency": "CNY",
"effectiveMinutes": 43200,
"expirationMinutes": 21600,
"fixedAmount": 615,
"levelType": "Partial",
"paxTypes": [
"ADT",
"CHD"
],
"percent": 0,
"percentBase": "fare+tax",
"type": "Refund"
}
},
{
"amount": 654,
"currency": "CNY",
"journeyRefIDs": [
"oj"
],
"rule": {
"airlineFee": 0,
"currency": "CNY",
"effectiveMinutes": 21600,
"expirationMinutes": 10080,
"fixedAmount": 654,
"levelType": "Partial",
"paxTypes": [
"ADT",
"CHD"
],
"percent": 0,
"percentBase": "fare+tax",
"type": "Refund"
}
},
{
"amount": 693,
"currency": "CNY",
"journeyRefIDs": [
"oj"
],
"rule": {
"airlineFee": 0,
"currency": "CNY",
"effectiveMinutes": 10080,
"expirationMinutes": 1440,
"fixedAmount": 693,
"levelType": "Partial",
"paxTypes": [
"ADT",
"CHD"
],
"percent": 0,
"percentBase": "fare+tax",
"type": "Refund"
}
},
{
"amount": 771,
"currency": "CNY",
"journeyRefIDs": [
"oj"
],
"rule": {
"airlineFee": 0,
"currency": "CNY",
"effectiveMinutes": 1440,
"expirationMinutes": 0,
"fixedAmount": 771,
"levelType": "Partial",
"paxTypes": [
"ADT",
"CHD"
],
"percent": 0,
"percentBase": "fare+tax",
"type": "Refund"
}
},
{
"amount": 771,
"currency": "CNY",
"journeyRefIDs": [
"oj"
],
"rule": {
"airlineFee": 0,
"currency": "CNY",
"effectiveMinutes": 0,
"expirationMinutes": -43200,
"fixedAmount": 771,
"levelType": "Partial",
"paxTypes": [
"ADT",
"CHD"
],
"percent": 0,
"percentBase": "fare+tax",
"type": "Refund"
}
},
{
"amount": 410,
"currency": "CNY",
"journeyRefIDs": [
"ij"
],
"rule": {
"airlineFee": 0,
"currency": "CNY",
"effectiveMinutes": 525600,
"expirationMinutes": 43200,
"fixedAmount": 410,
"levelType": "Partial",
"paxTypes": [
"ADT",
"CHD"
],
"percent": 0,
"percentBase": "fare+tax",
"type": "Refund"
}
},
{
"amount": 439,
"currency": "CNY",
"journeyRefIDs": [
"ij"
],
"rule": {
"airlineFee": 0,
"currency": "CNY",
"effectiveMinutes": 43200,
"expirationMinutes": 21600,
"fixedAmount": 439,
"levelType": "Partial",
"paxTypes": [
"ADT",
"CHD"
],
"percent": 0,
"percentBase": "fare+tax",
"type": "Refund"
}
},
{
"amount": 468,
"currency": "CNY",
"journeyRefIDs": [
"ij"
],
"rule": {
"airlineFee": 0,
"currency": "CNY",
"effectiveMinutes": 21600,
"expirationMinutes": 10080,
"fixedAmount": 468,
"levelType": "Partial",
"paxTypes": [
"ADT",
"CHD"
],
"percent": 0,
"percentBase": "fare+tax",
"type": "Refund"
}
},
{
"amount": 497,
"currency": "CNY",
"journeyRefIDs": [
"ij"
],
"rule": {
"airlineFee": 0,
"currency": "CNY",
"effectiveMinutes": 10080,
"expirationMinutes": 1440,
"fixedAmount": 497,
"levelType": "Partial",
"paxTypes": [
"ADT",
"CHD"
],
"percent": 0,
"percentBase": "fare+tax",
"type": "Refund"
}
},
{
"amount": 555,
"currency": "CNY",
"journeyRefIDs": [
"ij"
],
"rule": {
"airlineFee": 0,
"currency": "CNY",
"effectiveMinutes": 1440,
"expirationMinutes": 0,
"fixedAmount": 555,
"levelType": "Partial",
"paxTypes": [
"ADT",
"CHD"
],
"percent": 0,
"percentBase": "fare+tax",
"type": "Refund"
}
},
{
"amount": 555,
"currency": "CNY",
"journeyRefIDs": [
"ij"
],
"rule": {
"airlineFee": 0,
"currency": "CNY",
"effectiveMinutes": 0,
"expirationMinutes": -43200,
"fixedAmount": 555,
"levelType": "Partial",
"paxTypes": [
"ADT",
"CHD"
],
"percent": 0,
"percentBase": "fare+tax",
"type": "Refund"
}
}
],
"services": [
{
"level": "Free",
"metadata": {
"maximumDimension": "",
"maximumPiece": 0,
"maximumWeight": 0,
"type": "StandardCheckInBaggage"
},
"paxTypes": [
"CHD"
],
"segmentRefIDs": [
"os-1",
"is-2"
],
"serviceID": "fbs-1",
"type": "Baggage"
},
{
"level": "Free",
"metadata": {
"maximumDimension": "",
"maximumPiece": 0,
"maximumWeight": 0,
"type": "StandardCheckInBaggage"
},
"paxTypes": [
"INF"
],
"segmentRefIDs": [
"os-1",
"is-2"
],
"serviceID": "fbs-2",
"type": "Baggage"
},
{
"level": "Free",
"metadata": {
"maximumDimension": "",
"maximumPiece": 0,
"maximumWeight": 0,
"type": "StandardCheckInBaggage"
},
"paxTypes": [
"ADT"
],
"segmentRefIDs": [
"os-1",
"is-2"
],
"serviceID": "fbs-3",
"type": "Baggage"
},
{
"level": "Free",
"metadata": {
"maximumDimension": "56*36*23cm",
"maximumPiece": 0,
"maximumWeight": 0,
"type": "CabinBaggageUnderSeat"
},
"paxTypes": [
"INF"
],
"segmentRefIDs": [
"os-1",
"is-2"
],
"serviceID": "fbs-4",
"type": "Baggage"
},
{
"level": "Free",
"metadata": {
"maximumDimension": "56*36*23cm",
"maximumPiece": 1,
"maximumWeight": 7,
"type": "CabinBaggageUnderSeat"
},
"paxTypes": [
"CHD"
],
"segmentRefIDs": [
"os-1",
"is-2"
],
"serviceID": "fbs-5",
"type": "Baggage"
},
{
"level": "Free",
"metadata": {
"maximumDimension": "56*36*23cm",
"maximumPiece": 1,
"maximumWeight": 7,
"type": "CabinBaggageUnderSeat"
},
"paxTypes": [
"ADT"
],
"segmentRefIDs": [
"os-1",
"is-2"
],
"serviceID": "fbs-6",
"type": "Baggage"
},
{
"level": "Chargeable",
"paxTypes": [
"ADT",
"CHD"
],
"segmentRefIDs": [
"os-1"
],
"serviceID": "fss-1",
"type": "Seat"
},
{
"level": "Chargeable",
"paxTypes": [
"ADT",
"CHD"
],
"segmentRefIDs": [
"is-2"
],
"serviceID": "fss-2",
"type": "Seat"
},
{
"level": "Chargeable",
"paxTypes": [
"ADT",
"CHD"
],
"segmentRefIDs": [
"os-1"
],
"serviceID": "fms-1",
"type": "Meal"
},
{
"level": "Chargeable",
"paxTypes": [
"ADT",
"CHD"
],
"segmentRefIDs": [
"is-2"
],
"serviceID": "fms-2",
"type": "Meal"
}
],
"terms": []
},
"serviceFee": {
"amountPerUnit": 0.5,
"currency": "USD",
"unit": "PER_PAX"
},
"supportedPaymentMethods": [
"Deposit"
]
}
],
"status": 0
}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:
API sequence
Search - Verify- seatAvailability - Order - Pay
getOffer - seatAvailability - Order - Pay
Pass 'offerId' in 'seatAvailability' requests:
From 'verify': Use sessionId directly. From 'getOffer': Use its offerId.
In the Order step, use the productCode to add specific seat to the ticket order.
Endpoint: https://sandbox.atriptech.com/seatAvailability.do
application/jsonapplication/jsongzipNAR65434_api_1<YOUR_CLIENT_SECRET>ThesessionIdreturned by price verification api(verify.do). Only required in Non-independent mode.
TheofferIDreturned by get offer api(getOffers.do). Only required in Non-independent mode.
The IATA code of MSC(known as Most Significant Carrier) of the itinerary.
POST /seatAvailability.do HTTP/1.1
Host:
Accept: text
Content-Type: application/json
Accept-Encoding: text
x-atlas-client-id: NAR65434_api_1
x-atlas-client-secret: text
Content-Length: 303
{
"carrier": "W6",
"outboundSegments": [
{
"flightNumber": "W62340",
"segmentIndex": 1,
"depAirport": "FCO",
"arrAirport": "BUD",
"cabinClass": "1",
"depTime": "202501250825"
}
],
"inboundSegments": [
{
"flightNumber": "W62341",
"segmentIndex": 2,
"depAirport": "BUD",
"arrAirport": "FCO",
"cabinClass": "1",
"depTime": "202501301915"
}
]
}{
"cabins": [
{
"segmentIndex": 1,
"cabin": {
"deck": "main",
"cabinClass": 1,
"cabinLayout": {
"columns": [
{
"designator": "A",
"characteristics": "W"
},
{
"designator": "B",
"characteristics": "M"
},
{
"designator": "C",
"characteristics": "A"
},
{
"designator": "D",
"characteristics": "W"
},
{
"designator": "E",
"characteristics": "M"
},
{
"designator": "F",
"characteristics": "A"
}
],
"rows": {
"first": 4,
"last": 20
},
"exitRowPositions": [
{
"first": 4,
"last": 5
},
{
"first": 10,
"last": 11
},
{
"first": 20,
"last": 20
}
]
},
"rows": [
{
"number": 4,
"seats": [
{
"column": "A",
"seatStatus": "F",
"seatCharacteristics": [
"W",
"L",
"E"
],
"price": 26.29,
"currency": "USD",
"vendorPrice": 26.29,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_4A_W6_FCO_BUD"
},
{
"column": "B",
"seatStatus": "F",
"seatCharacteristics": [
"M",
"L",
"E"
],
"price": 10.79,
"currency": "USD",
"vendorPrice": 10.79,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_4B_W6_FCO_BUD"
},
{
"column": "C",
"seatStatus": "F",
"seatCharacteristics": [
"A",
"L",
"E"
],
"price": 30.13,
"currency": "USD",
"vendorPrice": 30.13,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_4C_W6_FCO_BUD"
},
{
"column": "D",
"seatStatus": "F",
"seatCharacteristics": [
"W",
"L",
"E"
],
"price": 88.43,
"currency": "USD",
"vendorPrice": 88.43,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_4D_W6_FCO_BUD"
},
{
"column": "E",
"seatStatus": "F",
"seatCharacteristics": [
"M",
"L",
"E"
],
"price": 56.78,
"currency": "USD",
"vendorPrice": 56.78,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_4E_W6_FCO_BUD"
},
{
"column": "F",
"seatStatus": "F",
"seatCharacteristics": [
"A",
"L",
"E"
],
"price": 29.47,
"currency": "USD",
"vendorPrice": 29.47,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_4F_W6_FCO_BUD"
}
]
}
]
}
},
{
"segmentIndex": 2,
"cabin": {
"deck": "main",
"cabinClass": 1,
"cabinLayout": {
"columns": [
{
"designator": "A",
"characteristics": "W"
},
{
"designator": "B",
"characteristics": "M"
},
{
"designator": "C",
"characteristics": "A"
},
{
"designator": "D",
"characteristics": "W"
},
{
"designator": "E",
"characteristics": "M"
},
{
"designator": "F",
"characteristics": "A"
}
],
"rows": {
"first": 4,
"last": 20
},
"exitRowPositions": [
{
"first": 4,
"last": 5
},
{
"first": 10,
"last": 11
},
{
"first": 20,
"last": 20
}
]
},
"rows": [
{
"number": 5,
"seats": [
{
"column": "A",
"seatStatus": "F",
"seatCharacteristics": [
"W",
"L",
"E"
],
"price": 34.25,
"currency": "USD",
"vendorPrice": 34.25,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_5A_W6_BUD_FCO"
},
{
"column": "B",
"seatStatus": "F",
"seatCharacteristics": [
"M",
"L",
"E"
],
"price": 26.42,
"currency": "USD",
"vendorPrice": 26.42,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_5B_W6_BUD_FCO"
},
{
"column": "C",
"seatStatus": "F",
"seatCharacteristics": [
"A",
"L",
"E"
],
"price": 25.53,
"currency": "USD",
"vendorPrice": 25.53,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_5C_W6_BUD_FCO"
},
{
"column": "D",
"seatStatus": "F",
"seatCharacteristics": [
"W",
"L",
"E"
],
"price": 22.75,
"currency": "USD",
"vendorPrice": 22.75,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_5D_W6_BUD_FCO"
},
{
"column": "E",
"seatStatus": "F",
"seatCharacteristics": [
"M",
"L",
"E"
],
"price": 68.06,
"currency": "USD",
"vendorPrice": 68.06,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_5E_W6_BUD_FCO"
},
{
"column": "F",
"seatStatus": "F",
"seatCharacteristics": [
"A",
"L",
"E"
],
"price": 29.83,
"currency": "USD",
"vendorPrice": 29.83,
"vendorCurrency": "USD",
"productCode": "SCI_SEAT_5F_W6_BUD_FCO"
}
]
}
]
}
}
],
"status": 0,
"msg": "success"
}In a booking process, please call the 'getLuggage' API to get precise baggage quotes after price verification via 'verify' or 'getOffer'. Steps:
API sequence
Search - Verify- getLuggage - Order - Pay
getOffer - getLuggage - Order - Pay
For exact baggage prices, request 'getLuggage'.
Pass 'offerId' in 'getLuggage' requests:
From 'verify': Use sessionId as offerId
From 'getOffer': Use its offerId directly.
'getLuggage' returns all flight segments' baggage data, each identified by a unique productCode.
In the Order step, use the productCode to add specific baggage products to the ticket order.
Endpoint: https://sandbox.atriptech.com/getLuggage.do
api access id
NAR65434_api_1api access secret
changeit建议设置该请求头,能很大程度地减小网络传输报文的大小
gzipapplication/jsonapplication/jsonThesessionIdreturned by verify api(verify.do)
85540632-ef14-4cb2-900e-453ef0a19477Query 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.
5000POST /getLuggage.do HTTP/1.1
Host:
x-atlas-client-id: text
x-atlas-client-secret: text
Accept: text
Content-Type: application/json
Content-Length: 50
{
"offerId": "o_d2c7d44baf2643ebac8b7926a8b0be60_1"
}{
"status": 0,
"msg": null,
"data": {
"offerId": "o_d2c7d44baf2643ebac8b7926a8b0be60_1",
"ancillaryProductElements": [
{
"ancillaryCode": "SCI_BAG_5KG",
"auxBaggageElement": {
"allWeight": true,
"piece": 0,
"size": "",
"weight": 5
},
"canPurchasePostTicket": 1,
"canPurchaseWithTicket": 1,
"categoryCode": "StandardCheckInBaggage",
"clientTechnicalServiceFee": 0,
"currency": "USD",
"maxQty": 1,
"minQty": 1,
"price": 10.17,
"productCode": "SCI_BAG_5KG",
"segmentIndex": 1,
"vendorCurrency": "IDR",
"vendorPrice": 165000
},
{
"ancillaryCode": "SCI_BAG_10KG",
"auxBaggageElement": {
"allWeight": true,
"piece": 0,
"size": "",
"weight": 10
},
"canPurchasePostTicket": 1,
"canPurchaseWithTicket": 1,
"categoryCode": "StandardCheckInBaggage",
"clientTechnicalServiceFee": 0,
"currency": "USD",
"maxQty": 1,
"minQty": 1,
"price": 16.34,
"productCode": "SCI_BAG_10KG",
"segmentIndex": 1,
"vendorCurrency": "IDR",
"vendorPrice": 265000
},
{
"ancillaryCode": "SCI_BAG_30KG",
"auxBaggageElement": {
"allWeight": true,
"piece": 0,
"size": "",
"weight": 30
},
"canPurchasePostTicket": 1,
"canPurchaseWithTicket": 1,
"categoryCode": "StandardCheckInBaggage",
"clientTechnicalServiceFee": 0,
"currency": "USD",
"maxQty": 1,
"minQty": 1,
"price": 36.06,
"productCode": "SCI_BAG_30KG",
"segmentIndex": 1,
"vendorCurrency": "IDR",
"vendorPrice": 585000
},
{
"ancillaryCode": "SCI_BAG_20KG",
"auxBaggageElement": {
"allWeight": true,
"piece": 0,
"size": "",
"weight": 20
},
"canPurchasePostTicket": 1,
"canPurchaseWithTicket": 1,
"categoryCode": "StandardCheckInBaggage",
"clientTechnicalServiceFee": 0,
"currency": "USD",
"maxQty": 1,
"minQty": 1,
"price": 24.35,
"productCode": "SCI_BAG_20KG",
"segmentIndex": 1,
"vendorCurrency": "IDR",
"vendorPrice": 395000
},
{
"ancillaryCode": "SCI_BAG_40KG",
"auxBaggageElement": {
"allWeight": true,
"piece": 0,
"size": "",
"weight": 40
},
"canPurchasePostTicket": 1,
"canPurchaseWithTicket": 1,
"categoryCode": "StandardCheckInBaggage",
"clientTechnicalServiceFee": 0,
"currency": "USD",
"maxQty": 1,
"minQty": 1,
"price": 48.38,
"productCode": "SCI_BAG_40KG",
"segmentIndex": 1,
"vendorCurrency": "IDR",
"vendorPrice": 785000
}
],
"inboundSegments": [],
"outboundSegments": [
{
"aircraftCode": "320",
"arrAirport": "CGK",
"arrTerminal": "",
"arrTime": "202508231100",
"cabin": "",
"cabinClass": 1,
"carrier": "QG",
"codeShare": false,
"depAirport": "SIN",
"depTerminal": "",
"depTime": "202508231010",
"duration": 110,
"fareFamily": "ECO",
"flightNumber": "QG523",
"operatingCarrier": "",
"operatingFlightnumber": "",
"seatCount": 9,
"segmentIndex": 1,
"stopCities": ""
}
]
}
}Last updated

