Quidax Developer API: Error Reference

This error reference follows the API Reference categories and endpoint names. Errors are grouped by endpoint and include the HTTP status, application error code where present, error message, and meaning.

Messages containing {placeholders} include variable values such as IDs, currencies, amounts, limits, or failure reasons. English messages are shown where available. Wording may vary by language or payment provider. The trading IP-list error is marked as an English translation because its API message is in Chinese.

Error responses

Base URL: https://openapi.quidax.io/exchange-open-api/api/v1

Endpoint paths are relative to this base URL. Protected endpoints require Authorization: Bearer <api_key>. Use me for the parent account, or the ID of a sub-account linked to your account.

{
  "status": "error",
  "message": "Reference already exists",
  "data": {
    "code": "110112",
    "message": "Reference already exists"
  }
}

Application codes are strings and differ from HTTP status codes. Check the response body even when HTTP is 200. One code can describe several failures; use the endpoint and message to understand the error.

Validation messages may name fields in camelCase even when request fields use snake_case.

Some failures return Request could not be completed. Please try again later or contact support. with the applicable error code.

A failure response or timeout does not establish whether a transaction executed. Retrieve the transaction using its existing reference or ID before deciding whether to submit another request.

API categories

User Accounts

Create a Sub-account

POST /users

HTTP statusError codeError messageMeaning
403E0106Sorry, this operation can only be performed by accounts registered as a business with Quidax.Caller is not a business/merchant account.
409E0101A sub account with this email already existsEmail is already registered.
400110112Sub-account not created. Provide valid first name and last nameMissing/invalid name: each name must satisfy the name requirements and length 1–100.
400E0107Validation failed: email: Email must not be blankRequired; cannot be empty or whitespace.
400E0107Validation failed: email: must be a well-formed email addressMust satisfy email validation.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
400110112Request body is missing or unreadableSend a valid JSON body in the expected format.
400E0107Validation failed: {field}: {message}A request-body field does not satisfy validation requirements. Multiple errors may be joined with commas.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Fetch parent account

GET /users/me

HTTP statusError codeError messageMeaning
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Edit Sub-account details

PUT /users/{user_id}

HTTP statusError codeError messageMeaning
400110112Sub-account update failed: first name and last name are required and cannot be emptyA name is absent or blank.
400110112Sub-account update failed. Provide valid first name and last nameProvide valid first and last names.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
400110112Request body is missing or unreadableSend a valid JSON body in the expected format.
400E0107Validation failed: {field}: {message}A request-body field does not satisfy validation requirements. Multiple errors may be joined with commas.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Fetch all Sub-accounts

GET /users

HTTP statusError codeError messageMeaning
400E0107Validation failed: must be greater than or equal to 1Page must be at least 1; per_page must be at least 1.
400E0107Validation failed: must be less than or equal to 100per_page must not exceed 100.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
400E0107Validation failed: {message}A query or path value does not satisfy validation requirements.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Fetch Details of Subaccount

GET /users/{user_id}

HTTP statusError codeError messageMeaning
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Wallets

Fetch user wallets

GET /users/{user_id}/wallets

HTTP statusError codeError messageMeaning
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Fetch user wallet

GET /users/{user_id}/wallets/{currency}

HTTP statusError codeError messageMeaning
404E0605Currency {currency} not available, Please check back laterCurrency is unavailable for the requested wallet or address.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Fetch Payment Address

GET /users/{user_id}/wallets/{currency}/address

HTTP statusError codeError messageMeaning
404E0605Currency {currency} not available, Please check back laterCurrency is unavailable for the requested wallet or address.
404E0604Could not retrieve or assign address for currency: {currency}Address retrieval/assignment produced no usable address.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Fetch Payment Addresses

GET /users/{user_id}/wallets/{currency}/addresses

HTTP statusError codeError messageMeaning
404E0605Currency {currency} not available, Please check back laterCurrency is unavailable for the requested wallet or address.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Fetch Payment Address by id

GET /users/{user_id}/wallets/{currency}/addresses/{address_id}

HTTP statusError codeError messageMeaning
404E0605Currency {currency} not available, Please check back laterCurrency is unavailable for the requested wallet or address.
404E0604wallet address public id is requiredAddress ID is missing.
404E0604wallet address with public id: {address_id} doesn't existDeposit address cannot be found by this ID.
401E0107wallet address does not belong to userAddress belongs to another user.
404E0604wallet address with public id: {address_id} doesn't exist for currency: {currency}Address exists, but its currency does not match the requested wallet.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Create Payment Address for a cryptocurrency

