Documentation menu
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.
Request
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
{
"sessionId": "[SESSION_ID]",
"status": "COMPLETED",
"result": "VERIFIED",
"resultJson": "{\"sessionId\":\"[SESSION_ID]\",\"purpose\":\"FULL_CAPTURE\",\"result\":\"VERIFIED\",\"faceScore\":0.91,\"detail\":\"…\"}"
}| Field | Values | Use |
|---|---|---|
sessionId | UUID | The session you asked for. |
status | CREATED · IN_PROGRESS · COMPLETED · EXPIRED · SUSPENDED | Where the session is. Only COMPLETED carries a result. |
result | VERIFIED · REJECTED · REVIEW · null | The decision to act on. null until completed. |
resultJson | string or null | A 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):
| Field | Description |
|---|---|
sessionId | The session. |
purpose | The session's purpose. |
result | Same as the top-level result. |
faceScore | Present only when a face match ran. |
detail | A 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.
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.