Identity verification

SEON’s Identity verification (IDV) lets you verify user identities in real time using document checks and biometric verification, enriched with fraud, device, IP and behavioral risk signals. IDV can run as a standalone verification flow or as part of a broader fraud and AML strategy using SEON Workflows.

This guide helps you get your first identity verification session live with SEON.
If you’re looking for a detailed breakdown on identity verification components and capabilities, see our Identity verification overview.

 

How it works

Verification flow

  1. Session creation: A verification session is created via the SDK, generating a unique and secure URL.
  2. Guided user capture: The user is guided through document and selfie capture based on the configured requirements.
  3. Automated verification and analysis: SEON performs real-time analysis, including including document and biometric verification, fraud signal evaluation and data cross-referencing.
  4. Consolidated results: A consolidated decision is returned via webhook and displayed in SEON, along with a detailed breakdown of all checks and risk signals.

 

Integration options

SEON provides flexible integration options to fit your technical stack and user experience requirements:

SDK Integration

  • Web SDK for web applications: A pre-built, customizable UI that handles document and selfie capture, user guidance and secure data submission.
  • Native SDKs for iOS and Android: Deep integration with mobile applications ensures comprehensive data collection without impacting app performance.
  • Automatic mobile handoff: Seamlessly transfers sessions from desktop to mobile when a camera is unavailable.

Hosted Flow

  • Redirect users to a SEON-hosted verification page with minimal development effort.

 

Data Collection and Analysis

What SEON collects

  • Document images with guided capture ensuring high-quality submissions.
  • Selfie with passive liveness data captured in the background.
  • Device intelligence including device fingerprint, browser data and network information.
  • Behavioral signals from user interactions during the verification process.

Real-time fraud signal enrichment

Every identity check is enriched with 900+ fraud signals, including:

  • Device intelligence: Rooted devices, emulators, app cloning, VPN/proxy detection.
  • Digital footprint: Email and phone reputation, social media presence.
  • Behavioral biometrics: Interaction patterns, typing analysis, automation detection.
  • IP and geolocation: Location validation, geofencing compliance.

 

Results and outcomes

Each verification session returns one of the following statuses:

  • PENDING: Verification is still in progress
  • APPROVED: All required checks passed
  • DECLINED: One or more checks failed
  • REVIEW: Manual review is required
  • ABANDONED: The user did not complete the session in time

Results are delivered in real time via webhooks and are available for inspection in SEON.

 

Accessing results in the SEON UI

After analysis, you can access detailed results in SEON:

  • Track session history and monitor verification activity.
  • Visualize document images, selfie captures and extracted data.
  • View individual check results with pass/fail breakdown.
  • Apply filters to identify patterns and optimize fraud prevention.

 

Workflows

SEON Workflows is a unified identity verification orchestration platform that lets you design, deploy and manage end-to-end user verification journeys from one place.

  • Visual workflow builder: Design verification journeys by dragging and connecting nodes—no coding required.
  • Intelligent routing logic: Create conditional branches using risk scores, document results, device attributes or any custom data point.
  • Combined capabilities: Execute fraud checks, identity verification, AML screening and device intelligence in a single orchestrated flow.
  • One SDK integration: Access the full suite of SEON capabilities through a single integration.

For detailed guidance on workflows please visit our dedicated Worfkflows overview page.

 

Integration guide

The integration follows a secure three-party flow:

1. Your frontend: Requests verification from your backend.
2. Your backend: Securely calls SEON’s Workflow API to get a session token.
3. SEON SDK: Handles the user-facing verification process.
4. SEON webhooks: Delivers final results to your backend.

 

Before you start

Make sure you have the following:

  • A SEON account with Identity verification and Workflows access
  • An API key (SEON -> Settings -> API Keys)
  • At least one workflow created in SEON

 

Step 1: Backend integration

Create an endpoint that your frontend will call to start verification:

// Node.js (Express) Example
app.post('/api/init-verification', async (req, res) => {
  const { userId, email, phoneNumber } = req.body;
  const response = await fetch(`${SEON_BASE_URL}/v1/init-workflow`, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'x-api-key': SEON_API_KEY,
    },
    body: JSON.stringify({
      workflowId: WORKFLOW_ID,
      inputs: {
        user_id: userId,
        email: email,
        phone_number: phoneNumber,
      },
    }),
  });
  const { data } = await response.json();
  
  // Store executionId for webhook correlation
  await storeExecutionId(userId, data.executionId);
  
  // Return only the token to frontend
  res.json({ token: data.token });
});

 

Step 2: Frontend integration

Install the SDK and launch the verification flow:

npm install @seontechnologies/seon-orchestration
import { SeonOrchestration } from '@seontechnologies/seon-orchestration';
// Set up event listeners
SeonOrchestration.on('completed', (status) => {
  if (status === 'success') {
    showSuccessMessage();
  } else if (status === 'pending') {
    showPendingMessage();
  } else {
    showFailureMessage();
  }
});
// Start verification
async function startVerification(userId) {
  const response = await fetch('/api/init-verification', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ userId }),
  });
  const { token } = await response.json();
  
  await SeonOrchestration.start({ token, language: 'en' });
}

 

Step 3: Webhook integration

Receive real-time notifications for verification events:

Event typeTrigger
workflow.finishedWorkflow reaches terminal state (Approved, Declined, Abandoned).
idv/session_finishedIDV session completed with detailed check results.

Configure your webhook endpoint in under Settings -> Webhooks.

For detailed integration instructions please visit the Orchestration integration guide.