Skip to main content
Didit Raises $2M and Joins Y Combinator (W26)
Didit
Reusable identity, verified once

Verify once. Reuse forever. Same brand. Trusted partner. Same identity.

$0.33 first verification, selfie-only reauth on every return for free, cross-partner share via short-lived encrypted tokens. 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 reusable-identity-credential illustration — four floating translucent glass panels in 3D perspective on pure black, threaded by a luminous Didit Blue line and framed by four glowing scanner brackets. Each panel carries a tiny pale-white abstract motif representing reusable identity (layered credential card, re-use circular arrow loop, linked-chain icon, key outline).

What identity owes

The user verified once. They shouldn't have to do it twice.

Once a user is verified to the Didit bar — iBeta Level 1 anti-spoof, sub-2-second verdict, 14,000+ documents — that verification is portable. Same brand, second app: free selfie-only reauth. Trusted partner, fresh signup: a short-lived encrypted share token onboards them instantly. The user owns the credential, eIDAS2-aligned.

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 reuse · Priced like infrastructure

One verification. Many onboardings.

Reusable identity isn't one feature — it's two: same-platform Reusable KYC (free) and cross-partner Share Session API. Compose either or both.
01 · User-owned credential

The user owns it · they re-present it.

First verification stays inside Didit, encrypted at rest. The user re-presents the credential on every Didit-powered service — same brand or trusted partner — by re-authenticating with a selfie or by consenting to a share.
Reusable KYC module
02 · Cross-partner share

Token-exchange between trusted partners.

Partner A generates a short-lived share token via POST /v3/session/[id]/share/. Partner B imports it via POST /v3/session/import-shared/. End-to-end encrypted, named-audience-only, one import per partner.
Share Session docs
03 · Trust policy

trust_review per partner.

Partner B picks: trust Partner A's verdict (instant onboard) or copy the data and route to manual review (regulated step-up paths). Configured per workflow in the Business Console.
Workflow Orchestrator
04 · Selfie-only return

Returning user · selfie only · free.

Reusable KYC workflow runs ID-less reauth — user opens a session, takes a selfie, Didit re-matches against the verified template, returns Approved in under two seconds. Free, no new document capture.
Face Match 1:1 module
05 · Privacy + consent

Consent · scope · retention · per share.

Every share records the user's consent, the purpose, the audience, the scope, and the expiry. Didit logs it all — GDPR (General Data Protection Regulation) aligned, ISO/IEC 27001, SOC 2 Type 1. Default retention 5 years.
Identity privacy notice
06 · Network

One identity across the Didit footprint.

Reusable identity works across every Didit-powered platform — fintech, crypto, marketplaces, iGaming, BNPL, healthcare, mobility. Same /v3/ contract, same Workflow Builder, eIDAS2-aligned.
Biometric Authentication
Integrate

One session at first. Selfie or share at return.

Verify the user once. Reuse the credential via Reusable KYC or the Share Session API.
POST /v3/session/{sessionId}/share/Share
$ curl -X POST https://verification.didit.me/v3/session/$SID/share/ \
  -H "x-api-key: $DIDIT_API_KEY" \
  -d '{
    "audience": "partner_b",
    "expires_in": 900
  }'
201CreatedReturns share_token + expires_at · 15-min default.
Transmit token to Partner B out-of-band. One import per partner.docs →
POST /v3/session/import-shared/Import
$ curl -X POST https://verification.didit.me/v3/session/import-shared/ \
  -H "x-api-key: $PARTNER_B_KEY" \
  -d '{
    "share_token": "eyJhbGci…",
    "workflow_id": "partner_b_wf",
    "vendor_data": "user-on-partner-b",
    "trust_review": true
  }'
201CreatedImported session status follows trust_review.
trust_review=true → instant Approved; false → In Review.docs →
Agent-ready integration

Ship reusable identity in one prompt.

Paste into Claude Code, Cursor, Codex, Devin, Aider, or Replit Agent. Fill in your stack. The agent builds the first-verification flow, the Reusable KYC reauth flow, and the cross-partner share + import flow.
didit-integration-prompt.md
You are integrating Didit reusable identity. Your users get verified once with full KYC and then re-present that verification on every subsequent service — your own platforms (same-platform reuse via Reusable KYC) and trusted partner platforms (cross-partner Share Session API).

Three pillars:

  1. Verify once with full KYC ($0.33 bundle) via POST /v3/session/.
  2. On the SAME platform, returning users re-prove identity with a selfie only — free, via the Reusable KYC workflow.
  3. To a TRUSTED PARTNER, the first platform generates a short-lived share token (POST /v3/session/{id}/share/); the partner imports it (POST /v3/session/import-shared/) and the user lands fully onboarded.

Cost:
  - First verification: $0.33 (Sessions API)
  - Same-platform selfie-only reauth: free (Reusable KYC workflow)
  - Cross-partner import: priced per call, from $0.30 — Partner B pays the import fee
  - First 500 verifications free every month, forever

