---
title: "Payment"
method: POST
path: "/pay.do"
tags: ["Shopping and Ticketing"]
---

# Payment

`POST /pay.do`

**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:
>    &#9702; 4532015112830366
>    &#9702; 4916931584764308
>    &#9702; 4485275742308327
>    &#9702; 4556737586899855
>    &#9702; 4532644189324563
> Mastercard:
>    &#9702; 5555555555554444
>    &#9702; 5105105105105100
>    &#9702; 5223456789012346
>    &#9702; 5301250070000191
>    &#9702; 5454545454545454
> American Express:
>    &#9702; 378282246310005
>    &#9702; 371449635398431
>    &#9702; 340000000000009
>    &#9702; 370000000000002
>    &#9702; 375987654321001
> Discover:
>    &#9702; 6011111111111117
>    &#9702; 6011000990139424
>    &#9702; 6011987612345678
> JCB:
>    &#9702; 3566002020360505

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

## Headers

- `Accept` string, required
- `Content-Type` string, required
- `Accept-Encoding` string, required
- `x-atlas-client-id` string, required
- `x-atlas-client-secret` string, required

## Request body

- object
  - `orderNo` string, required — Order number you want to do the payment.
  - `paymentMethod` 1 | 3 | 4 | 5, required
  - `creditCard` object, nullable — 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(01-12), e.g. for February use 02.
    - `cardExpireYear` string, required — The card expiry year as an integer with two digits, e.g. for 2026 use 26.
    - `cardHolderLastName` string, required — Last name of the card holder
    - `cardHolderFirstName` string, required — First name of the card holder
    - `cardHolderCountry` string, nullable — The ISO 3166-1 alpha-2 code for the country of the billing address associated with the card.
    - `cardHolderProvince` string, nullable — The state/province of the billing address associated with the card. Only use tow-letter code, for example, use "CA" and not "California".
    - `cardHolderCity` string, nullable — The city of the billing address associated with the card.
    - `cardHolderPostCode` string, nullable — The postal code of the billing address associated with the card.
    - `cardHolderAddress` string, nullable — The first/second line of the billing address associated with the card.
    - `reusable` boolean, nullable — 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.
    - `paymentLimit` integer, nullable — 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, nullable — The information used for the 3DS verification. It is only required in the MoR payment scenario.
      - `ip` string, required — The device IP of the end user. By default, the system will use the source IP of the current request.
  - `clientOrderNo` string, nullable — Order number at the customer side.
  - `requestSource` string — The tag to identify which channel does this traffic come from. For example: SkyScanner,Google,Oganic search,etc…

## Response `200`

- object
  - `status` 400 | 401 | 402 | 403 | 404 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415, required
  - `msg` string — 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 to`0`at any time.
  - `orderNo` string, required — Echo the order number
  - `paymentMethod` 1 | 3 | 4 | 5, required

---

[API](https://skmtc.net/atriptech/apis/default-module.md) · [All operations](https://skmtc.net/atriptech/apis/default-module/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/atriptech/default-module/revisions/8e9a8f8010ab/schema)
