NAV
java

Changelog

No change log

FAQ

No faq

Signature Rules

To ensure that the data is not tampered with during transmission, the system requires you to sign the payment parameter data and send the data signature along with the payment request

The MD5 Signature

Payment API

Request Parameters

Parameter name Required Type Explain Length Remark
paymentType Yes String Payment Type 15 default is Empty is Credit Card Pay
UnionPay :UNIONPAY
WeChat : WECHAT
AliPay : ALIPAY

Body Parameters

  {
    "merNo": 123455,
    "merOrderNo": "1641972507000",
    "currencyCode": "CNY",
    "sourceAmount": "100.05",
    "returnUrl": "http://baidu.com",
    "sign": "9D6FDF4880B00B002B1F2AB61AE9A721",
    "cardNo": "6011200081728932",
    "cardExpireMonth": "06",
    "cardExpireYear": "2020",
    "cardSecurityCode": "361",
    "billingFirstName": "san",
    "billingLastName": "zhang",
    "billingAddress1": "China",
    "billingCity": "shanghai",
    "billingState": "shanghai",
    "billingCountry": "CN",
    "billingZipCode": "200000",
    "billingPhone": "13688888888",
    "shippingFirstName": "san",
    "shippingLastName": "zhang",
    "shippingAddress1": "China",
    "shippingCity": "shanghai",
    "shippingState": "shanghai",
    "shippingCountry": "CN",
    "shippingZipCode": "200000",
    "shippingPhone": "13688888888",
    "userAgent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/6.0)",
    "ipAddress": "116.235.134.86",
    "version": "V3.0.0",
    "userId": "329627618558021",
    "email": "xxxx@gamil.com",
    "osType": "ANDROID",
    "terminal":"WAP",
    "productInfo": [
      {
        "sku": "1",
        "productName": "mac pro",
        "price": "12000",
        "quantity": "1"
      },
      {
        "sku": "2",
        "productName": "iphone13",
        "price": "8000",
        "quantity": "1"
      }
    ]
  }
Parameter name Required Type Explain Length Remark
merNo Yes Integer Merchant Number 10 Unique identifier assigned to the merchant by the Tapxyz payment platform when registering with Tapxyz
merOrderNo Yes String Merchant Order Number 32 Each order must be unique, and each merchant order number can only be submitted once within 1 second
currencyCode Yes String Currency 3
sourceAmount Yes String Total amount of the order 12 keep two decimals
returnUrl Yes String Jump address after payment is completed 512
notifyUrl No String Asynchronous notification address 512 The asynchronous notification address is used when check out mode or 3DS pays or UnionPay scanning code,WeChat,AliPay pay to receive Tapxyz to push payment results to merchants
sign Yes String signature 32 (merNo、merOrderNo、currencyCode、sourceAmount、Merchant key) Please refer to See signature for details
cardNo Yes String card number 16 check out mode Can be empty,UnionPay Can be empty
cardExpireMonth Yes String Expiry date of card (month) 2 check out mode Can be empty,UnionPay ,WeChat,AliPay Can be empty
cardExpireYear Yes String Expiry date of card (year) 4 check out mode Can be empty,UnionPay ,WeChat,AliPay Can be empty
cardSecurityCode Yes String CVV2/CSC 3 check out mode Can be empty,UnionPay ,WeChat,AliPay Can be empty
billingFirstName Yes String First Name 50 UnionPay ,WeChat,AliPay Can be empty
billingLastName Yes String Last name 50 UnionPay Can,WeChat,AliPay be empty
billingAddress1 Yes String billing address 1 128 UnionPay ,WeChat,AliPay Can be empty
billingAddress2 No String billing address 2 128 UnionPay ,WeChat,AliPay Can be empty
billingCity Yes String City of residence (bill) 100 UnionPay ,WeChat,AliPayCan be empty
billingState Yes String State Name (Bill) 100 UnionPay ,WeChat,AliPay Can be empty
billingCountry Yes String International ISO country abbreviation 2 Refer to the country code table,UnionPay ,WeChat,AliPay Can be empty
billingZipCode Yes String Postal Code 20 UnionPay ,WeChat,AliPay Can be empty
billingPhone Yes String billing phone 20 UnionPay ,WeChat,AliPay Can be empty
billingEmail Yes String billing email 100 UnionPay ,WeChat,AliPay Can be empty
shippingFirstName Yes String Consignee’s first name 50 UnionPay ,WeChat,AliPay Can be empty
shippingLastName Yes String Consignee’s last name 50 UnionPay Can,WeChat,AliPay be empty
shippingAddress1 Yes String Receiving address details 1 128 UnionPay ,WeChat,AliPay Can be empty
shippingAddress2 No String Receiving address details 2 128 UnionPay ,WeChat,AliPay Can be empty
shippingCity Yes String Receiving city 100 UnionPay ,WeChat,AliPay Can be empty
shippingState Yes String Receiving continent, province 100 UnionPay ,WeChat,AliPay Can be empty
shippingCountry Yes String Receiving country 2 Refer to the country code table,UnionPay ,WeChat,AliPay Can be empty
shippingZipCode Yes String Consignee’s zip code 20 UnionPay ,WeChat,AliPay Can be empty
shippingPhone Yes String Consignee phone 20 UnionPay ,WeChat,AliPay Can be empty
shippingEmail Yes String shilling email 100 UnionPay ,WeChat,AliPay Can be empty
userAgent Yes String Cardholder browser UserAgent 128 check out mode Can be empty,UnionPay ,WeChat,AliPay Can be empty
ipAddress Yes String Cardholder IP address 64
productInfoList Yes List product list 1000 Can be empty in UnionPay and Alipay and WeChat mode
version Yes String version 6 default:V3.0.0
userId No String unique user ID 255 This parameter is required for virtual product customers
email No String email 255 This parameter is required for virtual product customers
osType No String Mobile system 255 Mobile system IOS or ANDROID
terminal No String terminal 255 WEB: indicates that a PC browser is used.WAP: indicates that a mobile browser is used.APP: indicates that a mobile app is used.MINI_APP: indicates that a mini program is used.
Parameter name Required Type Explain Length Remark
sku Yes String Product ID 64
productName Yes String product name 128
price Yes String Commodity price 16
quantity Yes String quantity of commodity 16

