Skip to main content

Welcome to Veridia

Veridia is a biometric KYC platform built for Latin America. Your users photograph their document and take a selfie; you get back a verdict, a confidence breakdown and a set of signals you can route on.

What you can build

  • Self-service onboarding — KYC during signup, with no human in the loop for clean cases
  • High-risk transaction gates — verify before withdrawals, transfers or sensitive actions
  • Periodic re-verification — KYC refresh for long-standing accounts
  • Reseller / B2B2C platforms — verification for your own customers

How it works

Three moving parts:

  1. Widget — a <veridia-widget> custom element your users interact with. Handles camera, document capture, selfie, quality checks and uploads.
  2. API — REST endpoints for server-side flows and custom clients. See the API reference for the full list; the ones you will use are /v1/verify/init, the upload endpoint, /v1/verify/submit and /v1/verify/:id.
  3. Webhooks — HMAC-SHA256 signed callbacks when a verification reaches a verdict, and again if a human later resolves a review.

A typical verification takes a few seconds from submit to verdict. The pipeline is asynchronous: /submit returns immediately and the outcome arrives by webhook or poll.

Two things to get right on day one

Both of these are silent when you get them wrong, which is why they are here and not buried in a reference page.

status is not verdict. status says whether the pipeline ran; verdict says whether the person passed. status: "completed" is what a rejection looks like too. Branching on status to grant an account admits everyone the system turned down.

Verdicts are server-side only. The publishable key in your page can start and submit a verification, but it cannot read the result — GET /v1/verify/:id requires a secret key. That is deliberate: a publishable key is visible to anyone who views your page source.

Details on both: GET /v1/verify/:id.

Pipeline under the hood

StageWhat happens
QualitySharpness (variance of Laplacian), glare, moiré and resolution checks — moiré is the screen-capture signal
OCRDocument text extraction — name, document number, dates, MRZ
MRZChecksum validation, plus a cross-check against the printed fields to catch fabricated MRZs
Face matchBiometric similarity between selfie and document photo (InsightFace, SCRFD detector + ArcFace embeddings)
LivenessAnti-spoofing. An optional active challenge (activeLiveness) is the strongest signal available
AMLScreening of the extracted identity against official sanctions lists
VerdictWeighted confidence with three outcomes: approved, review, rejected

You get back a confidence score (0-100), a breakdown of every signal, and flags worth showing your reviewers — never your end users.

Where to start

A note on regions

Veridia is built for Latin America first. Document types, OCR prompting and defaults are tuned for the region — DNI, CI, passport, driver's licence, national ID. It works elsewhere, but if you are verifying users in Paraguay, Brazil, Mexico, Argentina, Colombia, Chile or Peru, the defaults already match your reality.

A note on compliance

Veridia gives you the pieces a regulated onboarding process needs: an identity verification with a recorded verdict, the extracted fields, a sanctions screening result and an audit trail per verification.

It does not make you compliant, and we do not claim it does. Your obligations under SEPRELAD, LGPD or any other regime — record-keeping periods, reporting, your own risk policy — remain yours. What we document is what the system actually does, so you can map it to your own requirements honestly. See Compliance for what is and is not implemented.

Ready? Start the quickstart.