Atlas API-Sabre
  1. Shopping and Ticketing
Atlas API-Sabre
  • Shopping and Ticketing
    • Search
      POST
    • Verify
      POST
    • Order
      POST
    • Order Commit
      POST
    • Payment
      POST
    • Retrieve Booking
      POST
    • Smart Search
      POST
    • Get Offer
      POST
    • Seat Availability
      POST
    • Get Luggage
      POST
  • Post Ticketing Service
    • Search Ancillary
      POST
    • Order Ancillary
      POST
  • Notifications and Webhook
    • Register Webhook
      POST
    • Incident List
      POST
  • Refund
    • Refund Quotation
      POST
    • Make a Refund
      POST
    • Query Refund Status
      POST
  • Other Functions
    • Regenerate Order
      POST
    • Stop Ticket Issuance
      POST
    • Order List
      POST
    • PNR Claim
      POST
    • Get Balance
      POST
    • City Pairs API
      POST
    • Email List
      POST
    • Extract PNR
      POST
    • getAtripToken
      POST
  1. Shopping and Ticketing

Payment

POST
/pay.do

Request

Header Params
Accept
string 
required
Example:
application/json
Content-Type
string 
required
Example:
application/json
Accept-Encoding
string 
required
Example:
gzip
x-atlas-client-id
string 
required
Example:
<YOUR_CLIENT_ID>
x-atlas-client-secret
string 
required
Example:
<YOUR_CLIENT_SECRET>
Body Params application/json
orderNo
string 
required
Order number you want to do the payment.
paymentMethod
enum<integer> 
required
The payment method you want to use
Allowed values:
1345
creditCard
object  | null 
optional
Credit card. It is necessary when using MoR(paymentMethod=5) or VCC passthrough(paymentMethod=3) payment.
cardNumber
string 
required
Credit card number that conforms to the Luhn algorithm.
cardCVV
string 
required
The Card Verification Value (CVV). For vcc passthrough, CVV is required. When using MoR, the CVV is mandatory if the card is being used for the first time, and for subsequent uses, it can be left as null (not empty string "").
cardExpireMonth
string 
required
The card expiry month as an integer with two digits, e.g. for February use 02.
Example:
06
cardExpireYear
string 
required
The card expiry year as an integer with two digits, e.g. for 2026 use 26.
Example:
26
cardHolderLastName
string 
required
Last name of the card holder
cardHolderFirstName
string 
required
First name of the card holder
cardHolderCountry
string  | null 
optional
The ISO 3166-1 alpha-2 code for the country of the billing address associated with the card.
cardHolderProvince
string  | null 
optional
The state/province of the billing address associated with the card.
cardHolderCity
string  | null 
optional
The city of the billing address associated with the card.
cardHolderPostCode
string  | null 
optional
The postal code of the billing address associated with the card.
cardHolderAddress
string  | null 
optional
The first/second line of the billing address associated with the card.
reusable
boolean  | null 
optional
A flag used to indicate whether it is a single-use card or a multi-use card.
-true: multiple-use card
-false: single-use card
Explanation:
Atlas hopes that users can inform us of this information because Atlas is cautious when making payments for multiple cards.
For example, when encountering unknown errors in payment to the airline, Atlas will not easily attempt to retry, as this may result in multiple deductions.
Default:
false
paymentLimit
integer  | null 
optional
Certain airlines may experience fare change after payment submission due to their inability to hold seat reservations. You can use this parameter to set a maximum acceptable payment amount(in vendor currency) threshold. This is the maximum amount which can be used to create the booking using a VCC.
threeDS
object  | null 
optional
The information used for the 3DS verification. It is only required in the MoR payment scenario.
clientOrderNo
string  | null 
optional
Order number at the customer side.
requestSource
optional
Any of
The tag to identify which channel does this traffic come from. For example: SkyScanner,Google,Oganic search,etc…
Example
{
    "orderNo": "TESTA20250424174823885",
    "creditCard": {
        "cardNumber": "4054695723100768",
        "cardExpireMonth": "12",
        "cardExpireYear": "2026",
        "cardCVV": "111",
        "cardHolderLastName": "shao",
        "cardHolderFirstName": "justin",
        "cardHolderCountry": "CN",
        "cardHolderProvince": "JS",
        "cardHolderCity": "NJ",
        "cardHolderPostCode": "210000",
        "cardHolderAddress": "testqqq",
        "cardHolderPhone": null,
        "cardHolderEmail": null,
        "reusable": false,
        "paymentLimit": 100.00,
        "threeDS": {
            "ip": ""
        }
    },
    "paymentMethod": 3,
    "clientOrderNo": "",
    "requestSource": ""
}

