Get verification result
GET /api/kyc/verifications/:idReturns the full result of a verification, including the extracted biodata, ID number, and facial-match score. This is the backend counterpart to the minimal status endpoint.
Authentication: Authorization: Bearer sk_…, a secret key only. Calling
this with a publishable (pk_) key returns 403 secret_key_required. The
verification is scoped to the key's organisation and environment (a sandbox
secret key cannot read a production verification).
Never call this from client code. Identity data must only be fetched from your backend with a secret key.
Request
curl "https://trust.myaza.app/api/kyc/verifications/ver_01j9..." \
-H "Authorization: Bearer $MYAZA_SECRET_KEY"Responses
Every response includes verificationId, status, country, idType, createdAt,
and workflow, which workflow was responsible for the submission.
approved
{
"verificationId": "ver_01j9...",
"status": "approved",
"checkStatus": "verified",
"externalUserId": "user_42",
"metadata": { "loanId": "loan_20191" },
"country": "NG",
"idType": "bvn",
"createdAt": "2026-04-27T12:00:00.000Z",
"completedAt": "2026-04-27T12:00:05.000Z",
"workflow": {
"id": "wf_AbC123dEf456",
"name": "Standard KYC",
"version": 3
},
"result": {
"idNumber": "12345678901",
"idNumberMasked": "1234•••901",
"firstName": "JOHN",
"lastName": "DOE",
"middleName": "A",
"dateOfBirth": "1990-01-01",
"gender": "Male",
"dataMatch": true,
"facialMatch": { "match": true, "confidence": 85 }
}
}facialMatch is null when no liveness/selfie check was part of the flow.
workflow is null when the SDK was configured with plain props instead of a
workflow. Its version is the published version that actually ran: publishing
overwrites a workflow's live configuration in place, so id alone stops describing
what happened after your next publish. Inspect the exact configuration a version
used under Workflows → Version history.
failed / error / not_found
Carries the human-readable reason and stable reasonCode (same values as the
status endpoint and webhooks).
{
"verificationId": "ver_01j9...",
"status": "declined",
"checkStatus": "failed",
"externalUserId": "user_42",
"metadata": { "loanId": "loan_20191" },
"country": "NG",
"idType": "bvn",
"createdAt": "2026-04-27T12:00:00.000Z",
"completedAt": "2026-04-27T12:00:05.000Z",
"reason": "The user's selfie does not match the photo on file with the government database (match confidence 48%, minimum 70% required).",
"reasonCode": "selfie_mismatch"
}Result fields
| Field | Type | Description |
|---|---|---|
externalUserId | string | null | Your reference for the subject, exactly as supplied: the top-level externalUserId on the submission (or the legacy userId / metadata.userId), or the session it was minted with. |
metadata | object | null | Your customer metadata, echoed unchanged. |
workflow | object | null | { id, name, version }: the workflow that drove the submission, its current name, and the published version that ran. null for prop-configured SDK mounts. |
result.idNumber | string | null | The plaintext ID number. |
result.idNumberMasked | string | The ID number, masked (e.g. 1234•••901). |
result.firstName | string | null | Given name from the source record. |
result.lastName | string | null | Family name from the source record. |
result.middleName | string | null | Middle name, if available. |
result.dateOfBirth | string | null | Date of birth (YYYY-MM-DD). |
result.gender | string | null | Gender from the source record. |
result.dataMatch | boolean | null | Whether submitted biodata matched the source record. |
result.facialMatch | object | null | { match: boolean, confidence: number }, or null if no facial check ran. |
Captured media
The images and videos captured during the flow are fetched per-kind from
GET /api/kyc/verifications/:id/media/:kind (selfie, document-front,
document-back, liveness-video, document-front-video, document-back-video),
also secret key only. These same URLs are delivered in the media object of
verification webhooks.
Errors
| Status | Body | Cause |
|---|---|---|
403 | { "error": "secret_key_required" } | A publishable (pk_) key was used. Use a secret key. |
404 | { "error": "Verification not found" } | Unknown ID, wrong environment, or another organisation's verification. |
401 | { "error": "Invalid API key" } | Auth failed. |