KYC Verification
ColisMove uses Didit V2 for Know Your Customer (KYC) identity verification. Users must complete KYC to unlock carrier features (creating announcements).
Flow Overview
Step 1: Initialize Verification
Response:
{
"sessionUrl": "https://verify.didit.me/session/abc123",
"status": "PENDING"
}
Redirect the user to the sessionUrl to complete verification.
Step 2: User Completes Verification
The user is redirected to Didit’s verification interface where they:
- Scan their identity document (passport or national ID)
- Take a selfie for facial matching
- Wait for automated verification
Step 3: Check Status
Response:
{
"status": "APPROVED",
"verifiedAt": "2026-04-13T14:30:00Z"
}
KYC Statuses
| Status | Description | Effect |
|---|
NOT_STARTED | User has never initiated KYC | Cannot create announcements |
PENDING | Verification in progress | Cannot create announcements |
APPROVED | Identity verified | Role upgraded to VERIFIED_USER, can create announcements |
DECLINED | Verification failed | Can retry with POST /kyc/init |
EXPIRED | Session expired before completion | Can retry with POST /kyc/init |
Webhook Processing
When Didit sends the result via webhook (POST /v1/api/webhooks/didit):
- APPROVED: User role is upgraded to
ROLE_VERIFIED_USER, enabling announcement creation
- DECLINED: User is notified and can retry
- EXPIRED: User is notified and can initiate a new session
KYC verification is a one-time process. Once approved, the user retains their verified status permanently.