Sample request

public class Test{
  public static void main(String[] args){
    JSONObject jsonObject = new JSONObject();
    jsonObject.put("merNo", "123455");
    jsonObject.put("merOrderNo", "1641972507000");
    jsonObject.put("currencyCode", "CNY");
    //.....All body parameters except the sign

    //sign
    String sign = MD5(merNo+merOrderNo+currencyCode+sourceAmount+MerchantKey);
    jsonObject.put("sign", sign.toUpperCase());
    //Credit Card Pay
    String url = "https://pay.tapxyz.com/payment";
    HttpResponse httpResponse = HttpRequest.post(url)
                    .body(jsonObject.toJSONString(), "application/json")
                    .execute();
    int status = httpResponse.getStatus();
    if(status == HttpStatus.HTTP_OK){
        String content = httpResponse.body();
    }
    //UnionPay 
    HttpResponse httpResponse = HttpRequest.post(url)
                        .header("paymentType", "UNIONPAY_H5")
                        .body(jsonObject.toJSONString(), "application/json")
                        .execute();
    int status = httpResponse.getStatus();
    if(status == HttpStatus.HTTP_OK){
        String content = httpResponse.body();
    }

  }
}

Response Parameters

Response Success Example

{
  "code": "00000",
  "message": "SUCCESS",
  "data": {
    "payCode": 0,
    "tradeNo": "SN2201111806024151",
    "merOrderNo": "1641972507000",
    "payUrl": "http://abc.com/notify" 
  }
}

Response Failure Example

{
  "code": "10004",
  "message": "The merchant number does not exist"
}
Parameter name Required Type Explain
code Yes String error code(Refer to the error code table)
message Yes String error description
data No T Request response data
Parameter name Required Type Explain
tradeNo Yes String The flow number generated after each order payment (unique marker)
payCode Yes Integer Payment status code(Where: 1 means payment failure, 0 means payment success, 2 means pending)
payUrl No String This parameter is mandatory for 3D or check out mode payment (the merchant needs to redirect to this link) .
UnionPay H5(the merchant needs to redirect to this link) , WeChat mode(redirect to this link),Alipay payment (redirect to this link)
merOrderNo Yes String Corresponds to the [OrderNo] parameter of the order submission parameter

