Other Functions
application/json
application/json
gzip
<YOUR_CLIENT_ID>
<YOUR_CLIENT_SECRET>
The order number of the original ticket order you want to regenerate
ACFIO20231207174449854
POST /regenerateOrder.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: 44
{
"originalOrderNo": "ACFIO20231207174449854"
}
{
"status": 301,
"msg": "text",
"sessionId": "text",
"orderNo": "text",
"pnrCode": "text",
"totalPrice": 1,
"totalTransactionFee": 1,
"currency": "text",
"vendorTotalPrice": 1,
"vendorCurrency": "text",
"tktLimitTime": "text",
"paxTicketInfos": [
{
"name": "text",
"passengerType": 0,
"birthday": "text",
"gender": "text",
"cardNum": "text",
"cardType": "text",
"cardIssuePlace": "text",
"cardExpired": "text",
"nationality": "text",
"ticketNos": [
"text"
],
"airlinePNRs": [
"text"
],
"ancillaries": [
{
"productCode": "text",
"segmentIndex": 1,
"currency": "text",
"ancillaryPrice": 1,
"auxBaggageElement": {
"isAllWeight": true,
"piece": 1,
"size": "text",
"weight": 1
},
"auxSeatElement": {
"row": "27",
"column": "A"
},
"vendorCurrency": "text",
"vendorPrice": 1,
"displayCurrency": "text",
"displayPrice": 1
}
]
}
],
"routing": {
"routingIdentifier": "text",
"supportPaymentMethods": [
1
],
"currency": "text",
"adultPrice": 1,
"adultTax": 1,
"adultDetails": [
{
"code": "text",
"type": "base",
"amount": 1,
"description": "text"
}
],
"childPrice": 1,
"childTax": 1,
"childDetails": [
{
"code": "text",
"type": "base",
"amount": 1,
"description": "text"
}
],
"infantPrice": 1,
"infantTax": 1,
"infantDetails": [
{
"code": "text",
"type": "base",
"amount": 1,
"description": "text"
}
],
"infantAllowed": true,
"childMandatorySeatingFee": 1,
"transactionFee": 1,
"transactionFeeMode": "PER_PAX",
"fromSegments": [
{
"aircraftCode": "text",
"arrAirport": "text",
"arrTerminal": "text",
"arrTime": "text",
"cabin": "text",
"cabinClass": 1,
"carrier": "text",
"codeShare": true,
"depAirport": "text",
"depTerminal": "text",
"depTime": "text",
"duration": 1,
"fareFamily": "text",
"flightNumber": "text",
"operatingCarrier": "text",
"operatingFlightnumber": "text",
"seatCount": 1,
"segmentIndex": 1,
"stopCities": "text"
}
],
"retSegments": [
{
"aircraftCode": "text",
"arrAirport": "text",
"arrTerminal": "text",
"arrTime": "text",
"cabin": "text",
"cabinClass": 1,
"carrier": "text",
"codeShare": true,
"depAirport": "text",
"depTerminal": "text",
"depTime": "text",
"duration": 1,
"fareFamily": "text",
"flightNumber": "text",
"operatingCarrier": "text",
"operatingFlightnumber": "text",
"seatCount": 1,
"segmentIndex": 1,
"stopCities": "text"
}
],
"rule": {
"hasBaggage": 1,
"baggageElements": [
{
"segmentNo": 1,
"baggageType": "StandardCheckInBaggage",
"passengerType": 0,
"baggagePiece": 1,
"baggageWeight": 1,
"baggageSize": "text"
}
],
"refundRules": [
{
"refundStatus": "T",
"refundFee": 1,
"currency": "text",
"ruleDetailList": [
{
"status": "T",
"startMinute": "text",
"endMinute": "text",
"amount": "text",
"currency": "text"
}
]
}
],
"changesRules": [
{
"changesType": 1,
"changesStatus": "T",
"changesFee": 1,
"currency": "text",
"ruleDetailList": [
{
"status": "T",
"startMinute": "text",
"endMinute": "text",
"amount": "text",
"currency": "text"
}
]
}
],
"serviceElements": [
{
"hasFreeSeat": 1,
"hasFreeMeal": 1
}
]
},
"ancillaryProductElements": [
{
"ancillaryCode": "text",
"auxBaggageElement": {
"isAllWeight": true,
"piece": 1,
"size": "text",
"weight": 1
},
"canPurchasePostTicket": 1,
"canPurchaseWithTicket": 1,
"categoryCode": "StandardCheckInBaggage",
"clientTechnicalServiceFee": 1,
"currency": "text",
"maxQty": 1,
"minQty": 1,
"price": 1,
"productCode": "text",
"segmentIndex": 1,
"vendorCurrency": "text",
"vendorPrice": 1
}
],
"vendorFare": {
"vendorAdultPrice": 1,
"vendorAdultTax": 1,
"vendorChildPrice": 1,
"vendorChildTax": 1,
"vendorInfantPrice": 1,
"vendorInfantTax": 1,
"vendorCurrency": "text"
},
"links": {
"carrier": "text",
"kind": "text",
"link": "text",
"description": "text"
},
"separateBookings": true,
"refreshTime": "text",
"expireTime": "text",
"ancillarySupported": [
"text"
],
"cardChargeList": [
{
"cardType": "Amex",
"percentage": 1,
"charge": 1,
"currency": "text"
}
]
},
"duplicateOrders": [
"text"
],
"paymentOptions": [
{
"paymentMethod": 1,
"serviceFee": {
"amount": 1,
"currency": "text",
"deductFrom": "text",
"displayAmount": null,
"displayCurrency": null
},
"ticketFare": {
"amount": 1,
"currency": "text",
"deductFrom": "text",
"displayAmount": null,
"displayCurrency": null
},
"paymentFee": {
"amount": 1,
"currency": "text",
"deductFrom": "text",
"displayAmount": 1,
"displayCurrency": "text"
},
"cardType": "text"
}
]
}
application/json
application/json
gzip
<YOUR_CLIENT_ID>
<YOUR_CLIENT_SECRET>
The order number of the ticket order you want to stop ticket issuance.
POST /stopTicket.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: 18
{
"orderNo": "text"
}
{
"status": 1,
"msg": "text"
}
application/json
application/json
gzip
<YOUR_CLIENT_ID>
<YOUR_CLIENT_SECRET>
A series of conditions for matching orders
Atlas order number. Accurate matching
TESTA20241122090710695
The airline PNR(not Atlas's). If the airline pnr of the order contains any of the given values, it will be returned.
The name of the passenger(last name/first name). If the passenger in the order includes the given value, it will be returned.
Accurate matching,match based on the contact email provided by the customer
IATA code of the departure city
IATA code of the arrival city
Date of departure. The format is:yyyyMMdd
The start time of order creation. This is in UTC. The format is:yyyy-MM-dd'T'HH:mm:ss'Z'
.
The end time of order creation. This is in UTC. The format isyyyy-MM-dd'T'HH:mm:ss'Z'
If the airlines of the order contains any of the given values, it will be returned
Start from: 1
1
Number of records to be displayed on each page.
20
POST /orderList.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: 270
{
"orderNo": "TESTA20241122090710695",
"airlinePNRs": [
"text"
],
"paxName": "text",
"contactEmail": "text",
"fromCity": "text",
"toCity": "text",
"depDate": "text",
"createTimeRangeFrom": "text",
"createTimeRangeTo": "text",
"orderStatus": [
0
],
"airlines": [
"text"
],
"page": "1",
"pageSize": "20"
}
{
"status": 1,
"msg": "text",
"page": "text",
"pageSize": "text",
"totalRecords": "text",
"orders": [
{
"orderNo": "text",
"pnrCode": "text",
"airlinePNRs": [
"text"
],
"orderStatus": 0,
"depDate": "text",
"airlines": [
"text"
],
"orderCreateTimestamp": "text",
"paymentTimestamp": "text",
"paxNames": [
"text"
],
"contactEmail": "text",
"fromCity": "text",
"toCity": "text",
"errorCode": "text",
"errorMessage": "text"
}
]
}
application/json
application/json
gzip
<YOUR_CLIENT_ID>
<YOUR_CLIENT_SECRET>
POST /pnr/claim.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: 964
{
"mmb": {
"airlinePnr": "text",
"email": "text"
},
"passengers": [
{
"name": "text",
"passengerType": 0,
"gender": "text",
"birthday": "text",
"cardType": "PP",
"cardNum": "text",
"cardIssuePlace": "text",
"cardExpired": "text",
"nationality": "text"
}
],
"fromSegments": [
{
"carrier": "text",
"flightNumber": "text",
"depAirport": "text",
"arrAirport": "text",
"depTime": "text",
"arrTime": "text",
"stopCities": "text",
"codeShare": 1,
"operatingCarrier": "text",
"operatingFlightNumber": "text",
"depTerminal": "text",
"arrTerminal": "text",
"cabinClass": 1,
"fareFamily": "text",
"duration": 1
}
],
"retSegments": [
{
"carrier": "text",
"flightNumber": "text",
"depAirport": "text",
"arrAirport": "text",
"depTime": "text",
"arrTime": "text",
"stopCities": "text",
"codeShare": 1,
"operatingCarrier": "text",
"operatingFlightNumber": "text",
"depTerminal": "text",
"arrTerminal": "text",
"cabinClass": 1,
"fareFamily": "text",
"duration": 1
}
],
"connectInfo": {
"contactName": "text",
"contactEmail": "text",
"contactPhone": "text",
"useAtlasMailForContact": "text"
}
}
{
"status": "text",
"msg": "text",
"orderNo": "text"
}
application/json
application/json
gzip
<YOUR_CLIENT_ID>
<YOUR_CLIENT_SECRET>
The currency of your balance account
POST /balance.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: 19
{
"currency": "text"
}
{
"status": 1,
"msg": "text",
"accountBalance": {
"amount": "text",
"currency": "text"
}
}
The "City pairs API" can be used to download the city pairs supported by Atlas as well as by the airlines. The customer can use this structured data and transfer the city pair information into their mid-back office systems.
This API is only available in the production environment.
application/json
application/json
gzip
<YOUR_CLIENT_ID>
<YOUR_CLIENT_SECRET>
-1
: Airline routes
-2
: Atlas routes
IATA Code of departure city.
IATA Code of departure country.
IATA Code of arrival city or airport
IATA Code of arrival country.
An array of IATA Codes of airlines. The routes within the airlines will be returned.
10000
1
POST /route/export.do HTTP/1.1
Host:
Accept: text
Content-Type: application/json
Accept-Encoding: text
Content-Length: 141
{
"routeType": 1,
"fromCity": "text",
"fromCountry": "text",
"toCity": "text",
"toCountry": "text",
"airlines": [
"text"
],
"pageSize": 10000,
"pageNumber": 1
}
{
"status": 1,
"msg": "text",
"data": [
{
"airlines": "text",
"fromCity": "text",
"fromCountry": "text",
"toCity": "text",
"toCountry": "text",
"isDirect": "text",
"scheduleStart": "text",
"scheduleEnd": "text",
"updateDate": "text"
}
]
}
application/json
application/json
gzip
<YOUR_CLIENT_ID>
<YOUR_CLIENT_SECRET>
Order number. At least one of the order number, receiving time and/or creation time must be specified for querying.
Start of the receiving time. The time Atlas received the airline's email. Format: yyyy-MM-dd hh:mm:ss UTC+08:00
End of the receiving time. The time Atlas received the airline's email. Format: yyyy-mm-dd hh:mm:ss UTC+08:00. You can only query data for up to one month at a time
Start of creation time. Create Time is the time when Atlas created this email record in the Email list. Generally, it will be later than the receiving time. Format: yyyy-mm-dd hh:mm:ss UTC+08:00
End of creation time. Create Time is the time when Atlas created this email record in the Email list. Generally, it will be later than the receiving time. Format: yyyy-MM-dd hh:mm:ss UTC+08:00 You can only query data for up to one month at a time.
Atlas email categories. Atlas categorizes emails but does not guarantee accuracy in classification.
-Travel Itinerary
-Schedule Change
-Payment Due
-Payment Success
-Receipt
-Trip Reminder
-PNR Cancellation Success
-Advertisement
-Duplicated Schedule Change
-Verification
-Unaccounted Cancellation
-Promo code
1
100
POST /queryMail.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: 188
{
"orderNo": "text",
"emailReceivingDateStart": "text",
"emailReceivingDateEnd": "text",
"createTimeStart": "text",
"createTimeEnd": "text",
"emailCategories": "text",
"pageIndex": "1",
"pageSize": "100"
}
{
"status": 1,
"msg": "text",
"hasNext": true,
"records": [
{
"orderNo": "text",
"emailReceivingDate": "text",
"uniqueCode": "text",
"emailCategory": "text",
"from": "text",
"to": "text",
"emailSubject": "text",
"emailLink": "text",
"createTime": "text"
}
]
}
This API is used to directly connect to airlines and extract PNR information. The content displayed by this API reflects the current PNR information on the airline side, such as flight schedule and ticket status. Atlas extracts airline information truthfully and will not do any modification.
application/json
application/json
gzip
Example: gzip
<YOUR_CLIENT_ID>
Example: <YOUR_CLIENT_ID>
<YOUR_CLIENT_SECRET>
Example: <YOUR_CLIENT_SECRET>
The airline PNR
2-letter IATA code for the airline
The maximum response duration, in milliseconds. Note: This time is estimated due to the impact of network transmission.
15000
POST /extractPnr.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: 376
{
"airlinePnr": "text",
"carrier": "text",
"passengers": [
{
"firstName": "text",
"lastName": "text"
}
],
"contact": {
"email": "text"
},
"routing": {
"fromSegments": [
{
"arrAirport": "text",
"arrTime": "text",
"dptAirport": "text",
"depTime": "text",
"flightNumber": "text"
}
],
"retSegments": [
{
"arrAirport": "text",
"arrTime": "text",
"dptAirport": "text",
"depTime": "text",
"flightNumber": "text"
}
]
},
"timeout": 15000
}
{
"status": 99005,
"msg": "text",
"airlinePnr": "BSG768",
"pnrStatus": "Ticketed",
"currency": "USD",
"totalPrice": "text",
"routing": {
"fromSegments": [
{
"aircraftCode": "text",
"arrAirport": "text",
"arrTerminal": "text",
"arrTime": "text",
"carrier": "text",
"codeShare": true,
"depAirport": "text",
"depTerminal": "text",
"depTime": "text",
"duration": 1,
"flightNumber": "text",
"operatingCarrier": "text",
"operatingFlightnumber": "text"
}
],
"retSegments": [
{
"aircraftCode": "text",
"arrAirport": "text",
"arrTerminal": "text",
"arrTime": "text",
"carrier": "text",
"codeShare": true,
"depAirport": "text",
"depTerminal": "text",
"depTime": "text",
"duration": 1,
"flightNumber": "text",
"operatingCarrier": "text",
"operatingFlightnumber": "text"
}
]
},
"paxTicketInfos": [
{
"name": "text",
"ticketNos": [
"text"
],
"airlinePNRs": [
"text"
],
"ancillaries": [
{
"productCode": "text",
"segmentIndex": 1,
"currency": "text",
"ancillaryPrice": 1,
"auxBaggageElement": {
"isAllWeight": true,
"piece": 1,
"size": "text",
"weight": 1
},
"auxSeatElement": {
"row": "27",
"column": "A"
},
"vendorCurrency": "text",
"vendorPrice": 1,
"displayCurrency": "text",
"displayPrice": 1
}
],
"ticketStatus": "OPEN_FOR_USE"
}
],
"contact": {
"email": "text",
"companyName": "text"
}
}
application/json
application/json
gzip
Example: gzip
<YOUR_CLIENT_ID>
Example: <YOUR_CLIENT_ID>
<YOUR_CLIENT_SECRET>
Example: <YOUR_CLIENT_SECRET>
Order number. It can be an order for ticketing, or an order for add bags. The format of each kind of order is different.
This is to identifier the operator's name in client's system, Atlas will grant access to this operator and track his/her actions in Atlas customer service portal.
This is to identify the operator's role. Atlas will grant access to this operator according to the role assigned. Here are the acceptable options:
Customer service : Access to manage orders and request post ticketing services
Finance : Access to manage the balance and check statements
Developer : Access to manage the system configurations
Admin : Full access
POST /getAtripToken.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: 50
{
"orderNo": "text",
"userName": "text",
"role": "text"
}
{
"url": "text",
"status": 1,
"msg": "text"
}
Was this helpful?