KYC Name Match

Compares the typed name with each KYC document word by word and checks the PAN letters, so a KYC or PAN–Aadhaar link doesn't fail on a name mismatch.

StopsHelps prevent a KYC rejection for a name mismatch

Installation

pnpm dlx shadcn@latest add https://bollard-ui.vercel.app/r/kyc-name-match.json

The files land in your project. They're yours to edit.

Usage

kyc-name-match-usage.tsx
import { KycNameMatch, type IdRecord } from "@/components/ui/kyc-name-match"

return <KycNameMatch defaultValue="Rajesh Sharma" records={records} />

What it catches

  • Words in a different order, initials, or a missing middle name
  • Transliteration variants such as Laxmi and Lakshmi
  • PAN 4th letter that doesn't match the holder type (P for an individual)
  • PAN 5th letter that doesn't match the surname's first letter
  • Date of birth or gender that differs between documents

Props

KycNameMatch props
PropTypeDefault
value

Controlled name as the user will submit it.

string—
defaultValue

Initial name when uncontrolled.

string—
onValueChange

Called on typing and one-tap fixes.

(name: string) => void—
records* (required)

Names as printed on each document (from OCR, DigiLocker, a PAN or bank lookup), most authoritative first.

IdRecord[]—
wrapperClassName

Class for the outer wrapper; `className` goes on the input.

string—
messages

Any visible string.

Partial<KycNameMatchMessages>—

* required. Also accepts the native props of <input> (className, aria-*, data-*…), passed through to it.

Accessibility

  • Visible label; input has aria-invalid on a mismatch and is described by the hint and summary
  • Each document's use-exact-name button is described by that document's row
  • Status uses role=status; icons are aria-hidden

Only what the source does. Test with your own screen reader and content before shipping.

Limitations

This is a UX guard rail. Enforce on the server: Run the real name match and KYC verification through your provider on the server, and avoid storing full Aadhaar numbers.

  • Compares the document details you pass; it doesn't read or verify the documents
  • Transliteration matching covers common variants only
  • Whether a minor mismatch passes is decided by UIDAI or the KYC provider, not this check

Rules

Rules last verified:

Informational; check the official source. Confirmed: 4th character is the holder status (P individual, C company, etc.), 5th is the first letter of an individual's surname. The UIDAI FAQ on PAN–Aadhaar name, gender and date-of-birth matching was not re-fetched this round. Copied components don't update themselves, so re-check after rule changes (see updating a component).

What it stops

Helps prevent a KYC rejection for a name mismatch

Also known as

kyc · pan aadhaar link · name as per pan · ekyc · ckyc · pan card · aadhaar · onboarding

Field type

Dependencies

Pairs well with