200 and an envelope with code set to 200, msg set to "SUCCESS", and the result in data:
Some endpoints, including Upgrade Limit (
POST /v2/upgrade/limits), return "code": 0 and "msg": "success" on success. Treat HTTP 200 with code 200 or 0 as success.Error Response Format
A failed call returns a non-200 HTTP status. Authentication, validation, rate-limit, and business errors use HTTP 400. The body has an error code and an English msg. Error codes are negative, except 30012. For most errors, the same code is repeated in the error_code response header. Error bodies have no data field.
integer
The error code. Use this value, or the
error_code header, to decide how to handle the error.string
An English description of the error. It can contain runtime values, so do not match on the exact text.
string
Optional. Extra detail, present only on some errors.
object
Optional. Field-level detail, present only on some errors.
Messages in the tables below show placeholders such as
{0}, {1}, or %s. VelaFi usually replaces them with the field name, value, or limit that caused the error, but some responses return the placeholder as-is (for example Parameter {0} is invalid). Rely on code, not on msg.HTTP Status Codes
Outcome Unknown: Check Before You Retry
-1006 is not limited to uncertain outcomes. It is also returned for some invalid-input cases on read-only endpoints (for example an unsupported corridor on GET /v2/base/fiat/payments) and when you exceed a rate limit. On read-only GET calls, check your input and retry. On calls that create or change something, check first as described above.
Authentication and Request Errors
These errors come from token generation, token checks, and request parsing.GET /v2/token/generate also returns -5033 (see KYC/KYB Errors below) when API access is not enabled for your account.
Parameter Errors
Parameter errors indicate that one or more request fields failed basic validation — wrong type, wrong length, wrong format, or a duplicate submission.Payment Method Errors
Payment method errors occur when a payment method is missing, misconfigured, or incompatible with the requested operation or platform.Merchant Errors
Merchant errors relate to the lifecycle and configuration of merchant entities — including registration failures, missing records, and account state problems.Fiat Account and Virtual Account Errors
These errors relate to activating and using a merchant’s fiat accounts and virtual accounts.Order Errors
Order errors indicate that a requested order operation cannot be completed due to the order’s current state, amount limits, or an expired quotation.Trading Pair Errors
Trading pair errors arise when the requested symbol, fiat currency, crypto asset, or country combination is unsupported or closed for trading.Risk Control Errors
Risk control errors indicate that pricing or rate configuration is outside acceptable safety thresholds. Contact your VelaFi account administrator to resolve configuration issues.KYC/KYB Errors
KYC/KYB errors indicate that a user or merchant has not completed required identity or business verification steps, or that a verification process has reached a terminal state.Compliance Errors
Compliance errors cover a broad range of policy and configuration restrictions — including unsupported banks or countries, transaction limit breaches, and feature-access restrictions.Order Failure Codes
These codes describe why an order failed after it was created. When a fiat-to-crypto or crypto-to-fiat order fails, Get Order (GET /v2/order/detail) may report one of them in the order’s failCode field, with the matching text in failReason. Not every failed or cancelled order has a failCode.

