Skip to content

In-Person

The strongest verification mode. Combines a NIN lookup with a biometric face match against a freshly-captured selfie of the holder.

POST/verify-nin/in-person

FieldTypeRequiredNotes
ninstringExactly 11 digits
selfie_imagestringBase64-encoded JPEG of a live selfie (no data:image/jpeg;base64, prefix)
reasonstringA key from /nimc-reasons
Terminal window
# Base64-encode the JPEG without newlines
SELFIE_B64=$(base64 < selfie.jpg | tr -d '\n')
curl -X POST https://api.randaverify.com/verify-nin/in-person \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "$(jq -n --arg nin '12345678901' --arg img "$SELFIE_B64" --arg reason 'corporate' \
'{nin:$nin, selfie_image:$img, reason:$reason}')"

Returns the standard normalised record. NIMC’s match score is reflected in the underlying response and surfaced via the data.status / data.message fields when relevant — a 200 from this endpoint already implies the match succeeded above NIMC’s threshold.

StatusWhenRecover by
400NIN invalid, selfie unreadable, or match score below thresholdRe-capture the selfie in better lighting; ensure the NIN matches the person in the photo.
402Org wallet emptyTop up.
500Upstream face-match service unreachableRetry with backoff.

Charged 1 unit on success, same as standard verification. A failed match (below threshold) still costs 1 unit because NIMC ran the comparison — see Wallet & units.