Overview
Use POST and submit application/x-www-form-urlencoded or multipart/form-data. JSON response fields are strings. Callbacks are form data; return the exact text success after valid processing.
01 · HMAC-SHA256
Request signing
All requests, responses, and callbacks use HMAC-SHA256 signatures with the API key shown in the merchant console.
- Exclude sign, x-sign, signature, signType, and sign_type. Remove empty values, sort the remaining keys in ASCII order, then join them as key=value with &.
- Use the API key as the HMAC key. Do not append it to the canonical string. Sign the original values before URL encoding.
- API key
test-api-key- Parameters
amount=100.00, appId=10001, orderNo=M202607120001- Canonical string
amount=100.00&appId=10001&orderNo=M202607120001- Signature
65acc273378e66376f8e9d3cbe2999af60bd130c8c11b3360cc77ca09abe7ce2
Code examples
Java
String data = "amount=100.00&appId=10001&orderNo=M202607120001";
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(new SecretKeySpec("test-api-key".getBytes(UTF_8), "HmacSHA256"));
String sign = HexFormat.of().formatHex(mac.doFinal(data.getBytes(UTF_8)));Node.js
const crypto = require('crypto');
const data = 'amount=100.00&appId=10001&orderNo=M202607120001';
const sign = crypto.createHmac('sha256', 'test-api-key')
.update(data, 'utf8').digest('hex');PHP
$data = 'amount=100.00&appId=10001&orderNo=M202607120001';
$sign = hash_hmac('sha256', $data, 'test-api-key');02 · Payment API
Create payment order
/api/payment/createCreate a collection order and receive the hosted payment URL that the customer should open to complete payment.
Request parameters
| Parameter | Required | Description |
|---|---|---|
appId | Yes | Merchant application ID |
orderNo | Yes | Merchant order number |
notifyUrl | Yes | Asynchronous notification URL |
returnUrl | No | Redirect URL after successful payment |
currency | Yes | Digital asset symbol |
network | No | Network, such as TRC20, ERC20, BEP20, or SPL |
memberId | Yes | Unique customer ID in the merchant system |
amount | One documented alternative | Amount denominated in the selected digital asset |
exchangeAmount | One documented alternative | Original fiat or settlement amount to be converted |
exchangePrecision | No | Conversion precision; defaults to 2 |
sign | Yes | 64-character lowercase HMAC-SHA256 signature |
Response parameters
| Parameter | Required | Description |
|---|---|---|
appId | Yes | Merchant application ID |
status | Yes | Request or order status |
message | Yes | Result message |
tradeNo | Yes | Platform order number |
url | Yes | Hosted payment URL |
sign | Yes | 64-character lowercase HMAC-SHA256 signature |
03 · Payment API
Query payment order
/api/payment/queryQuery a collection order by merchant order number or platform order number and inspect its payment result.
Request parameters
| Parameter | Required | Description |
|---|---|---|
appId | Yes | Merchant application ID |
orderNo | One documented alternative | Merchant order number |
tradeNo | One documented alternative | Platform order number |
sign | Yes | 64-character lowercase HMAC-SHA256 signature |
Response parameters
| Parameter | Required | Description |
|---|---|---|
appId | Yes | Merchant application ID |
status | Yes | Request or order status |
message | No | Result message |
tradeNo | On success | Platform order number |
orderNo | On success | Merchant order number |
currency | Yes | Digital asset symbol |
chainType | No | Chain type, such as tron, bsc, solana, or ton |
network | No | Network, such as TRC20, ERC20, BEP20, or SPL |
paid | On success | Whether payment succeeded: true or false |
amount | On success | Amount denominated in the selected digital asset |
realAmount | On success | Actual received digital asset amount |
exchangeAmount | No | Original fiat or settlement amount to be converted |
realExchangeAmount | No | Actual received amount after conversion |
payAddress | No | Sender wallet address |
receiveAddress | No | Receiving wallet address |
tradeHash | No | On-chain transaction hash |
sign | On success | 64-character lowercase HMAC-SHA256 signature |
04 · Payment API
Payment callback
MERCHANT CALLBACK URLThe platform calls this merchant endpoint when a collection order result is available or changes.
Request parameters
| Parameter | Required | Description |
|---|---|---|
appId | Yes | Merchant application ID |
tradeNo | Yes | Platform order number |
orderNo | Yes | Merchant order number |
currency | Yes | Digital asset symbol |
chainType | No | Chain type, such as tron, bsc, solana, or ton |
network | No | Network, such as TRC20, ERC20, BEP20, or SPL |
paid | Yes | Whether payment succeeded: true or false |
amount | Yes | Amount denominated in the selected digital asset |
realAmount | Yes | Actual received digital asset amount |
exchangeAmount | No | Original fiat or settlement amount to be converted |
realExchangeAmount | No | Actual received amount after conversion |
payAddress | No | Sender wallet address |
receiveAddress | No | Receiving wallet address |
tradeHash | No | On-chain transaction hash |
payTime | Yes | Payment time as a 13-digit UTC timestamp |
sign | Yes | 64-character lowercase HMAC-SHA256 signature |
HTTP 200success
05 · Dedicated address
Dedicated-address order callback
MERCHANT CALLBACK URLThe platform asks the merchant to create an order after detecting a transfer to a customer dedicated address.
Request parameters
| Parameter | Required | Description |
|---|---|---|
appId | Yes | Merchant application ID |
memberId | Yes | Unique customer ID in the merchant system |
tradeNo | Yes | Platform order number |
currency | Yes | Digital asset symbol |
chainType | No | Chain type, such as tron, bsc, solana, or ton |
network | No | Network, such as TRC20, ERC20, BEP20, or SPL |
amount | Yes | Amount denominated in the selected digital asset |
domain | No | Opaque merchant data returned unchanged |
payAddress | Yes | Sender wallet address |
tradeHash | Yes | On-chain transaction hash |
payTime | Yes | Payment time as a 13-digit UTC timestamp |
sign | Yes | 64-character lowercase HMAC-SHA256 signature |
Response parameters
| Parameter | Required | Description |
|---|---|---|
appId | Yes | Merchant application ID |
memberId | Yes | Unique customer ID in the merchant system |
orderNo | Yes | Merchant order number |
notifyUrl | No | Asynchronous notification URL |
sign | Yes | 64-character lowercase HMAC-SHA256 signature |
06 · Dedicated address
Get customer wallet address
/api/gateway/get_addressQuery or allocate a dedicated wallet address for a customer under the merchant application.
Request parameters
| Parameter | Required | Description |
|---|---|---|
appId | Yes | Merchant application ID |
memberId | Yes | Unique customer ID in the merchant system |
chainType | One documented alternative | Chain type, such as tron, bsc, solana, or ton |
currency | One documented alternative | Digital asset symbol |
network | One documented alternative | Network, such as TRC20, ERC20, BEP20, or SPL |
timestamp | Yes | Current server time as a 13-digit timestamp |
sign | Yes | 64-character lowercase HMAC-SHA256 signature |
Response parameters
| Parameter | Required | Description |
|---|---|---|
address | Yes | Wallet address; returned as the customer address or supplied as the payout destination |
sign | Yes | 64-character lowercase HMAC-SHA256 signature |
07 · Payout API
Create payout order
/api/withdraw/createSubmit a payout order that sends the specified digital asset amount to the destination address.
Request parameters
| Parameter | Required | Description |
|---|---|---|
appId | Yes | Merchant application ID |
orderNo | Yes | Merchant order number |
address | Yes | Wallet address; returned as the customer address or supplied as the payout destination |
currency | Yes | Digital asset symbol |
network | Yes | Network, such as TRC20, ERC20, BEP20, or SPL |
notifyUrl | Yes | Asynchronous notification URL |
memberId | Yes | Unique customer ID in the merchant system |
amount | One documented alternative | Amount denominated in the selected digital asset |
exchangeAmount | One documented alternative | Original fiat or settlement amount to be converted |
sign | Yes | 64-character lowercase HMAC-SHA256 signature |
Response parameters
| Parameter | Required | Description |
|---|---|---|
appId | Yes | Merchant application ID |
status | Yes | Request or order status |
message | Yes | Result message |
tradeNo | Yes | Platform order number |
sign | Yes | 64-character lowercase HMAC-SHA256 signature |
08 · Payout API
Query payout order
/api/withdraw/queryQuery a payout order by merchant order number and inspect its current processing result.
Request parameters
| Parameter | Required | Description |
|---|---|---|
appId | Yes | Merchant application ID |
orderNo | Yes | Merchant order number |
sign | Yes | 64-character lowercase HMAC-SHA256 signature |
Response parameters
| Parameter | Required | Description |
|---|---|---|
appId | Yes | Merchant application ID |
status | Yes | Request or order status |
message | No | Result message |
currency | Yes | Digital asset symbol |
chainType | No | Chain type, such as tron, bsc, solana, or ton |
network | No | Network, such as TRC20, ERC20, BEP20, or SPL |
tradeNo | When order or account exists | Platform order number |
orderNo | When order or account exists | Merchant order number |
amount | When order or account exists | Amount denominated in the selected digital asset |
exchangeAmount | No | Original fiat or settlement amount to be converted |
sign | Yes | 64-character lowercase HMAC-SHA256 signature |
09 · Payout API
Payout callback
MERCHANT CALLBACK URLThe platform calls this merchant endpoint after a payout reaches a terminal success or failure state.
Request parameters
| Parameter | Required | Description |
|---|---|---|
appId | Yes | Merchant application ID |
status | Yes | Request or order status |
message | No | Result message |
currency | Yes | Digital asset symbol |
chainType | No | Chain type, such as tron, bsc, solana, or ton |
network | No | Network, such as TRC20, ERC20, BEP20, or SPL |
payAddress | No | Sender wallet address |
tradeHash | No | On-chain transaction hash |
tradeNo | Yes | Platform order number |
orderNo | Yes | Merchant order number |
amount | Yes | Amount denominated in the selected digital asset |
exchangeAmount | No | Original fiat or settlement amount to be converted |
tradeTime | No | Payout time as a 13-digit UTC timestamp |
sign | Yes | 64-character lowercase HMAC-SHA256 signature |
HTTP 200success
10 · Merchant account
Query merchant balance
/api/gateway/merchant_balanceQuery the available merchant balance for a specified digital asset.
Request parameters
| Parameter | Required | Description |
|---|---|---|
appId | Yes | Merchant application ID |
currency | Yes | Digital asset symbol |
timestamp | Yes | Current server time as a 13-digit timestamp |
sign | Yes | 64-character lowercase HMAC-SHA256 signature |
Response parameters
| Parameter | Required | Description |
|---|---|---|
appId | Yes | Merchant application ID |
status | Yes | Request or order status |
message | No | Result message |
currency | When order or account exists | Digital asset symbol |
amount | When order or account exists | Amount denominated in the selected digital asset |
withdrawExchangeAmount | No | Balance converted using the payout rate |
timestamp | Yes | Current server time as a 13-digit timestamp |
sign | Yes | 64-character lowercase HMAC-SHA256 signature |
11 · Merchant account
Query merchant exchange rates
/api/gateway/exchange_rateQuery the collection and payout exchange rates configured for the merchant application.
Request parameters
| Parameter | Required | Description |
|---|---|---|
appId | Yes | Merchant application ID |
timestamp | Yes | Current server time as a 13-digit timestamp |
sign | Yes | 64-character lowercase HMAC-SHA256 signature |
Response parameters
| Parameter | Required | Description |
|---|---|---|
appId | Yes | Merchant application ID |
status | Yes | Request or order status |
message | No | Result message |
currency | Yes | Digital asset symbol |
rechargeExchangeRate | No | Configured collection conversion rate |
withdrawExchangeRate | No | Configured payout conversion rate |
timestamp | Yes | Current server time as a 13-digit timestamp |