Cash Register Mode

Body Parameters

  {
    "merNo": 123455,
    "merOrderNo": "1641972507000",
    "currencyCode": "CNY",
    "sourceAmount": "100.05",
    "returnUrl": "http://baidu.com",
    "sign": "9D6FDF4880B00B002B1F2AB61AE9A721",
    "billingFirstName": "san",
    "billingLastName": "zhang",
    "billingAddress1": "China",
    "billingCity": "shanghai",
    "billingState": "shanghai",
    "billingCountry": "CN",
    "billingZipCode": "200000",
    "billingPhone": "13688888888",
    "shippingFirstName": "san",
    "shippingLastName": "zhang",
    "shippingAddress1": "China",
    "shippingCity": "shanghai",
    "shippingState": "shanghai",
    "shippingCountry": "CN",
    "shippingZipCode": "200000",
    "shippingPhone": "13688888888",
    "userAgent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/6.0)",
    "ipAddress": "116.235.134.86",
    "version": "V3.0.0",
    "productInfo": [
      {
        "sku": "1",
        "productName": "mac pro",
        "price": "12000",
        "quantity": "1"
      },
      {
        "sku": "2",
        "productName": "iphone13",
        "price": "8000",
        "quantity": "1"
      }
    ]
  }
Parameter name Required Type Explain Length Remark
merNo Yes Integer Merchant Number 10 Unique identifier assigned to the merchant by the Tapxyz payment platform when registering with Tapxyz
merOrderNo Yes String Merchant Order Number 32 Each order must be unique, and each merchant order number can only be submitted once within 1 second
currencyCode Yes String Currency 3
sourceAmount Yes String Total amount of the order 12 keep two decimals
returnUrl Yes String Jump address after payment is completed 512
notifyUrl No String Asynchronous notification address 512 When making payment, it is used to receive payment results pushed by Tapxyz to the merchant
sign Yes String signature 32 (merNo、merOrderNo、currencyCode、sourceAmount、Merchant key) Please refer to See signature for details
billingFirstName Yes String First Name 50
billingLastName Yes String Last name 50
billingAddress1 Yes String billing address 1 128
billingAddress2 No String billing address 2 128
billingCity Yes String City of residence (bill) 100
billingState Yes String State Name (Bill) 100
billingCountry Yes String International ISO country abbreviation 2 Refer to the country code table
billingZipCode Yes String Postal Code 20
billingPhone Yes String billing phone 20
billingEmail Yes String billing email 100
shippingFirstName Yes String Consignee’s first name 50
shippingLastName Yes String Consignee’s last name 50
shippingAddress1 Yes String Receiving address details 1 128
shippingAddress2 No String Receiving address details 2 128
shippingCity Yes String Receiving city 100
shippingState Yes String Receiving continent, province 100
shippingCountry Yes String Receiving country 2 Refer to the country code table
shippingZipCode Yes String Consignee’s zip code 20
shippingPhone Yes String Consignee phone 20
shippingEmail Yes String shilling email 100
userAgent Yes String Cardholder browser UserAgent 128 check out mode Can be empty
ipAddress Yes String Cardholder IP address 64
productInfoList Yes List product list
version Yes String version 6 default:V3.0.0
Parameter name Required Type Explain Length Remark
sku Yes String Product ID 64
productName Yes String product name 128
price Yes String Commodity price 16
quantity Yes String quantity of commodity 16

Sample request

public class Test{
  public static void main(String[] args){
    JSONObject jsonObject = new JSONObject();
    jsonObject.put("merNo", "123455");
    jsonObject.put("merOrderNo", "1641972507000");
    jsonObject.put("currencyCode", "CNY");
    //.....All body parameters except the sign

    //sign
    String sign = MD5(merNo+merOrderNo+currencyCode+sourceAmount+MerchantKey);
    jsonObject.put("sign", sign.toUpperCase());
    //Credit Card Pay
    String url = "https://pay.tapxyz.com/payment";
    HttpResponse httpResponse = HttpRequest.post(url)
                    .body(jsonObject.toJSONString(), "application/json")
                    .execute();
    int status = httpResponse.getStatus();
    if(status == HttpStatus.HTTP_OK){
        String content = httpResponse.body();
    }
    //UnionPay 
    HttpResponse httpResponse = HttpRequest.post(url)
                        .header("paymentType", "UNIONPAY_H5")
                        .body(jsonObject.toJSONString(), "application/json")
                        .execute();
    int status = httpResponse.getStatus();
    if(status == HttpStatus.HTTP_OK){
        String content = httpResponse.body();
    }

  }
}