Request samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://sandbox.atriptech.com/pay.do' \
--header 'Accept: application/json' \
--header 'Accept;' \
--header 'Accept-Encoding: gzip' \
--header 'Accept-Encoding;' \
--header 'x-atlas-client-id: <YOUR_CLIENT_ID>' \
--header 'x-atlas-client-id;' \
--header 'x-atlas-client-secret: <YOUR_CLIENT_SECRET>' \
--header 'x-atlas-client-secret;' \
--header 'Content-Type: application/json' \
--data-raw '{
    "orderNo": "TESTA20250424174823885",
    "creditCard": {
        "cardNumber": "4054695723100768",
        "cardExpireMonth": "12",
        "cardExpireYear": "2026",
        "cardCVV": "111",
        "cardHolderLastName": "shao",
        "cardHolderFirstName": "justin",
        "cardHolderCountry": "CN",
        "cardHolderProvince": "JS",
        "cardHolderCity": "NJ",
        "cardHolderPostCode": "210000",
        "cardHolderAddress": "testqqq",
        "cardHolderPhone": null,
        "cardHolderEmail": null,
        "reusable": false,
        "paymentLimit": 100.00,
        "threeDS": {
            "ip": ""
        }
    },
    "paymentMethod": 3,
    "clientOrderNo": "",
    "requestSource": ""
}'

Responses

🟢200Success
application/json
Body
status
enum<integer> 
required
400: Illegal request param. Description: Check and correct the request parameters according to the error message.
401: Later than the payment deadline. Description: Payment for the booking was initiated later than the payment deadline.
402: Order status does not support payment. Description: The order status maybe “ticketing” or “ticketed” where the payment has already been made. Check if the order status is unpaid
403: Unsupported payment method. Description: The payment method is not supported for this order.
404: The order is already paid. Description: Check if the order has been paid. If “yes”, do not send the payment request
406: Payment operation is in progress. Description: The previous payment request is still in process. Wait for the airline PNR to be received in the PNR details response.
407: Some mandatory element for the passenger has not been submitted.. Description: Check the information and correct the same and resubmit.
408: Passenger can not board alone. Description: Create a new order and add an adult passenger with the child passenger
409: Additional baggage does not match the flight segment. Description: Luggage purchased for each segment of a connecting flight must be the same.
410: The contact information is not in the correct format.. Description: Check the contact information and confirm that it matches the required format.
411: Some error happened with the payment gateway. Description: Some error happened with the payment gateway
412: No available payment methods. Description: No available payment methods for this order
413: Card is not supported. Description: For MoR, the brand of the card sent by customer is not supported by Atlas.
414: Card mismatch. Description: The brand of the card sent during payment is inconsistent with the "cardType" sent when generating the order.
415: order is not confirmed by user. Description: order is not confirmed by user
Allowed values:
400401402403404406407408409410411412413414415
msg
optional
Any of
It serves as an additional description of the response result. Especially when the interface reports an error (status !=0), it is usually a human-readable error message. Note: Do not use this field in any programming scenarios. For example, do not judge whether the interface responds successfully based on this field. Instead, you should only determine it by checking whether the status is equal to0at any time.
orderNo
string 
required
Echo the order number
paymentMethod
enum<integer> 
required
Payment method
Allowed values:
1345
Example
{
    "orderNo": null,
    "pnrCode": null,
    "paymentMethod": null,
    "airlines": null,
    "status": 401,
    "msg": "later than the payment deadline"
}
Modified at 2025-07-18 06:58:59
Previous
Order Commit
Next
Retrieve Booking
Built with