> ## 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 KYB en 10 minutes : démarrage rapide

> Vérifiez une entreprise en moins de 10 minutes avec Didit : registre, UBO, dirigeants, AML, webhooks. Dès $2.00 par vérification, sans engagement.

Ce guide vous accompagne dans une vérification KYB complète en moins de 10 minutes. Vous allez créer un workflow, démarrer une session, transmettre le lien de vérification hébergé à votre contact dans l'entreprise, attendre le webhook et récupérer la décision finale.

## Prérequis

* Une application Didit avec KYB activé. Créez-en une sur [business.didit.me](https://business.didit.me) si nécessaire.
* Une clé API issue de *Developer Settings → API Keys*.
* Un endpoint de webhook accessible depuis Internet (pour le webhook de décision).

## Étapes

**1. Créer un workflow KYB dans la console**

Rendez-vous dans *Workflows → Create workflow*. Choisissez **Vérification d'entreprise** comme type de workflow.

Activez les fonctionnalités dont vous avez besoin :

* **Consultation du registre des sociétés** (obligatoire)
* **AML de l'entreprise** (recommandé)
* **Personnes clés** (obligatoire pour la plupart des secteurs réglementés)
* **Documents** (facultatif : choisissez les types de documents que vous exigerez)

Enregistrez et copiez le `workflow_id`, que vous utiliserez à l'étape suivante.

**2. Créer une session de vérification d'entreprise (KYB) via l'API**

```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_KYB_WORKFLOW_ID",
    "vendor_data": "biz-acme-001"
  }'
```

La réponse contient `session_id`, `session_number` et `url`, c'est-à-dire le lien de vérification hébergé que vous transmettez au contact de l'entreprise. Le type de workflow (KYB) identifie automatiquement la session comme une session d'entreprise.

**3. Envoyer le lien à votre contact dans l'entreprise**

Transmettez le `url` à l'administrateur de l'entreprise par votre propre e-mail ou messagerie. Il l'ouvre, complète les données du registre, ajoute les personnes clés et les UBO, puis téléverse les documents.

Vous pouvez personnaliser l'expérience hébergée avec votre identité visuelle, votre logo et votre domaine. Voir [Marque blanche](https://docs.didit.me/fr/console/white-label.md).

**4. Recevoir le webhook de statut**

Lorsque l'entreprise termine le parcours et que le traitement KYB atteint un statut final, Didit envoie une requête POST avec un événement `status.updated` à votre endpoint de webhook. Les événements de session d'entreprise contiennent `session_kind: "business"` dans `data`. Filtrez sur ce champ pour acheminer l'événement vers votre gestionnaire KYB.

Vérifiez la signature HMAC `X-Signature-V2` avant de faire confiance à l'événement (voir [webhooks](https://docs.didit.me/fr/integration/webhooks.md)), puis déclenchez votre logique aval. Stockez le `secret_shared_key` de la destination (renvoyé lors de l'enregistrement du webhook) sous le nom `DIDIT_WEBHOOK_SECRET` dans votre fichier `.env`.

Exemple de payload :

```json theme={null}
{
  "event_id": "7f3c2c1e-6a1d-4c36-9d8e-0d3b5f4e2a10",
  "webhook_type": "status.updated",
  "session_id": "a1b2c3d4-5678-4abc-9def-1234567890ab",
  "business_session_id": "a1b2c3d4-5678-4abc-9def-1234567890ab",
  "session_kind": "business",
  "vendor_data": "biz-acme-001",
  "status": "Approved",
  "created_at": 1776515400,
  "timestamp": 1776515401,
  "decision": { "...": "full KYB decision" }
}
```

**5. Récupérer la décision (facultatif)**

> [!NOTE]
>
> Le payload du webhook `status.updated` contient déjà la décision complète. Vous n'avez besoin d'appeler cet endpoint que si vous ne vous êtes pas abonné aux webhooks, ou si vous souhaitez récupérer la décision plus tard à la demande.

```bash theme={null}
curl https://verification.didit.me/v3/session/bs_01H.../decision/ \
  -H "x-api-key: YOUR_API_KEY"
```

La décision comprend les données du registre, les personnes clés (UBO, actionnaires, dirigeants et représentants), les correspondances AML, les documents et les résultats par fonctionnalité. Consultez le [schéma de réponse](https://docs.didit.me/fr/business-verification/response-schema.md) pour la référence complète du payload.

**6. Agir selon la décision**

Selon la valeur de `status` :

* `"Approved"` : intégrez l'entreprise.
* `"Declined"` : rejetez la demande et consignez les étiquettes contenues dans `warnings[]` de la décision.
* `"In Review"` : attendez la décision de l'analyste ; vous recevrez un nouveau webhook lorsqu'elle sera rendue.

## Exemple Node.js

```typescript theme={null}
import fetch from 'node-fetch';

const API_KEY = process.env.DIDIT_API_KEY!;
const WORKFLOW_ID = process.env.DIDIT_KYB_WORKFLOW_ID!;
const BASE_URL = 'https://verification.didit.me';

async function startKybVerification(vendorData: string) {
  const res = await fetch(`${BASE_URL}/v3/session/`, {
    method: 'POST',
    headers: {
      'x-api-key': API_KEY,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ workflow_id: WORKFLOW_ID, vendor_data: vendorData }),
  });
  if (!res.ok) throw new Error(`Session create failed: ${res.status}`);
  return res.json();
}

async function getDecision(sessionId: string) {
  const res = await fetch(`${BASE_URL}/v3/session/${sessionId}/decision/`, {
    headers: { 'x-api-key': API_KEY },
  });
  return res.json();
}

// Kick off the flow
const { session_id, url } = await startKybVerification('biz-acme-001');
console.log('Deliver this URL to your contact:', url);

// ... later, after the webhook confirms completion:
const decision = await getDecision(session_id);
console.log('KYB status:', decision.status);
```

## Ce qui se passe automatiquement

* Consultation du registre des sociétés dans 190+ juridictions.
* Extraction des UBO et des dirigeants à partir des données du registre.
* Filtrage AML au niveau de l'entreprise (sanctions, PEP, presse négative).
* Filtrage AML au niveau de chaque personne identifiée.
* OCR des documents et recoupement des informations.
* Création et agrégation du [profil d'entreprise](https://docs.didit.me/fr/business-verification/business-profiles.md), indexées par `vendor_data`.

## Étapes suivantes

> [card] [Guide d'intégration](https://docs.didit.me/fr/business-verification/integration-guide.md)
>
> Architecture de bout en bout, interrogation périodique ou webhooks, logique de nouvelle tentative.

> [card] [Webhooks KYB](https://docs.didit.me/fr/business-verification/webhooks.md)
>
> Tous les événements KYB et la structure de leurs payloads.

> [card] [Statuts](https://docs.didit.me/fr/business-verification/statuses.md)
>
> Référence des statuts de session, de fonctionnalité et de registre.

> [card] [Schéma de réponse](https://docs.didit.me/fr/business-verification/response-schema.md)
>
> Le payload complet de la décision KYB.

> [card] [Entités d'entreprise](https://docs.didit.me/fr/entities/businesses/overview.md)
>
> Comment les profils s'agrègent d'une session à l'autre.


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