Skip to main content
Mode: identity_verification
Opal Identity Verification is a pre-built flow for verifying user identity. It provides a secure, compliant way to collect and verify personal information like name, date of birth, address, and other identity details needed for KYC/AML requirements. identity-hero

What this mode does

Identity Verification collects, confirms, and verifies a user’s identity details (name, DOB, address, phone, SSN if needed). Users must explicitly confirm their details before verification challenges begin. Identity Verification will automatically be invoked when needed, or can be used as a standalone module.

Parameters

skip_pii
string[]
The PII to skip. One of name, dob, address or ssn_4

Create a token

You can create an identity verification session token using one of the supported patterns:
  • Existing entity: provide entity_id + mode + identity_verification
  • Create new entity: provide entity + mode + identity_verification
  • Resume session: provide session_id only (omit mode and identity_verification)

Existing Entity

{
  "entity_id": "ent_...",
  "mode": "identity_verification",
  "identity_verification": {
    "skip_pii": ["name", "dob", "address"]
  }
}

Create New Entity

{
  "entity": {
    "type": "individual",
    "individual": {
      "first_name": "Kevin",
      "last_name": "Doyle",
      "phone": "+15125551234"
    }
  },
  "mode": "identity_verification",
  "identity_verification": {
    "skip_pii": []
  }
}

Response

{
  "token": "otkn_...",
  "valid_until": "2025-06-10T22:50:53.024Z",
  "session_id": "osess_..."
}

Launch Opal

  • React (Web)
  • React Native
import { OpalProvider, useOpal } from "@methodfi/opal-react";

function Screen() {
  const { open } = useOpal({ env: "dev", onEvent: (e) => {} });
  const start = async () => {
    const { token } = await getTokenFromBackend();
    open({ token });
  };
  return <button onClick={start}>Verify identity</button>;
}
I