Skip to main content
Didit Raises $2M and Joins Y Combinator (W26)
Didit
UBO verification · EU AML package

Find every owner. Verify every UBO.

One workflow surfaces every Ultimate Beneficial Owner of an onboarded company and runs a full KYC on each. $0.33 per UBO, 500 verifications free every month.

Backed by
Y Combinator
GBTC Finance
Bondex
Crnogorski Telekom
UCSF Neuroscape
Shiply
Adelantos

Trusted by 2,000+ organizations worldwide.

A cinematic dark abstract compliance illustration — four floating translucent dark-glass panels in 3D perspective on a pure black canvas, threaded by a luminous Didit Blue vertical line and framed by four glowing scanner brackets. Each panel carries a tiny pale-white abstract motif (ownership tree, percentage threshold, network of nodes, registry records) representing UBO discovery.

What KYB really means

The company is not the customer. Its UBOs are.

Regulators want the natural person behind every onboarded company — not just the registry extract. Didit pulls the entity, walks the ownership chain, runs a $0.33 KYC on every UBO, and screens the company plus every owner against 1,300+ AML lists. One workflow, one invoice, one audit pack. 500 verifications free every month.

How it works

From sign-up to verified user in four steps.

  1. Step 01

    Create the workflow

    Pick the checks you want — ID, liveness, face match, sanctions, address, age, phone, email, custom questions. Drag them into a flow in the dashboard, or post the same flow to our API. Branch on conditions, run A/B tests, no code required.

  2. Step 02

    Integrate

    Embed natively with our Web, iOS, Android, React Native, or Flutter SDK. Redirect to a hosted page. Or just send your user a link — by email, SMS, WhatsApp, anywhere. Pick what fits your stack.

  3. Step 03

    User goes through the flow

    Didit hosts the camera, the lighting cues, the mobile hand-off, and accessibility. While the user is in the flow, we score 200+ fraud signals in real time and verify every field against authoritative data sources. Result in under two seconds.

  4. Step 04

    You receive the results

    Real-time signed webhooks keep your database in sync the moment a user is approved, declined, or sent to review. Poll the API on demand. Or open the console to inspect every session, every signal, and manage cases your way.

Built for UBO discovery · Priced like infrastructure

One entity. N UBOs. One audit pack.

Real UBO work is not a single check — it's a recipe. Toggle each module per workflow. The entity record links to every UBO session, every AML hit, and every signed timestamp.
01 · Registry pull

Pull the entity. Wherever it's registered.

Companies House, Registro Mercantil, Handelsregister, Receita Federal, OpenCorporates fallback — 220+ jurisdictions. Officers, share capital, registered address, status, and standing all returned in one call.
Business Verification module
02 · Ownership tree

Walk the chain. Surface every UBO.

Direct shareholders, indirect ownership via holdings, control without ownership, nominee detection, senior-management fallback. The chart drops straight into the supervisor pack.
Workflow Orchestrator
03 · Linked KYC per UBO

One $0.33 KYC per owner.

Each discovered UBO gets a hosted /v3/session/ — ID Verification, Passive Liveness, Face Match 1:1, Device & IP, AML. Sub-two-second verdict on entry-level Android. 14,000+ documents, 220+ countries.
User Verification module
04 · Entity + person AML

Screen the company and every UBO.

1,300+ sanctions, Politically Exposed Persons (PEP), and adverse-media lists. Refreshed daily, in 14 languages. Entity hits and UBO hits open a case automatically.
AML Screening module
05 · Ownership policy

UBO rules that mirror your jurisdiction.

25% threshold by default; tighten to 10% or 5% per workflow for high-risk client categories. Nominee detection, voting-rights control, senior-management fallback all encoded in the no-code Workflow Builder.
Workflow Orchestrator
06 · Evidence pack

One ZIP per entity. Drop into the audit.

Registry extract, ownership chart, every UBO KYC verdict, entity + person AML hits, signed HMAC timestamps. Stored in the EU. Exportable from the Business Console or the API on demand.
Compliance overview
Integrate

One KYB record. N signed KYCs. One webhook.

Open the entity. Loop the UBO session. Read the signed verdict on each. Aggregate. Done.
POST /v3/session/Per UBO
$ curl -X POST https://verification.didit.me/v3/session/ \
  -H "x-api-key: $DIDIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "workflow_id": "wf_ubo_kyc",
    "vendor_data": "acme-trading::ubo::1",
    "metadata": { "entity_id": "acme-trading", "ownership_pct": "36.0" }
  }'
201Created{ "session_url": "verify.didit.me/..." }
Loop one call per discovered UBO. Aggregate at entity_id.docs →
GET /v3/session/{sessionId}/decision/Audit
$ curl https://verification.didit.me/v3/session/$SID/decision/ \
  -H "x-api-key: $DIDIT_API_KEY"

