Skip to main content
Every error response has the same shape:
Example error
Use code to handle errors in your integration. message is a description for people and can change, so don’t match on it. When an error relates to a specific field, param names that field. When the broker or the exchange rejects an order, an application or an allocation, reject_reason gives the reason.

invalid_request

400 invalid_request_error The request could not be read.

missing_required_field

400 invalid_request_error A required field is missing.

unknown_account

400 invalid_request_error That account is not one of yours.

unauthorized

401 authentication_error Invalid credentials.

allocation_not_found

404 invalid_request_error No such allocation.

application_not_found

404 invalid_request_error No such application.

not_found

404 invalid_request_error No such path on this API. Check the path against the contract.

order_not_found

404 invalid_request_error No such order.

method_not_allowed

405 invalid_request_error That method is not allowed on this path.

account_not_at_broker

409 invalid_request_error The broker does not recognise this account. Contact us: this is ours to fix.

duplicate_allocation

409 idempotency_error This Idempotency-Key already belongs to a different allocation.

duplicate_application

409 idempotency_error This Idempotency-Key already belongs to a different application.

duplicate_order

409 idempotency_error This Idempotency-Key already belongs to a different order.

order_not_cancelable

409 order_error This order cannot be cancelled.

similar_order_unresolved

409 order_error An identical order on this account is not yet resolved.

request_too_large

413 invalid_request_error That body is larger than any request to this API can be.

unsupported_media_type

415 invalid_request_error Content-Type must be application/json.

allocation_rejected

422 wallet_error The broker rejected this allocation; its amount is back in the wallet.

application_rejected

422 application_error The broker rejected this application.

limit_exceeded

422 limit_error This would take today’s total past your limit. Nothing was written and nothing was sent.

order_rejected

422 order_error The exchange rejected this order.

unknown_symbol

422 order_error The exchange does not list this symbol. Nothing was written and nothing was sent.

wallet_too_low

422 wallet_error The wallet does not hold that much. Nothing was written and nothing was sent.

rate_limited

429 rate_limit_error Too many requests. Nothing was done. Send the same request again after the Retry-After seconds.

internal_error

500 api_error Something went wrong on our side. Retry the same request exactly as you sent it.

exchange_error

502 api_error The exchange’s answer could not be used. Nothing was changed. Asking again will not change it: contact us.

allocation_not_sent

503 api_error The allocation was written down but could not be sent, and never reached the broker.

application_not_sent

503 api_error The application was written down but could not be sent, and never reached the broker.

cancel_unconfirmed

503 api_error The cancel may not have reached the exchange. Send it again: asking twice is harmless.

exchange_unavailable

503 api_error The exchange cannot be reached right now. Nothing was written and nothing was sent. Retry with the same Idempotency-Key.

order_not_sent

503 api_error The order was written down but could not be sent, and never reached the exchange.

service_unavailable

503 api_error The gateway cannot serve this request right now. Retry the same request; nothing here was changed.

settlement_lockout

503 api_error The exchange is settling the day’s trades. Ask again after the Retry-After seconds.

Reject reasons

When you receive order_rejected, or an order is in the rejected state, reject_reason has one of these values.