Skip to main content

7.2.1 Create a scan code payment order for any amount of digital currency

#Brief description: Digital currency recharge business interface, users can recharge USDT (Tether) to their digital wallet account (market exchange rate) by scanning the QR code

Request parameters
Parameter nameTypeRequiredParameter meaningParameter description
keystringYesMerchant keyapiKey
localOrderIdstringYesMerchant platform local order numberMerchant platform generates unique order number locally
localUserIdstringNoMerchant platform local user IDMerchant platform local user ID
notifyUrlstringNoCallback addressAfter the order is placed successfully, the merchant's address will be notified by API callback (for callback details, please refer to Document 3)
successRedirectUrlstringNoJump addressAutomatically jump to address after success
currencystringYesOrder pricing currencyPricing currency (wallet supported currency)
userCurrencystringYesUser payment currencyThe currency that the user needs to pay (digital currency supported by the wallet)
amountnumberNoUser's expected payment amount
isBlockchainbooleanNoWhether to return blockchain information (default false)When true, the callback request will carry the transaction information on the order chain
networkLimitsarrayNoMainnetDesignated payment mainnet, such as TRON, BSC, POLYGON, ETHEREUM
expireSecondLongNoExpiration timestamp (seconds)
signstringYesSignatureSee 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": "USDT",
"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:

![img](/dx-docs/7- 7、数字币代收(充值)/7.2 数字币任意金额扫码/usdt.jpg)

Response data parameter description
Parameter nameTypeParameter meaningParameter description
orderIdstringOrder ID
localUserIdstringMerchant local user ID
localOrderIdstringMerchant local order number
orderTypeenumOrder TypePAYMENT:支付订单 WITHDRAW:提款订单
orderBizTypeenumOrder business typeorderBizType type description is as follows
paymentUrlstringPayment address
publicKeystringPublic Access Key

orderBizType type description:

  1. PAYMENT_WALLET_SCAN MINPAY wallet scan code payment
  2. PAYMENT_TRANSFER digital currency binding address direct deposit
  3. PAYMENT_ANY_DIGITAL_SCAN Scan the QR code to pay any amount of digital currency
  4. WITHDRAW_WALLET withdraw money to MINPAY wallet
  5. WITHDRAW_ANY_DIGITAL_WALLET Withdraw digital currency to any wallet
  6. PAYMENT_FIXED_DIGITAL_SCAN digital currency limited amount scan code payment
  7. 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,
"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
}

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