POST /users/{user_id}/wallets/{currency}/addresses

HTTP statusError codeError messageMeaning
404E0605Currency {currency} not available, Please check back laterCurrency is unavailable for the requested wallet or address.
404E0604user and currency are requiredA user account and currency are required.
400E0612Blockchain deposits are not available for {currency}Currency has no supported blockchain deposit route.
404E0604Unable to generate wallet address for {currency}No usable address was returned by address generation.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Withdrawals

Fetch Withdraws

GET /users/{user_id}/withdraws

HTTP statusError codeError messageMeaning
400110112Invalid currency: {currency}Filter currency is unknown or unsupported.
400110112Invalid state: {state}. Allowed values: processing, done, submitted, rejected, pending, cancelled, paying, failed, allUnsupported withdrawal state.
400110112Invalid order_by: {order_by}. Allowed values: {allowed_set}Direction must be asc or desc; the allowed values may be displayed in either order.
400110112Invalid start_date format. Use ISO-8601 date or datetimeDate filter cannot be parsed.
400110112Invalid end_date format. Use ISO-8601 date or datetimeDate filter cannot be parsed.
400110112start_date cannot be after end_dateRange starts after it ends.
400110112date range cannot exceed 180 daysRequested history range exceeds the allowed interval.
400110112Invalid type: {type}. Supported value: internalNon-empty type is unsupported; the accepted special filter is internal.
400110112cursor is not validCursor decoding/validation fails, including incompatible cursor content.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
401E0107User not authenticatedAuthentication is required for this operation.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Cancel withdrawal

POST /users/{user_id}/withdraws/{withdrawal_id}/cancel

HTTP statusError codeError messageMeaning
400110112withdrawal entry with the id : {withdraw_id} doesn't existCancellation cannot find that crypto withdrawal.
400110112Withdrawal Cannot be cancelled, current status: {status}The withdrawal is no longer eligible for cancellation.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
401E0107User not authenticatedAuthentication is required for this operation.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Fetch a Withdrawal

GET /users/{user_id}/withdraws/{withdrawal_id}

HTTP statusError codeError messageMeaning
200140017This feature is currently disabled for you. Please stay tuned for when it is enabledWithdrawal lookup is unavailable for this account; inspect the error body despite HTTP 200.
400110112withdrawal with id {withdraw_id} does not existWithdrawal cannot be found within the requested account.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
401E0107User not authenticatedAuthentication is required for this operation.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

If the response body has status: "error", treat the lookup as unsuccessful even when HTTP is 200.

Create Withdrawal

POST /users/{user_id}/withdraws

HTTP statusError codeError messageMeaning
503140017This feature is currently disabled for you. Please stay tuned for when it is enabledAPI withdrawal creation is disabled for the merchant.
400110112Reference already existsA withdrawal already uses that reference. Retrieve the existing transaction instead of assuming a new one was created.
400110112Reference {reference} already existsA transaction already uses this reference. Retrieve that transaction before submitting again.
400110112This feature is currently disabled for you. Please stay tuned for when it is enabledCrypto withdrawals are disabled for this account.
400110112Currency: {currency} with network: {network} not foundCurrency/network combination is unsupported.
400110112Withdrawal is not allowed for currency: {currency} with network: {network}Withdrawals are disabled for this currency/network.
400110112Currency is requiredCurrency is missing or blank.
400110112Invalid currency: {currency}Unknown currency.
400110112Network is requiredRequired blockchain network is missing.
400110112Cannot not withdraw fiat as cryptoFiat currency cannot be withdrawn through the crypto withdrawal option.
400110112Amount is requiredAmount is missing.
400110112Invalid amount: {amount}Amount cannot be parsed or is non-positive in the applicable creation path.
400110112Amount is too small after applying withdrawal precisionTruncation to supported precision leaves a non-positive amount.
400110112Unable to retrieve withdrawal fee for currency: {currency}Withdrawal fee is currently unavailable.
400110112Withdrawal failed, please check the parameters and try again.Withdrawal could not be processed. Check the request details.
400110112Transfer unavailable. Contact Quidax SupportTransfer is unavailable. Contact support.
400E0107Validation failed: currency: Currency is requiredRequired; cannot be empty or whitespace.
400E0107Validation failed: amount: Amount is requiredRequired; cannot be empty or whitespace.
400E0107Validation failed: amount: Amount must not use scientific notationProvide a plain numeric amount without scientific notation.
400E0107Validation failed: reference: Reference is requiredRequired; cannot be empty or whitespace.
400E0107Validation failed: fundUid: Fund UID is requiredRequired; cannot be empty or whitespace.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
401E0107User not authenticatedAuthentication is required for this operation.
400110112Request body is missing or unreadableSend a valid JSON body in the expected format.
400E0107Validation failed: {field}: {message}A request-body field does not satisfy validation requirements. Multiple errors may be joined with commas.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Other withdrawal and transfer rejection messages:

