Step 1: Get Your Credentials
From the Didit Console
- Go to Didit Console
- Create or select your organization
- Navigate to Settings → API Keys
- Copy your credentials:
- API Key – For authenticating API requests
- Webhook Secret Key – For verifying webhook signatures
Environment Variables
Add these to your.env file:
Step 2: Create a Workflow
Before creating sessions, you need a verification workflow. Workflows define what verification steps users go through.Create in Console
- Go to Didit Console → Workflows
- Click Create Workflow
- Choose a base template:
| Template | Best For |
|---|---|
| KYC | Full identity verification with ID document |
| Adaptive Age Verification | Age verification with optional ID backup |
| Biometric Authentication | Re-verifying returning users |
| Address Verification | Proof of address verification |
- Add optional features:
| Feature | Description |
|---|---|
| NFC Verification | Read passport/ID chip data |
| Liveness Detection | Prevent spoofing with selfie video |
| Face Matching | Match selfie to document photo |
| Phone Verification | Verify phone number via SMS |
| Email Verification | Verify email address |
| AML Screening | Check against sanctions/PEP lists |
| Database Validation | Verify against government databases |
| IP Analysis | Detect VPNs, proxies, geolocation |
- Copy your Workflow ID
See Workflows Documentation for detailed
configuration options.
Step 3: Create a Verification Session
Call the API to create a session for your user.Request
Request Parameters
| Parameter | Required | Description |
|---|---|---|
workflow_id | ✅ Yes | Your workflow ID from the Console |
callback | ✅ Yes | URL to redirect user after verification |
vendor_data | ❌ Optional | Your internal user identifier (returned in webhooks) |
metadata | ❌ Optional | Custom JSON data stored with the session |
contact_details | ❌ Optional | User’s email/phone for prefill and notifications |
expected_details | ❌ Optional | Expected user details for cross-validation |
Full Example with All Options
Response
Key Response Fields
| Field | Description |
|---|---|
session_id | Unique identifier for this session |
session_token | Token for SDK initialization |
verification_url | URL to redirect user or embed in iframe |
status | Current status (Not Started, In Progress, etc.) |
See Create Session API Reference for complete
documentation.
Step 4: Present Verification to User
Choose how to present the verification flow to your user:Option A: Native SDK (Recommended for Mobile)
Use thesession_token with our native SDKs for the best user experience:
Option B: InContext Iframe (Recommended for Web)
Embed the verification in your page:Option C: Redirect
Redirect the user to the verification URL:Option D: Mobile WebView
For mobile apps without native SDK:Step 5: Receive Results
Via Webhook (Recommended)
Webhooks notify your server in real-time when verification status changes. Setup:- Configure your webhook URL in the Console
- Implement a webhook endpoint on your server
Via API (Optional)
You can also fetch results via API:Complete Code Examples
Node.js / Express
Python / FastAPI
Session Statuses
| Status | Description |
|---|---|
Not Started | Session created but user hasn’t begun |
In Progress | User is currently completing verification |
In Review | Verification needs manual review |
Approved | Verification successful |
Declined | Verification failed |
Abandoned | User left without completing |
Expired | Session expired (default: 7 days) |
Next Steps
-
Choose your integration method:
- Mobile apps → Native SDKs
- Web apps → Web SDKs
- Configure webhooks: Webhooks Guide
- Customize your workflow: Workflows Documentation
- Test in sandbox: Use test credentials before going live
Need Help?
- 📧 Support: [email protected]