# Returns: full evidence — document,
# biometric similarity, AML hits,
# device + IP risk, 200+ signals,
# HMAC signature on the payload.
200OKstatus Approved · Declined · In Review · Resubmitted
Continuous AML re-screens every approved person daily. No second endpoint.docs →
Agent-ready integration

Ship a UBO discovery + KYC flow in one prompt.

Paste into Claude Code, Cursor, Codex, Devin, Aider, or Replit Agent. Fill in your stack. The agent builds the workflow, loops the UBO sessions, wires the webhook, opens the evidence pack.
didit-integration-prompt.md
You are integrating Didit into an Ultimate Beneficial Owner (UBO) verification flow for an obliged entity (fintech, bank, EMI, payments PI, crypto exchange, marketplace, gaming operator). Three obligations on every onboarded company:

  1. Pull the legal entity from the registry — name, officers, share capital, registered address, status.
  2. Walk the ownership chain — surface every natural-person UBO above the 25% threshold (or whoever exercises control without ownership).
  3. Know Your Customer (KYC) each UBO + screen the entity AND each UBO against 1,300+ sanctions, Politically Exposed Persons (PEP), and adverse-media lists.

Bundle pricing (live, verified 2026-05-16):
  - User Verification (KYC) bundle: $0.33 per person (Sessions API call — ID + Liveness + Face Match + Device & IP + AML)
  - AML Screening standalone: $0.20 per check on the entity, or bundled into each UBO KYC
  - Ongoing AML Monitoring: $0.07 per person per year (automatic — no extra endpoint)
  - First 500 verifications free every month, forever

PRE-REQUISITES
  - Production API key from https://business.didit.me (sandbox key in 60 seconds, no credit card).
  - Webhook endpoint with HMAC SHA-256 verification of the X-Signature-V2 header.
  - A workflow_id from the no-code Workflow Builder that bundles ID Verification + Passive Liveness + Face Match 1:1 + Device & IP Analysis + AML Screening.
  - Business Verification (Know Your Business (KYB)) module enabled in the Business Console. KYB is the entry point — it returns the entity record + the discovered UBOs that drive the rest of the flow.

STEP 1 — Open the KYB record on the legal entity

  Business Verification spawns the entity check, pulls officers + share capital + registered address from the local registry (220+ jurisdictions supported), runs entity AML on 1,300+ lists, and surfaces every natural-person UBO above your configured threshold (default 25%).

  When the KYB completes, the response contains an array of discovered UBOs — name, date of birth, nationality, ownership percentage, role (direct shareholder, indirect via holding, control without ownership, nominee, senior-management fallback).

STEP 2 — Loop: open one KYC session per discovered UBO

  POST https://verification.didit.me/v3/session/
  Headers:
    x-api-key: <your api key>
    Content-Type: application/json
  Body:
    {
      "workflow_id": "<wf id with KYC + AML modules>",
      "vendor_data": "<your entity-id>::ubo::<ubo-index>",
      "callback": "https://<your-app>/kyb/ubo/callback",
      "metadata": {
        "purpose": "ubo_verification",
        "entity_id": "<your internal entity id>",
        "ubo_name": "<full name as discovered>",
        "ownership_pct": "<percent rounded to one decimal>"
      }
    }

  Response: 201 Created with the hosted session URL. Send the UBO an email or text with the URL — they complete the verification on their phone, hosted by Didit, no app install. Sub-2-second median verdict.

STEP 3 — Read the signed webhook on each UBO KYC completion

  Didit POSTs to your callback. Session statuses are Title Case With Spaces:

  Body (excerpted):
    {
      "session_id": "<uuid>",
      "vendor_data": "<entity-id>::ubo::<ubo-index>",
      "status": "Approved",
      "id_verification": { "status": "Approved" },
      "liveness": { "status": "Approved" },
      "face": { "status": "Approved", "similarity_score": 0.94 },
      "ip_analysis": { "status": "Approved" },
      "aml": { "status": "Approved", "hits": [] }
    }

  Status enum (exact case): Approved | Declined | In Review | Resubmitted | Expired | Not Finished | Kyc Expired | Abandoned.

  Verify the X-Signature-V2 header BEFORE reading the body — HMAC SHA-256 of the raw bytes with your webhook secret.

  Aggregate at the entity level: the entity is onboarded only when EVERY UBO returns Approved AND the entity AML returns no blocking hit.

STEP 4 — Retrieve the full decision later

  GET https://verification.didit.me/v3/session/{sessionId}/decision/
  Headers:
    x-api-key: <your api key>

  Returns the full decision payload: document scan + extracted Machine-Readable Zone (MRZ), biometric similarity, AML hit list with source-watchlist references, device + IP risk signals, 200+ fraud signals, HMAC signature on the entire payload.

  Use this to assemble the per-entity evidence pack a supervisor expects to see: registry extract + ownership chart + per-UBO decision + entity AML + signed timestamps.