HTTP statusError codeError messageMeaning
400110112Not logged-inAccount authentication could not be verified for the withdrawal.
400110112It is forbidden to withdraw coins within 24 hours after modifying the login password.Wait until the 24-hour restriction after changing the login password has ended.
400110112After modifying the fund password, withdrawal is prohibited within 24 hoursWait until the 24-hour restriction after changing the fund password has ended.
400110112Transfers and withdrawals are prohibited for {hours} hours after modifying security settingsTransfers and withdrawals are temporarily restricted after a security-setting change.
400110112Your leveraged account ({market}) also has arrears, please pay off the debt before you operate.Repay the outstanding leveraged-account debt before withdrawing or transferring.
400110112Parameter errorA withdrawal or transfer parameter is invalid.
400110112An unknown currency codeThe requested currency code is unknown.
400110112Temporarily unavailableThe withdrawal or transfer operation is temporarily unavailable.
400110112Exceeded the maximum number of withdrawals on the day, please operate again tomorrowThe daily number of withdrawals has reached its limit.
400110112Exceeding the limit, the maximum withdrawable amount is {maximum}The requested amount exceeds the available withdrawal allowance.
400110112Token withdrawal lower than the minimum withdrawal limitThe amount is below the minimum withdrawal limit.
400110112Token withdrawal higher than the single withdrawal limitThe amount exceeds the single-withdrawal limit.
400110112Tick address errorThe withdrawal address is invalid.
400110112Withdrawal frozenWithdrawals are frozen for the customer or parent account.
400110112Please verify your identity firstComplete identity verification before withdrawing.
400110112KYC is not approved for withdrawal. Please complete verification.KYC is not approved for this withdrawal.
400110112Exceeds the amount that can be withdrawn !The amount exceeds the customer withdrawal quota.
400110112User does not existThe recipient account for an internal transfer does not exist.
400110112Can not transfer to yourselfThe sender and recipient are the same account.
400110112Transfers between these accounts are not permitted.The requested account-to-account transfer is not allowed.
400110112volume precision errorAn internal transfer amount exceeds the supported precision.
400110112Insufficient available balanceThe available balance does not cover the internal transfer.
400110112INVALID TRANSACTION AMOUNTThe transfer amount must be greater than zero.
400110112Invalid amount input, please check and try again.The supplied internal transfer amount is invalid.
400110112The amount is not within the allowed range for this transaction.The internal transfer amount is outside the permitted range.
400110112Failed to validate transfer. Please try again.The internal transfer could not be validated.

Additional payment-provider or risk-review failures return HTTP 400 / 110112 with the specific failure reason. These messages vary by provider and transaction; there is no single fixed message.

Create Bank Withdraw

POST /users/{user_id}/withdraws

HTTP statusError codeError messageMeaning
503140017This feature is currently disabled for you. Please stay tuned for when it is enabledAPI withdrawal creation is disabled for the merchant.
400110112Reference already existsA withdrawal already uses that reference. Retrieve the existing transaction instead of assuming a new one was created.
400110112Fiat Withdrawal Feature is not enabledFiat withdrawal feature is disabled.
400110112Currency is requiredCurrency is missing or blank.
400110112Invalid currency: {currency}Unknown currency.
400110112Amount is requiredAmount is missing.
400110112Invalid amount: {amount}Amount cannot be parsed or is non-positive in the applicable creation path.
400110112Amount is too small after applying withdrawal precisionTruncation to supported precision leaves a non-positive amount.
400110112Unable to retrieve withdrawal fee for currency: {currency}Withdrawal fee is currently unavailable.
400110112Transaction amount is below the minimum allowed amount of {currency} {minimum}Amount is below configured minimum.
400110112Transaction amount is above the maximum allowed amount of {currency} {maximum}Amount exceeds configured maximum.
400110112Withdrawal channel is unavailable for this currency. Please try again later.Fiat withdrawals are unavailable for this currency.
400E0107Validation failed: currency: Currency is requiredRequired; cannot be empty or whitespace.
400E0107Validation failed: amount: Amount is requiredRequired; cannot be empty or whitespace.
400E0107Validation failed: amount: Amount must not use scientific notationProvide a plain numeric amount without scientific notation.
400E0107Validation failed: reference: Reference is requiredRequired; cannot be empty or whitespace.
400E0107Validation failed: fundUid: Fund UID is requiredRequired; cannot be empty or whitespace.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
401E0107User not authenticatedAuthentication is required for this operation.
400110112Request body is missing or unreadableSend a valid JSON body in the expected format.
400E0107Validation failed: {field}: {message}A request-body field does not satisfy validation requirements. Multiple errors may be joined with commas.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Other fiat withdrawal rejection messages:

