For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
  • Getting Started
    • Introduction
    • How Verifa Works
    • Quickstart
    • Choosing an Integration Method
  • Use Cases
    • KYC Onboarding
    • Age Verification
    • AML Compliance
    • Fraud Prevention
    • Marketplace Trust & Safety
  • Core Concepts
    • Overview
    • Sessions
    • Verifications & Checks
    • Workflows
    • Identities
    • Cases
    • Screening & Reports
    • Lists
  • Integration Guides
    • Overview
    • JavaScript SDK
    • Web Capture Flow
    • API-Only Integration
    • Mobile SDK
    • Webhooks Guide
    • MCP Server
    • Migrating from Persona
  • API Details
    • Overview
    • Authentication
    • Pagination
    • Rate Limiting
    • Versioning
    • Errors
    • Webhooks
    • Idempotency
    • Key Inflection
    • Data Access
    • Data Retention
  • Tutorials
    • Creating Your First Verification Session
    • Creating a Workflow
    • Receiving Webhooks & Validating Signatures
    • Handling Webhook Events
    • Custom Document Types & AI Extraction
  • Best Practices
    • Testing
    • Preventing Duplicates
    • Fraud Signals
    • Changelog
  • API Reference
On this page
  • Comparison
  • Web Capture (recommended for most)
  • Mobile SDK
  • API-Only
  • verifa.js SDK (easiest)
  • Decision guide
  • Mixing methods
  • Next steps
  • Related
Getting Started

Choosing an Integration Method

Was this page helpful?
Previous

KYC Onboarding

Next
Built with

Verifa offers four ways to integrate identity verification into your product. Choose based on your engineering resources, platform, and how much control you need over the user experience.

Comparison

Web CaptureMobile SDKAPI-Onlyverifa.js SDK
Setup timeMinutesHoursDaysMinutes
Engineering effortMinimalModerateFullMinimal
PlatformsWeb (all browsers)iOS, Android, React NativeAnyWeb (all browsers)
User stays in your appRedirect or iframeYesYesPopup or modal
UI customizationTheming (colors, logo)Theming + native feelComplete controlTheming (colors, logo)
Camera handlingVerifa-managedVerifa-managed (native)You build itVerifa-managed
Liveness detectionBuilt-inBuilt-in (native)You implementBuilt-in
Fraud signalsAutomatic (150+)Automatic (native + device)Manual submissionAutomatic (150+)
Backend requiredYesYesYesRecommended
Best forWeb apps, quick launchMobile-first productsCustom workflowsSPAs, popup/modal UX

Web Capture (recommended for most)

The fastest path to production. Create a session via the API, redirect the user to the capture_url, and receive results via webhook.

How it works:

  1. Your server calls POST /api/v1/sessions
  2. Redirect the user to capture_url (or embed it in an iframe)
  3. Verifa handles document scanning, selfie, liveness, and consent
  4. User is redirected back to your redirect_url
  5. You receive a webhook with the result

When to choose this:

  • You’re building a web application
  • You want to launch quickly with minimal frontend code
  • You want automatic fraud signal collection
  • You don’t need deep native camera control

See Web Capture Flow for the full integration guide.

Mobile SDK

Native SDKs for iOS, Android, and React Native. The SDK handles camera capture, liveness detection, and document scanning with a native look and feel.

How it works:

  1. Your server calls POST /api/v1/sessions and passes the session token to your mobile app
  2. Initialize the SDK with the session token
  3. The SDK presents native camera screens for document and selfie capture
  4. On completion, the SDK calls back to your app
  5. You receive a webhook with the result

When to choose this:

  • You’re building a native mobile app
  • You need the best camera quality and UX
  • You want native device signals (root detection, gyroscope, touch pressure)
  • You need iOS App Clip or Android Instant App support

See Mobile SDK for the integration guide.

API-Only

Full control over the capture experience. You build the camera UI, collect documents and selfies, and submit them through the API. Verifa handles verification processing.

How it works:

  1. Your server calls POST /api/v1/sessions
  2. Your app captures document images and selfie
  3. Upload documents via POST /api/v1/sessions/\{id\}/documents
  4. Submit for processing via POST /api/v1/sessions/\{id\}/complete
  5. You receive a webhook with the result

When to choose this:

  • You need complete control over the user experience
  • You’re integrating into an existing capture flow
  • You’re building for a non-standard platform (kiosk, desktop app, etc.)
  • You want to pre-process images before submission

See API-Only Integration for the full guide.

verifa.js SDK (easiest)

A lightweight JavaScript SDK that opens the Verifa capture UI as a popup, modal, or redirect. Works with any web framework.

How it works (recommended):

  1. Your server creates a session via POST /api/v1/sessions (secret key stays on your server)
  2. Your frontend receives the capture_url
  3. Call Verifa.open() — opens the capture UI in a popup or modal
  4. Handle the completion in your callback
1<script src="https://app.withverifa.com/static/verifa.js"></script>
2<script>
3 document.getElementById('verify-btn').addEventListener('click', async function() {
4 // Your backend creates the session
5 const res = await fetch('/api/create-verification', { method: 'POST' });
6 const session = await res.json();
7
8 Verifa.open({
9 captureUrl: session.capture_url,
10 sessionId: session.id,
11 mode: 'popup',
12 onComplete: function(data) {
13 console.log('Done:', data.sessionId, data.status);
14 }
15 });
16 });
17</script>

When to choose this:

  • You want a popup or modal verification UI without building it yourself
  • You’re building a single-page application (SPA)
  • You want a drop-in “Verify Identity” button
  • You already have a backend that can create sessions

See JavaScript SDK for the full integration guide.

Decision guide

Do you have a mobile app?
├── Yes → Is native camera quality critical?
│ ├── Yes → Mobile SDK
│ └── No → Web Capture (in WebView) or Mobile SDK
└── No → Do you need full UI control?
├── Yes → API-Only
└── No → Do you want a popup/modal in your page?
├── Yes → verifa.js SDK (with backend session creation)
└── No → Web Capture (full-page redirect)

Mixing methods

You can use different integration methods for different parts of your product. For example:

  • Web Capture for onboarding on desktop
  • Mobile SDK for onboarding on mobile
  • API-Only for re-verification or document updates

All methods create the same session object and produce the same result format. Your webhook handler and backend logic work identically regardless of how the user completed capture.

Next steps

  • Web Capture Flow — Integrate the hosted capture experience
  • JavaScript SDK (verifa.js) — Drop-in frontend integration with popup or modal
  • API-Only Integration — Build your own capture UI
  • Mobile SDK — Native iOS, Android, and React Native

Related

  • Quickstart — Create your first session in 5 minutes
  • Sessions — Session lifecycle and API reference
  • Webhooks Guide — Set up real-time result delivery