> ## Documentation Index
> Fetch the complete documentation index at: https://docs.colismove.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Vérification KYC

> Flux de vérification d'identité via Didit V2

# Vérification KYC

ColisMove utilise **Didit V2** pour la vérification d'identité KYC (Know Your Customer). Les utilisateurs doivent finaliser le KYC pour débloquer les fonctionnalités transporteur (création d'annonces).

## Vue d'ensemble du flux

```mermaid theme={null}
sequenceDiagram
    participant User
    participant API as ColisMove API
    participant Didit as Didit V2
    
    User->>API: POST /kyc/init
    API->>Didit: Create verification session
    Didit->>API: Session URL
    API->>User: {sessionUrl, status: "PENDING"}
    User->>Didit: Complete verification (ID scan, selfie)
    Didit->>API: Webhook callback (APPROVED/DECLINED)
    API->>User: Push notification with result
```

## Étape 1 : Initialiser la vérification

```bash theme={null}
POST /v1/api/kyc/init
```

**Réponse :**

```json theme={null}
{
  "sessionUrl": "https://verify.didit.me/session/abc123",
  "status": "PENDING"
}
```

Rediriger l'utilisateur vers la `sessionUrl` pour finaliser la vérification.

## Étape 2 : L'utilisateur finalise la vérification

L'utilisateur est redirigé vers l'interface de vérification Didit où il doit :

1. Scanner son document d'identité (passeport ou carte nationale)
2. Prendre un selfie pour la reconnaissance faciale
3. Attendre la vérification automatisée

## Étape 3 : Vérifier le statut

```bash theme={null}
GET /v1/api/kyc/status
```

**Réponse :**

```json theme={null}
{
  "status": "APPROVED",
  "verifiedAt": "2026-04-13T14:30:00Z"
}
```

## Statuts KYC

| Statut        | Description                            | Effet                                                 |
| ------------- | -------------------------------------- | ----------------------------------------------------- |
| `NOT_STARTED` | L'utilisateur n'a jamais initié de KYC | Ne peut pas créer d'annonces                          |
| `PENDING`     | Vérification en cours                  | Ne peut pas créer d'annonces                          |
| `APPROVED`    | Identité vérifiée                      | Rôle promu à `VERIFIED_USER`, peut créer des annonces |
| `DECLINED`    | Vérification échouée                   | Peut réessayer via `POST /kyc/init`                   |
| `EXPIRED`     | Session expirée avant achèvement       | Peut réessayer via `POST /kyc/init`                   |

## Traitement du webhook

Lorsque Didit envoie le résultat via webhook (`POST /v1/api/webhooks/didit`) :

* **APPROVED** : le rôle de l'utilisateur est promu à `ROLE_VERIFIED_USER`, ce qui active la création d'annonces
* **DECLINED** : l'utilisateur est notifié et peut réessayer
* **EXPIRED** : l'utilisateur est notifié et peut initier une nouvelle session

<Tip>
  La vérification KYC est un processus unique. Une fois approuvé, l'utilisateur conserve son statut vérifié de manière permanente.
</Tip>
