> ## 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.

# Référence API Didit : API REST de vérification d'identité

> Référence de l'API REST Didit : KYC, KYB, AML, biométrie, surveillance des transactions. OpenAPI, tarifs à l'usage, $10 offerts/mois.



Invite d'intégration de l'API autonome
        Copier le prompt dans le presse-papiers



      
      

\<pre>

\``Integrate Didit standalone verification APIs into my backend for server-to-server identity checks.

\## Available Standalone APIs

\### Identity & Documents
\- POST /v3/id-verification/ — multipart/form-data: front_image (required), back_image (optional). Returns: { request_id, id_verification: { status, first_name, last_name, document_type, document_number, date_of_birth, nationality, expiration_date, issuing_state, address, parsed_address, warnings[] } }
\- POST /v3/poa/ — multipart/form-data: document (PDF/image). Returns: { request_id, poa: { status, document_type, issuer, poa_address, poa_parsed_address, issue_date, warnings[] } }
\- POST /v3/database-validation/ — JSON: { issuing_state, validation_type, first_name, last_name, date_of_birth, personal_number, ... }. Returns: { request_id, database_validation: { status, validations } }

\### Document AI
\- POST /v3/document-ai/ — multipart/form-data: document (PDF/image), fields (one JSON-encoded array string of { key, name, instruction, type: "text"|"number"|"date", required, is_full_name }, 1-30 items), expected_first_name + expected_last_name OR expected_company_name (+ expected_company_country), document_ai_name_match_score_threshold (default 80), per-risk *_action params. Returns: { request_id, document_ai: { status, extracted_data: { <key>: value|null }, detected_codes[], fields[], name_match_score, name_on_document, warnings[] } }. $0.20 per document.

\### Biometrics & Face
\- POST /v3/passive-liveness/ — multipart/form-data: user_image. Returns: { request_id, passive_liveness: { status, score, method } }
\- POST /v3/face-match/ — multipart/form-data: user_image + ref_image. Returns: { request_id, face_match: { status, score } }
\- POST /v3/face-search/ — multipart/form-data: user_image. Returns: { request_id, face_search: { status, total_matches, matches[] } }
\- POST /v3/age-estimation/ — multipart/form-data: user_image. Returns: { request_id, age_estimation: { status, age_estimation, score } }

\### Compliance
\- POST /v3/aml/ — JSON: { full_name, entity_type, date_of_birth, nationality, document_number, include_adverse_media, include_ongoing_monitoring }. Returns: { request_id, aml: { status, total_hits, hits[], score, entity_type } }

