KYC Docs Get credentials
Docs › Blink API › Result API

Result API

The source of truth. Your backend reads the result server to server and acts on it — never on the copy the device reports.

method GET path /api/blink/session/{sessionId}/result auth client key + secret headers

Request

GET https://kyc-api.blink-pay.net/api/blink/session/{sessionId}/resulthttp
curl -s https://kyc-api.blink-pay.net/api/blink/session/[SESSION_ID]/result \
  -H 'X-Blink-Client-Key: bkyc_live_…' \
  -H 'X-Blink-Client-Secret: bksec_…'

Response

200 OKjson
{
  "sessionId":  "[SESSION_ID]",
  "status":     "COMPLETED",
  "result":     "VERIFIED",
  "resultJson": "{\"sessionId\":\"[SESSION_ID]\",\"purpose\":\"FULL_CAPTURE\",\"result\":\"VERIFIED\",\"faceScore\":0.91,\"detail\":\"…\"}"
}
FieldValuesUse
sessionIdUUIDThe session you asked for.
statusCREATED · IN_PROGRESS · COMPLETED · EXPIRED · SUSPENDEDWhere the session is. Only COMPLETED carries a result.
resultVERIFIED · REJECTED · REVIEW · nullThe decision to act on. null until completed.
resultJsonstring or nullA JSON record encoded as a string, for logs and support. Never branch on it.

Inside resultJson

Decode it as a second step (JSON.parse, jsonDecode):

FieldDescription
sessionIdThe session.
purposeThe session's purpose.
resultSame as the top-level result.
faceScorePresent only when a face match ran.
detailA neutral, human-readable reason.

Polling

The endpoint is idempotent. Call it when the app reports that run() finished, and from a background job for sessions still IN_PROGRESS — customers do close apps half-way. Stop when status is COMPLETED, EXPIRED or SUSPENDED.

server.jsjavascript
async function readBlinkResult(sessionId) {
  const r = await fetch(`https://kyc-api.blink-pay.net/api/blink/session/${sessionId}/result`, {
    headers: {
      'X-Blink-Client-Key': process.env.BLINK_CLIENT_KEY,
      'X-Blink-Client-Secret': process.env.BLINK_CLIENT_SECRET,
    },
  });
  if (r.status === 404) throw new Error('Unknown session or wrong credentials');
  if (!r.ok) throw new Error(`Blink returned ${r.status}`);

  const { status, result, resultJson } = await r.json();
  return { status, result, record: resultJson ? JSON.parse(resultJson) : null };
}

404 responses

An unknown session, a session belonging to another client and wrong credentials all return 404 with BLINK_RESULT_NOT_FOUND — deliberately indistinguishable. Check the sessionId you stored and the credentials you sent.

KYC details & images

The Result API returns the decision. To get the captured document scans and selfies, list and download them with the Documents API.

Extracted identity fields — name, date of birth, document number — are not returned by the client API. If your compliance process needs them from Blink, talk to us.