Response Parameters

Sample response java <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Response Title</title> </head> <body> ... </body> </html>

async notify

Request Parameters

Body Parameters

  {
    "tradeNo": "SN2201111806024151",
    "merOrderNo": "1641972507000",
    "code": "0",
    "message": "SUCCESS"
  }
Parameter name Required Type Explain
tradeNo Yes String The flow number generated after each order payment (unique marker)
merOrderNo Yes String Corresponds to the [OrderNo] parameter of the order submission parameter
code Yes String error code(Only notify payment status 0 success 1 failure)
message Yes String Description of Payment Result

Query API

Request Parameters

Refund Query Parameters

{
  "merNo":"104001001",
  "merOrderNo":"asdfghjkl",
  "version":"V3.0.0",
  "sign":"9D6FDF4880B00B002B1F2AB61AE9A721",
  "operationType":"query",
  "queryType":"refund",
  "tradeNo": "SN13576867867",
  "refundNo": "1232324324"
}

Transaction Order Query Parameters

{
  "merNo":"104001001",
  "merOrderNo":"asdfghjkl",
  "version":"V3.0.0",
  "sign":"9D6FDF4880B00B002B1F2AB61AE9A721",
  "operationType":"query",
  "tradeNo": "SN13576867867",
  "queryType":"sales"
}
Parameter name Required Type Explain Length Remark
merNo Yes Integer Merchant Number 10 Unique identifier assigned to the merchant by the Tapxyz payment platform when registering with Tapxyz
merOrderNo Yes String Merchant Order Number 32
sign Yes String signature 32 (merNo,merOrderNo,tradeNo,Merchant Key) Please refer to See signature for details
operationType Yes String Operation Type 10 default:query
version Yes String version 6 default:V3.0.0
tradeNo Yes String transaction serial number 50
queryType Yes String query type 16 Refund the query: refund; Transaction Order query: sales
refundNo No String A unique refund number generated by the Tapxyz system 50 Refund enquiries must be sent

Sample request

public class Test{
  public static void main(String[] args){
    JSONObject jsonObject = new JSONObject();
    jsonObject.put("merNo", "123455");
    jsonObject.put("merOrderNo", "1641972507000");
    //.....All body parameters except the sign

    //sign
    String sign = MD5(merNo+merOrderNo+tradeNo+MerchantKey);
    jsonObject.put("sign", sign.toUpperCase());

    String url = "https://pay.tapxyz.com/order/query";
    HttpResponse httpResponse = HttpRequest.post(url)
                    .body(jsonObject.toJSONString(), "application/json")
                    .execute();
    int status = httpResponse.getStatus();
    if(status == HttpStatus.HTTP_OK){
        String content = httpResponse.body();
    }
  }
}

Response parameter

Transaction Order Query Response Success Example

  {
    "code": "00000",
    "message": "SUCCESS",
    "data": {
      "tradeNo": "SN2202101809494673",
      "merOrderNo": "1644487789447",
      "merNo": 104001002,
      "state": "3"
    }
  }

Refund Query Response Success Example json { "code": "00000", "message": "SUCCESS", "data": { "tradeNo": "SN2202101809494673", "merOrderNo": "1644487789447", "refundNo": "202202101820320002", "merNo": 104001002, "refundCurrency": "CNY", "state": "6", "refundAmount": "5.00" } } Response Failure Example

  {
    "code": "10004",
    "message": "The merchant number does not exist"
  }
Parameter name Required Type Explain
code Yes String error code(Refer to the error code table)
message Yes String error description
data No T Request response data
Parameter name Required Type Explain
state Yes Integer 4: Refund Processing ; 5: Refund failure; 6: Refund Success
refundNo Yes String
refundAmount Yes String
refundCurrency Yes String
tradeNo Yes String
merNo Yes String
merOrderNo Yes String
Parameter name Required Type Explain
state Yes Integer 1: Transaction Processing; 2: Transaction Failure; 3: Transaction Success
tradeNo Yes String
merNo Yes String
merOrderNo Yes String

