Developers

Errors

Errors are RFC 9457 problem details (application/problem+json) with a stable code:

{
  "type": "https://vestoris.com/developers/errors#insufficient_scope",
  "title": "The token lacks a scope",
  "status": 403,
  "detail": "This call needs the scope \"orders:write\".",
  "code": "insufficient_scope",
  "instance": "/api/v1/orders",
  "required_scope": "orders:write"
}

Decide on code, not on detail (the wording may improve). Some problems add fields: errors (per field), hint (what to do), checks (the compliance results of a blocked order), feed_codes (the codes of the Data Feed Reference, such as F008 or V104), etag (the current ETag on 412).

CodeStatusMeaning
invalid_request400Invalid request
https_required400HTTPS required
invalid_json400The body is not valid JSON
invalid_token401Invalid or missing token
session_not_accepted401Session cookies are not accepted on the API
insufficient_scope403The token lacks a scope
forbidden403Not allowed
ip_not_allowed403This address may not use the client
user_token_required403A person must do this
approvals_not_granted403This service account may not approve
legacy_keys_disabled403Legacy API keys are turned off for this firm
legacy_key_scope403Legacy API keys only reach the data, feed and bundle endpoints
not_found404Not found
method_not_allowed405Method not allowed
conflict409Conflict
invalid_transition409Not possible in the current state
idempotency_in_progress409A request with this Idempotency-Key is still running
precondition_failed412The resource changed (ETag)
payload_too_large413The file is too large
unsupported_media_type415Unsupported media type
validation_failed422Validation failed
compliance_blocked422Blocked by compliance
idempotency_key_reused422Idempotency-Key reused for a different request
confirmation_required428Confirmation required
precondition_required428If-Match required
idempotency_key_required428Idempotency-Key required
rate_limited429Too many requests
server_error500Server error

Error answers never contain a token, a secret or another firm's data. Every answer has an X-Request-Id; quote it if you contact us.

The 1.2 data endpoints

POST /api/v1/data/{data set}, POST /api/v1/feeds/{id}/files, POST /api/v1/feeds/bundles and the batch and folder status endpoints keep their 1.2 answers ({"ok": true, "batch": {...}}), and their problems also carry "ok": false and "error", so existing integrations keep working.

API referenceAll developer pages