PRE-REQUISITES
  - Production API key from https://business.didit.me (sandbox key in 60s, no card).
  - Webhook endpoint with HMAC SHA-256 verification using the X-Signature-V2 header and your webhook secret.
  - Two workflows in the Workflow Builder:
      wf_first_verification    — ID Verification + Passive Liveness + Face Match 1:1 + Device & IP Analysis + Anti-Money Laundering (AML) Screening
      wf_reusable_kyc          — Reusable KYC (selfie-only reauth)
  - For cross-partner: a pre-arranged backend channel with the partner (a webhook, a queue, or even an authenticated REST call between your services) so the share token can be transmitted out-of-band.

STEP 1 — First verification (Sessions API)

  POST https://verification.didit.me/v3/session/
  Headers:
    x-api-key: <your api key>
    Content-Type: application/json
  Body:
    {
      "workflow_id": "<wf_first_verification>",
      "vendor_data": "<your user id, max 256 chars>",
      "callback": "https://<your-app>/identity/callback"
    }

  Response: 201 Created with the hosted session URL. Sub-2-second median verdict on completion.

STEP 2 — Read the signed webhook on verification completion

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

  Body (excerpted):
    {
      "session_id": "<uuid>",
      "vendor_data": "<your user id>",
      "status": "Approved",
      "id_verification": { "status": "Approved" },
      "liveness": { "status": "Approved" },
      "face": { "status": "Approved", "similarity_score": 0.94 }
    }

  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.

  Store the (user_id, session_id, status) tuple. session_id is the handle you reuse for shares.

STEP 3 — Same-platform reuse (Reusable KYC selfie-only reauth)

  When the same user returns for a new flow:

  POST https://verification.didit.me/v3/session/
  Body:
    {
      "workflow_id": "<wf_reusable_kyc>",
      "vendor_data": "<your user id>",
      "callback": "https://<your-app>/identity/reauth-callback"
    }

  The hosted UI prompts the user for a selfie only — no document re-capture. Didit matches the selfie against the original verified template, returns Approved in under two seconds, free.

STEP 4 — Cross-partner share (Partner A generates a share token)

  Only finished sessions (Approved / Declined / In Review) can be shared.

  POST https://verification.didit.me/v3/session/{sessionId}/share/
  Headers:
    x-api-key: <Partner A's api key>
    Content-Type: application/json
  Body:
    {
      "audience": "<partner_b_identifier>",
      "expires_in": 900
    }

  Response (excerpted):
    {
      "share_token": "eyJhbGciOiJIUzI1NiJ9...",
      "session_kind": "kyc",
      "expires_at": "<ISO8601>"
    }

  Transmit the share_token to Partner B via your pre-arranged backend channel.

STEP 5 — Cross-partner import (Partner B imports the session)

  POST https://verification.didit.me/v3/session/import-shared/
  Headers:
    x-api-key: <Partner B's api key>
    Content-Type: application/json
  Body:
    {
      "share_token": "eyJhbGciOiJIUzI1NiJ9...",
      "workflow_id": "<Partner B's workflow id>",
      "vendor_data": "<Partner B's internal user id>",
      "trust_review": true
    }

  trust_review options:
    true  — Partner B trusts Partner A's verdict (Approved / Declined). The imported session keeps the original status.
    false — Partner B copies the data but sets status to "In Review" so Partner B's compliance team can apply their own thresholds.

  Constraints (verified against mintlify-docs/core-technology/reusable-kyc/share-kyc-via-api.mdx):
    - A specific session can be imported only ONCE into a given partner application.
    - The share_token is short-lived (defaults to 15 minutes).
    - End-to-end encrypted; only the named audience can import.

STEP 6 — Audit the consent + the share

  Log every share + every import with:
    - user_pid (the pseudonymous user identifier)
    - audience (which partner)
    - purpose (onboarding, lending, payments, etc.)
    - scope (kyc, kyc + aml, kyc + kyb)
    - share_token id + expiry
    - import status
  Default retention 5 years post-relationship per the EU AML package; longer under your supervisor's guidance.

WEBHOOK EVENT NAMES
  - Sessions: status changes flow through the standard session webhook.
  - Verify X-Signature-V2 on every payload.

CONSTRAINTS
  - Session statuses use Title Case With Spaces (Approved, In Review). Don't transform them.
  - Share tokens are scoped to the named audience and the named purpose — they're not bearer tokens for free reuse.
  - The user must consent before a share happens. Capture explicit consent in your UI; Didit logs the consent against the session.
  - Reusable KYC selfie-only reauth is free; cross-partner imports are priced at Partner B's account.
  - 200+ fraud signals are evaluated on every fresh session at no extra cost.

Read the docs:
  - https://docs.didit.me/sessions-api/create-session
  - https://docs.didit.me/sessions-api/share-session/share
  - https://docs.didit.me/sessions-api/share-session/import
  - https://docs.didit.me/core-technology/reusable-kyc/overview
  - https://docs.didit.me/core-technology/reusable-kyc/share-kyc-via-api
  - 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
    First verification — full KYC bundle. Then free for same-platform return.
  • Free
    Reusable KYC — selfie-only reauth across every same-brand session.
  • 0 min
    Default share-token expiry · encrypted, audience-bound, one-import-only.
  • 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