HTTP statusError codeError messageMeaning
400110112Current user does not allow to withdraw {currency} currency.The account cannot withdraw the requested fiat currency.
400110112User does not existThe account used for this withdrawal could not be found.
400110112Set up your 2FA to continue withdrawing.Enable two-factor authentication before withdrawing.
400110112Your withdrawal is frozen, please contact customer serviceWithdrawals are frozen for the account. Contact support.
400110112We notice that you have recently changed your fund password. In order to protect your assets, you cannot withdraw fiat currency at this time. Please try again later.Fiat withdrawals are temporarily restricted after a fund-password change.
400110112KYC not valid, please complete KYC firstComplete valid KYC before making this fiat withdrawal.
400110112Your KYC level is insufficient to perform this withdrawalThe account KYC tier does not permit this withdrawal.
400110112Withdrawal channel is currently not available, please try again laterThe fiat withdrawal channel is unavailable for this account or currency.
400110112Invalid currency for fiat withdrawalThe requested currency is not valid for fiat withdrawals.
400110112Withdrawal configuration not foundFiat withdrawals cannot currently be configured for the requested currency. Contact support.
400110112You have reached your daily withdrawal limit for fiat currency.The daily fiat withdrawal limit has been reached.
400110112Withdrawal amount exceeds daily limitThe requested amount exceeds the remaining daily withdrawal allowance.
400110112Insufficient balanceThe available balance does not cover the amount and fees.
400110112Amount have to be greater than 0Provide an amount greater than zero.
400110112Cannot calculate feeThe withdrawal fee could not be calculated.
400110112Pre-check failedThe withdrawal eligibility check could not be completed.
400110112Withdrawal validation failedThe withdrawal request could not pass validation.
400110112We could not process your withdrawal at this time, please try again laterThe fiat withdrawal could not be processed at this time.
400110112An abnormal system, please contact the administrator.The fiat withdrawal failed because of a service error. Contact support if it persists.

Additional payment-provider or risk-review failures return HTTP 400 / 110112 with the specific failure reason. These messages vary by provider and transaction; there is no single fixed message.

Fetch withdraw by reference

GET /users/{user_id}/withdraws/reference/{reference}

HTTP statusError codeError messageMeaning
400110112withdrawal with reference {reference} does not existWithdrawal cannot be found by this reference within the requested account.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
401E0107User not authenticatedAuthentication is required for this operation.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Verify Bank Account

POST /banks/verify_account

HTTP statusError codeError messageMeaning
400110112Withdrawal channel is unavailable for this currency. Please try again later.Withdrawals are unavailable for this currency.
400110112Bank account validation for this bank is not available at the moment, please try again laterBank code cannot be resolved for the selected provider.
400110112We couldn't verify the account holder's name. Please double-check the account number or try again later.Bank account verification could not be completed.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
400110112Request body is missing or unreadableSend a valid JSON body in the expected format.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

A payment-provider rejection can also return HTTP 400 / 110112. The message contains the specific bank-verification reason and is not fixed.

List banks

GET /banks

HTTP statusError codeError messageMeaning
400110112Currency %s not available, Please check back laterCurrency is unavailable or could not be determined for the account.
400110112Withdrawal channel is unavailable for this currency. Please try again later.Withdrawals are unavailable for this currency.
400110112Unable to fetch banks at the moment. Please try again later.Bank list is temporarily unavailable.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Markets

List all markets

GET /markets

HTTP statusError codeError messageMeaning
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

List market tickers

GET /markets/tickers

HTTP statusError codeError messageMeaning
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Fetch a market ticker

GET /markets/tickers/{market}

HTTP statusError codeError messageMeaning
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Fetch k-line for a market

