Questionnaires
Didit Questionnaires let you design structured, dynamic forms to collect additional information during verification. Build no-code questionnaires, localize content, collect files, and route responses to manual review when required — all inside your verification workflows.
Trusted by +1000 companies worldwide
Visual builder
(Drag & drop)
Localization
(Per questionnaire)
Review-ready
(Approved / In Review)
HOW IT WORKS
WHY DIDIT QUESTIONNAIRES
Questionnaires are ideal for compliance-driven use cases like Source of Funds, Purpose of Relationship, or declarations — where human review and auditability are required.
Choose exactly which questions to ask, which fields are required, which uploads are needed, and whether all responses must go to manual review.
All answers are returned as structured JSON, including sections, items, user answers, file references, and status — easy to consume via API or review in the Console.
Add questionnaires to KYC workflows or run them standalone as a Questionnaire Verification — no extra infrastructure or tooling needed.
Full TRANSPARENCY
No 🛠️ setup fees. No 💸 minimums. No 🎊 surprises. Just crystal-clear pricing ✨ charged only for completed features.

THE EASIEST TO INTEGRATE
Use Didit with no code or with a single API call. Go live in minutes.
Key points
BUILT FOR AI AGENTS
The only identity platform your AI coding agent can fully integrate — credentials, workflows, webhooks, and production code — without opening a browser.
Paste this into Claude Code, Cursor, or Copilot. Your agent registers for API credentials, creates verification workflows, sets up webhooks, and writes integration code — end to end, from a single copy-paste.
Key points
Integrate Didit identity verification into this project.
Didit is an all-in-one identity platform. Docs: https://docs.didit.me
Base URL: https://verification.didit.me/v3
Auth API: https://apx.didit.me/auth/v2
## Step 1: Get API credentials (no browser needed)
Register programmatically — 2 API calls:
POST https://apx.didit.me/auth/v2/programmatic/register/
Body: { "email": "dev@yourapp.com", "password": "SecurePass123!" }
→ Sends 6-char OTP to email
POST https://apx.didit.me/auth/v2/programmatic/verify-email/
Body: { "email": "dev@yourapp.com", "code": "ABC123" }
→ Returns { api_key, organization, application }
Or login if already registered:
POST https://apx.didit.me/auth/v2/programmatic/login/
Body: { "email": "...", "password": "..." }
→ Returns { access_token, refresh_token }
All subsequent API calls use: x-api-key: YOUR_API_KEY
## Step 2: Create a verification workflow
POST https://verification.didit.me/v3/workflows/
Headers: { "x-api-key": "YOUR_API_KEY", "content-type": "application/json" }
Body: {
"name": "KYC Flow",
"features": {
"id_verification": true,
"passive_liveness": true,
"face_match": true,
"aml_screening": false,
"nfc": false,
"ip_analysis": true,
"phone_verification": false,
"email_verification": false,
"proof_of_address": false,
"age_estimation": false,
"database_validation": false,
"questionnaire": false
}
}
→ Returns { uuid: "workflow_id", ... }
Or list existing workflows: GET /v3/workflows/
## Step 3: Create verification sessions
POST https://verification.didit.me/v3/sessions/
Body: {
"workflow_id": "WORKFLOW_ID",
"vendor_data": "your-internal-user-id",
"callback": "https://yourapp.com/api/didit/webhook"
}
→ Returns {
session_id, session_token, session_number,
url: "https://verify.didit.me/session/TOKEN"
}
Redirect users to the url, or embed via SDK:
- Web: npm install @didit-protocol/sdk-web
- React Native: npx expo install @didit-protocol/sdk-react-native
- iOS: SPM github.com/didit-protocol/sdk-ios
- Android: me.didit:didit-sdk:3.2.0
- Flutter: flutter pub add didit_sdk
## Step 4: Get results
Option A — Webhook (recommended):
Configure callback URL. Didit sends POST with session data when status changes.
Verify webhook signature using your webhook secret (GET /v3/webhook/).
Option B — Poll:
GET https://verification.didit.me/v3/sessions/{session_id}/
Session statuses: Pending → In Progress → Approved | Declined | In Review | Expired
You can also: update status (PATCH /v3/sessions/{id}/status/),
generate PDF reports (POST /v3/sessions/{id}/generate-pdf/),
or delete sessions (DELETE /v3/sessions/{id}/).
## Standalone APIs (call individually without sessions)
POST /v3/id-verification/ — Submit document images, get OCR + authenticity
POST /v3/passive-liveness/ — Verify person is real from selfie
POST /v3/face-match/ — Compare two faces (similarity 0-100)
POST /v3/face-search/ — 1:N search against all approved sessions
POST /v3/age-estimation/ — Estimate age from face
POST /v3/aml-screening/ — Screen against 1,300+ watchlists
POST /v3/proof-of-address/ — Extract + validate address documents
POST /v3/database-validation/ — Government DB checks (18+ countries)
POST /v3/email/send/ + /v3/email/check/ — Email OTP
POST /v3/phone/send/ + /v3/phone/check/ — Phone OTP (SMS/WhatsApp)
## Pricing
Free core KYC: ID Verification + Passive Liveness + Face Match + IP Analysis (500 free/month)
Premium checks: Prepaid credits, no contracts, no minimums, credits never expire.
Details: https://didit.me/pricing
## Rate Limits
300 req/min per method, 600 session creations/min.
On 429: check Retry-After header.
CERTIFICATIONS
Our platform meets the highest international standards for information security, data privacy, and biometric accuracy.
Full EU data protection compliance
Information security management
PAD (liveness + face match)
TRUSTED WORLDWIDE
Join thousands of companies that trust Didit for their verification needs
QUESTIONNAIRES FAQ
Questionnaires are used to collect additional structured information from users when documents or automated checks are not sufficient. Common use cases include Source of Funds, Purpose of Relationship, declarations, and compliance disclosures.
Get a free account, instant sandbox, and full access to every feature. No contracts. No sales calls. No credit card required.