Official Documentation for the ASINX PAY APIs and Streams.
This project is the java version demo. you can download and run it for testing.
Welcome to ASINX PAY API document for developers.
This document provides an introduction to the use of related APIs such as account management,account kyc, card apply and recharge etc.
Before signing any request, you must get the API from sales.
Demo appId and appSecret:
-
appId='app_447770'
-
appSecret='b635dd5c87f7bf73387929203321b1e1'
All REST requests must use POST method ,include the following headers, and the request body is valid JSON.
- appId, need use appId as the key, put in all requests header;
- Signature generated using a certain algorithm, need use sign as the key, put in all requests header;
- All requests should set header 'content-type' as application/json;charset=UTF-8 and request body be valid JSON(if the path not need parameters, the body should be {}).
- Some requests should set header 'uId' with the value from user register interface.
sign is generated by the request path + dictionary sorted parameters JSON string (+ means string connection), then Base64 encode, then AES128 encrypt, then encrypt the string with MD5 (32 bits).
For example: sign the following request parameters (the AppSecret=123456)
curl "https://test.asinx.io/api-web/user/register"
- Request parameters are passed in JSON format, parameter example:
{
"mobileNumber": "18888888867",
"mobilePrefix": "1",
"email": "188888888662@188.com"
}
- Dictionary sorted
{
"email": "188888888662@188.com",
"mobileNumber": "18888888867",
"mobilePrefix": "1"
}
- Parameters json string
dataJson = '{"email":"188888888662@188.com","mobileNumber":"18888888867","mobilePrefix":"1"}'
- request path + json string
originString = '/user/register{"email":"188888888662@188.com","mobileNumber":"18888888867","mobilePrefix":"1"}'
- originString base64 encode
base64String = 'L3VzZXIvcmVnaXN0ZXJ7ImVtYWlsIjoiMTg4ODg4ODg4NjYyQDE4OC5jb20iLCJtb2JpbGVOdW1iZXIiOiIxODg4ODg4ODg2NyIsIm1vYmlsZVByZWZpeCI6IjEifQ=='
- base64String AES128 encrypt using appSecret as the key
aes128String = 'aa71f61b66b0436856be41b40ea099029bc25e43ae01d39f7332a8a56da3214d5b054c32c702142ade9a87f98cc3fca43a7625413671dff58fc6678faa760466b012d42a2b396c6218d04973b1fba60de82e593d22ddcf9f54f7fccb2cef876fe2e96e2276f672b44ebf6207ca823b0a0229ad71fa98c286f14adede9283d160d6ec88adf38227242f491052e1bd3edc'
- aes128String MD5(32bit) encrypt
signature = 'f61ff896372b9e5836cb67a069dd810a'
- put appId and the signature into the request header
request.header("appId", xxxxxx);
request.header("sign", "cc4991ec87ccb8f3118a1987b642bd3b");
All response is valid JSON as the follow structure
{
"total":9, // size of list when the result is list data
"success": true,
"result": "JkLoxhGUGR8WB3ze8X1HfRAFnv0DJ5zy+Bm//Zvk4TII9XC+n3ppjhm2OFes0Wrh", // result data, Base64 encoded and AES128 encrypted with the appSecret
"code": 1, // response code , 1 is success ,other is failed
"message": "Successful!" // response description
}
The result field is Base64 encoded and AES128 encrypted with the appSecret, need decrypt and decode to get the JSON response data.
For example: Parse the following response (the AppSecret=b635dd5c87f7bf73387929203321b1e1)
Response of use register
{
"success": true,
"result": "9LOSTUUpwaho2yDtmNVfLWgqVcH+wfWKtfLpBxFLvonk8quZi5mMCnhsbN84DT1P",
"code": 1,
"message": "Successful!"
}
AES128 decrypt and Base64 decode,get the valid JSON string
{
"uid": "1234"
}
Please refer to the detailed meaning of the Response code.
HTTP Request
# Request
POST /user/register
example: https://test.asinx.io/api-web/user/register
#body
{
"email": "188888888662@188.com",
"mobileNumber": "18888888867",
"mobilePrefix": "1"
}
request fields
field | description | required | type |
---|---|---|---|
user email, should not be used | YES | String | |
mobileNumber | user phone number,should not be used | YES | String |
mobilePrefix | user phone country code(China 86, Korea 82, Japan 81 etc. ) | YES | String |
HTTP Response
# Response
{
"success": true,
"result": "bOodDEqstZ82BRjTuLRE5PBmcIixXsMxNPOVqS+iyBfk8quZi5mMCnhsbN84DT1P",
"code": 1,
"message": "Successful!"
}
result decrypted json string
{
"uid": "hgwoxhlpzvav6m2l"
}
Result fields
field | description | type |
---|---|---|
uid | user unique ID, some requests set 'uId' request header with this value | String |
2. Set User profession(obsolete,new kyc)
HTTP Request
# Request
POST /user/setProfession
example: https://test.asinx.io/api-web/user/setProfession
#body
{
"annual_income": "100000",
"birthday": "2000-01-01",
"country": "CN",
"expiry_date": "2027-01-01",
"first_name": "ming",
"first_name_en": "ming",
"id_type": "passport",
"last_name": "li",
"last_name_en": "li",
"number": "123456",
"occupation": "boss",
"position": "management",
"frontImg":"data:image/jpg;base64,xxxxxxxx..........",
"backImg":"data:image/jpg;base64,xxxxxxxx.........."
}
extra request http header
header 'uId' = uid ,value from user register response;
request fields
field | description | required | type | format |
---|---|---|---|---|
first_name | user first name | YES | String | |
last_name | user last name | YES | String | |
first_name_en | user english first name | YES | String | |
last_name_en | user english last name | YES | String | |
birthday | user birthday | YES | String | YYYY-MM-DD |
occupation | user occupation | NO | String | |
position | user position | NO | String | |
annual_income | user annual income | NO | String | Annual user income in HKD |
id_type | user ID type | YES | String | must be one of these id types |
country | user ID country code | YES | String | code must be one of these id countries |
number | user ID number | YES | String | |
expiry_date | user ID expiry date | YES | String | YYYY-MM-DD |
frontImg | user ID front image | YES | String | image format |
backImg | user ID back image | NO, For passport types, only one photo needs to be submitted, while for ID card types, two photos need to be submitted. | String | image format |
HTTP Response Common response
HTTP Request
# Request
POST /user/setProfession
example: https://test.asinx.io/api-web/kyc/gateway
#body
{
"doneViewURL": "https://xxx/donne/view",
"timeoutViewURL": "https://www/timeout/view"
}
extra request http header
header 'uId' = uid ,value from user register response;
request fields
field | description | required | type | format |
---|---|---|---|---|
doneViewURL | User KYC submission completion prompt page | YES | String | |
timeoutViewURL | User KYC submission timeout prompt page | YES | String |
HTTP Response result decrypted json string
{
"gateway": "https://test.asinx.io/#/pages/member/kycInfo/kycInfo"
}
HTTP Request
# Request
POST /user/usdRechargeInfo
example: https://test.asinx.io/api-web/user/usdRechargeInfo
#body
{
"amount":100.00
}
request fields
field | description | required | type |
---|---|---|---|
amount | Recharge Amount | YES | Number |
extra request http header
header 'uId' = uid ,value from user register response;
The testing environment does not provide a charging address. If you want to test this API, please use uid= 'eoi7g774uuuyrasz'
HTTP Response
# Response
{
"success": true,
"result": "0252e1e822c50faeaa28549b037dee5633f2e2c7664f1fa03fe4d531fb9710a983ffa7002dc27fd3acb29b6442deb266f151e77ee647df196821d505a4c0d7696a860fa49598273a77055d95f9fb84d6547d227ae0479184c049c03fe102f22fd3e0c87a293fe934bf53eecbd8353cf1",
"code": 1,
"message": "Successful!"
}
result decrypted json string
{
"gateway": "https://test.asinx.io/payment/#/?orderNo=MB230819193948569135325",
"orderNo":"MB230819193948569135325"
}
Result fields
field | description | type |
---|---|---|
gateway | URL of payment gateway | String |
orderNo | Unique Order Number | String |
HTTP Request
# Request
POST /bankcard/template/list
example: https://test.asinx.io/api-web/bankcard/template/list
#body
{
}
request fields
NONE
No request parameters ,but should post empty json data "{}" to server
HTTP Response
result decrypted json string
# Response result decode
[{
"applyDiscount": 1,
"applyFee": 300.000000000000000000,
"bankCardNature": "PHYSICAL",
"bankCardSource": "SP",
"bankCardType": "MASTER",
"categoryId": 1,
"ccy": "USD",
"description1": "闪电支付,无缝衔接",
"description2": "让你的NFT消费流通起来",
"enable": true,
"hot": false,
"id": 9,
"img": "https://test.asinx.io/static-res/bankcard/1688961772590.png",
"monthFee": 0.00,
"rechargeFee": 0.010000000000000000,
"recommend": true,
"sortParam": 20,
"title": "ASINX 优月卡"
},
...
]
Result fields
field | description |
---|---|
applyFee | apply fee(USD) |
applyDiscount | discount of apply, real cost of applying is applyDiscount*applyFee |
bankCardNature | PHYSICAL or VIRTUAL |
bankCardType | MASTER or VISA |
ccy | card currency |
description1 | card description1 |
description2 | card description2 |
id | bankcard ID, parameter of Apply card api |
enable | is allowed to apply |
img | card demo image |
monthFee | Month fee of card(USD); Automatic deduction on the 7th of each month |
rechargeFee | recharge fee rate, like 0.01 |
sortParam | sort parameter |
title | Card name |
HTTP Request
# Request
POST /bankcard/apply
example: https://test.asinx.io/api-web/bankcard/apply
#body
{
"bankcardId": 9,
"residenceAddress": "",
"tag":"xxxxx",
"userBankcardId":171 // NOT Required
}
extra request http header
header 'uId' = uid ,value from user register response;
request fields
field | description | required | type |
---|---|---|---|
bankcardId | bankcard ID from card information list response | YES | Number |
userBankcardId | When the card application is rejected and needs to be reapplied, this field needs to be passed, and the value also comes from this API | NO | Number |
residenceAddress | The user's residential address must be detailed to the building number or house number. | NO, Only PHYSICAL card need this field | String |
tag | Custom Tag Information | NO | String |
HTTP Response
result decrypted json string
{
"cardNo": "424242 **** **** ****",
"userBankcardId": 137,
"status": "AUDITING",
"tag":"xxxxx"
}
Result fields
field | description |
---|---|
userBankcardId | user bankcard unique ID, parameter of API when doing any card operating |
cardNo | card Number, Only after the card is approved can the complete card number be obtained |
status | card status enum |
tag | Custom Tag Information |
HTTP Request
# Request
POST /bankcard/recharge
example: https://test.asinx.io/api-web/bankcard/recharge
#body
{
"amount": 16,
"userBankcardId": 135
}
extra request http header
header 'uId' = uid ,value from user register response;
request fields
field | description | required | type |
---|---|---|---|
userBankcardId | user bankcard ID from card apply response | YES | Number |
amount | Recharge amount | YES | String |
HTTP Response
result decrypted json string
{
"requestOrderId":"LM2312151602393234580"
}
Result fields
field | description |
---|---|
requestOrderId | Request unique order No. |
NOTE
- Physical card recharge will directly return the recharge result. In rare cases, it may not be possible to immediately return results due to communication with upstream networks.
- The virtual card has some cards with bin cards and cannot directly return recharge results(The Response code is 99997). You need to process notify the recharge results in webhook.
HTTP Request
# Request
POST /bankcard/setPin
example: https://test.asinx.io/api-web/bankcard/setPin
#body
{
"pin": "123456",
"userBankcardId": 136
}
extra request http header
header 'uId' = uid ,value from user register response;
request fields
field | description | required | type | format |
---|---|---|---|---|
userBankcardId | user bankcard ID from card apply response | YES | Number | |
pin | user ATM password | YES | String | 6-digit password |
HTTP Response
Common response
HTTP Request
# Request
POST /bankcard/balance
example: https://test.asinx.io/api-web/bankcard/balance
#body
{
"userBankcardId": 136
}
extra request http header
header 'uId' = uid ,value from user register response;
request fields
field | description | required | type | default value |
---|---|---|---|---|
userBankcardId | user bankcard ID from card apply response | YES | Number |
HTTP Response
result decrypted json string
{
"balance": 456.34
"userBankcardId":100
}
Result fields
field | description |
---|---|
balance | Bankcard Balance Amount (USD) |
userBankcardId | user bankcard unique ID |
HTTP Request
# Request
POST /bankcard/cardInfo
example: https://test.asinx.io/api-web/bankcard/cardInfo
#body
{
"userBankcardId": 136
}
extra request http header
header 'uId' = uid ,value from user register response;
request fields
field | description | required | type | default value |
---|---|---|---|---|
userBankcardId | user bankcard ID from card apply response | YES | Number |
HTTP Response
result decrypted json string
{
"bankCardId": 132,
"cardCvv": "195",
"cardNo": "1111112826444128",
"currency": "USD",
"expiryDate": "202707",
"monthFee": 0.00,
"tag":"xxx"
"rechargeFee": 0.01,
"userBankCardStatus": "ACTIVE",
"hashHolderInfo": true,
"vccCardHolderVo": {
"billingAddress": "3836 Harvest Lane",
"billingCity": " Los Angeles",
"billingState": "California",
"billingZipCode": "90014",
"birthDate": "1983-10-01",
"countryCode": "America",
"email": "123321@asinx.io",
"firstName": "jiang",
"id": 4,
"lastName": "liu",
"middleName": "luo",
"mobile": "18900889980",
"mobilePrefix": "86"
}
}
Result fields
field | description |
---|---|
cardCvv | Bankcard Cvv code, Only Virtual Card return this Field |
cardNo | Bankcard Number |
currency | Bankcard currency |
expiryDate | Bankcard Expiry Date |
monthFee | Bankcard Month Fee (USD) |
rechargeFee | Bankcard Recharge fee rate. like 0.01 |
userBankCardStatus | Bankcard status |
hashHolderInfo | Some Virtual need card holder information,if this value is true, vccCardHolderVo is detail holder information |
vccCardHolderVo | Card Holder Detail Information |
vccCardHolderVo.firstName | Card Holder firstName |
vccCardHolderVo.middleName | Card Holder middleName |
vccCardHolderVo.lastName | Card Holder lastName |
vccCardHolderVo.mobilePrefix | Card Holder mobilePrefix |
vccCardHolderVo.mobile | Card Holder mobile |
vccCardHolderVo.email | Card Holder firstName |
vccCardHolderVo.countryCode | Card Holder countryCode |
vccCardHolderVo.birthDate | Card Holder birthDate |
vccCardHolderVo.billingAddress | Card Holder billingAddress |
vccCardHolderVo.billingCity | Card Holder billingCity |
vccCardHolderVo.billingState | Card Holder billingState |
vccCardHolderVo.billingZipCode | Card Holder billingZipCode |
tag | Custom Tag Information |
HTTP Request
# Request
POST /bankcard/transactions
example: https://test.asinx.io/api-web/bankcard/transactions
#body
{
"endTimestamp": 1690878578000,
"fromTimestamp": 1690878577000,
"pageNum": 1,
"pageSize": 10,
"userBankcardId": 135
}
extra request http header
header 'uId' = uid ,value from user register response;
request fields
field | description | required | type | default value |
---|---|---|---|---|
userBankcardId | user bankcard ID from card apply response | YES | Number | |
pageSize | Paging query, one page size | NO | Number | 10 |
pageNum | Paging query, which page | NO | Number | 1 |
fromTimestamp | from time(The time range contains values equal to from time.) | NO | milliseconds UNIX Time | NONE |
endTimestamp | end time(The time range does not include an occur time that is equal to or greater than.) | NO | milliseconds UNIX Time | NONE |
HTTP Response
result decrypted json string
[{
"id": 191,
"userBankcardId":100,
"localCurrency": "HKD",
"localCurrencyAmt": "-24.27",
"merchantName": "MEITUAN FOOD BEIJING CHN",
"occurTime": 1690940850000,
"recordNo": "57724528-78b6-4ae2-919f-1efff348f460",
"transCurrency": "CNY",
"transCurrencyAmt": "-21.90",
"transStatus": "Pending",
"respCode":"000000",
"respCodeDesc":"success",
"transType": "Expenditure"
},
...
]
Result fields
field | description |
---|---|
userBankcardId | user bankcard ID from request parameter |
recordNo | record unique No. |
occurTime | card Number, Only after the card is approved can the complete card number be obtained. milliseconds UNIX Time |
localCurrencyAmt | Local currency trans Amount |
localCurrency | Local currency type |
transCurrencyAmt | Transaction currency trans Amount |
transCurrency | Transaction currency type |
transStatus | Transaction status |
transType | Transaction type |
authType | Authorisation type (Purchase or ATM) |
merchantName | Merchant name |
respCode | Response Code |
respCodeDesc | Response code Description |
HTTP Request
# Request
POST /account/asset
example: https://test.asinx.io/api-web/account/asset
#body
{
}
request fields
NONE
HTTP Response
result decrypted json string
{
"availableAmount": 398.000000000000000000,
"currency": "USD",
"frozenAmount": 25.000000000000000000
}
Result fields
field | description |
---|---|
availableAmount | Account available Amount |
frozenAmount | Account frozen Amount |
currency | currency |
HTTP Request
# Request
POST /account/user/rechargeList
example: https://test.asinx.io/api-web/account/user/rechargeList
#body
{
"pageNum": 1,
"pageSize": 10,
"uid": "ewaoaylm5ueywbib"
}
request fields
field | description | required | type | default value |
---|---|---|---|---|
uid | Specify UID to query user recharge records | NO | String | |
pageSize | Paging query, one page size | NO | Number | 10 |
pageNum | Paging query, which page | NO | Number | 1 |
HTTP Response
result decrypted json string
[{
"amount": 8.260569000000000000,
"createTime": 1692618341000,
"fee": 0E-18,
"receiveUSDValue": 8.26,
"rechargeStatus": "SUCCESS",
"symbol": "USDT",
"uid": "ewao6vdunfdllre7"
},
...
]
Result fields
field | description |
---|---|
amount | Coin amount |
createTime | Recharge create time |
fee | Recharge fee |
receiveUSDValue | recharge USD Value |
rechargeStatus | Transaction status |
symbol | Recharge coin type |
uid | Recharge user ID |
HTTP Request
# Request
POST /merchant/asset
example: https://test.asinx.io/api-web/merchant/asset
#body
{
}
request fields
NONE
HTTP Response
result decrypted json string
{
"availableAmount": 398.000000000000000000,
"currency": "USD",
"frozenAmount": 25.000000000000000000
}
Result fields
field | description |
---|---|
availableAmount | Account available Amount |
frozenAmount | Account frozen Amount |
currency | currency |
HTTP Request
# Request
POST /merchant/rechargeList
example: https://test.asinx.io/api-web/merchant/rechargeList
#body
{
"pageNum": 1,
"pageSize": 10,
}
request fields
field | description | required | type | default value |
---|---|---|---|---|
pageSize | Paging query, one page size | NO | Number | 10 |
pageNum | Paging query, which page | NO | Number | 1 |
HTTP Response
result decrypted json string
[{
"id": 572,
"operateAmount": 1.000000000000000000,
"availableAmount": 2054.050000000000000000,
"frozenAmount": 25.000000000000000000,
"createAt": 1694511002000,
"currency": "USD",
},
...
]
Result fields
field | description |
---|---|
id | unique id |
operateAmount | Recharge amount |
availableAmount | account available amount after the recharge operation |
frozenAmount | account frozen amount after the recharge operation |
createAt | recharge time |
currency | account currency |
Response structure
{
"appId": "app_447770",
"result": "e9ab9e50d2028d6388322aea74544206ce9df7669e474a7c6c2fb7fdce533cb5714915b4dab8d8369caac53dfb9386804aad938ac33d41a16f63871212d12d452f408be1fddc344849bc5c48c22ec8ace2839d29fb5601c2c52966d4f02b3f5e9e0711a4e55334256d9c14e0119d5d9fe9ae35fec26d2059fad87b755c2b384427e08b898f21a91715ef8268736156cf61a10d18d57d4a57700ebecf9e7afd36e2839d29fb5601c2c52966d4f02b3f5e802f0c406dc0145256bec3ee665c43032b44abe0cdb0fe8a5de3dd9871661c0e88edb4830bb9e22d9a81024e2a6c0a0f97208e8bf2de8bddc7b042d707eabab487c48d9b757e89fe0495a37709cf1ed5fe05e9b65ab8af4270d18e7fd0fdf9fb04495d45589367ef5f3bff5ea8d5b291a85c5bf9db14a120fb4176056bd453fce35f1e124d3a7de068d1fc33865ca334d8ffff9da47a110c15a8cc9a3e6bff208e8af3d7dc052e384f56c7df5e28b375693caa79921be63fc220fafe2d135397828a340ea84b6cf0c5d783eeaa39f6647851c063aacb452c49f6858d61e790304e05dbe488826d8257332914dbe6d4ffee4431070b04512b6cc9b34450c5812f45f02ca6c4b601a7ab0ad0f50577b5e88a77ba00280b1132e149e063b3aac78c547f15d7af052ea38581545bfd706a56",
"type": "TRANSACTION_CREATED",
"uniqueNo":"webhook231215160240143136231"
}
The result field is Base64 encoded and AES128 encrypted with the appSecret, need decrypt and decode to get the JSON response data.
type | description |
---|---|
TRANSACTION_VERIFICATION_CODE | User transaction verification code,need send to user`s mobile or email |
CARD_STATUS_CHANGE | Card status notify, Trigger when card status change |
TRANSACTION_CREATED | Card transactions detail information |
CARD_RECHARGE_RESULT | Card Result, when Recharge return code=99997.When the results are clear, we will send this notification |
COIN_RECHARGE_RESULT | User coin Recharge Result |
result decrypted json string
{
"cardNo": "4242424242413691",
"code": "123456",
"createAt": 1691249025085,
"userBankcardId": 145
}
Result fields
field | description |
---|---|
userBankcardId | user bankcard unique ID |
cardNo | user bankcard No. |
code | verification code |
createAt | Trigger time |
result decrypted json string
{
"createAt": 1691248718245,
"reason": "提交資料不通過審批",
"status": "AUDIT_NOT_PASS",
"userBankcardId": 146,
"cardNo":"4242424242413691"
}
Result fields
field | description |
---|---|
userBankcardId | user bankcard unique ID |
status | Bankcard status |
reason | Reason for failure to pass the review, only returned when not passed |
code | verification code |
cardNo | Bankcard No. Other status returns except for failed review |
createAt | Trigger time |
result decrypted json string
{
"cardNo": "4242424242413691",
"createAt": 1691549830756,
"currency": "USD",
"transaction": {
"authType": "",
"id": 254,
"localCurrency": "USD",
"localCurrencyAmt": "+99.00",
"occurTime": 1691549808050,
"recordNo": "ef4248e4-d274-4f33-bc8c-0fad02b90c07",
"transCurrency": "HKD",
"transCurrencyAmt": "+771.20",
"merchantName":"GOOGLE *TEMPORARY HOLD",
"transStatus": "posted",
"respCode":"000000",
"respCodeDesc":"渠道费用",
"transType": "topup"
"receiptNo": "ef4248e4-d274-4f33-bc8c-ijohoijpojp"
},
"userBankcardId": 145
}
Result fields
field | description |
---|---|
userBankcardId | user bankcard unique ID |
currency | Fix value USD |
cardNo | Bankcard No. Other status returns except for failed review |
createAt | Trigger time |
transaction | Transaction detail |
transaction.authType | PURCHASE or ATM |
transaction.id | Record ID |
transaction.recordNo | Record unique No. |
transaction.receiptNo | Only when the transaction type is transaction fee, there is a value, which is the "recordNo" of the transaction corresponding to the transaction fee |
transaction.localCurrency | Card Local currency |
transaction.merchantName | Merchant Name |
transaction.respCode | Response Code |
transaction.respCodeDesc | Response code Description |
transaction.localCurrencyAmt | Card Local currency amount |
transaction.transCurrency | Card transaction currency |
transaction.transCurrencyAmt | Card transaction currency amount |
transaction.transStatus | Transaction Status |
transaction.transType | Transaction Type |
result decrypted json string
{
"amount": 100.000000000000000000,
"cardNo": "1111113485704136",
"createAt": 1691550780785,
"currency": "USD",
"receiveAmount": 99.500000000000000000,
"status": "SUCCESS",
"userBankcardId": 140
}
Result fields
field | description |
---|---|
userBankcardId | user bankcard unique ID |
amount | User operate Amount |
receiveAmount | Card receive Amount, Only returned when status is SUCCESS |
currency | Operate Currency |
status | SUCCESS or FAILED , recharge result |
cardNo | Bankcard No. Other status returns except for failed review |
createAt | Trigger time |
result decrypted json string
{
"coinAmount":100,
"symbol": "USDT",
"createAt": 1692711247364,
"currency": "USD",
"orderNo": "MB230822103810254026143",
"amount": 100,
"receiveAmount": 97.75,
"status": "SUCCESS",
"uid": "eo3cqhz3lujehlar"
}
Result fields
field | description |
---|---|
uid | Coin recharge user Id |
coinAmount | Address receive coin Amount |
symbol | Address receive coin symbol |
amount | Address receive USD Value |
receiveAmount | Account receive USD Value,The difference with amount is the handling fee(USD) |
currency | Operate Currency |
status | SUCCESS or FAILED , recharge result |
orderNo | Payment Order No. |
createAt | Occur time |
code | description |
---|---|
1 | SUCCESS |
2 | Parameters illegal |
200 | Common business error, detail in the message |
212 | Account balance not enough |
99997 | The business result is unknown, and we need to wait for the result notification or actively query the result |
type | description |
---|---|
passport | User Passport |
national-id | User ID card |
code | country | passport support | id card support |
---|---|---|---|
CN | China | YES | YES |
HK | China Hong Kong | YES | YES |
KOR | Korea | YES | NO |
JP | Japan | YES | NO |
SG | Singapore | YES | NO |
UK | Britain | YES | NO |
US | America | YES | NO |
status | description |
---|---|
AUDITING | Card approval in progress |
AUDIT_PASS | Card approval passed |
AUDIT_NOT_PASS | Card approval not passed |
TBA | Card to be activated (automatic activation for first time card recharge) |
ACTIVE_PROCESSING | Card activation processing is in progress (some cards cannot synchronously return results and need to wait for notification or actively query results) |
ACTIVE | Card active |
CLOSE_PROCESSING | Card closing processing is in progress(some cards cannot synchronously return results and need to wait for notification or actively query results) |
CLOSE | Card been closed |
EXCHANGE_PROCESSING | Card replacement processing in progress |
status | description | card type |
---|---|---|
APPROVED | approved | VIRTUAL Card |
DECLINED | declined | VIRTUAL Card |
pending | pending | PHYSICAL Card |
posted | Done | PHYSICAL Card |
declined | Reject | PHYSICAL Card |
vodi | Cancel | PHYSICAL Card |
status | description |
---|---|
PURCHASE | consumer spending |
ATM | ATM withdrawal |
type | description | card type |
---|---|---|
AUTH | Authorized consumption | VIRTUAL Card |
AUTH_QUERY | Authorized Query | VIRTUAL Card |
REVERSAL | reversal | VIRTUAL Card |
REFUND | refund | VIRTUAL Card |
FEE | fee | VIRTUAL Card |
TRADE_PROCESS_FEE | trade process fee | VIRTUAL Card |
TRADE_CROSS_BOARD_FEE | trade cross board fee | VIRTUAL Card |
TRADE_REFUND_FEE | trade refund fee | VIRTUAL Card |
FEE_REVERSAL | fee reversal | VIRTUAL Card |
ORIGINAL_CREDIT | otc refund | VIRTUAL Card |
ORIGINAL_CREDIT_REVERSAL | otc refund reversal | VIRTUAL Card |
charge | charge | PHYSICAL Card |
refund | refund | PHYSICAL Card |
topup | topup | PHYSICAL Card |
withdraw | withdraw | PHYSICAL Card |
transfer | transfer | PHYSICAL Card |
cashback | cashback | PHYSICAL Card |
interest | interest | PHYSICAL Card |
fee | fee | PHYSICAL Card |
other | other types | PHYSICAL Card |
code | description | card type |
---|---|---|
000000 | SUCCESS | VIRTUAL Card |
100001 | FAILED(Account Excetion) | VIRTUAL Card |
200001 | FAILED(Invalid card) | VIRTUAL Card |
200002 | FAILED(Insufficient balance) | VIRTUAL Card |
200003 | FAILED(CVV error) | VIRTUAL Card |
200004 | FAILED(Incorrect expiration date) | VIRTUAL Card |
200005 | FAILED(Incorrect transaction currency) | VIRTUAL Card |
200006 | FAILED(Non multiple card) | VIRTUAL Card |
200007 | FAILED(Exceeding limit) | VIRTUAL Card |
200008 | FAILED(Card abnormality) | VIRTUAL Card |
200009 | FAILED(The number of transactions exceeds the limit) | VIRTUAL Card |
300001 | FAILED(Invalid Merchant) | VIRTUAL Card |
400001 | FAILED(High risk transactions) | VIRTUAL Card |
400002 | FAILED(Invalid amount) | VIRTUAL Card |
400003 | FAILED(Invalid transaction) | VIRTUAL Card |
400004 | FAILED(Unable to find original transaction) | VIRTUAL Card |
400005 | FAILED(The original transaction status is abnormal) | VIRTUAL Card |
400006 | FAILED(This transaction type is not supported) | VIRTUAL Card |
400007 | FAILED(Transaction timeout) | VIRTUAL Card |
400008 | FAILED(Rejected by risk control) | VIRTUAL Card |
400009 | FAILED(Channel interception) | VIRTUAL Card |
400010 | FAILED(Refund exceeds the limit) | VIRTUAL Card |
400011 | FAILED(Frequent authorization) | VIRTUAL Card |
400012 | FAILED(Decision rejection) | VIRTUAL Card |
400013 | FAILED(Payment request occurs again after correction) | VIRTUAL Card |
999997 | FAILED(Channel abnormality) | VIRTUAL Card |
999998 | FAILED(System upgrade in progress) | VIRTUAL Card |
999999 | FAILED(Unknown exception) | VIRTUAL Card |
image data format should be : "data:"+ image mine info +";base64," + image base64 encode data.