GET /markets/{market}/k

HTTP statusError codeError messageMeaning
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

For candle requests, use a nonnegative timestamp and a limit between 1 and 10000. The supported periods are 1, 5, 15, 30, 60, 120, 240, 360, 720, 1440, 4320, and 10080. Invalid values can return a validation failure, including Invalid value; the response format may differ from the standard error envelope.

Fetch k-line data with pending trades for a market

GET /markets/{currency}/k_with_pending_trades/{trade_id}

HTTP statusError codeError messageMeaning
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

For candle requests, use a nonnegative timestamp and a limit between 1 and 10000. The supported periods are 1, 5, 15, 30, 60, 120, 240, 360, 720, 1440, 4320, and 10080. Invalid values can return a validation failure, including Invalid value; the response format may differ from the standard error envelope.

Fetch order-book items for a market

GET /markets/{currency}/order_book

HTTP statusError codeError messageMeaning
400E0107Validation failed: must be greater than or equal to 1ask_limit and bid_limit must be at least 1.
400E0107Validation failed: must be less than or equal to 200ask_limit and bid_limit must not exceed 200.
400E0107Validation failed: {message}A query or path value does not satisfy validation requirements.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Fetch depth data for a market

GET /markets/{currency}/depth

HTTP statusError codeError messageMeaning
400E0107Validation failed: must be greater than or equal to 1limit must be at least 1.
400E0107Validation failed: {message}A query or path value does not satisfy validation requirements.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Markets summary

GET /markets/summary

HTTP statusError codeError messageMeaning
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Trades

Trades

GET /users/{user_id}/trades

HTTP statusError codeError messageMeaning
404E0104User with id {user_id} not foundTarget account could not be found.
400E0107Validation failed: must be greater than or equal to 10limit must be at least 10.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
401E0107User not authenticatedAuthentication is required for this operation.
400E0107Validation failed: {message}A query or path value does not satisfy validation requirements.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Fetch recent trades for a given market pair

GET /trades/{market_pair}

HTTP statusError codeError messageMeaning
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Deposits

Fetch deposits

GET /users/{user_id}/deposits

HTTP statusError codeError messageMeaning
400110112Invalid currency: {currency}Filter currency is unknown or unsupported.
400110112Invalid state: '{state}'. Accepted values: submitting, accepted, rejected, canceled, failed, checked, pending_aml_reviewUnsupported state filter in the crypto deposit path.
400110112Invalid state: '{state}'. Accepted values: submitting, accepted, failed, canceled, pending_review, pending_aml_review, rejectedUnsupported state filter in the fiat deposit path.
400110112Invalid order_by: {order_by}Sort direction is not supported.
400110112Invalid start_date format. Use ISO-8601 date or datetimeDate filter cannot be parsed.
400110112Invalid end_date format. Use ISO-8601 date or datetimeDate filter cannot be parsed.
400110112Invalid start_date format. Use ISO-8601 date or datetime in UTCDate filter cannot be parsed in that path.
400110112Invalid end_date format. Use ISO-8601 date or datetime in UTCDate filter cannot be parsed in that path.
400110112start_date cannot be after end_dateRange starts after it ends.
400110112date range cannot exceed 180 daysRequested history range exceeds the allowed interval.
400110112Invalid type: {type}. Supported value: internalNon-empty type is unsupported; the accepted special filter is internal.
400110112cursor is not validCursor decoding/validation fails, including incompatible cursor content.
400110112Unable to build cursorPagination could not be prepared. Contact support.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Fetch a Deposit

GET /users/{user_id}/deposits/{deposit_id}

HTTP statusError codeError messageMeaning
404E0605Deposit not found with id: {deposit_id}No deposit with that public ID in the target user's scope.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Fetch deposits made by sub-users

GET /users/deposits/all

