Skip to content

Verdict Definitions ​

The complete vocabulary of verdicts returned by the eKYC sanity, tampering and face-matching APIs, grouped by the check that produces them.

Face Sanity ​

Returned in data.portrait_sanity.verdict by Verify Face Sanity, and in the liveness result by Verify Face Liveness.

FieldTypeDescription
goodstringImage is of good quality.
not_qualifiedstringImage is of poor quality — blurry, too bright or too dark.
image_has_multiple_facesstringImage has more than one face.
image_has_no_facesstringImage has no face.
face_too_smallstringFace in the image is too small.
face_too_bigstringFace in the image is too big.
leftstringFace tilted left.
rightstringFace tilted right.
small_or_closed_eyestringEyes are too small or closed.
wear_glassesstringWearing glasses, but eyes are visibly open.
occluded_facestringFace is occluded.
is_livestringLiveness check result.
incorrect_image_typestringThe input image is not the correct type for this flow.

ID Sanity ​

Returned in data.card_sanity.verdict by Verify ID Card Sanity.

FieldTypeDescription
goodstringImage is of good quality.
incompletestringThe image is obscured or incomplete.
abnormal_objectstringAn object is present in the image, obscuring information.
image1_not_qualifiedstringThe front image is of poor quality (blurry, too bright, too dark), affecting the readability of information.
image2_not_qualifiedstringThe back image is of poor quality (blurry, too bright, too dark), affecting the readability of information.
image1_glarestringThe front image is too bright, with the bright area inside the ID.
image2_glarestringThe back image is too bright, with the bright area inside the ID.
no_cardstringThe ID card is not detected in the image.
multicard_imagestringThere is more than one ID card in the image.
photocopiedstringThe card is a photocopy, not the real one.
id_card_too_smallstringID card is too small.

ID Tampering ​

Returned in data.card_tampering.details[].verdict by Detect ID Card Tampering.

FieldTypeDescription
goodstringThe image has no signs of alteration, forgery or editing.
non_livenessstringThe photo is taken from an image — for example a screenshot on a phone or computer.
photo_tamperedstringThe ID photo shows signs of modification.
wrong_font_formatstringThere are signs of information being altered.
age_not_matchstringAge information from the QR code and the OCR date of birth do not match.
id_not_follow_rulestringThe NID number sequence contradicts the province/city, gender, year of birth, issue date or expiration date on the card. See the composition rules below.
invalid_expiry_datestringThe expiration date is invalid against the 25/40/60 birthday rule. See the derivation below.
card_expiredstringThe card is expired, comparing the current date with the expiration date printed on the NID.
incorrect_issue_datestringThe NID was issued before the customer turned 13 years old.
not_in_same_cardstringThe front and back do not belong to the same NID.
wrong_font_or_formatstringFields on the NID have unusual fonts or formats.
qr_info_not_matchstringThe QR code contradicts the card surface.
mrz_not_follow_rulestringThe MRZ code is not valid against the TD1 standard.
mrz_qr_info_not_matchstringThe MRZ and the QR disagree.

NID number composition ​

id_not_follow_rule checks the ID number against the information printed on the card:

  • The first 3 digits are the code for the province, centrally governed city, or country where the citizen registered their birth (ID cards only).
  • The next 1 digit is the gender code of the citizen.
  • The next 2 digits are the year-of-birth code of the citizen.
  • The last 6 digits are a random number range.

Expiry date derivation ​

invalid_expiry_date checks that the expiration date is the nearest of the holder's exact 25th, 40th or 60th birthday. If the card was issued within 2 years before one of those birthdays, the expiration date rolls forward to the next one.

Example: Mr. A, born 4 May 1980, held a card expiring 4 May 2020. On 3 October 2018 he applied for a replacement. Because the application fell between 5 May 2018 and 4 May 2020, the new expiration date is 4 May 2040.

If the card is issued to someone over 60, or within 2 years before turning 60, the expiration date is "No expiration date".

Face Matching ​

Returned in data.compare_faces[].result by Compare Faces.

FieldTypeDescription
matchedstringFaces are matched.
unmatchedstringFaces are not matched.
unsurestringNot sure — the score falls between the match and non-match thresholds.

Next Steps ​

Developers