NewResidence permits now supported

Know exactly who is on the other side of the screen.

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.

Read the docs
  • SOC 2 Type II
  • Images deleted after decision
  • 190+ countries
8.4s
Median decision
99.2%
Face-match accuracy
0.3%
False accept rate

Verification session

ver_k3d9x2q8

Processing
MRZ OK

Driver's license · front

Selfie · live

Scanning document28%

Reading MRZ, fonts and holograms

  • Authentic97%
  • Face match93%
  • Livenesspass

Trusted by onboarding teams at

  • Northwind Bank
  • Lumen Health
  • Orbit Mobility
  • Fairmont Rentals
  • Kestrel Pay
  • Atlas Markets
  • Harbor Insurance
  • Pico Wallet
  • Northwind Bank
  • Lumen Health
  • Orbit Mobility
  • Fairmont Rentals
  • Kestrel Pay
  • Atlas Markets
  • Harbor Insurance
  • Pico Wallet

Everything in one call

Verification that holds up, without the integration sprawl

Document forensics, biometrics and liveness run together and return a single, explainable decision.

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.

≥ 85 verified60–85 review< 60 rejected

Decisions in seconds

Document and face analyses run in parallel.

p50p95
8.4s14.8s

Document authenticity

Layout, security features, MRZ checksums, expiry, and front/back consistency.

  • Hologram
  • Microprint
  • MRZ
  • Font kerning
  • Expiry
  • Tamper

Presentation attack detection

Flags screens, printouts, masks and swapped portraits before they reach your product.

Five document types

Licenses, state IDs, passports, passport cards and residence permits across 190+ countries.

Built for your stack

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 API

verification.completed

Fires once per session

verification.needs_review

Routes to your reviewers

verification.decided

Manual outcome applied

How it works

Four steps from stranger to verified user

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 guide
  1. Choose an ID type

    The user picks a driver's license, state ID, passport, passport card, or residence permit.

  2. Capture front, back, and selfie

    Guided camera frames with automatic image downscaling keep uploads small and sharp.

  3. Analyze and match

    Two vision analyses run in parallel: document integrity and face comparison with liveness.

  4. Get a decision

    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

One request. One typed response.

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.

  • Multipart upload, up to 8 MB per image
  • Deterministic decision thresholds you can tune
  • Every result visible in the dashboard review queue

TypeScript

Node

Python

3.9+

Go

1.21+

cURL

any

verify.ts
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

Fewer vendors, faster onboarding

  • We replaced a three-vendor stack with one call. Conversion through onboarding went up eleven points and our review queue shrank by half.

    PN

    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.

    TH

    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.

    MO

    Maya Okafor

    Product Lead, Fairmont Rentals

Pricing

Pay for decisions, not seats

Volume discounts kick in automatically after 10,000 verifications a month.

Starter

$0

100 verifications / mo

  • All five document types
  • Face match and liveness
  • Dashboard review queue
  • Community support
Start free
Most popular

Growth

$1.20

per verification

  • Everything in Starter
  • Webhooks and API keys
  • Custom decision thresholds
  • Priority support
Open dashboard

Enterprise

Custom

volume pricing

  • Dedicated review tooling
  • Data residency options
  • SLA and audit logs
  • Solutions engineering
Talk to us

FAQ

Questions, answered

What happens to the images after verification?+

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.

Which documents are supported?+

Driver's licenses, state and national ID cards, passports, passport cards and residence permits from 190+ countries. Passports skip the back capture automatically.

Can we tune the decision thresholds?+

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.

How do manual reviews work?+

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.

Ship identity verification this afternoon

Create an API key, paste the modal into your onboarding flow, and watch sessions land in the dashboard.