Skip to content

Create payout order ​

Pays fiat to a recipient. The platform converts the amount to USDT at the payout rate, adds the payout fee, and deducts and freezes that USDT from your balance. It's finally deducted when the payout succeeds, and fully refunded if it's refused. You get a callback when it finishes.

POST/api/open/order/createSellOrder

Full URL = your API base URL + this path. The base URL is shown in the merchant console under Developers → API & callbacks.

Requires: whitelisted IP, OpenAPI enabled, enough balance. Set the payout callback URL in the merchant console or pass callbackUrl.

Avoid duplicate payouts

Every payout must carry a merchantOrderNo that you generated and saved in your database first. The platform rejects duplicate merchant order numbers (40007). After a network timeout, query and retry with the same number — never resend with a new one.

Request parameters ​

ParameterTypeRequiredDescription
merchantNostringYesMerchant number
merchantOrderNostringYesYour order number; must not repeat any of your pay-in or payout orders
currencyTypestringYesCurrency code, e.g. CNY, THB
amountnumberYesFiat payout amount, greater than 0, at most two decimals
bankAccountNamestringYesRecipient name (also used for blacklist checks)
bankAccountNumberstringYesBank account number; for e-wallets the wallet account or phone number
bankNamestringRequired for CNY bank cardsBank name
bankBranchNamestringRequired for CNY bank cardsBranch name
isExpeditedboolNoExpedited payout at the expedited rate; default false
callbackUrlstringNoCallback URL for this order; defaults to the payout callback URL in the console
paymentMethodintNoPayout method code; defaults to bank transfer. Use List payout methods for the codes and fields of each currency
bankCodestringDepends on methodBank code / routing number
swiftCodestringDepends on methodSWIFT/BIC (international wire)
ibanstringDepends on methodIBAN
bankAddressstringDepends on methodBank address (international wire)
beneficiaryAddressstringDepends on methodRecipient address (international wire)
beneficiaryDocumentstringDepends on methodRecipient document number (e.g. CPF / CNPJ in Brazil)

CNY bank-card payouts need only the first group. For other currencies, or when paymentMethod is given, the fields are validated against that method's rules; invalid details return 40018.

json
{
  "merchantNo": "your merchant number",
  "merchantOrderNo": "PO20261013001",
  "currencyType": "CNY",
  "amount": 1000,
  "bankAccountName": "Zhang San",
  "bankAccountNumber": "6222000000000000",
  "bankName": "ICBC",
  "bankBranchName": "Beijing Haidian"
}

Response ​

No data on success; query with your merchantOrderNo via Get order:

json
{ "code": 0, "message": "success" }

Payout states ​

orderStateMeaning
1Unassigned
2Pending (a trader is processing it)
3Waiting to be reassigned
4Succeeded (callback sent)
5Refused (USDT refunded, callback sent)
6Account problem

Common errors ​

codeDescription
400Insufficient balance (Insufficient balance)
40007Duplicate merchant order number
40010 / 40017Currency not supported / not enabled
40015Recipient is blacklisted
40016Payout method not supported
40018Recipient details invalid
40019Invalid amount