Refund API

Request Parameters

{
  "merNo":"104001001",
  "merOrderNo":"asdfghjkl",
  "amount":"10",
  "version":"V3.0.0",
  "tradeNo":"SN1234567890000",
  "sign":"9D6FDF4880B00B002B1F2AB61AE9A721",
  "notifyUrl":"https://www.test.com",
  "remark":"12323425345",
  "operationType":"refund"
}
Parameter name Required Type Explain Length Remark
merNo Yes Integer Merchant Number 10 Unique identifier assigned to the merchant by the Tapxyz payment platform when registering with Tapxyz
merOrderNo Yes String Merchant Order Number 32
amount Yes String refund amount 12 keep two decimals
notifyUrl No String Asynchronous notification address 512 Used to receive Tapxyz to push refund results to merchants
sign Yes String signature 32 (merNo,merOrderNo,amount,tradeNo,Merchant Key) Please refer to See signature for details
operationType Yes String Operation Type 10 default:refund
version Yes String version 6 default:V3.0.0
tradeNo Yes String transaction serial number 50 The order number generated by the platform when the merchant pays
remark No String remark 1000

Sample request

public class Test{
  public static void main(String[] args){
    JSONObject jsonObject = new JSONObject();
    jsonObject.put("merNo", "123455");
    jsonObject.put("merOrderNo", "1641972507000");
    //.....All body parameters except the sign

    //sign
    String sign = MD5(merNo+merOrderNo+amount+tradeNo+MerchantKey);
    jsonObject.put("sign", sign.toUpperCase());

    String url = "https://pay.tapxyz.com/refund/apply";
    HttpResponse httpResponse = HttpRequest.post(url)
                    .body(jsonObject.toJSONString(), "application/json")
                    .execute();
    int status = httpResponse.getStatus();
    if(status == HttpStatus.HTTP_OK){
        String content = httpResponse.body();
    }
  }
}

Response parameter

Response Success Example

  {
    "code": "00000",
    "message": "SUCCESS",
    "data": {
      "refundNo": "12312432423",
      "tradeNo": "SN1234567890123",
      "merNo": "104001001",
      "merOrderNo": "abc12323424234",
      "refundAmount": "10",
      "refundCurrency": "CNY"
    }
  }

Response Failure Example

  {
    "code": "10004",
    "message": "The merchant number does not exist"
  }
Parameter name Required Type Explain
code Yes String error code(Refer to the error code table)
message Yes String error description
data No T Request response data
Parameter name Required Type Explain
refundNo Yes String Unique ID generated for successful refund application
tradeNo Yes String
merNo Yes String
merOrderNo Yes String
refundAmount Yes String
refundCurrency Yes String

Asynchronous refund notification

Request Parameters

Body Parameters:

  {
    "tradeNo": "SN2201111806024151",
    "merOrderNo": "1641972507000",
    "refundNo": "1641972507000",
    "state": 0,
    "message": "SUCCESS",
    "refundAmount": "10",
    "refundCurrency": "CNY"
  }
Parameter name Required Type Explain
tradeNo Yes String The flow number generated after each order payment (unique marker)
merOrderNo Yes String Corresponds to the [OrderNo] parameter of the order submission parameter
refundNo Yes String Unique refund number to initiate refund generation to Tapxyz
state Yes Integer 0: Refund Success ; 1: Refund Failure
message Yes String Refund Result Description
refundAmount Yes String
refundCurrency Yes String

Sample request

  public class Test{
    public static void main(String[] args){
      JSONObject jsonObject = new JSONObject();
      jsonObject.put("tradeNo", "SN2201111806024151");
      jsonObject.put("merOrderNo", "1641972507000");
      jsonObject.put("refundNo", "2334543543534");
      jsonObject.put("code", 0);
      jsonObject.put("message", "SUCCESS");
      jsonObject.put("refundAmount", "10");
      jsonObject.put("refundCurrency", "CNY");


      String url = "Address of notifyUrl parameter passed when refund";
      HttpResponse httpResponse = HttpRequest.post(url)
                            .body(jsonObject.toJSONString(), "application/json")
                            .execute();
      int status = httpResponse.getStatus();
      if(status == HttpStatus.HTTP_OK){
          String content = httpResponse.body();
          if("SUCCESS".equals(content)){
            //Notify the successful
          } else{
            //Notify the failure
          }
      } else{
        //Notify the failure
      }
    }
  }