STEP 5 — Ongoing AML monitoring is automatic

  Every approved person (entity officer, UBO) is re-screened DAILY against the same 1,300+ lists. There is NO separate endpoint to call.

  When a previously-approved UBO crosses an AML threshold:
    - The session status changes to "In Review" or "Declined" automatically.
    - A signed webhook fires with the new hits + a link back to the original onboarding evidence.
    - A case opens in the Business Console for your compliance team.
    - File a Suspicious Activity Report (SAR) directly from the case if your jurisdiction requires it.

  Cost: $0.07 per person per year on heavy-volume accounts (single-digit dollars on a million-UBO base — orders of magnitude cheaper than a manual review queue).

WEBHOOK EVENT NAMES
  - Sessions: status changes flow through the standard session webhook (verify X-Signature-V2).
  - The KYB entity check fires the same webhook on completion.

CONSTRAINTS
  - Session statuses use Title Case With Spaces (Approved, In Review). Never UPPER_SNAKE_CASE on a session.
  - The 25% UBO threshold is a default; configure your own per workflow (some jurisdictions require 10% or 5% for high-risk client categories).
  - When no person meets the threshold, the AML package allows you to fall back to a senior-management UBO — surface that explicitly in the metadata.
  - Default record retention is 5 years post-relationship per the EU AML package (extensible up to 10 years per member-state guidance).
  - 200+ fraud signals are evaluated on every KYC session at no extra cost — surface the score via the session decision payload, do not re-query.

Read the docs:
  - https://docs.didit.me/sessions-api/create-session
  - https://docs.didit.me/sessions-api/retrieve-session
  - https://docs.didit.me/core-technology/aml-screening/overview
  - https://docs.didit.me/core-technology/aml-screening/continuous-monitoring-aml-screening
  - https://docs.didit.me/integration/webhooks

Start free at https://business.didit.me — sandbox key in 60 seconds, 500 verifications free every month, no credit card.
Need more context? See the full module docs.docs.didit.me →
Compliant by design

Open a new country in one click. We do the hard work.

We open the local subsidiaries, secure the licenses, run the penetration tests, earn the certifications, and align with every new regulation. To ship verifications in a new country, flip a toggle. 220+ countries live, audited and pen-tested every quarter — the only identity provider an EU member-state government has formally called safer than in-person verification.
Read the security & compliance dossier
EU financial sandbox
Tesoro · SEPBLAC · BdE
ISO/IEC 27001
Information security · 2026
SOC 2 · Type I
AICPA · 2026
iBeta Level 1 PAD
NIST / NIAP · 2026
GDPR
EU 2016/679
DORA
EU 2022/2554
MiCA
EU 2023/1114
AMLD6 · eIDAS 2.0
EU-aligned by design

Proof numbers

Proof numbers
  • $0.00
    Per UBO KYC — ID, Liveness, Face Match, Device & IP, AML.
  • 0+
    Sanctions, Politically Exposed Persons (PEP), and adverse-media lists screened on the entity and every UBO.
  • 0+
    Company registries reachable through Business Verification — local registry plus OpenCorporates fallback.
  • 0
    Free verifications every month, on every account.
Three tiers, one price list

Start free. Pay per usage. Scale to Enterprise.

500 free verifications every month, forever. Pay-as-you-go for production. Custom contracts, data residency, and SLAs (Service Level Agreements) on Enterprise.
Free

Free

$0 / month. No credit card required.

  • Free KYC bundle (ID Verification + Passive Liveness + Face Match + Device & IP Analysis) — 500 / month, every month
  • Blocklisted Users
  • Duplicate Detection
  • 200+ fraud signals on every session
  • Reusable KYC across the Didit network
  • Case Management Platform
  • Workflow Builder
  • Public docs, sandbox, SDKs, MCP (Model Context Protocol) server
  • Community support
Most popular
Pay per usage

Usage Based

Pay only for what you use. 25+ modules. Public per-module pricing, no monthly minimum fee.

  • Full KYC at $0.33 (ID + Biometric + IP / Device)
  • 10,000+ AML datasets — sanctions, PEPs, adverse media
  • 1,000+ government data sources for Database Validation
  • Transaction Monitoring at $0.02 per transaction
  • Live KYB at $2.00 per business
  • Wallet Screening at $0.15 per check
  • Whitelabel verification flow — your brand, our infrastructure
Enterprise

Enterprise

Custom MSA & SLA. For large volumes and regulated programs.

  • Annual contracts
  • Custom MSA, DPA, and SLA
  • Dedicated Slack and WhatsApp channel
  • Manual reviewers on demand
  • Reseller and white-label terms
  • Exclusive features and partner integrations
  • Named CSM, security review, compliance support

Start free → pay only when a check runs → unlock Enterprise for a custom contract, SLA, or data residency.

FAQ

Common questions

Infrastructure for identity and fraud.

One API for KYC, KYB, Transaction Monitoring, and Wallet Screening. Integrate in 5 minutes.

Ask an AI to summarise this page