Developer writing code to integrate the Verifa identity verification API

Built for Developers

Integrate identity verification in minutes. A clean RESTful API, real-time webhooks, a full sandbox, and documentation that doesn't make you guess.

Terminal
# Create a verification session
curl -X POST https://api.withverifa.com/api/v1/sessions \
  -H "X-API-Key: vk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "external_ref": "user_12345",
    "checks": ["document", "biometric", "liveness"],
    "redirect_url": "https://your-app.com/verified"
  }'
Response
{
  "session_id": "ses_8f2a...",
  "capture_url": "https://api.withverifa.com/verify/abc123",
  "status": "pending",
  "expires_at": "2026-01-15T12:00:00Z"
}

Embed in Your Site, Not on Ours

Drop our JavaScript widget on any page. Your users finish verification without leaving your site — same modal-and-camera UX you'd expect from Stripe, Plaid, or Persona.

HTML
<!-- Load the widget from our CDN, integrity-pinned -->
<script
  src="https://cdn.withverifa.com/dist/verifa-v1.0.0.js"
  integrity="sha384-/2DZ+OBwe8NRgYq4X0/qpvx7e7s9CjFy0K7WZX4E5utplz4njxn3A0tNTXNsK4fm"
  crossorigin="anonymous"
></script>
JavaScript
// 1. Your backend creates a session and returns capture_url
const session = await fetch("/api/start-verification").then(r => r.json())

// 2. Open the widget — modal, popup, or redirect
new Verifa.Client({
  captureUrl:  session.capture_url,
  onReady:     ({ sessionId }) => console.log("ready", sessionId),
  onComplete:  ({ sessionId, status }) => save(sessionId, status),
  onCancel:    ()  => console.log("user closed"),
  onError:     (e) => console.error(e.code, e.message),
}).open()

~2.5 KB gzipped · works on every modern browser · cross-origin iframe, camera, postMessage lifecycle · full SDK reference →

Everything You Need to Integrate

RESTful API

Clean, versioned endpoints with consistent error handling and pagination. Every resource follows the same conventions — no surprises.

Real-Time Webhooks

Event notifications with HMAC-signed payloads, automatic retries, and configurable event filtering. Know the moment a verification completes.

SDKs & Libraries

Drop-in JavaScript widget for the web (CDN-distributed, SRI-pinned). React Native SDK available now; iOS and Android native bindings coming soon. Server SDKs for Python, Node.js, and Go in development.

Sandbox Environment

Full-featured test environment with preset verification outcomes. Test every flow without touching live data or spending a cent.

Composable Workflows

Build custom verification flows with conditional logic. Auto-approve low-risk, escalate high-risk, add manual review gates — your rules.

Idempotent Requests

Built-in idempotency support. Retry safely without creating duplicate sessions or charges.

How It Works

1

Sign Up & Get Keys

Create a free account, get API keys instantly. No sales call, no credit card.

2

Create a Session

One API call creates a verification session. Open the embedded widget on your site with a single <script> tag, or send users to our hosted capture flow.

3

Get Results

Receive verification results via webhook. Full structured data — document fields, face match scores, risk signals, AML hits.

Explore the full API reference, integration guides, and code examples.

Read the Documentation →

Start building in minutes

100 free verifications per month. No credit card required.

Get Started Free