HTTP statusError codeError messageMeaning
400110112Invalid currency: {currency}Filter currency is unknown or unsupported.
400110112Invalid state: '{state}'. Accepted values: submitting, accepted, rejected, canceled, failed, checked, pending_aml_reviewUnsupported state filter in the crypto deposit path.
400110112Invalid state: '{state}'. Accepted values: submitting, accepted, failed, canceled, pending_review, pending_aml_review, rejectedUnsupported state filter in the fiat deposit path.
400110112Invalid order_by: {order_by}Sort direction is not supported.
400110112Invalid start_date format. Use ISO-8601 date or datetimeDate filter cannot be parsed.
400110112Invalid end_date format. Use ISO-8601 date or datetimeDate filter cannot be parsed.
400110112Invalid start_date format. Use ISO-8601 date or datetime in UTCDate filter cannot be parsed in that path.
400110112Invalid end_date format. Use ISO-8601 date or datetime in UTCDate filter cannot be parsed in that path.
400110112start_date cannot be after end_dateRange starts after it ends.
400110112date range cannot exceed 180 daysRequested history range exceeds the allowed interval.
400110112Invalid type: {type}. Supported value: internalNon-empty type is unsupported; the accepted special filter is internal.
400110112cursor is not validCursor decoding/validation fails, including incompatible cursor content.
400110112Unable to build cursorPagination could not be prepared. Contact support.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Swap

Create Instant swap

POST /users/{user_id}/swap_quotation

HTTP statusError codeError messageMeaning
404E0605from_currency does not have a valid valueSource currency is unknown or unsupported.
404E0605to_currency does not have a valid valueUnknown destination currency.
400E0107from_amount is requiredSelected quote amount is blank.
400E0107to_amount is requiredSelected quote amount is blank.
400E0107from_amount must be a valid numberSelected amount cannot be parsed.
400E0107to_amount must be a valid numberSelected amount cannot be parsed.
400E0107from_amount must be greater than zeroAmount is zero or negative.
400E0107to_amount must be greater than zeroAmount is zero or negative.
400E0107Validation failed: fromCurrency: from_currency is requiredRequired; cannot be empty or whitespace.
400E0107Validation failed: toCurrency: to_currency is requiredRequired; cannot be empty or whitespace.
400E0107Validation failed: fromAmount: from_amount must be a valid numberMust match plain unsigned decimal syntax.
400E0107Validation failed: toAmount: to_amount must be a valid numberMust match plain unsigned decimal syntax.
400E0107Validation failed: validAmount: Either from_amount or to_amount must be provided, but not both.Exactly one amount must be supplied.
400E0107Validation failed: sameCurrencies: from_currency and to_currency must be different.Source and destination currencies must differ.
400E0107Unable to create quotation: Reason: Same-currency swaps are not allowed: {currency}A swap must use different currencies.
400E0107Unable to create quotation: Reason: Swap validation failedQuotation could not satisfy the pricing or amount requirements.
400E0107Unable to create quotation: Reason: InstSwapQuoteFailNo usable quotation could be produced.
400E0107Unable to create quotation: Reason: Minimum {currency} value should be above {minimum}Amount is below configured minimum.
400E0107Unable to create quotation: Reason: Please input greater {currency} valuePrecision/rounding leaves an unusable amount.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
400110112Request body is missing or unreadableSend a valid JSON body in the expected format.
400E0107Validation failed: {field}: {message}A request-body field does not satisfy validation requirements. Multiple errors may be joined with commas.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Additional quotation or execution failures can return HTTP 400 / E0107. The message starts with the quotation failure wording shown above and includes the specific reason.

Confirm Instant Swap

POST /users/{user_id}/swap_quotation/{quotation_id}/confirm

HTTP statusError codeError messageMeaning
400E0107Unable to confirm quotation: Reason: Swap for this quotation is already in flightA confirmation request for this quotation is already being processed.
400E0107Unable to confirm quotation: Reason: Quotation used or expiredQuotation is unavailable: it may have been used, expired, or be invalid.
400E0107Unable to confirm quotation: Reason: Insufficient balanceAvailable balance does not cover the swap.
400E0107Unable to confirm quotation: Reason: Failed to process quotationQuotation could not be processed. Contact support if the problem persists.
400E0107Unable to confirm quotation: Reason: Swap quotation not foundQuotation is unavailable.
400E0107Unable to confirm quotation: Reason: An error occurred while confirming swapConfirmation result could not be retrieved. Check the transaction before submitting again.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Additional quotation or execution failures can return HTTP 400 / E0107. The message starts with the quotation failure wording shown above and includes the specific reason.

Refresh Instant Swap Quotation

POST /users/{user_id}/swap_quotation/{quotation_id}/refresh

