Enroll, verify, identify
Three operations, three problem shapes. All are methods on a FingerprintReaderSession; capture happens on the reader, and templating/matching is server-side.
| Operation | Method | Input | Returns | When to use |
|---|---|---|---|---|
| Enroll | enroll → verifyEnrollment | enrollee + position | EnrollmentResult / VerificationResult | First time you register this subject’s finger |
| Verify (1:1) | match | enrollee + position | MatchResult | Subject claims an identity; confirm it |
| Identify (1:N) | search | position | SearchResult | Subject is anonymous; find them in the corpus |
Enroll takes two captures
Registering a finger is a two-step flow: enroll stores an unverified print, then a second matching capture via verifyEnrollment promotes it to verified. A subject is only enrolled once enough fingers are verified. See Fingerprint enrollment for the full lifecycle.
Verify (1:1) vs identify (1:N)
matchproves a claimed identity: “is this finger enrollee CR-123?” It returns{ matched, score, matchedPosition, message }. Amatched = falseis a normal result, not an error.matchdoes not change stored enrollment state.searchanswers “who is this?” across the enrolled population. It returns a single bestenrollee({ matched, enrollee, similarity, matchScore }) — not a ranked candidate list.
Check enrollment status without hardware
Before deciding to enroll, verify, or identify, call fetchEnrolled(enrollee). It is a metadata lookup against the Slade ID service — no reader, no capture — returning { verified, nonVerified, total, enrollmentStatus, notes }. Use it to resume a paused enrollment.
Consent and law
1:N identification has consent implications that 1:1 verification does not. With verification the subject asserts an identity and knows they are being checked against a single record. With identification the subject does not assert an identity, and the system searches across the population.
Some jurisdictions require explicit opt-in for biometric search across a population. Confirm your compliance posture before enabling 1:N flows.