Skip to main content
Didit Raises $2M and Joins Y Combinator (W26)
Didit
Tenant screening

ID, address, lease eligibility — in one tenant flow.

One session covers the applicant's identity, current address, sanctions screen, and right to rent. Five minutes on the phone, signed pack to the landlord. 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 tenant-screening illustration — four floating translucent glass panels on pure black threaded by a luminous Didit Blue line. Each panel carries a small abstract motif (house outline, crossed keys, clipboard, location pin).

What a letting agent owes

Know the applicant. Know they can lease. Before you hand over the keys.

Paper-based screening is slow, expensive, and easy to forge. Didit replaces it with one hosted session: ID + liveness + face match + proof of address + AML + lease-eligibility check — $0.33 per applicant plus $0.20 for the address proof. 500 verifications free every month, sub-2-second verdict.

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

Six checks. One session. Under five minutes.

A tenant evidence pack isn't a single check — it's a recipe of identity, current address, lease eligibility, income, AML, and an optional guarantor. Toggle each module per workflow.
01 · Tenant KYC bundle

Verify the applicant in one call.

ID + liveness + face match + AML — bundled to $0.33 per applicant. iBeta Level 1 anti-spoof certified, sub-two-second verdict, 14,000+ documents across 220+ countries.
User Verification module
02 · Proof of Address

Read the address from a utility, bank, or letter.

Utility bill, bank statement, or government letter — OCR extracts the address and cross-checks it against the underlying ID. $0.20 per check. Catches stale documents, mismatched addresses, and tampered uploads.
Proof of Address module
03 · Lease eligibility

Right-to-rent and right-to-lease by jurisdiction.

UK Home Office Right to Rent (share code + visa class), EU residency documents (Padrón ES / Anmeldung DE / NIE / TIE), US state-of-residence, LatAm national tax id (CURP, CPF, RUT) — routed automatically by the applicant's country.
Database Validation module
04 · Income evidence

Read the payslip and the bank statement.

Payslip OCR pulls the employer and net pay; bank statement extracts the IBAN and the inflow pattern. Self-employed applicants can upload a tax return instead. Custom Questionnaire ($0.10) collects the employer reference letter.
Custom Questionnaires module
05 · AML screening

Screen on 1,300+ sanctions and PEP lists.

Sanctions, Politically Exposed Persons (PEP), adverse media — refreshed daily, in 14 languages. Hits open a case automatically and gate the application before clearance.
AML Screening module
06 · Guarantor flow

Linked KYC for the guarantor.

Need a guarantor? Same hosted flow, $0.33 per guarantor, stitched back to the parent tenant record. One signed audit pack covers every party on the lease.
User Verification module
Integrate

One session. One webhook. One tenant pack.

Open the tenant session. Read the signed verdict. Forward the pack to the landlord.
POST /v3/session/Tenant
$ 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_tenant_screening",
    "vendor_data": "applicant-42",
    "expected_country": "GB"
  }'
201Created{ "url": "verify.didit.me/..." }
SMS or email the URL. The applicant finishes in five minutes.docs →
GET /v3/session/{id}/decision/Decision
$ curl https://verification.didit.me/v3/session/$SESSION/decision/ \
  -H "x-api-key: $DIDIT_API_KEY"

# Decision payload (excerpted):
{ "status": "Approved",
  "proof_of_address": { "status": "Approved", "address": { ... } },
  "database_validation": { "service": "uk_right_to_rent" } }
200OKstatus Approved · In Review · Declined · Resubmitted
Forward the signed pack to the landlord.docs →
Agent-ready integration

Ship tenant screening in one prompt.

Paste into Claude Code, Cursor, Codex, Devin, Aider, or Replit Agent. Fill in your stack. The agent builds the workflow, fires the session per applicant, drives the optional guarantor flow, and wires the webhook.
didit-integration-prompt.md
You are integrating Didit into a residential-leasing platform (PropTech / build-to-rent / letting-agent archetype). You owe the landlord (or your platform owes the landlord) an evidence pack on every applicant before the keys come off the hook.

Four obligations on every application:

  1. Verify the applicant's identity — government ID + liveness + face match.
  2. Validate the current address — utility, bank, or registry-issued letter, cross-checked against the ID.
  3. Confirm lease eligibility — Right to Rent (UK) / state-of-residence (US) / residency document (EU) / national tax id (LatAm).
  4. Screen the applicant against sanctions, Politically Exposed Persons (PEP), and adverse-media lists.

