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

# Vérification d'identité : guide de démarrage rapide

> Créez votre flux KYC avec Didit en quelques minutes : workflow no-code, session et webhooks. $10 de crédit gratuit/mois.

Ce guide de démarrage rapide vous guide depuis un nouveau compte Didit jusqu'à une vérification d'identité en production : créez votre compte, concevez un workflow de vérification à partir d'un modèle, configurez un webhook et copiez votre clé API, lancez une session de vérification en un seul appel API et recevez la décision en temps réel.Cette page est associée à la leçon de l'Academy ci-dessous : un enregistrement d'écran de 19 minutes qui montre la création d'un workflow de vérification dans la console réelle, du modèle jusqu'au flux publié, incluant les règles, le branchement, les tarifs et le lien partageable.[Build Your First Verification Flow — Didit Academy](https://www.youtube.com/embed/7-nJ3JE20i4?rel=0\&playsinline=1)

Prompt de démarrage rapide
        Copier le prompt dans le presse-papiers



      
      

\<pre>

\````# Goal — ship your first Didit verification end-to-end

You are integrating Didit (https://docs.didit.me) into my project. Take me from zero to a working KYC / KYB flow: account, workflow, session, hosted UI, webhook, decision.

For the full canonical recipe (5K-token version covering SDK pick, webhook HMAC verification, every status, decision parsing), use:

https://docs.didit.me/integration/integration-prompt

That page has a "Copy Prompt" button — copy its prompt and follow it. The summary below is enough to bootstrap if you can't fetch the full prompt.

\## My application context

\<my_stack>
Stack: [framework + language, e.g. Next.js 15 + TypeScript]
Surface: [web | iOS | Android | React Native | Flutter | backend-only]
Use case: [KYC at signup | KYB at business onboarding | age gate | re-auth]
Database: [Postgres | MySQL | Mongo]
\</my_stack>

\## Steps

1\. **Register programmatically (2 calls)** — `POST https://apx.didit.me/auth/v2/programmatic/register/` then `POST https://apx.didit.me/auth/v2/programmatic/verify-email/` with the 6-char code. Save `response.application.api_key` as `DIDIT_API_KEY`.

2\. **Create a workflow** —
\```bash
curl -X POST https://verification.didit.me/v3/workflows/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"workflow_label": "Standard KYC",
"workflow_type": "kyc",
"features": [
  \{"feature": "OCR"},
  \{"feature": "LIVENESS", "config": {"face_liveness_method": "PASSIVE"}},
  \{"feature": "FACE_MATCH"},
  \{"feature": "AML"}
]
}'
\```
Persist `workflow.id`.

3\. **Create a session** —
\```bash
curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"workflow_id": "$WORKFLOW_ID", "vendor_data": "user-42", "callback": "https://myapp.com/kyc/return"}'
\```
Response contains `session_id`, `url`, `session_token`. Redirect the user to `url` (or open in the SDK / an iframe).

4\. **Register a webhook destination** — `POST https://verification.didit.me/v3/webhook/destinations/` with `{"label": "Production", "url": "...", "subscribed_events": ["status.updated","data.updated","user.status.updated","user.data.updated"], "webhook_version": "v3"}` (`label` and `url` are required). Save the returned `secret_shared_key` as `DIDIT_WEBHOOK_SECRET` (`GET /v3/webhook/destinations/{destination_uuid}/` returns it again).

5\. **Receive webhooks** — verify the `X-Signature-V2` header (HMAC-SHA256 of canonical JSON; see /integration/webhooks). De-dupe on `event_id`. Respond within 5 seconds. Apply decision to your DB based on `status`.

6\. **Retrieve the decision (fallback)** — `GET https://verification.didit.me/v3/session/{session_id}/decision/`. V3 returns plural arrays (`id_verifications[]`, `liveness_checks[]`, `face_matches[]`, `aml_screenings[]`, ...). Never assume singular V2 fields.

\## Failure modes
\- Missing API key → `403 {"detail": "You do not have permission to perform this action."}` on verification.didit.me. Wrong, revoked or expired key → `401`. JWT problems on apx.didit.me → `403`.
\- Invalid `workflow_id` → `400`.
\- Webhook handler slower than 5s, or answering 5xx or 404 → Didit retries twice, after about 1 and 4 minutes, then drops the delivery. Resend it from the destination's delivery log.

\## Sources of truth (cross-check before shipping)
\- /openapi-25.json — verification API
\- /openapi-auth.json — programmatic auth
\- /reference/data-models — V3 decision shape
\- /integration/integration-prompt — canonical end-to-end prompt````

\</pre>



      
      

Coller dans

**1. Créez votre compte Didit**1) Rendez-vous sur [business.didit.me](https://business.didit.me)
2) Inscrivez-vous par SSO ou avec un e-mail et un mot de passe
3) Créez votre **Organisation** — c'est là que votre équipe gère les workflows, les clés API et l'activité de vérification**2. Construisez un workflow de vérification**Accédez à **Workflows** dans la barre latérale et cliquez sur **Create New**. Choisissez un type de workflow :| Type | Description |
| - | - |
| **Simple Workflow** | Les étapes s'exécutent dans un ordre défini — idéal pour les flux d'onboarding standards |
| **Node-Based Workflow** | Logique de branchement flexible — construisez des parcours conditionnels basés sur les résultats de vérification |Choisissez un modèle pour commencer :| Modèle | Cas d'usage |
| - | - |
| **KYC** | Onboarding utilisateur standard |
| **Vérification d'âge adaptative** | Vérification de l'âge par selfie avec recours à la pièce d'identité |
| **Authentification biométrique** | Réauthentification par selfie sans mot de passe |
| **Vérification d'adresse** | Flux de justificatif de domicile |Personnalisez en activant ou désactivant des blocs : Détection du vivant, Correspondance faciale, AML, NFC, Téléphone, E-mail et plus encore.L'extrait ci-dessous reprend la leçon de l'Academy à 2:50, où un nouveau workflow est créé à partir d'un modèle et configuré nœud par nœud.[Creating a new workflow from a template — Didit Academy](https://www.youtube.com/embed/7-nJ3JE20i4?start=170\&rel=0\&playsinline=1)**3. Configurez le webhook et copiez la clé API**Accédez à **Développeurs** dans la barre latérale, puis à **Clés API** et **Webhooks** :1. Ajoutez votre **URL du webhook** — Didit envoie les mises à jour de statut ici
2. Copiez votre **Clé API** — conservez-la uniquement côté serveur, ne l'exposez jamais dans le code frontend
3. Enregistrez le **secret de signature** de la destination sous le nom `DIDIT_WEBHOOK_SECRET` dans votre fichier `.env` — il est nécessaire pour vérifier le HMAC `X-Signature-V2` sur les webhooks entrants> [!TIP]
>
> Vous pouvez **tester les webhooks directement** depuis cette page avec différentes données et différents statuts — inutile de lancer une vérification complète. Cela vous permet de valider le bon fonctionnement de votre intégration avant de passer en production.**4. Démarrez une session de vérification****Option A — Sessions hébergées** (recommandées)Notre méthode d'intégration privilégiée. Didit effectue des tests A/B en continu sur le flux hébergé, afin que le taux de complétion, la rapidité et la résistance à la fraude s'améliorent sans que vous ayez à déployer la moindre interface utilisateur.Dans la Console, cliquez sur **"+"** → sélectionnez un workflow → générez un lien ou un QR code. Ou créez des sessions par programmation :```bash theme={null}
curl -X POST https://verification.didit.me/v3/session/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"workflow_id": "your-workflow-id"}'
```> [!NOTE]
>
> Retrouvez votre `workflow_id` sous **Workflows** dans la barre latérale.Dans la leçon d'intégration de l'Academy, cela correspond au repère 3:36 : l'appel de création de session avec son unique champ obligatoire, puis les données fournisseur et l'URL de rappel.[Create session: the one required field — Didit Academy](https://www.youtube.com/embed/fX03-WEu_EI?start=216\&rel=0\&playsinline=1)**Option B — API autonomes** (avancé)Appelez directement les endpoints depuis votre backend — aucune session requise. Idéal pour les flux de serveur à serveur ou personnalisés :| Endpoint | Objectif |
| - | - |
| `POST /v3/id-verification/` | Vérification de document |
| `POST /v3/face-match/` | Selfie vs pièce d'identité |
| `POST /v3/aml/` | Sanctions et PEP |
| `POST /v3/passive-liveness/` | Détection de deepfakes |Consultez la liste complète dans la [Référence de l'API](https://docs.didit.me/fr/standalone-apis/id-verification.md).**5. Recevez les résultats en temps réel**Didit envoie des événements webhook à votre endpoint — aucune interrogation périodique n'est nécessaire.| Événement | Déclencheur |
| - | - |
| `status.updated` | Changement de statut d'une session utilisateur ou d'une session d'entreprise |
| `data.updated` | Changement des données de vérification d'une session ou d'une session d'entreprise |
| `user.status.updated` | Changement de statut de l'utilisateur du fournisseur |
| `user.data.updated` | Changement du profil ou des données agrégées de l'utilisateur du fournisseur |
| `business.status.updated` | Changement de statut de l'entreprise du fournisseur |
| `business.data.updated` | Changement du profil ou des données agrégées de l'entreprise du fournisseur |
| `activity.created` | Événement d'activité enregistré |
| `transaction.created` | Transaction créée |
| `transaction.status.updated` | Changement de statut de la transaction |Consultez [Webhooks](https://docs.didit.me/fr/integration/webhooks.md) pour connaître le format du payload et la vérification de la signature.**6. Gérez et surveillez**Utilisez la Console pour :- Suivre la progression des sessions en temps réel
- Télécharger des rapports PDF/CSV pour la conformité
- Mettre sur liste de blocage les pièces d'identité ou visages suspects
- Mettre à jour manuellement ou rejeter des sessionsLa leçon de l'Academy sur la lecture des résultats passe en revue une session réelle vérification par vérification : avertissements, scores, journal des événements, livraisons de webhooks et l'export PDF que votre équipe de conformité demandera.[How to Read a Verification Result — Didit Academy](https://www.youtube.com/embed/7htTWCWsl60?rel=0\&playsinline=1)## Besoin d'aide> [card] [E-mail](mailto:hello@didit.me)
>
> [hello@didit.me](mailto:hello@didit.me)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.