Country Code

Code Country
AF Afghanistan
AX √Öland Islands
AL Albania
DZ Algeria
AS American Samoa
AD AndorrA
AO Angola
AI Anguilla
AQ Antarctica
AG Antigua and Barbuda
AR Argentina
AM Armenia
AW Aruba
AU Australia
AT Austria
AZ Azerbaijan
BS Bahamas
BH Bahrain
BD Bangladesh
BB Barbados
BY Belarus
BE Belgium
BZ Belize
BJ Benin
BM Bermuda
BT Bhutan
BO Bolivia
BA Bosnia and Herzegovina
BW Botswana
BV Bouvet Island
BR Brazil
IO British Indian Ocean Territory
BN Brunei Darussalam
BG Bulgaria
BF Burkina Faso
BI Burundi
KH Cambodia
CM Cameroon
CA Canada
CV Cape Verde
KY Cayman Islands
CF Central African Republic
TD Chad
CL Chile
CN China
CX Christmas Island
CC Cocos (Keeling) Islands
CO Colombia
KM Comoros
CG Congo
CD Congo, The Democratic Republic of the
CK Cook Islands
CR Costa Rica
CI Cote D'Ivoire
HR Croatia
CU Cuba
CY Cyprus
CZ Czech Republic
DK Denmark
DJ Djibouti
DM Dominica
DO Dominican Republic
EC Ecuador
EG Egypt
SV El Salvador
GQ Equatorial Guinea
ER Eritrea
EE Estonia
ET Ethiopia
FK Falkland Islands(Malvinas)
FO Faroe Islands
FJ Fiji
FI Finland
FR France
GF French Guiana
PF French Polynesia
TF French Southern Territories
GA Gabon
GM Gambia
GE Georgia
DE Germany
GH Ghana
GI Gibraltar
GR Greece
GL Greenland
GD Grenada
GP Guadeloupe
GU Guam
GT Guatemala
GG Guernsey
GN Guinea
GW Guinea-Bissau
GY Guyana
HT Haiti
HM Heard Island and Mcdonald Islands
VA Holy See (Vatican City State)
HN Honduras
HK Hong Kong
HU Hungary
IS Iceland
IN India
ID Indonesia
IR Iran, Islamic Republic Of
IQ Iraq
IE Ireland
IM Isle of Man
IL Israel
IT Italy
JM Jamaica
JP Japan
JE Jersey
JO Jordan
KZ Kazakhstan
KE Kenya
KI Kiribati
KP Korea, Democratic People'S Republic of
KR Korea, Republic of
KW Kuwait
KG Kyrgyzstan
LA Lao People'S Democratic Republic
LV Latvia
LB Lebanon
LS Lesotho
LR Liberia
LY Libyan Arab Jamahiriya
LI Liechtenstein
LT Lithuania
LU Luxembourg
MO Macao
MK Macedonia, The Former Yugoslav Republic of
MG Madagascar
MW Malawi
MY Malaysia
MV Maldives
ML Mali
MT Malta
MH Marshall Islands
MQ Martinique
MR Mauritania
MU Mauritius
YT Mayotte
MX Mexico
FM Micronesia,Federated States of
MD Moldova, Republic of
MC Monaco
MN Mongolia
MS Montserrat
MA Morocco
MZ Mozambique
MM Myanmar
NA Namibia
NR Nauru
NP Nepal
NL Netherlands
AN Netherlands Antilles
NC New Caledonia
NZ New Zealand
NI Nicaragua
NE Niger
NG Nigeria
NU Niue
NF Norfolk Island
MP Northern Mariana Islands
NO Norway
OM Oman
PK Pakistan
PW Palau
PS Palestinian Territory, Occupied
PA Panama
PG Papua New Guinea
PY Paraguay
PE Peru
PH Philippines
PN Pitcairn
PL Poland
PT Portugal
PR Puerto Rico
QA Qatar
RE Reunion
RO Romania
RU Russian Federation
RW RWANDA
SH Saint Helena
KN Saint Kitts and Nevis
LC Saint Lucia
PM Saint Pierre and Miquelon
VC Saint Vincent and the Grenadines
WS Samoa
SM San Marino
ST Sao Tome and Principe
SA Saudi Arabia
SN Senegal
ME Montenegro
SC Seychelles
SL Sierra Leone
SG Singapore
SK Slovakia
SI Slovenia
SB Solomon Islands
SO Somalia
ZA South Africa
GS South Georgia and the South Sandwich Islands
ES Spain
LK Sri Lanka
SD Sudan
SR Suriname
SJ Svalbard and Jan Mayen
SZ Swaziland
SE Sweden
CH Switzerland
SY Syrian Arab Republic
TW Taiwan, Province of China
TJ Tajikistan
TZ Tanzania, United Republic of
TH Thailand
TL Timor-Leste
TG Togo
TK Tokelau
TO Tonga
TT Trinidad and Tobago
TN Tunisia
TR Turkey
TM Turkmenistan
TC Turks and Caicos Islands
TV Tuvalu
UG Uganda
UA Ukraine
AE United Arab Emirates
GB United Kingdom
US United States
UM United States Minor Outlying Islands
UY Uruguay
UZ Uzbekistan
VU Vanuatu
VE Venezuela
VN Viet Nam
VG Virgin Islands, British
VI Virgin Islands, U.S.
WF Wallis and Futuna
EH Western Sahara
YE Yemen
ZM Zambia
ZW Zimbabwe
RS Serbia