\### Business Verification (KYB)
\- POST /v3/kyb/search/ — JSON: { country_code (required), name, registration_number, tier: "basic" (default) | "shareholders" | "ubo", search_type: "contains", webhook_url, vendor_data, metadata }. `tier` picks the provider chain the search runs on; retrieve the candidate from select (Lite), shareholders or ubo. Up to $0.50 per successful request, separately from profile retrieval; empty results and failures are not charged. Returns: { request_id, kyb_registry: { companies[] ({ kyb_response_id, name, registration_number, status, type, fetch_status }), pagination, search_status, search_resolved } }. `kyb_response_id` is an opaque handle — pass it straight to select/shareholders/ubo, never parse it.
\- POST /v3/kyb/select/ — JSON: { kyb_response_id (from search), save_api_request, vendor_data, metadata }. **Lite** tier, priced per country ([per-country prices](https://docs.didit.me/getting-started/kyb-registry-pricing.md)). Returns: { request_id, kyb_registry: { status, company_name, registration_number, country_code, company_type, incorporation_date, registered_address, officers[], beneficial_owners[], fetch_status, data_resolved, ... } }
\- POST /v3/kyb/shareholders/ and POST /v3/kyb/ubo/ — same JSON shape as select. **Shareholders** and **UBOs** tiers, priced per country; delivered and billed as the highest tier the country's registries can serve. v3 only.

\### Contact Verification
\- POST /v3/email/send/ — JSON: { email }. Sends OTP code.
\- POST /v3/email/check/ — JSON: { email, code }. Verifies OTP.
\- POST /v3/phone/send/ — JSON: { phone, channel }. Sends OTP via SMS/WhatsApp/Telegram.
\- POST /v3/phone/check/ — JSON: { phone, code }. Verifies OTP.

\### Bank Verification
\- POST /v3/bank/account-check/ - JSON: { country (ISO 3166-1 alpha-3), account: { iban } or { account_number, sort_code | routing_number | ifsc | bsb | transit_institution | bank_code } or { clabe } or { cbu_cvu }, holder: { full_name } or { business_name }, vendor_data }. Checks that a bank account belongs to the name, with no session. Returns: { request_id, result: match | close_match | no_match | cannot_verify, holder_name (close_match only), account (masked), vendor_data, created_at }. Billed once per check the bank answers; errors are never billed.

\## Authentication
All requests require: Headers: { "x-api-key": DIDIT_API_KEY }
For file uploads: multipart/form-data. For JSON: Content-Type: application/json.

\## Common Parameters
\- save_api_request (bool, default true): if true, appears in Console > Manual Checks
\- vendor_data (string): your internal ID for tracking

\## Example: ID Verification (Node.js)
const FormData = require('form-data');
const fs = require('fs');
const form = new FormData();
form.append('front_image', fs.createReadStream('./id_front.jpg'));
form.append('back_image', fs.createReadStream('./id_back.jpg'));

const response = await fetch('https://verification.didit.me/v3/id-verification/', {
method: 'POST',
headers: { 'x-api-key': process.env.DIDIT_API_KEY, ...form.getHeaders() },
body: form
});
const result = await response.json();
// result.id_verification.status: "Approved" or "Declined"
// result.id_verification.first_name, .last_name, .document_number, etc.

\## Example: AML Screening
const response = await fetch('https://verification.didit.me/v3/aml/', {
method: 'POST',
headers: { 'x-api-key': process.env.DIDIT_API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({
full_name: 'John Doe',
entity_type: 'person',
date_of_birth: '1990-01-15',
nationality: 'US'
})
});
const result = await response.json();
// result.aml.status, result.aml.total_hits, result.aml.hits

\## When to Use Standalone APIs vs Sessions
\- Standalone: you have images/data, server-to-server, batch processing, custom UX
\- Sessions: user-facing flows where Didit handles camera, UX, multi-step, 54 languages

\## Rate Limits
\- Free: 10/min. Paid: 600/min. Exceeded: HTTP 429.

\## Environment Variables
\- DIDIT_API_KEY — from Didit Console > API & Webhooks

\## Docs
\- API Reference: https://docs.didit.me/api-reference/overview
\- Sessions vs APIs: https://docs.didit.me/api-reference/overview
\- Webhooks: https://docs.didit.me/integration/webhooks``

\</pre>



      
      

Coller dans

Didit propose **deux approches complémentaires** de la vérification d'identité. Comprendre la différence est essentiel pour choisir l'intégration adaptée à votre cas d'usage.### [Sessions hébergées](https://docs.didit.me/fr/sessions-api/create-session.md)Parcours de vérification complets avec une interface optimisée et prête à l'emploi. Les utilisateurs interagissent avec l'interface hébergée de Didit par redirection, iframe ou SDK natif.### [API autonomes](https://docs.didit.me/fr/standalone-apis/id-verification.md)Appels API directs de serveur à serveur. Vous envoyez des données (images, documents, noms) et recevez des résultats de vérification structurés, sans interface utilisateur destinée à l'utilisateur final.***## Sessions hébergées (recommandées pour les parcours utilisateur)Les sessions hébergées constituent l'**approche recommandée** pour la plupart des intégrations. Lorsque vous créez une session, Didit génère un `verification_url` que vous présentez à votre utilisateur. L'utilisateur effectue l'ensemble du parcours de vérification dans l'interface optimisée de Didit, et vous recevez les résultats par webhook ou par API.### Fonctionnement**1. Créer une session**Votre serveur appelle `POST /v3/session/` avec un ID de workflow. Didit renvoie un `verification_url` et un `session_token`.**2. Présenter à l'utilisateur**Redirigez l'utilisateur, intégrez l'interface via un iframe ou initialisez un SDK natif avec le token de session.**3. L'utilisateur termine la vérification**L'utilisateur suit le parcours guidé dans l'interface optimisée de Didit : capture de la pièce d'identité, détection du vivant et étapes supplémentaires éventuelles.**4. Recevoir les résultats**Didit envoie un webhook à votre serveur avec la décision de vérification, ou vous interrogez l'API de récupération.### Pourquoi les sessions sont recommandées| Avantage | Détails |
| - | - |
| **UX optimisée** | L'interface de vérification fait l'objet de tests A/B continus à l'échelle mondiale pour obtenir les taux de finalisation les plus élevés |
| **Gestion de la caméra** | Sélection intelligente de la caméra, capture automatique, contrôles de qualité et compatibilité des appareils intégrés |
| **Parcours guidé** | Instructions étape par étape, retour en temps réel et récupération en cas d'erreur pour l'utilisateur |
| **Workflows multifonctions** | Enchaînez plusieurs fonctionnalités (vérification d'identité + détection du vivant + AML + téléphone + e-mail) dans un seul parcours |
| **Sécurité** | Anti-usurpation, détection active du vivant et empreinte de l'appareil intégrées au parcours |
| **Conformité** | Journaux d'audit au niveau de la session, recueil du consentement et politiques de conservation des données gérées automatiquement |
| **Localisation** | 54 langues avec détection automatique du navigateur |
| **Natif mobile** | SDK natifs pour iOS, Android, React Native et Flutter |
| **Aucune maintenance** | Didit prend en charge toutes les mises à jour de l'interface, les bugs de navigateur et d'appareil, ainsi que les cas limites de la caméra |### Quand utiliser les sessions- **Onboarding / KYC** : de nouveaux utilisateurs s'inscrivent et doivent vérifier leur identité
- **Vérification de l'âge** : confirmer que les utilisateurs remplissent les exigences d'âge minimum
- **Revérification** : revérifier périodiquement les utilisateurs existants
- **Authentification biométrique** : les utilisateurs s'authentifient par leur visage pour les actions sensibles
- **Conformité multi-étapes** : parcours nécessitant vérification d'identité, détection du vivant, AML et téléphone en une seule fois
- Tout scénario où l'utilisateur final est présent et interagit directement### Endpoints de session| Endpoint | Finalité |
| - | - |
| [Créer une session](https://docs.didit.me/fr/sessions-api/create-session.md) | Générer une URL de vérification pour un utilisateur |
| [Récupérer une session](https://docs.didit.me/fr/sessions-api/retrieve-session.md) | Obtenir les résultats complets et la décision pour une session |
| [Lister les sessions](https://docs.didit.me/fr/sessions-api/list-sessions.md) | Interroger et filtrer toutes les sessions |
| [Supprimer une session](https://docs.didit.me/fr/sessions-api/delete-session.md) | Supprimer une session et toutes les données associées |
| [Générer un PDF](https://docs.didit.me/fr/sessions-api/generate-pdf.md) | Exporter un rapport de vérification au format PDF |
| [Partager une session](https://docs.didit.me/fr/sessions-api/share-session/share.md) | Générer un token de partage pour le KYC réutilisable avec un partenaire |
| [Importer une session partagée](https://docs.didit.me/fr/sessions-api/share-session/import.md) | Importer une session partagée par un partenaire (KYC réutilisable) |***## API autonomes (pour le traitement serveur à serveur)Les API autonomes vous permettent d'appeler des fonctionnalités de vérification individuelles **directement depuis votre serveur**, sans interface utilisateur. Vous envoyez les données (images, documents, noms) et vous recevez des résultats structurés.### Fonctionnement**1. Envoyer les données**Votre serveur appelle un endpoint autonome (par exemple `POST /v3/id-verification/`) avec les données requises : images, documents ou champs JSON.**2. Recevoir les résultats**Didit traite la requête de manière synchrone et renvoie les résultats de vérification structurés dans la réponse.### Quand utiliser les API autonomes| Cas d'usage | Exemple |
| - | - |
| **Traitement côté serveur** | Vous disposez déjà d'images de documents issues de votre propre interface de capture et devez les vérifier |
| **Vérification par lots** | Traitement en masse de documents d'identité importés par une équipe opérationnelle |
| **UX personnalisée** | Vous avez créé votre propre parcours de capture et souhaitez utiliser Didit uniquement pour l'analyse |
| **Contrôles serveur à serveur** | Filtrage AML d'une liste de clients, sans aucune interaction de l'utilisateur |
| **Pipelines automatisés** | Revérifications de conformité en CI/CD ou via cron (par exemple, surveillance AML quotidienne) |
| **Intégration aux systèmes existants** | Connexion de la vérification Didit à votre système de gestion documentaire existant |
| **Appels à une seule fonctionnalité** | Vous n'avez besoin que d'une fonctionnalité (par exemple, uniquement le filtrage AML ou uniquement la correspondance faciale) |### API autonomes disponibles**Identité et documents**| API | Fonction |
| - | - |
| [Vérification d'identité](https://docs.didit.me/fr/standalone-apis/id-verification.md) | Extraire et valider les données des documents d'identité (images recto et verso) |
| [Justificatif de domicile](https://docs.didit.me/fr/standalone-apis/proof-of-address.md) | Vérifier les documents d'adresse (factures de services publics, relevés bancaires, documents gouvernementaux) |
| [Validation d'adresse](https://docs.didit.me/fr/standalone-apis/address-validation.md) | Confirmer qu'une adresse existe et la renvoyer normalisée, avec ses coordonnées |
| [Validation en base de données](https://docs.didit.me/fr/core-technology/database-validation/overview.md) | Recouper les données utilisateur avec les bases de données gouvernementales |**Document AI**| API | Fonction |
| - | - |
| [Document AI](https://docs.didit.me/fr/standalone-apis/document-ai.md) | Extraire les champs que vous définissez à partir de n'importe quel document (PDF ou image), avec correspondance des noms et contrôles d'altération |**Biométrie et visage**| API | Fonction |
| - | - |
| [Détection passive du vivant](https://docs.didit.me/fr/standalone-apis/passive-liveness.md) | Vérifier qu'une personne réelle est présente (anti-usurpation) à partir d'une seule image |
| [Correspondance faciale](https://docs.didit.me/fr/standalone-apis/face-match.md) | Comparer deux visages pour déterminer s'il s'agit de la même personne |
| [Recherche faciale](https://docs.didit.me/fr/standalone-apis/face-search.md) | Rechercher un visage parmi toutes les sessions vérifiées précédemment (1:N) |
| [Estimation de l'âge](https://docs.didit.me/fr/standalone-apis/age-estimation.md) | Estimer l'âge d'une personne à partir d'une image de son visage |**Conformité et risque**| API | Fonction |
| - | - |
| [Filtrage AML](https://docs.didit.me/fr/standalone-apis/aml-screening.md) | Filtrer des personnes ou des entreprises par rapport aux sanctions, aux PEP et aux listes de surveillance |**Vérification bancaire**| API | Fonction |
| - | - |
| [Vérification de compte](https://docs.didit.me/fr/standalone-apis/bank-account-check.md) | Vérifier qu'un compte bancaire appartient à la personne ou à l'entreprise que vous indiquez, avant d'envoyer de l'argent vers ce compte |**Vérification d'entreprise (KYB)**| API | Fonction |
| - | - |
| [Recherche dans les registres KYB](https://docs.didit.me/fr/standalone-apis/kyb-registry-search.md) | Rechercher dans les registres des sociétés par nom, numéro d'immatriculation et pays ; jusqu'à \$0.50 par requête réussie |
| [Sélection dans les registres KYB](https://docs.didit.me/fr/standalone-apis/kyb-registry-select.md) | Récupérer le profil complet du registre (dirigeants, bénéficiaires effectifs, adresses) pour une entreprise sélectionnée |***## Comparaison côte à côte| | Sessions hébergées | API autonomes |
| - | - | - |
| **Effort d'intégration** | Faible : redirection, iframe ou SDK | Moyen : vous gérez la capture et l'envoi des données |
| **Interaction utilisateur** | Oui : l'utilisateur termine le parcours dans l'interface Didit | Non : communication uniquement serveur à serveur |
| **Caméra et capture** | Prises en charge par Didit (optimisées) | Vous fournissez les images et les données |
| **Parcours multi-fonctionnalités** | Oui : enchaînez les fonctionnalités dans un workflow | Une fonctionnalité par appel d'API |
| **Optimisation de l'UX** | Testée en continu en A/B | Vous contrôlez l'UX |
| **Localisation** | 54 langues, détectées automatiquement | Non applicable (pas d'interface) |
| **Webhooks** | Notifications de statut automatiques | Non applicable (réponse synchrone) |
| **Temps de réponse** | Asynchrone (l'utilisateur termine à son rythme) | Synchrone (quelques secondes) |
| **Idéal pour** | Onboarding et vérification côté utilisateur | Traitement backend et automatisation |
| **Visibilité dans la console** | Cycle de vie complet de la session dans le tableau de bord | Apparaît dans la section Manual Checks |***## Peut-on utiliser les deux**Oui.** De nombreuses équipes combinent les deux approches :1) **Sessions pour l'onboarding** : les nouveaux utilisateurs suivent le parcours de vérification hébergé complet lors de leur inscription
2) **AML autonome pour la surveillance continue** : une tâche cron repasse chaque nuit tous les utilisateurs approuvés au crible des listes de surveillance mises à jour
3) **Recherche faciale autonome pour la détection de doublons** : lorsqu'une nouvelle session est approuvée, votre serveur appelle l'API de recherche faciale pour vérifier l'existence de doublons
4) **Vérification d'identité autonome pour les opérations** : votre équipe des opérations importe manuellement des documents pour l'examen des cas limites### Exemple : architecture combinée| Votre application | API Didit | Type |
| - | - | - |
| **Parcours d'inscription utilisateur** | API Sessions (interface hébergée) | Côté utilisateur |
| **Refiltrage AML nocturne** | API AML autonome | Serveur à serveur |
| **Examen des documents par l'équipe des opérations** | API Vérification d'identité autonome | Serveur à serveur |
| **Détection de visages en double** | API Recherche faciale autonome | Serveur à serveur |***## Pour commencer### [Démarrage rapide avec les sessions](https://docs.didit.me/fr/integration/api-full-flow.md)Créez votre première session de vérification hébergée en 5 minutes.### [Authentification API](https://docs.didit.me/fr/getting-started/api-authentication.md)Obtenez votre clé API et commencez à envoyer des requêtes authentifiées.### [Configurer les webhooks](https://docs.didit.me/fr/integration/webhooks.md)Recevez des notifications en temps réel lorsque le statut de vérification change.### [Créer un workflow](https://docs.didit.me/fr/console/workflows.md)Créez des parcours de vérification personnalisés dans la Business Console.***


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