Skip to main content

Credit Card API

Endpoints

Live POST https://pay.onlinepay.ai/payment

Sandbox POST https://testpay.onlinepay.ai/payment

Modes

Direct mode

PCI compliance is required in this mode. The merchant system can capture the cardholder's card number information and transmit them to OlinePay, then the request is quickly verified and processed, and the payment result is returned directly.

Checkout

When you initiate a payment request, you will receive a checkout URL back from OnlinePay and be redirected to that checkout URL to submit your card number and other information, finally jump to the returnUrl to synchronize your payment results.

3DS

3DS is designed to reduce the risk of fraud and unauthorized transactions by verifying the identity of the cardholder. When making a 3DS-based payment, it redirects to a secure authentication page that allows the user to perform 3DS authentication.

note

OnlinePay will obtain the HTTP Header referer to verify the website source. The website source must be configured by OnlinePay to be verified. If you do not access the interface through a browser, you need to actively add a referer.

Request Parameters

Basic Information

ParameterTypeRequiredDescription
merNointegerYesMerchant Number, Unique identifier assigned to the merchant by the onlinepay payment platform when registering with onlinepay
merOrderNostringYesMerchant Order Number, Each order must be unique, and each merchant order number can only be submitted once within 1 second
currencyCodestringYesPlease refer to Currency Code
sourceAmountstringYesTotal amount of the order, keep two decimals
returnUrlstringYesJump address after payment is completed (max 512 characters)
notifyUrlstringNoAsynchronous notification address to notify the merchant of the final payment result (max 512 characters)
protestNotifyUrlstringNoAsynchronous notification address to notify the merchant of the order chargeback (max 512 characters)
signstringYesSignature, MD5(merNo+merOrderNo+currencyCode+sourceAmount+PrivateKey) or RSA

Card Information

ParameterTypeRequiredDescription
cardNostringYes*Card number, Checkout mode Can be empty
cardExpireMonthstringYes*Expiry date of card (month), Checkout mode Can be empty
cardExpireYearstringYes*Expiry date of card (year), Checkout mode Can be empty
cardSecurityCodestringYes*CVV2/CSC, Checkout mode Can be empty

Billing Information

ParameterTypeRequiredDescription
billingFirstNamestringYesFirst Name (max 50 characters)
billingLastNamestringYesLast name (max 50 characters)
billingAddress1stringYesBilling address 1 (max 128 characters)
billingAddress2stringNoBilling address 2 (max 128 characters)
billingCitystringYesCity of residence (bill) (max 100 characters)
billingStatestringYesState Name (Bill) (max 100 characters)
billingCountrystringYesInternational ISO country abbreviation, Refer to the Country Code (max 2 characters)
billingZipCodestringYesPostal Code (max 20 characters)
billingPhonestringYesBilling phone (max 20 characters)
billingEmailstringYesBilling email (max 100 characters)

Shipping Information (Required for physical goods)

ParameterTypeRequiredDescription
shippingFirstNamestringYes**Consignee's first name (max 50 characters)
shippingLastNamestringYes**Consignee's last name (max 50 characters)
shippingAddress1stringYes**Receiving address details 1 (max 128 characters)
shippingAddress2stringYes**Receiving address details 2 (max 128 characters)
shippingCitystringYes**Receiving city (max 100 characters)
shippingStatestringYes**Receiving continent, province (max 100 characters)
shippingCountrystringYes**Receiving country, Refer to the Country Code table (max 2 characters)
shippingZipCodestringYes**Consignee's zip code (max 20 characters)
shippingPhonestringYes**Consignee phone (max 20 characters)
shippingEmailstringYes**Shipping email (max 100 characters)

Additional Information

ParameterTypeRequiredDescription
userAgentstringYesCardholder browser UserAgent (max 128 characters)
ipAddressstringYesCardholder IP address (max 64 characters)
productInfoListarray[object]YesProduct list
- skustringYesProduct ID (max 64 characters)
- productNamestringYesProduct name (max 128 characters)
- pricestringYesCommodity price (max 16 characters)
- quantitystringYesQuantity of commodity (max 16 characters)
versionstringYesV3.0.0
paymentMethodintegerNo0: normal, 1: subscribe
paymentIntervalintegerNo0: weekly, 1: monthly, 2: yearly
cardIdintegerNoBinding bank card id

* Required in Direct mode, can be empty in Checkout mode ** Required for physical goods, not needed for virtual goods

Example Request

{
"merNo": 111111,
"merOrderNo": "222222",
"currencyCode": "USD",
"sourceAmount": "100.05",
"returnUrl": "https://example.com",
"notifyUrl": "https://example.com/notify",
"protestNotifyUrl": "https://example.com/protestNotify",
"sign": "906FDF4880B00B00281F2AB61AE9A721",
"cardNo": "4242424242424242",
"cardExpireMonth": "01",
"cardExpireYear": "2022",
"cardSecurityCode": "335",
"billingFirstName": "Tati",
"billingLastName": "Moore",
"billingAddress1": "123 Main St",
"billingCity": "Anytown",
"billingState": "CA",
"billingCountry": "US",
"billingZipCode": "12345",
"billingPhone": "1234567890",
"billingEmail": "[email protected]",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
"ipAddress": "192.168.1.1",
"productInfoList": [
{
"sku": "PROD001",
"productName": "Example Product",
"price": "100.05",
"quantity": "1"
}
],
"version": "V3.0.0"
}

Responses Body

ParameterTypeRequiredDescription
codestringYesIf the value is 00000, it will return success, other please refer to Error Code
messagestringYesInterface returns description
dataobjectYes**Request response data
-tradeNostringYesThe flow number generated after each order payment (unique marker)
-payCodestringYesPayment status code(Where: 1 means payment failure, 0 means payment success, 2 means pending)
-payUrlstringYes**If the paycode is 2, redirect to this address
-merOrderNostringYesCorresponds to the [OrderNo] parameter of the order submission parameter
-cardIdstringYes**Binding bank card id

Example Responses

{
"code":"00000",
"message":"SUCCESS",
"data":{
"payCode":0,
"tradeNo":"3333333",
"merorderNo":"222222",
"payUrl":"https://abc.com/"
}
}