Error Code

State Code Description
00000 SUCCESS
10000 Payment method cannot be empty
10001 Payment method does not exist
10002 The parameter cannot be empty
10003 The same order of the same merchant number cannot be submitted repeatedly within the same time
10004 The merchant number does not exist
10005 Merchant not active
10006 Referer cannot be empty
10007 Source url does not comply with relevant regulations
10008 Merchant Url Restriction
10009 Duplicate merchant order number
10010 Merchant does not set transaction currency
10011 The channel is not open
10012 The card type is not bound
10013 Banks don't exist
10014 Currency conversion rate does not exist
10015 Signature error
10016 Exceed daily transaction limit
10017 Exceed monthly transaction limit
10018 Currency cannot be empty
10019 Currency is not open or currency incoming is wrong
10020 There is no single transaction limit
10021 There is no daily trading limit
10022 There is no monthly trading limit
10023 Merchant reaches single transaction limit
10024 Merchants have reached their daily transaction limit
10025 Merchants have reached their monthly transaction limit
99996 Data type conversion exception
99997 The parameter is missing or does not meet the restriction
99998 Channel payment failure
99995 The payment channel connection has timed out
10026 The transaction does not exist or cannot match the original transaction
10027 The order is not confirmed.
10028 The order is being processed for refund
10029 Insufficient refund amount
10031 The query type does not exist
10032 The card type was not recognized
10033 Merchant does not set card discount rate
10034 Merchant does not set margin deduction rate
10035 All quotas have been used up
10036 The channel is disabled.
10037 Transactions with this card are not supported
10038 Success limit
10039 Failed times exceed the set maximum allowed failed times (cardholder)
10040 Block rule block
10041 Blacklist blocking
10042 Element is limited
99994 The request mode is incorrect
99995 The payment channel connection has timed out
99996 Data type conversion exception
99997 The parameter is missing or does not meet the restriction
99998 Channel payment failure
99999 System Exception

Currency

code name
CNY Chinese Renmenbi
USD United States dollar
GBP Pound sterling
HKD Hong Kong dollar
CHF Swiss franc
SGD Singapore dollar
SEK Swedish krona
DKK Danish krone
NOK Norwegian krone
JPY Japanese yen
CAD Canadian dollar
AUD Australian dollar
EUR Euro
MOP Macao Pataca
PHP Philippine peso
THB Thai baht
NZD New Zealand dollar
KRW South Korean won
RUB Russian ruble
MYR Malaysian ringgit
TWD New Taiwan dollar
INR India rupee