Skip to main content

Handle errors

When an API request fails, Bitvavo returns an HTTP status code and a JSON body with an errorCode and a description. Use the errorCode to identify the issue and resolve it.

Response format

Every error response includes an errorCode and an error message.

REST API error response
{
"errorCode": 205,
"error": "Invalid parameter: price"
}

WebSocket error responses use the same fields, wrapped in an event:

WebSocket error response
{
"event": "error",
"errorCode": 205,
"error": "Invalid parameter: price"
}

HTTP 400: Bad Request

Request format errors

errorCodeReasonAction
102Your request contains invalid JSON.Validate the JSON body before sending.
200This endpoint does not accept path parameters.Check the API reference for the correct request format.
201This endpoint does not accept body parameters.Check the API reference for the correct request format.
202This orderType does not support the parameter you used.Check the Create order endpoint for supported parameters.
203Your request has missing or incompatible parameters.Check required parameters in the API reference.
204You used an invalid parameter for this endpoint.Check the API reference for valid parameters.
205You provided an invalid parameter value.Check the API reference for accepted values.
206You used incompatible parameters together.Remove one of the conflicting parameters.

Order and trading errors

errorCodeReasonAction
210amount exceeds the maximum for this market.Check market limits with Get markets.
211price exceeds the maximum allowed.Lower the price value.
212amount is below the minimum for this market.Check minOrderInBaseAsset with Get markets.
213price is too low.Increase the price value.
215price has more than 15 decimal places.Reduce to 15 or fewer decimal places.
216Your balance is insufficient.Check your account balance.
217amountQuote is below the minimum for this market.Check minOrderInQuoteAsset with Get markets.
219This market is no longer listed on Bitvavo.Check available markets with Get markets.
220A clientOrderId with this value already exists in the market.Use a unique value per market.
231The market is paused and timeInForce is not GTC.Set timeInForce to GTC.
232You did not provide any changes.Include at least one changed parameter when updating an order.
234You cannot update a market order.Cancel it and create a new order instead.
235You exceeded the maximum of 100 open orders per market.Cancel existing orders before placing new ones.
236You used more than one of amount, amountRemaining, or amountQuote.Use only one.
237You omitted required parameters for the stopLoss order type.Check the Create order endpoint for required parameters.
238You omitted required parameters for the stopLossLimit order type.Check the Create order endpoint for required parameters.
239You cannot switch between amount and amountQuote during an update.Cancel the order and create a new one instead.
422The price does not align with the allowed tick size.Get the tickSize for the market with Get markets.
429A parameter value has too many decimal places.Check the allowed precision for the market with Get markets.

Market status errors

You get these errors when you interact with a market that is not in trading status. Check the current market status with Get markets.

errorCodeReasonAction
423The market is halted due to maintenance, technical issues, or other operational reasons.Wait for the market to resume trading.
424The market is in cancelOnly status.You can only cancel orders.
425The market is in an auction phase.Wait for trading to resume.
426The market is in auctionMatching status.Wait for the auction to complete.

Deposits and withdrawals errors

errorCodeReasonAction
401This asset does not support deposits.
402You must verify your identity to deposit or withdraw assets.Complete the verification process in your Bitvavo account.
403You must verify your phone number to deposit or withdraw assets.Verify your phone number in your Bitvavo account.
404An internal error prevented the operation.Retry the request. If the issue persists, contact Bitvavo support.
405You cannot withdraw during the cooldown period.Wait for the cooldown to expire before retrying.
406amount is below the minimum allowed value.Increase the amount.
407You cannot make an internal transfer for this asset.
408Your balance is insufficient.Check your account balance.
409Your bank account is not verified.Verify your bank account and try again.
410This asset does not support withdrawals.
411You cannot transfer assets to yourself.
412The deposit or withdrawal failed.If the issue persists, contact Bitvavo support.
413Your IP address is not in the whitelist.Add it to your API key whitelist.
414You cannot withdraw assets within 2 minutes of logging in.Wait and try again.

HTTP 403: Forbidden