Optional: run the same flow against a guarantor and stitch both back to the lease record.

Pricing (verified live):
  - Tenant KYC bundle: $0.33 per applicant (ID + Liveness + Face Match + IP + AML)
  - Proof of Address: $0.20 per check
  - Database Validation (right-to-rent / national id): variable, per-jurisdiction
  - Linked guarantor KYC: $0.33 per guarantor
  - First 500 KYC 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.
  - A workflow_id from the Workflow Builder that bundles ID Verification + Passive Liveness + Face Match 1:1 + Proof of Address + AML Screening + the jurisdiction-specific Database Validation node.
  - Optional: a separate KYC workflow_id for the guarantor.

STEP 1 — Create the tenant session

  POST https://verification.didit.me/v3/session/
  Headers:
    x-api-key: <your api key>
    Content-Type: application/json
  Body:
    {
      "workflow_id": "<your tenant-screening workflow id>",
      "vendor_data": "<your applicant id, max 256 chars>",
      "callback_url": "https://<your-app>/applications/kyc/callback",
      "expected_country": "GB",
      "metadata": {
        "application_id": "<your internal id>",
        "property_id": "<unit reference>"
      }
    }

  Response: 201 Created with the hosted session URL. SMS or email the URL to the applicant; they complete everything on their phone in under five minutes.

STEP 2 — Read the signed webhook on KYC completion

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

  Body (excerpted):
    {
      "session_id": "<uuid>",
      "vendor_data": "<your applicant id>",
      "status": "Approved",
      "id_verification": { "status": "Approved", "document_type": "passport", "country_code": "GB" },
      "liveness": { "status": "Approved" },
      "face": { "status": "Approved", "similarity_score": 0.94 },
      "proof_of_address": { "status": "Approved", "document_type": "utility_bill", "address": { "line1": "10 Long Acre", "city": "London", "postal_code": "WC2E 9LH", "country": "GB" } },
      "aml": { "status": "Approved", "hits": [] },
      "database_validation": { "status": "Approved", "service": "uk_right_to_rent", "result": { "share_code_status": "valid", "expiry_date": "2027-08-12" } }
    }

  Session 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.

STEP 3 — (Optional) Spawn a guarantor session

  If the workflow declares a guarantor step, the parent session returns a guarantor_session_url inside the decision payload. Email it to the guarantor and they run the same KYC flow on their phone. The result threads back to the parent tenant record automatically.

  Alternatively, fire a second POST /v3/session/ with a separate guarantor workflow_id and stitch the two together by setting metadata.tenant_session_id on the guarantor call.

STEP 4 — Retrieve the full evidence pack

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

  Returns the full decision payload — ID block, liveness block, face match, proof-of-address result with the canonical address fields, AML hits, database-validation outcome. Use this for audit-pack export and for rendering the applicant status in your letting-agent dashboard.

STEP 5 — Decide

  Branch logic:
    Approved    → forward the pack to the landlord, advance to lease signing.
    In Review   → hold the application, wait for analyst webhook update.
    Declined    → refuse the application, log the decline reason.
    Resubmitted → applicant updated something; re-read the decision.

  For Database Validation specifically — if the result indicates an expired Right to Rent share code, ask the applicant for a fresh one before moving forward.

STEP 6 — Ongoing monitoring (long leases)

  For multi-year tenancies, enable Ongoing AML at $0.07/user/year. The session status updates automatically when the tenant lands on a new sanctions list or document expirations approach (passport, visa, residency permit). Your webhook fires on every state change.

  No separate endpoint to call — the same workflow drives it.

WEBHOOK EVENT NAMES
  - status.updated — session status changed.
  - data.updated — session data changed (resubmission, expiry, ongoing AML hit).

  Verify X-Signature-V2 on every payload. The webhook secret is per-environment — sandbox key is separate from production.

CONSTRAINTS
  - Session statuses use Title Case With Spaces (Approved, In Review).
  - Default record retention is 5 years per tenant per the EU AML package; UK Right to Rent requires document copies for the tenancy duration + one year.
  - The address on the Proof of Address document MUST match the address on the underlying ID for an Approved outcome; if they differ, the session flips to In Review.

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/proof-of-address/overview
  - https://docs.didit.me/core-technology/aml-screening/overview
  - 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 fully-screened tenant — KYC bundle + Proof of Address.
  • 0+
    Sanctions, PEP, and adverse-media lists screened on every applicant.
  • <0s
    End-to-end KYC result per session, on entry-level Android.
  • 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