HTTP statusError codeError messageMeaning
404E0605from_currency does not have a valid valueSource currency is unknown or unsupported.
404E0605to_currency does not have a valid valueUnknown destination currency.
400E0107from_amount is requiredSelected quote amount is blank.
400E0107to_amount is requiredSelected quote amount is blank.
400E0107from_amount must be a valid numberSelected amount cannot be parsed.
400E0107to_amount must be a valid numberSelected amount cannot be parsed.
400E0107from_amount must be greater than zeroAmount is zero or negative.
400E0107to_amount must be greater than zeroAmount is zero or negative.
400E0107Validation failed: fromCurrency: from_currency is requiredRequired; cannot be empty or whitespace.
400E0107Validation failed: toCurrency: to_currency is requiredRequired; cannot be empty or whitespace.
400E0107Validation failed: fromAmount: from_amount must be a valid numberMust match plain unsigned decimal syntax.
400E0107Validation failed: toAmount: to_amount must be a valid numberMust match plain unsigned decimal syntax.
400E0107Validation failed: validAmount: Either from_amount or to_amount must be provided, but not both.Exactly one amount must be supplied.
400E0107Validation failed: sameCurrencies: from_currency and to_currency must be different.Source and destination currencies must differ.
400E0107Unable to refresh quotation: Reason: Same-currency swaps are not allowed: {currency}A swap must use different currencies.
400E0107Unable to refresh quotation: Reason: InstSwapQuoteFailNo usable quotation could be produced.
400E0107Unable to refresh quotation: Reason: Minimum {currency} value should be above {minimum}Amount is below configured minimum.
400E0107Unable to refresh quotation: Reason: Please input greater {currency} valuePrecision/rounding leaves an unusable amount.
400E0107Unable to refresh quotation: Reason: Quotation not foundQuotation cannot be found for the requested account.
400E0107Unable to refresh quotation: Reason: Quotation has already been confirmedConfirmed quotation cannot be refreshed.
400E0107Unable to refresh quotation: Reason: Quotation has not expired yetRefresh is restricted to expired quotations.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
400110112Request body is missing or unreadableSend a valid JSON body in the expected format.
400E0107Validation failed: {field}: {message}A request-body field does not satisfy validation requirements. Multiple errors may be joined with commas.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Additional quotation or execution failures can return HTTP 400 / E0107. The message starts with the quotation failure wording shown above and includes the specific reason.

Fetch Swap Transaction

GET /users/{user_id}/swap_transactions/{swap_transaction_id}

HTTP statusError codeError messageMeaning
404E0605Swap transaction not found.Lookup is absent or belongs to a different user.
404E0605Swap transaction data not found.Swap transaction details are unavailable. Contact support.
404E0605Swap quotation data not found.Related quotation details are unavailable. Contact support.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Get swap transactions

GET /users/{user_id}/swap_transactions

HTTP statusError codeError messageMeaning
400E0107Validation failed: must be greater than or equal to 1Page and per_page must be at least 1.
400E0107Validation failed: must be less than or equal to 100000Page must not exceed 100000.
400E0107Validation failed: must be less than or equal to 100per_page must not exceed 100.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
400E0107Validation failed: {message}A query or path value does not satisfy validation requirements.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Temporary swap quotation

POST /users/{user_id}/temporary_swap_quotation

HTTP statusError codeError messageMeaning
404E0605from_currency does not have a valid valueSource currency is unknown or unsupported.
404E0605to_currency does not have a valid valueUnknown destination currency.
400E0107from_amount is requiredSelected quote amount is blank.
400E0107to_amount is requiredSelected quote amount is blank.
400E0107from_amount must be a valid numberSelected amount cannot be parsed.
400E0107to_amount must be a valid numberSelected amount cannot be parsed.
400E0107from_amount must be greater than zeroAmount is zero or negative.
400E0107to_amount must be greater than zeroAmount is zero or negative.
400E0107Validation failed: fromCurrency: from_currency is requiredRequired; cannot be empty or whitespace.
400E0107Validation failed: toCurrency: to_currency is requiredRequired; cannot be empty or whitespace.
400E0107Validation failed: fromAmount: from_amount must be a valid numberMust match plain unsigned decimal syntax.
400E0107Validation failed: toAmount: to_amount must be a valid numberMust match plain unsigned decimal syntax.
400E0107Validation failed: validAmount: Either from_amount or to_amount must be provided, but not both.Exactly one amount must be supplied.
400E0107Validation failed: sameCurrencies: from_currency and to_currency must be different.Source and destination currencies must differ.
400E0107Unable to refresh quotation: Reason: Same-currency swaps are not allowed: {currency}A swap must use different currencies.
400E0107Unable to refresh quotation: Reason: Swap validation failedQuotation could not satisfy the pricing or amount requirements.
400E0107Unable to refresh quotation: Reason: InstSwapQuoteFailNo usable quotation could be produced.
400E0107Unable to refresh quotation: Reason: Minimum {currency} value should be above {minimum}Amount is below configured minimum.
400E0107Unable to refresh quotation: Reason: Please input greater {currency} valuePrecision/rounding leaves an unusable amount.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
400110112Request body is missing or unreadableSend a valid JSON body in the expected format.
400E0107Validation failed: {field}: {message}A request-body field does not satisfy validation requirements. Multiple errors may be joined with commas.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Additional quotation or execution failures can return HTTP 400 / E0107. The message starts with the quotation failure wording shown above and includes the specific reason.

