KYC Docs Get credentials
Docs › Blink API › Errors

Errors

Every error has the same shape and a stable code. Switch on code; messages are neutral recovery guidance and may change.

Error shape

4xx / 5xxjson
{
  "code":      "BLINK_SESSION_INVALID",
  "message":   "Session is no longer valid",
  "timestamp": "2026-09-15T18:34:57Z"
}

API error codes

CodeHTTPMeaning · what to do
BLINK_CLIENT_MISSING400Client credentials were not supplied.
BLINK_CLIENT_AUTH_FAILED400Client authentication failed. Check the key and secret.
BLINK_SCOPE_DENIED400The requested product is not enabled for your client.
BLINK_REQUEST_REJECTED400 · 405 · 415Unsupported request shape, method or media type.
BLINK_SESSION_INVALID401Token missing, invalid or expired. Create a new session.
BLINK_ORIGIN_NOT_ALLOWED403The browser origin isn't allowed. Register it.
BLINK_SESSION_NOT_FOUND400The session is no longer available.
BLINK_SESSION_EXPIRED400The session expired mid-flow. Create a new one.
BLINK_SESSION_SPENT400The session already finished. Create a new one.
BLINK_CHALLENGE_INVALID400Nonce unknown, reused or expired. Fetch a fresh challenge.
BLINK_STEP_OUT_OF_SEQUENCE400Liveness attempted before the document step.
BLINK_STEP_INCOMPLETE400Finalize called before all required steps.
BLINK_STEP_ALREADY_DONE400That step already completed.
BLINK_STEP_NOT_IN_PURPOSE400The step isn't part of the session's purpose.
BLINK_UNKNOWN_DOCUMENT_TYPE400documentType is not a supported value.
BLINK_UNKNOWN_DOCUMENT_SIDE400The document side is unsupported.
BLINK_UPLOAD_REJECTED400 · 413The capture was not accepted (e.g. too large).
BLINK_UPLOAD_UNREADABLE400The capture could not be read.
BLINK_RESULT_NOT_FOUND404Unknown session, another client's session, or wrong credentials.
BLINK_QUOTA_EXCEEDED429Your plan's quota is used up.
BLINK_TEMPORARILY_UNAVAILABLE503Retryable interruption. Retry with backoff.
BLINK_REQUEST_FAILED500The request failed. Retry once, then contact Blink.

Step outcomes

Returned as HTTP 200 on the device calls, and raised by the SDKs as BlinkStepError:

CodeWhat to do
DOCUMENT_ACCEPTEDNothing — the step passed.
DOCUMENT_UNREADABLEAsk for a retake in better light, with a new session.
LIVENESS_ACCEPTEDNothing — the step passed.
LIVENESS_FAILEDOffer another attempt with a new session.
LIVENESS_CHALLENGE_INVALIDThe liveness challenge expired. Start again.

SDK-only codes

Raised on the device as BlinkError with httpStatus 0:

CodeWhat to do
BLINK_NETWORK · BLINK_TIMEOUTConnectivity. Let the customer retry.
BLINK_CAMERA_DENIEDExplain why the camera is needed and link to Settings.
BLINK_CAPTURE_CANCELLEDThe customer closed the camera. Not an error to report.
BLINK_CONFIGInvalid SDK setup, e.g. a malformed base URL or hosted link.

Rate limits

A 429 carries Retry-After (seconds) and X-RateLimit-Remaining headers. Wait for Retry-After before retrying.