Introduction

VeriFlow is a self-hosted identity verification platform. Create verification sessions from your backend, send users to a fully-branded hosted flow, and receive signed webhooks with the decision.

How it works

  1. Create an API key in the admin console (Admin → API Keys).
  2. POST /api/v1/verifications from your backend with a subject_ref (your user's ID).
  3. Redirect the user to the returned hosted_flow_url — a page branded with your logo and colors.
  4. The user photographs their document and takes a live selfie.
  5. Your configured provider runs document, liveness, and face-match checks.
  6. You receive a signed webhook (verification.approved / verification.declined / verification.review).

Key concepts

TermMeaning
VerificationOne identity check for one subject, with an immutable event timeline.
ProviderThe verification engine (e.g. Didit, iDenfy). Bring your own account — your end users never see the provider.
Hosted flowThe branded verification page served at /v/{token}.
Review queueBorderline cases routed to your analysts for a manual decision.
RetentionAutomatic purging of captured images and PII after configured windows.

Statuses

StatusMeaning
pendingCreated, user hasn't started.
in_progressUser is completing the flow.
reviewProvider flagged it; awaiting your analyst.
approvedIdentity verified.
declinedChecks failed or analyst declined.
expiredTTL elapsed without completion.
cancelledCancelled via API.

Next: Installation →