Order

Create a sell or buy order

POST /users/{user_id}/orders

HTTP statusError codeError messageMeaning
400110112Missing required parameter: volumeVolume is blank.
400110112Missing required parameter: marketMarket is blank.
400110112Invalid market symbol: {market}; Invalid symbol: {symbol}Market is unknown or unavailable.
400110112Invalid order side: {side}Side is not recognized.
400110112Invalid order type: {type}Order type is not recognized.
400110112Missing required parameter: price for limit orderLimit order has no price.
400110112This action is temporarily unavailable.Trading is temporarily unavailable.
400110112Transactions are frozenTrading is restricted for this account.
400110112The pair does not support market tradingMarket orders are disabled for the pair.
400110112The maximum limit for positions has been exceededPosition/holding rule rejects the order.
400110112The user is not on the allowed IP listEnglish translation of the Chinese API message. The request IP is not permitted for this trading operation.
400110112You have exceeded the maximum number of open orders ({limit})Open-order count limit exceeded.
400110112The order price is outside the allowable range: {percentage}Limit price exceeds allowed deviation from reference price.
400110112The order price is outside the allowable rangePrice/market-deviation guard rejects execution.
400110112Insufficient available balance.Spendable balance does not cover the order.
400110112Order quantity exceeds the maximum limit.Quantity exceeds configured order cap.
400110112Order frequency exceeded.Trading frequency limit exceeded.
400110112Order creation failed, try again later.Order could not be created. Check its status before submitting again.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
400110112Request body is missing or unreadableSend a valid JSON body in the expected format.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Additional order validation or processing failures return HTTP 400 / 110112 with the specific rejection reason.

Get all orders

GET /users/{user_id}/orders

HTTP statusError codeError messageMeaning
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Get an order details

GET /users/{user_id}/orders/{order_id}

HTTP statusError codeError messageMeaning
404110043Order with ID: {order_id} doesn't existOrder cannot be found or is not accessible to the requested account.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Cancel an order

POST /users/{user_id}/orders/{order_id}/cancel

HTTP statusError codeError messageMeaning
400110112exchange_lockTrading is restricted for this account.
404110043Order with ID: {order_id} doesn't existOrder cannot be found or is not accessible to the requested account.
400110112Unable to verify orderOrder could not be verified for cancellation. Contact support.
400110112You can cancel the order only after {hours} hours.Pair/user policy imposes a cancellation delay.
400110112Order cancellation failedCancellation could not be completed; the message provides the reason.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
404E0104Sub-account with ID: {user_id} doesn't existAccount does not exist or is not accessible to this merchant.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Cancellation can also return HTTP 400 / 110112 with a transaction-specific failure reason.

Fees

Get crypto withdrawal fees

GET /users/me/fee_rule

HTTP statusError codeError messageMeaning
400110112Currency is requiredCurrency is missing or blank.
400110112Currency: {currency} with network: {network} not foundUnknown coin/network combination.
400110112Unable to retrieve withdrawal fee for currency: {currency} with network: {network}Withdrawal fee is currently unavailable.
400110112User is requiredA target account is required.
400110112Amount must be greater than 0Amount is zero or negative. Provide a positive amount.
401E0107Invalid api keyAuthorization is missing or invalid, or the API key is disabled.
401E0107api access blockedAccount API access is blocked and the block has not expired.
401E0107ip not allowedIP enforcement is enabled and the request IP is not permitted for the token.
401E0107User not authenticatedAuthentication is required for this operation.
500E0000Internal server errorRequest could not be completed. Contact support if the problem persists.
503E0000Service temporarily unavailable. Please try again later.Service is temporarily unavailable.
504E0000Something went wrong. Please try again later.Request timed out.
Other 4xxMay be absentResponse depends on the request failureMissing query parameters, invalid query/path types, unsupported methods or content types, and unknown routes may use a different response format.

Did this page help you?