7.2.2 Create a scan code payment order for any amount of digital currency (merchant-defined exchange rate)
#Brief description: Digital currency recharge business interface, users can recharge USDT (Tether) to their digital wallet account by scanning the QR code (merchant’s customized exchange rate, need to log in to the merchant’s backend settings)
- Request method: POST
- Request interface: https://gateway-domain/wallet-trade-merchant/v1/receive/blockchain/any/custom/rate/create
- Request media type (JSON data format)Content-Type: application/json
Request parameters
| Parameter name | Type | Required | Parameter meaning | Parameter description |
|---|---|---|---|---|
key | string | Yes | Merchant key | apiKey |
localOrderId | string | Yes | Merchant platform local order number | Merchant platform generates unique order number locally |
localUserId | string | No | Merchant platform local user ID | Merchant platform local user ID |
notifyUrl | string | No | Callback address | After the order is successfully placed, the address of the merchant will be notified by API callback (callback details are at the bottom) |
successRedirectUrl | string | No | Jump address | Automatically jump to address after success |
currency | string | Yes | Order pricing currency | Pricing currency (wallet supported currency) |
userCurrency | string | Yes | User payment currency | The currency that the user needs to pay (digital currency supported by the wallet) |
amount | number | No | User's expected payment amount | |
isBlockchain | boolean | No | Whether to return blockchain information (default false) | When true, the callback request will carry the transaction information on the order chain |
networkLimits | array | No | Mainnet | Designated payment mainnet, such as TRON, BSC, POLYGON, ETHEREUM |
expireSecond | Long | No | Expiration timestamp (seconds) | |
sign | string | Yes | Signature | See Signature Algorithm for details |
Request json sample
{
"key": "9yUreYgTRtit39Dy",
"localOrderId": "1732322-111",
"notifyUrl": "http://127.0.0.1:8080/merchant-demo/notify",
"amount": 8,
"currency": "CNY",
"userCurrency": "USDT",
"networkLimits": ["TRON"],
"isBlockchain": true,
"sign": "6c82150ae89fc0fa202f98c92023ef04"
}
Response json example
{
"code": 0,
"success": true,
"message": null,
"data": {
"orderId": 274185964909271,
"localUserId": null,
"localOrderId": "1732322-111",
"orderType": "PAYMENT",
"orderBizType": "PAYMENT_ANY_USDT_WALLET_SCAN",
"paymentUrl": "https://walletapi.vapyapp.com/any-amount-pay/NanZCtCLCcFQbqbPyy3KJkFPYNTaZGuGjyibkAVjVuebjHWi2QuVrM5QUxg4",
"publicKey": "NanZCtCLCcFQbqbPyy3KJkFPYNTaZGuGjyibkAVjVuebjHWi2QuVrM5QUxg4"
}
}
The returned paymentUrl pops up the payment page, as shown below:
/7.2 数字币任意金额扫码/usdt.jpg)
Response data parameter description
| Parameter name | Type | Parameter meaning | Parameter description |
|---|---|---|---|
orderId | string | Order ID | |
localUserId | string | Merchant local user ID | |
localOrderId | string | Merchant local order number | |
orderType | enum | Order Type | PAYMENT:支付订单 WITHDRAW:提款订单 |
orderBizType | enum | Order business type | orderBizType type description is as follows |
paymentUrl | string | Payment address | |
publicKey | string | Public Access Key |
orderBizType type description:
- PAYMENT_WALLET_SCAN MINPAY wallet scan code payment
- PAYMENT_TRANSFER digital currency binding address direct deposit
- PAYMENT_ANY_DIGITAL_SCAN Scan the QR code to pay any amount of digital currency
- WITHDRAW_WALLET withdraw money to MINPAY wallet
- WITHDRAW_ANY_DIGITAL_WALLET Withdraw digital currency to any wallet
- PAYMENT_FIXED_DIGITAL_SCAN digital currency limited amount scan code payment
- BATCH_PAY batch payment
Callback returns json data
By default, all callback parameters participate in signature verification. For details of callback parameters, please see callback ]
Callback data
{
"amount": 8,
"bizType": "PAYMENT_FIXED_DIGITAL_SCAN",
"blockchain": {
"network": "TRON",
"receiverAddress": "TA1jptT16DssYWVGdVyFWxonku6hWK7En3",
"senderAddress": "TPutFhYUQnrRxHSmKVwjp55vgk9QY6r5nS",
"txId": "24d0d0e5d417bd2195c45d64724760ae47fc3b359ee31c5fedf25b40f3584b36"
},
"currency": "USDT",
"key": "h3cS7dBltRU4W1wD",
"localOrderId": "2820",
"merchantActualAmount": 8.86,
"extra": {
"quoteAmount": 10,
"quoteCurrency": "CNY",
"quotePrice": 10
},
"merchantCurrency": "CNY",
"merchantId": 303122065665,
"merchantPaidAmount": 10.98,
"merchantUserId": "97",
"notifyTime": 1731572168370,
"orderCreateTime": 1731572133082,
"orderId": "273124814912907",
"sign": "699806308a9e055114c378671b0d2a15",
"status": "SUCCESS",
"type": "PAYMENT",
"userAmount": 1.55,
"userCurrency": "USDT",
"userReceivableAmount": 1.55
}
| Parameter name | Type | Participating signature | Parameter meaning | Parameter description |
|---|---|---|---|---|
amount | decimal | Yes | Order Amount | |
bizType | enum | Yes | Order Type | |
blockchain | object | Yes | Chain transaction information | When the order request parameter isBlockchain is true, the callback request will carry this object information. (When only on-chain transactions are involved, the isBlockchain parameter will take effect) |
| └network | String | Yes | Mainnet | |
| └receiverAddress | String | Yes | Receiver Address | |
| └senderAddress | decimal | Yes | Sending Address | |
| └txId | String | Yes | Transaction ID | |
currency | String | Yes | Currency | |
key | String | Yes | Merchant key | |
localOrderId | String | Yes | Local order number | |
merchantActualAmount | decimal | Yes | Merchant’s actual payment amount | |
merchantCurrency | String | Yes | Merchant payment currency | Default currency |
merchantId | String | Yes | Merchant ID | |
merchantPaidAmount | decimal | Yes | Merchant payment amount | |
merchantUserId | String | Yes | User id | |
notifyTime | long | Yes | Callback time | |
orderCreateTime | long | Yes | Order Creation Time | |
orderId | String | Yes | Order number | |
status | String | Yes | Payment Status | |
type | String | Yes | Order Type | PAYMENT:支付 WITHDRAW:提款 |
userAmount | decimal | Yes | User payment amount | |
userCurrency | String | Yes | User payment currency | |
sign | String | No | md5 signature | See signature algorithm for details |
extra | object | Yes | Contains the following parameters | |
| └quoteAmount | number | Yes | Order quote amount | |
| └quoteCurrency | number | Yes | Order quote currency | |
| └quotePrice | string | Yes | Order quotation price | |
userReceivableAmount | string | Yes | Amount payable by the user |
When you receive the callback notification, please directly return the string success after the processing is completed, indicating that the message has been successfully received and processed. After the system receives the success response, it will no longer send the callback repeatedly. If the expected response is not received (success is not returned or an exception is returned), the system will resend the callback notification according to the stepped retry mechanism, retrying up to 14 times. The current retry intervals are: 15s, 15s, 30s,180s, 600s, 1200s, 1800s, 1800s, 1800s,3600s,10800s,10800s,21600s, 21600s