Skip to main content
All Currents errors share a single shape:
  • 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

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.