Authentication

errorCodeReasonAction
300This endpoint requires authentication.Add authentication to your request.
301Your API key has an invalid length.Verify that you are using the correct key.
302The timestamp is not in milliseconds.Use Unix epoch time in milliseconds for Bitvavo-Access-Timestamp.
303Bitvavo-Access-Window is out of the allowed range.Set it to a value between 100 and 60000 milliseconds.
304Bitvavo did not receive your request within the access window.Sync your system clock or increase Bitvavo-Access-Window.
305Your API key is not active.Activate it in your Bitvavo account settings.
306You have not confirmed your API key activation.Check the confirmation email from Bitvavo.
307Your IP is not in the whitelist for this API key.Add your IP address to the key's whitelist.
308Your signature format is invalid.Review the authentication steps and verify your signature generation.
309Your signature is invalid.Verify that you sign timestamp + method + url + body correctly with your API secret. See authentication.

Permissions

errorCodeReasonAction
310Your API key does not have the Trade digital assets permission.Enable it in your API key settings.
311Your API key does not have the View access permission.Enable it in your API key settings.
312Your API key does not have the Withdraw digital assets permission.Enable it in your API key settings.
313Your Bitvavo session is invalid.
314The VPC ID is invalid.
316This WebSocket connection only supports public asset information.
317Your account is locked.Contact Bitvavo support.
318You must verify your account before using the API.Complete verification in your Bitvavo account.
319This feature is not available in your region.
320Operation forbidden.Contact Bitvavo support.
511You need the Administrative permission for this endpoint.Contact Bitvavo support.
512You need the Internal Transfer permission for this endpoint.Contact Bitvavo support.
513You need the Include all subaccounts permission for this endpoint.Contact Bitvavo support.
514You cannot use this request for subaccount management.

HTTP 404: Not found

errorCodeReasonAction
240The order does not exist or is no longer active.Check the orderId and ensure no conflicting calls overlap.
415Bitvavo does not recognize the WebSocket action.Check the action name in the WebSocket API reference.
510The API key is not linked to the subaccount, or the subaccount does not exist.

HTTP 409: Conflict

errorCodeReasonAction
431The market is in halted, auction, or auctionMatching status.Wait for trading status.

HTTP 429: Too many requests

errorCodeReasonAction
105You exceeded the rate limit. Your account or IP address is temporarily blocked.Wait until bitvavo-ratelimit-resetat (check the response headers) before sending new requests.
112You exceeded the WebSocket rate limit for messages per second.Reduce your message frequency.

HTTP 500: Internal server error

errorCodeReasonAction
101Unknown error. The service is not reachable.Contact Bitvavo support.
400Unknown server error.Contact Bitvavo support.

HTTP 503: Service unavailable

errorCodeReasonAction
107Bitvavo is overloaded.Retry after 500 ms.
108Bitvavo encountered a processing issue.Increase your Bitvavo-Access-Window or retry after 500 ms.
109The request timed out. The operation may or may not have succeeded.Check the state before retrying to avoid duplicates (for example, get the order before creating it again).
111The matching engine is temporarily unavailable.Retry after a short delay.
419The server is unavailable.Retry after a short delay.
430The connection timed out because Bitvavo received no new market data events.Check that the market is in trading status.

Handle retries

HTTP statusRetry?Guidance
400NoFix your request. Check parameters, values, and formats.
403NoFix authentication or permissions. Check your API key, signature, and key settings.
404NoFix the resource reference (for example, orderId or WebSocket action name).
409WaitThe market is not in trading status. Wait for the market status to change.
429Yes, after delayWait until bitvavo-ratelimit-resetat before retrying. See rate limits.
500Yes, after increasing delayRetry after 500 ms, then 1 s, then 2 s, and so on. If the error persists, contact Bitvavo support.
503Yes, after short delayRetry after 500 ms. For errorCode 109, verify the operation state before retrying.
tip

For errorCode 109 (timeout), the operation may have already succeeded. Always check the current state (for example, get the order) before retrying to avoid duplicates.

See also