Skip to content

Errors

Every error response has a stable HTTP status code, a machine-readable code, and a human-readable message.

Updated Jul 15, 2026API 2026-07-01 Edit on GitHubReport an issue

Error shape

{
  "error": {
    "type": "invalid_request_error",
    "code": "parameter_missing",
    "param": "amount",
    "message": "The 'amount' parameter is required.",
    "doc_url": "https://docs.korvenone.com/errors#parameter_missing",
    "request_id": "req_01HT3M9QK7ZS9V0AB"
  }
}

Status catalog

FieldTypeDescription
400
invalid_request_errorMissing, malformed, or invalid parameters.
401
authentication_errorMissing or invalid API key.
403
permission_errorThe key is valid but not scoped to this action.
404
not_foundResource does not exist or is not visible to this account.
409
conflictIdempotency-Key reused with different body, or state conflict.
422
unprocessableBusiness-rule failure (insufficient funds, blocked recipient…).
429
rate_limitedToo many requests. Respect Retry-After.
500
api_errorSomething went wrong on our side. Safe to retry with the same idempotency key.
503
service_unavailableTemporary degradation. Retry with exponential backoff.

Recovery strategy

  • Always log `request_id` — support conversations start there.
  • Retry only 429, 500, 502, 503, 504 with exponential backoff (base 500ms, cap 30s, jitter).
  • Never retry 400/422 — fix the request first.
  • Always send an Idempotency-Key on writes so retries are safe.