Choosing an Integration Method

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

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

For prototyping only: The SDK also supports publishable keys (Verifa.startVerification()) to create sessions directly from the browser without a backend. This is convenient for testing but not recommended for production — use your backend to 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