Handle errors
If there is an error with your API request, Bitvavo sends a response with an error message and a corresponding HTTP status code. The response body contains the description of the error along with a possible cause and how to proceed.
- HTTP 400: Bad Request
- HTTP 403: Forbidden
- HTTP 404: Not Found
- HTTP 429: Too Many Requests
- HTTP 500: Internal Server Error
- HTTP 503: Service Unavailable
HTTP 400: Bad Request
The following table explains the reason for each errorCode returned by Bitvavo with a HTTP 400 status code:
errorCode | Reason |
|---|---|
| 102 | The JSON object you sent is invalid. |
| 200 | Path parameters are not accepted for this endpoint. |
| 201 | Body parameters are not accepted for this endpoint. |
| 202 | A parameter is not supported for this orderType. |
| 203 | Missing or incompatible parameters in your request. |
| 204 | You used a parameter that is not valid for this endpoint. |
| 205 | Invalid parameter value. |
| 206 | Incompatible parameters in your call. |
| 210 | amount exceeds the maximum allowed for the market. |
| 211 | price exceeds the maximum allowed. |
| 212 | amount is lower than the minimum allowed for the market. |
| 213 | price is too low. |
| 215 | price has more than 15 decimal places. |
| 216 | Insufficient balance to perform this operation. |
| 217 | amountQuote is lower than the minimum allowed for the market. |
| 219 | The market is no longer listed on Bitvavo. |
| 220 | clientOrderId conflict within the market. |
| 231 | timeInForce must be set to GTC when markets are paused. |
| 232 | Changes required for a successful update to your order. |
| 234 | Cannot update a market order type. |
| 235 | Maximum of 100 open orders per market exceeded. |
| 236 | Only one of amount, amountRemaining, or amountQuote is allowed. |
| 237 | Required parameters missing for stopLoss order type. |
| 238 | Required parameters missing for stopLossLimit order type. |
| 239 | Cannot switch between amount and amountQuote during an update. |
| 401 | Deposits for this asset are not available. |
| 402 | Verify your identity to deposit or withdraw assets. |
| 403 | Verify your phone number to deposit or withdraw assets. |
| 404 | Could not complete the operation due to an internal error. |
| 405 | Withdrawal not allowed during the cooldown period. |
| 406 | amount is below the minimum allowed value. |
| 407 | Internal transfer is not possible. |
| 408 | Insufficient balance to perform this operation. |
| 409 | Verify your bank account and try again. |
| 410 | Withdrawals for this asset are not available. |
| 411 | You cannot transfer assets to yourself. |
| 412 | Error during deposit or withdrawal. |
| 413 | IP address not in your whitelist. |
| 414 | Cannot withdraw assets within 2 minutes of logging in. |
| 422 | Invalid price tick size. The entered price does not align with the allowed price increments. |
| 423 | The market is halted due to maintenance, technical issues, or other operational reasons. |
| 424 | The market is in the cancelOnly status. |
| 425 | The market is in an auction phase. Trading is temporarily restricted. |
| 426 | The market is in the auctionMatching status. |
| 429 | Too many decimal places in a parameter value. Differs per market. |
HTTP 403: Forbidden
The following table explains the reason for each errorCode returned by Bitvavo with a HTTP 403 status code:
errorCode | Reason |
|---|---|
| 300 | Authentication required to call this endpoint. |
| 301 | Invalid API key length. |
| 302 | Timestamp for authentication must be in milliseconds. |
| 303 | Access window must be between 100 and 60000 milliseconds. |
| 304 | Request not received within the access window. |
| 305 | API key is not active. |
| 306 | API key activation not confirmed. |
| 307 | IP not whitelisted for this API key. |
| 308 | Invalid signature format. |
| 309 | Invalid signature. |
| 310 | API key lacks trading endpoint permissions. |
| 311 | API key lacks account endpoint permissions. |
| 312 | API key lacks withdrawal permissions. |
| 313 | Invalid Bitvavo session. |
| 316 | Public asset information only via this WebSocket. |
| 317 | Account locked. Contact support. |
| 318 | Account verification required for API use. |
| 319 | Feature unavailable in your region. |
| 320 | Operation forbidden. Please contact support. |
HTTP 404: Not Found
The following table explains the reason for each errorCode returned by Bitvavo with a HTTP 404 status code:
errorCode | Reason |
|---|---|
| 240 | Order not found or is no longer active. Ensure no conflicting calls are made. |
| 415 | Unknown WebSocket action. Verify against the API reference. |
HTTP 409: Conflict
The following table explains the reason for each errorCode returned by Bitvavo with a HTTP 409 status code:
errorCode | Reason |
|---|---|
| 431 | Cannot get market data because the market is in a halted, auction, or auctionMatching status. |
HTTP 429: Too Many Requests
The following table explains the reason for each errorCode returned by Bitvavo with a HTTP 429 status code:
errorCode | Reason |
|---|---|
| 105 | Rate limit exceeded. Account or IP address blocked temporarily. |
| 112 | Rate limit exceeded for WebSocket requests per second. |
HTTP 500: Internal Server Error
The following table explains the reason for each errorCode returned by Bitvavo with a HTTP 500 status code:
errorCode | Reason |
|---|---|
| 101 | Unknown server error. Operation success uncertain. |
| 400 | Unknown server error. Contact support. |
HTTP 503: Service Unavailable
The following table explains the reason for each errorCode returned by Bitvavo with a HTTP 503 status code:
| errorCode | Reason |
|---|---|
| 107 | Bitvavo is overloaded. Retry after 500ms. |
| 108 | Processing issue. Increase execution window or retry after 500ms. |
| 109 | Timeout. Operation success uncertain. |
| 111 | The matching engine is temporarily unavailable, please try again. |
| 419 | The server is unavailable. |
| 430 | The connection timed out because no new market data events have been received. For example, trying to retrieve the order book data for a market that is not in a trading status. |