Why KYC Verifications Fail: Top Rejection Reasons

Posted by

–

If you run onboarding for a lender, a wallet or a marketplace, you have seen the pattern. A user signs up, gets through four screens, and then the verification step ends in “failed.” Most never come back.

The uncomfortable part is that many of these users are genuine. They have real PANs, real Aadhaar numbers and real faces. The check failed anyway, and the reason was often something small.

This article covers why KYC verifications fail in practice, which causes are the user’s fault, which are yours, and what to do about each.

First, separate real fraud from false rejections

Teams tend to lump every failed check into one bucket. That hides the problem. A rejection falls into one of three categories:

  • Genuine mismatch or fraud: the data doesn’t belong to the person. Correct rejection.
  • User error: typos, wrong document, bad photo. Recoverable with better guidance.
  • System or source failure: an upstream database was down, a request timed out, a format wasn’t parsed. This one is on you, and it’s recoverable too.

If your logs only say “KYC failed,” you can’t tell these apart. The first fix is almost always better failure reason codes.

The most common reasons KYC verification fails

1. Name mismatch

This is the biggest one. The name on PAN says “RAJESH KUMAR SHARMA,” the Aadhaar says “Rajesh K Sharma,” and the user typed “Rajesh Sharma” into your form. A strict string comparison rejects all three combinations.

Initials, expanded middle names, reordered words, honorifics and spelling variations (Mohammed, Mohammad, Md.) are everywhere in Indian records. The answer is fuzzy matching with a tuned threshold and a manual review queue for borderline scores, instead of a hard pass/fail.

2. Inoperative or unlinked PAN

PANs that haven’t been linked with Aadhaar can be marked inoperative, and verification against such a PAN may fail or return a status you aren’t handling. Many teams only check whether a PAN is valid in format, not whether it is operative. Check the status field, and tell the user clearly what to do next. Confirm the current rules with the Income Tax Department before you build messaging around them.

3. Aadhaar OTP never arrives

Aadhaar-based OTP verification only works if the user’s mobile number is linked to their Aadhaar. A user with an old number, or one who never updated it, will wait for an SMS that is never coming. They blame your app. Offer an alternative route, such as DigiLocker or an offline method, before they give up.

4. Date of birth mismatches

Older records sometimes carry only a year of birth, or a placeholder date like 1 January. If the user enters their real birthday, the match fails. Where possible, compare against the source document instead of the user’s memory.

5. Poor image quality

Blurry photos, glare on laminated cards, cropped corners, shadows and dark rooms cause OCR errors. A model reading “8” as “B” in an ID number produces a failure that looks like a data problem. Add live capture guidance (frame outline, glare warnings, auto-capture when the image is sharp) instead of letting users upload whatever’s in their gallery.

6. Face match and liveness failures

Selfie checks fail for ordinary reasons: a decade-old ID photo, new glasses or a beard, low light, a cheap front camera. Strict thresholds catch spoofing but also reject real people. Tune per risk level, and give users two or three attempts with specific prompts before routing to video KYC or manual review.

7. Expired, invalid or mismatched documents

Expired driving licences, passports missing the address page, and documents that don’t match the type the user selected all lead to rejection. A short pre-check (“this looks like a PAN, but you selected Voter ID”) saves a failed API call and a frustrated user.

8. Address inconsistencies

Current address versus the address on Aadhaar or other proof is a frequent trigger, especially for migrants, renters and students. If your policy allows it, accept a separate current-address proof instead of forcing an exact match with the permanent one.

9. Source downtime and timeouts

Sometimes nothing is wrong with the user. A government or bank source is slow, a request times out, and your system records a failure. Without retry logic and an explicit “source unavailable” status, you end up rejecting valid users on a bad afternoon.

Rejection reasons at a glance

Rejection reasonTypical causeWhose problem?Practical fix
Name mismatchInitials, spelling variants, word orderMostly system (matching logic)Fuzzy match with threshold, manual review for borderline
Inoperative PANPAN not linked with AadhaarUserCheck status, show clear next-step message
Aadhaar OTP failureMobile not linked to AadhaarUserOffer DigiLocker or offline alternative
DOB mismatchPlaceholder or year-only dates in recordsDataCompare against source document, not manual entry
Poor image qualityBlur, glare, cropping, low lightUser, but preventableGuided live capture, auto-capture on clarity
Face match failureOld photo, lighting, appearance changeMixedTune thresholds, allow retries, fallback to video KYC
Invalid or expired documentWrong type, expired, missing pagesUserDocument-type pre-check before submission
Address mismatchCurrent vs permanent addressPolicyAccept alternate current-address proof
Source timeoutUpstream downtime or slow responseSystemRetry logic, “unavailable” status, queue and re-run

How to reduce failures without loosening your controls

Lower rejection should not mean weaker verification. A few changes cut failures without opening a hole.

Log reasons, not outcomes. Record the specific failure code for every rejected attempt. After two weeks you will probably find that two or three reasons account for most drop-offs.

Fix the form before the API. A large share of “failed KYC” is bad input. Validate PAN format, mask Aadhaar entry, auto-capitalise names and warn before submission.

Build a retry and fallback path. Primary method fails, secondary method tries. OTP fails, offer DigiLocker. Selfie fails, offer video KYC. Users who have a way forward keep going.

Review the borderline band. For cases that sit just below your match threshold, a human reviewer clearing them in minutes recovers real customers. Track how many of them turn out to be genuine. That number tells you if your threshold is too tight.

Watch your regulatory footing. KYC rules differ by sector. If you are an RBI-regulated entity, your KYC Master Direction obligations and your approved methods decide what you can accept. Data handling falls under the Digital Personal Data Protection Act, 2023 as well. When in doubt, ask your compliance team before changing a flow.

What to measure

You can’t improve what you only count as pass or fail. Track these weekly:

  • Pass rate by verification method
  • Failure rate by reason code
  • Retry-to-success rate (how many users recover after a failure)
  • Time to verify, and drop-off at each step
  • Manual review volume and approval rate

The bottom line

KYC failures usually look like fraud prevention work. In reality, a big part is a mix of unforgiving matching logic, poor capture experience and unhandled edge cases. Fix those and your approval rate rises while your risk posture stays where it was.

Start by finding out why your users are failing, and then decide what to change.

Leave a Reply

Your email address will not be published. Required fields are marked *