Skip to content

Error codes ​

On errors the HTTP status is still 200 and code in the body is not 0:

json
{ "code": 40005, "message": "Request IP 203.0.113.10 is not in the merchant whitelist" }

message is an English description and may contain values. Branch on code, not on the message text.

Codes ​

codeMeaningWhat to do
0Success
400Business failure — typically insufficient USDT balance, a payment provider error, or operation failedRead message; top up if the balance is insufficient
500Internal platform error (message is always a generic text)Retry later. For orders and payouts, first check with Get order whether it was created
40000Decryption failed, or a required parameter is missing (merchant order number, cardId, query period… see message)Check you use the latest public key with PKCS#1 v1.5 padding, and that parameters are complete
40001Merchant number not foundCheck merchantNo
40002Merchant disabledContact the platform
40003OpenAPI not enabled for this merchantContact the platform
40004No callback URL configuredSet it in the merchant console or pass callbackUrl
40005Request IP not whitelistedAdd your server's outbound IP in the merchant console
40007Duplicate merchant order numberUse a new number; if this is a retry after a timeout, query the original order first
40010Currency not supported (unknown or disabled)Check currencyType
40011No matching pool availableContact the platform
40012No trader can take this amount right now, or the amount is out of rangeTry another amount or later
40013Not enough available quotaTry another amount or later
40015Customer is blacklisted, or the customer / region is not supportedDon't create orders for this customer
40016Payout / payment method not supportedUse the codes from List payout methods
40017Currency not enabled for your accountContact the platform
40018Recipient details don't meet the method's requirements (message says which)Follow the field rules from List payout methods
40019Invalid amount: must be greater than 0 with at most two decimalsFix the amount
40020Order not foundCheck the merchant order number; you can only see your own orders
40021The order's current state doesn't allow this (e.g. an order marked as paid can't be cancelled)Query the order state first
40023cardId is not a receiving account assigned to this orderUse a cardId from cards returned by own-checkout order creation

When a request times out

If creating an order or payout times out, don't create a new order with a new merchant order number right away. Query with the original number via Get order: if it exists, it was created; if you get 40020, retry with the same merchant order number — the platform rejects duplicates with 40007.