Biometric face match with calibrated scores
Compares the portrait on the ID to the selfie and returns a match score you can threshold. Scores are calibrated across skin tones, lighting, and camera quality.
Veriface verifies government IDs and matches them to a live selfie in under ten seconds. One drop-in flow, one API call, a decision you can act on.
Verification session
ver_k3d9x2q8
Driver's license · front
Selfie · live
Reading MRZ, fonts and holograms
Trusted by onboarding teams at
Everything in one call
Document forensics, biometrics and liveness run together and return a single, explainable decision.
Compares the portrait on the ID to the selfie and returns a match score you can threshold. Scores are calibrated across skin tones, lighting, and camera quality.
Document and face analyses run in parallel.
Layout, security features, MRZ checksums, expiry, and front/back consistency.
Flags screens, printouts, masks and swapped portraits before they reach your product.
Licenses, state IDs, passports, passport cards and residence permits across 190+ countries.
A single multipart POST returns structured JSON. Webhooks fire on every decision so you can pipe results into your review queue, CRM or onboarding flow.
Explore the APIverification.completed
Fires once per session
verification.needs_review
Routes to your reviewers
verification.decided
Manual outcome applied
How it works
Drop the modal into any page, or call the API directly from your own capture UI. Either way you get the same structured result.
View integration guideThe user picks a driver's license, state ID, passport, passport card, or residence permit.
Guided camera frames with automatic image downscaling keep uploads small and sharp.
Two vision analyses run in parallel: document integrity and face comparison with liveness.
Receive verified, needs_review, or rejected with per-check results, scores, and extracted fields.
42M+
Verifications processed
Across fintech, mobility and marketplaces
99.97%
API uptime, trailing 12 months
Multi-region with automatic failover
0.3%
False accept rate
Measured on an independent benchmark
< 10s
Typical end-to-end session
Including capture and decision
Developer first
No SDK lock-in and no session juggling. Send the images, receive a decision, per-check booleans, confidence scores, and the fields read off the document.
TypeScript
Node
Python
3.9+
Go
1.21+
cURL
any
const form = new FormData()
form.set("documentType", "drivers_license")
form.set("front", frontFile)
form.set("back", backFile) // omit for passports
form.set("selfie", selfieFile)
form.set("userReference", "usr_8f31")
const res = await fetch("https://api.veriface.dev/v1/verify", {
method: "POST",
headers: { Authorization: "Bearer idv_live_..." },
body: form,
})
const result = await res.json()
// {
// id: "ver_k3d9...",
// status: "verified",
// scores: { authenticity: 0.97, faceMatch: 0.93 },
// checks: { faceMatch: true, selfieLive: true, ... },
// extracted: { fullName: "Jane Sample", ... }
// }What teams say
We replaced a three-vendor stack with one call. Conversion through onboarding went up eleven points and our review queue shrank by half.
Priya Natarajan
Head of Risk, Kestrel Pay
The explainability is the thing. Every decision comes with the checks that drove it, so support can answer customers without engineering.
Tomás Herrera
VP Engineering, Orbit Mobility
Integration took an afternoon. The modal handled camera permissions, retakes and downscaling so we didn't have to.
Maya Okafor
Product Lead, Fairmont Rentals
Pricing
Volume discounts kick in automatically after 10,000 verifications a month.
$0
100 verifications / mo
$1.20
per verification
Custom
volume pricing
FAQ
Images are processed in memory and discarded once a decision is returned. Only the structured result, scores and extracted fields are stored, and you can disable field retention per key.
Driver's licenses, state and national ID cards, passports, passport cards and residence permits from 190+ countries. Passports skip the back capture automatically.
Yes. Growth and Enterprise plans can set per-key thresholds for face match and authenticity, and route borderline sessions to the review queue instead of rejecting.
Sessions scored between your thresholds land in the dashboard queue. Reviewers see the checks, scores and extracted fields and approve or reject; a webhook fires with the final outcome.
Create an API key, paste the modal into your onboarding flow, and watch sessions land in the dashboard.