Skip to main content

Documentation Index

Fetch the complete documentation index at: https://ventra.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

All Currents errors share a single shape:
{
  "error": "invalid_credentials",
  "message": "API key revoked.",
  "request_id": "req_8c3e0b4a9d1e4d7e8c3e0b4a9d1e4d7e"
}
  • error — a stable, machine-readable code (e.g. invalid_credentials, pending_change_exists, unresolvable_ip). Branch on this, not on message.
  • message — a human-readable explanation. Phrasing may change between releases.
  • request_id — include this in any support correspondence; it pins the exact server-side log row.

Status codes

StatusMeaning
200 OKSuccessful request, includes existing-resource hits for idempotent endpoints.
201 CreatedNew resource created.
202 AcceptedRequest queued for asynchronous processing (AML events, KYC submissions).
400 Bad RequestRequest body or query parameters failed schema validation.
401 UnauthorizedMissing or invalid bearer key.
403 ForbiddenAuthenticated, but the operation requires elevated (admin) privileges.
404 Not FoundThe referenced resource does not exist or is not visible to your tenant.
409 ConflictIdempotency conflict (e.g. a pending change already exists).
422 Unprocessable EntityRequest is syntactically valid but semantically rejected (rare; most validation surfaces as 400).
429 Too Many RequestsPer-key rate limit exceeded.
500 Internal Server ErrorAn unexpected server error. The request_id lets us trace it.

Idempotency

Several endpoints are idempotent on natural keys:
  • POST /v1/exclusions(tenant, user, duration)
  • POST /v1/limits(tenant, user, limit_type) while a pending change exists
  • POST /v1/limits/commit(tenant, transaction_id)
  • POST /v1/sanctions/screen(tenant, external_user_id)
  • POST /v1/aml/event(tenant, transaction_id)
  • POST /v1/kyc/start(tenant, user, target_tier)
A second submission of the same logical request returns the original result with 200 OK rather than creating a duplicate. Use this freely under retry.

Rate limiting

The default sandbox limit is 100 requests per minute per API key. Production limits are set per-tenant. 429 responses include a Retry-After header in seconds.