Passer au contenu principal
Didit lève 7,5 M$ pour bâtir l'infrastructure pour l'identité et la fraude
Didit
KYC réutilisable · eIDAS 2 (UE)

Vérifie une fois. Réutilise partout.

Un seul KYC à 0,33 $. L'utilisateur vérifié partage cette vérification Didit avec toute autre app équipée de Didit, avec divulgation sélective, gratuitement à chaque réutilisation. Cinq eID nationales sont actives aujourd'hui et l'acceptation du portefeuille EUDI arrive bientôt.

Soutenu par
Y CombinatorRobinhood Ventures
Firecrawl
Slash
Crnogorski Telekom
UCSF Neuroscape
Bit2Me

Approuvé par plus de 3 000 organisations dans le monde entier.

Ce que l'identité réutilisable débloque

L'identité dans la poche de l'utilisateur. Gratuit pour tous ceux qui l'acceptent.

Chaque KYC Didit peut être partagé comme une vérification KYC réutilisable signée avec d'autres applications utilisant Didit. Chaque plateforme réceptrice le lit gratuitement. Une seule vérification, pour toutes les entreprises qui acceptent Didit. Démarrez gratuitement.

Comment ça marche

De l'inscription à l'utilisateur vérifié en quatre étapes.

Étape 01 / 04

Crée le workflow

Choisis les vérifications que tu souhaites, pièce d'identité, détection du vivant, correspondance faciale, sanctions, adresse, âge, téléphone, e-mail, questions personnalisées. Glisse-les dans un flux sur le tableau de bord, ou publie le même flux sur notre API. Crée des branches conditionnelles, exécute des tests A/B, aucun code requis.

Conçu pour l'identité réutilisable · Prix d'infrastructure

Un KYC. Chaque plateforme après, gratuit.

Une véritable identité réutilisable n'est pas une simple fonctionnalité, c'est un système. Émission, détention, présentation, divulgation sélective, rafraîchissement, révocation. Tout cela sous une seule session /v3/.
01 · Vérifier une fois

Un KYC. Un identifiant émis.

La première fois, l'utilisateur passe le pack standard à 0,33 $ : pièce d'identité, liveness passif, face match, analyse de l'appareil et de l'IP. À la fin, Didit signe la vérification pour que l'utilisateur puisse la partager avec d'autres apps équipées de Didit.
Module de vérification utilisateur
02 · Divulgation sélective

Révèle uniquement ce dont le vérificateur a besoin.

Prouvez que vous avez plus de 18 ans sans révéler votre date de naissance. Prouvez votre pays sans révéler votre adresse. L'application réceptrice ne lit que les champs qu'elle demande, signés par Didit.
Module KYC réutilisable
03 · eID nationales

Cinq eID nationales, actives aujourd'hui.

MitID, BankID Suède, Finnish Trust Network, Smart-ID et Mobile-ID sont actives dans le même workflow. Les utilisateurs sans eID passent par la vérification du document avec lecture de la puce NFC, détection du vivant et correspondance faciale. L'acceptation du portefeuille EUDI arrive bientôt.
Vérification eID
04 · Émetteur · Détenteur · Vérificateur

Trois rôles. Un identifiant.

L'émetteur signe l'identifiant après le KYC. L'utilisateur le conserve dans son portefeuille. Le vérificateur valide la signature de l'émetteur uniquement sur les champs divulgués. Un triangle de confiance standard pour les identifiants vérifiables.
Sécurité & conformité
05 · Fraîcheur des identifiants

Fraîcheur des identifiants, automatique.

Le réexamen AML continu vérifie l'utilisateur quotidiennement. Expiration de document, changement de nom, sanctions, tout apparaît automatiquement sur l'identifiant. Les identifiants obsolètes sont rejetés au moment de la présentation.
Module de screening AML
06 · Réception gratuite

Gratuit pour chaque plateforme réceptrice.

L'émission est incluse avec chaque KYC. Le stockage du portefeuille est sur l'appareil de l'utilisateur. La présentation, la divulgation sélective et la validation de signature sont toutes gratuites, pour toujours. Le rafraîchissement AML continu est à $0.07 par utilisateur par an pour les comptes à fort volume.
Module KYC réutilisable
Intègre

Deux appels. Une vérification, partagée.

Partagez une session terminée depuis une application Didit et importez-la dans une autre. Le destinataire lit la décision complète sans demander à la personne de se vérifier à nouveau.
POST /v3/session/{id}/share/Partager
curl -X POST https://verification.didit.me/v3/session/$SESSION_ID/share/ \
  -H "x-api-key: $DIDIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "for_application_id": "<receiving-application-id>",
    "ttl_in_seconds": 3600
  }'
200OK{ "share_token": "eyJ…" }
Fonctionne sur une session terminée. Seule l'application que vous désignez peut utiliser le jeton.docs →
POST /v3/session/import-shared/Importer
curl -X POST https://verification.didit.me/v3/session/import-shared/ \
  -H "x-api-key: $RECEIVING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "share_token": "<share-token>",
    "trust_review": false,
    "workflow_id": "<receiving-workflow-uuid>",
    "vendor_data": "user-42"
  }'
201Créé{ "shared_from_session": "…" }
Renvoie la décision complète sous un nouvel identifiant de session. Mettez trust_review à false pour l'envoyer en In Review.docs →
Intégration prête pour agent

Déploie un flux d'identité réutilisable en une seule invite.

Collez-le dans Claude Code, Cursor, Codex, Devin, Aider ou Replit Agent. Indiquez votre stack. L'agent crée le workflow, la session, les appels de partage et d'import, et le webhook signé.
didit-integration-prompt.md
# Didit Reusable KYC: verify a person once, share the finished session with another application

You are adding Reusable KYC to my_stack. A person completes one identity
verification; the finished session is then shared with a second Didit
application, which imports the full decision without running the checks
again. Every URL, header and enum value below is canonical. Do not paraphrase
or "improve" them.

## 0. What exists, and what does not
- Reuse is server to server, between two Didit applications: the source
  application mints a share token for a finished session, the receiving
  application redeems it. Both sides use their own x-api-key.
- There is NO reusable_identity object on the webhook or the decision, NO
  metadata.request_fields or other selective-disclosure parameter, NO
  workflow setting that "accepts" a credential, and NO revocation event. Do
  not invent them. metadata on a session is free-form JSON that Didit echoes
  back, nothing more. The receiving application gets the whole decision.
- This is not an EU Digital Identity (EUDI) Wallet integration. Didit does
  not issue or accept EUDI Wallet credentials through these calls.

## 1. Provision
- Sign up: https://business.didit.me
- Source application: its API key. Receiving application: its API key and its
  application id (a UUID: shown in the console, and sent as application_id
  on every webhook that application receives). They are different
  applications; sharing a session with the application that owns it is
  refused.

## 2. Create the workflow for the first verification
POST https://verification.didit.me/v3/workflows/
  -H "x-api-key: <source-api-key>"
  -H "Content-Type: application/json"

{
  "workflow_label": "KYC onboarding",
  "features": [
    { "feature": "OCR" },
    { "feature": "LIVENESS" },
    { "feature": "FACE_MATCH" },
    { "feature": "IP_ANALYSIS" }
  ]
}

OCR is the ID Verification feature (uppercase, strict: ID_VERIFICATION is
rejected). Add { "feature": "AML" } for sanctions and PEP screening; it is
priced separately. Response: 201. The workflow id is uuid (workflow_id carries
the same value) and features comes back as one string, "OCR + LIVENESS + ...".
Create the workflow once and keep the id: every call makes a new one.
Prices: https://didit.me/pricing

## 3. Create a session
POST https://verification.didit.me/v3/session/
  -H "x-api-key: <source-api-key>"
  -H "Content-Type: application/json"
  -d '{ "workflow_id": "<uuid from step 2>", "vendor_data": "<your user id>" }'

Response: 201 with session_id, session_token, url and status "Not Started".
Redirect the user to url (hosted flow) or open it in the Web, iOS, Android,
React Native or Flutter SDK. The field is named url on this response.
One unfinished session exists per workflow_id and vendor_data pair: calling
create again with the same pair answers 201 again with that same session.
Optional: callback, a URL the user's browser is sent back to when the flow
ends. It is a browser redirect, not a webhook: never trust its query string.

## 4. Webhook
Register a destination in the console (API & Webhooks), or over the API:

POST https://verification.didit.me/v3/webhook/destinations/
  -H "x-api-key: <your-api-key>"
  -H "Content-Type: application/json"
  -d '{
    "label": "Verification webhooks",
    "url": "https://<your-public-host>/webhooks/didit",
    "webhook_version": "v3",
    "subscribed_events": ["status.updated", "data.updated"]
  }'

label, url and subscribed_events are required. url must be a public HTTPS
address: Didit does not deliver to localhost or private addresses. Response:
201 with uuid and secret_shared_key. Store secret_shared_key as the webhook
secret (DIDIT_WEBHOOK_SECRET); it is unique to this destination. Remove a
destination with DELETE /v3/webhook/destinations/{uuid}/ (204).

What arrives:
  - webhook_type is "status.updated" (the session changed status) or
    "data.updated" (verification data was corrected after the fact)
  - a destination receives the events of every session of the application,
    so filter on workflow_id or vendor_data when several flows share it
  - creating a session already sends status.updated with status
    "Not Started". The decision key is present only when status is Approved,
    Declined, In Review or Abandoned.

Verify every delivery:

  Header:      X-Signature-V2 (not X-Signature, not X-Signature-Simple)
  Algorithm:   HMAC-SHA256, hex digest, over the canonical JSON of the payload
               (Python json.dumps(sort_keys=True, separators=(",", ":"),
               ensure_ascii=False) after whole-valued floats become ints).
               Never hash the raw request bytes under this header: that is
               the older X-Signature.
  Freshness:   the signed body field timestamp is the dispatch time (Unix
               seconds). Reject when abs(now - timestamp) > 300 seconds, and
               reject when the X-Timestamp header does not equal it.
  Idempotency: event_id is the same on every retry of one event, so store it
               and skip a delivery you already processed. One session can
               still send the same status under two event ids, and the
               console's Try Webhook test deliveries carry no event_id, so
               also make the handler safe to run twice for one
               (session_id, status, webhook_type).
  Compare:     constant-time (crypto.timingSafeEqual)

Reference handler (Express). Keep the verification lines as written.
The handler is a fragment. Put this above it and app.listen(process.env.PORT)
below it. It needs Express and Node 21 or newer (an older Node rejects
every delivery). It expects a JSON body: answer 400 yourself if you accept
anything else on this route, and refuse to start without the secret.

const express = require("express");
const app = express();
const SECRET = process.env.DIDIT_WEBHOOK_SECRET; // secret_shared_key of the destination

// Your endpoint receives a signed payload
const crypto = require("node:crypto"); // ESM: import crypto from "node:crypto"
// X-Signature-V2 = HMAC over the canonical JSON, never the raw bytes. Match the sender byte for
// byte: keys sorted by code point, integers digit for digit, floats in Python's repr.
class Num { constructor(src) { this.src = src; } } // a number as written on the wire, not a double
const num = (s) => { if (/^-?\d+$/.test(s)) return BigInt(s).toString(); const n = +s; // ints stay exact
  if (Number.isInteger(n)) return BigInt(n).toString(); const [m, e] = n.toExponential().split("e"); // 27.0 -> 27
  return +e >= -4 ? String(n) : `${m}e-${String(-e).padStart(2, "0")}`; }; // 1e-05, not 0.00001
const byCodePoint = (a, b) => Buffer.compare(Buffer.from(a), Buffer.from(b)); // UTF-8 order = Python's
const canon = (v) => Array.isArray(v) ? `[${v.map(canon)}]` : v instanceof Num ? num(v.src)
  : v && typeof v === "object" ? `{${Object.keys(v).sort(byCodePoint).map((k) => `${JSON.stringify(k)}:${canon(v[k])}`)}}`
  : JSON.stringify(v);
// Read the body as text: express.json() would round 1000000000000000129 to a double first.
// Register this route ABOVE any global app.use(express.json()): the first parser to run
// consumes the stream, and a body it already parsed has lost the digits the signature covers.
app.post("/webhooks/didit", express.text({ type: "application/json" }), (req, res) => {
  const exact = JSON.parse(req.body, (k, v, c) => typeof v === "number" ? new Num(c.source) : v); // Node 21+
  const body = JSON.parse(req.body);
  const mac = crypto.createHmac("sha256", SECRET).update(canon(exact), "utf8").digest("hex");
  const sig = Buffer.from(String(req.headers["x-signature-v2"] ?? ""));
  // Freshness comes from the signed body timestamp; the header alone is unsigned and replayable.
  const ts = body.timestamp, fresh = String(ts) === req.headers["x-timestamp"]
    && Math.abs(Date.now() / 1000 - ts) <= 300;
  if (!fresh || sig.length !== mac.length
    || !crypto.timingSafeEqual(sig, Buffer.from(mac))) return res.sendStatus(401);
  const { session_id, status, webhook_type, vendor_data, decision } = body;
  // decision is present on Approved, Declined, In Review and Abandoned.
  res.sendStatus(200);
});

Status values (exact strings): Not Started, In Progress, Approved, Declined,
In Review, Resubmitted, Expired, Abandoned, Kyc Expired. Awaiting User only
appears on business verification sessions.

## 5. Read the decision
The same V3 decision reaches you two ways:
  - webhook body: body.decision.id_verifications[]
  - GET https://verification.didit.me/v3/session/{session_id}/decision/
      -H "x-api-key: <your-api-key>"
    This response IS the decision object. Read id_verifications at the top
    level: there is no decision wrapper here.
Until the user finishes the ID step, status is "Not Started" or "In Progress"
and id_verifications is null, not an empty array. Guard for it.
The other feature results sit next to it as plural arrays: liveness_checks[],
face_matches[], ip_analyses[], aml_screenings[]. shared_from_session is null
on a session the person completed here.

## 6. Share the finished session (source application)
Only a session whose status is Approved, Declined or In Review can be shared.

POST https://verification.didit.me/v3/session/{session_id}/share/
  -H "x-api-key: <source-api-key>"
  -H "Content-Type: application/json"
  -d '{ "for_application_id": "<receiving application id>", "ttl_in_seconds": 3600 }'

Response: 200 with share_token, for_application_id and session_kind ("user").
ttl_in_seconds: 60 to 86400, default 3600. Each call mints a new token; a
token cannot be revoked, it only expires. Send it to the receiving
application's backend, never to a browser.

## 7. Import it (receiving application)
POST https://verification.didit.me/v3/session/import-shared/
  -H "x-api-key: <receiving-api-key>"
  -H "Content-Type: application/json"
  -d '{
    "share_token": "<share_token from step 6>",
    "trust_review": false,
    "workflow_id": "<a workflow id of the receiving application>",
    "vendor_data": "<user id on the receiving side>"
  }'

share_token, trust_review and workflow_id are required. trust_review true
keeps the source status (Approved stays Approved); false puts the imported
session In Review so the receiving team decides. Response: 201 with the same
decision shape as step 5, a new session_id, and shared_from_session pointing
at the source session.

## 8. Errors to handle
The message is under detail for some errors and under the field name
(for_application_id, share_token) for others: read both.
  - share, 400: "Cannot share a session with the same application."
  - share, 400: "Target application does not exist."
  - share, 400: "Only finished sessions ("Approved", "Declined", "In Review")
    can be shared."
  - import, 400 on share_token: "Invalid share token.", "Share token has
    expired.", "This token is not valid for this application."
  - import, 400: share_token, trust_review or workflow_id missing
  - import, 403: "This session has already been shared with your
    application." Mint a new token.
  - import, 404: "Workflow does not exist for this application."

## 9. Hard rules
  - base URL for v3 endpoints: verification.didit.me
  - auth header: x-api-key, one key per application
  - feature enum: OCR, LIVENESS, FACE_MATCH, IP_ANALYSIS, AML (uppercase)
  - result path: decision.id_verifications[] in the webhook body and
    id_verifications[] on the GET decision response
  - webhook: X-Signature-V2 plus X-Timestamp, canonical JSON, freshness from
    the signed body timestamp

## 10. Verify your integration
Sandbox (an application in sandbox mode: nothing is billed).
https://docs.didit.me/integration/sandbox-testing
  - create the workflow, create a session, and read its decision: expect 201,
    201 with url, and 200 with status "Not Started"
  - to get a finished session without a person, call
    POST https://verification.didit.me/v3/session/{session_id}/simulate/ with
    your x-api-key and { "new_status": "Approved" }. It sets the status and
    sends the webhook; the feature arrays stay null.
  - share that session. With no second application yet, send a random UUID
    as for_application_id and expect the 400 "Target application does not
    exist.": that proves the call is wired. A full share and import needs
    the second application's id and API key; do not fake that step.
  - assert the webhook accepts a correctly signed payload and rejects a wrong
    X-Signature-V2, a changed body, and a payload whose signed timestamp is
    older than 300 seconds, even when X-Timestamp is refreshed

Docs:
  - https://docs.didit.me/core-technology/reusable-kyc/overview
  - https://docs.didit.me/sessions-api/create-session
  - https://docs.didit.me/sessions-api/retrieve-session
  - https://docs.didit.me/integration/webhooks
Besoin de plus de contexte ? Consulte la documentation complète du module.docs.didit.me →
Conforme par nature

Ouvre un nouveau pays en un clic. On s'occupe du plus dur.

Nous ouvrons les filiales locales, obtenons les licences, effectuons les tests d'intrusion, obtenons les certifications et nous alignons sur chaque nouvelle réglementation. Pour déployer des vérifications dans un nouveau pays, il suffit d'activer un interrupteur. Plus de 220 pays en direct, audités et testés chaque trimestre, le seul fournisseur d'identité qu'un gouvernement d'un État membre de l'UE a formellement jugé plus sûr que la vérification en personne.
Lire le dossier sécurité & conformité
SOC 2 · Type II — AICPA · 2026
SOC 2 · Type I — AICPA · 2026
ISO/IEC 27001 — Sécurité de l'information · 2026
Bac à sable financier de l'UE — Tesoro · SEPBLAC · BdE
FIDO Alliance — Membre associé · 2026
iBeta Level 1 PAD — NIST / NIAP · 2026
GDPR — EU 2016/679
HIPAA — 45 CFR §160 · §164
DORA — EU 2022/2554
MiCA — EU 2023/1114
Intégration à distance EBA — EBA/GL/2022/15
AMLD6 · eIDAS 2.0 — Conforme UE par conception
Jugendschutz geprüft — FSM · JMStV §4(2) · 2026

Chiffres clés

Chiffres clés
  • $0.33
    Par première vérification, la seule fois où un utilisateur paie pour le pack KYC Didit.
  • Free
    Sur chaque plateforme réceptrice. Chaque réutilisation, chaque présentation, chaque divulgation sélective.
  • 27
    États membres de l'UE. Chacun doit proposer un portefeuille EUDI d'ici le 24 décembre 2026, et l'acceptation du portefeuille EUDI par Didit arrive bientôt.
  • 5
    eIDs nationales disponibles aujourd'hui : MitID, BankID Sweden, Finnish Trust Network, Smart-ID et Mobile-ID.
Trois niveaux, une seule grille tarifaire

Commence gratuitement. Payez à l'usage. Passez à l'Enterprise.

500 vérifications gratuites chaque mois, pour toujours. Ensuite, ne payez que lorsqu'un module s'exécute. Contrats personnalisés, résidence des données et accords de niveau de service (SLA) pour l'offre Enterprise.

Gratuit

$0/ mois · sans carte bancaire

Pour le développement, les tests et tes premiers utilisateurs.

Tout ce qu'il te faut pour démarrer :
  • 500 vérifications KYC complètes chaque mois
  • ID, preuve de vie, correspondance faciale, appareil et IP
  • Plus de 200 signaux de fraude, liste noire, doublons
  • KYC réutilisable sur le réseau Didit
  • Éditeur de workflows, gestion des cas, SDK
  • Support IA Agent IA intégré à la console, documentation et communauté.
Le plus populaire

Payez à l'usage

$0.33par KYC complet

Plus de 25 modules, tarifs publics. Remises automatiques sur volume.

Tout ce qui est inclus dans Gratuit, et en plus :
  • Filtrage et surveillance AML à partir de 0,07 $
  • Tarification du registre des entreprises par pays et niveau de données
  • Surveillance des transactions à 0,02 $ chacune
  • Filtrage de portefeuille à 0,15 $ par vérification
  • Flux en marque blanche sous ta propre marque
  • Support IA Agent IA intégré à la console, documentation et communauté.

Enterprise

Personnalisécontrat annuel

Pour les gros volumes et les programmes réglementés.

Tout ce qui est inclus dans Payez à l'usage, et en plus :
  • Contrats annuels, tarification au volume engagé
  • Conditions légales personnalisées et un SLA de disponibilité de 99,99 %
  • Résidence des données, rétention, audit de sécurité
  • Réviseurs manuels à la demande
  • Conditions de revendeur et de marque blanche
  • Support humain prioritaire Canal Slack partagé 24/7, responsable de compte dédié.

Les remises sur volume s'appliquent automatiquement à mesure que votre utilisation augmente — pas de négociation, pas d'appel commercial.

FAQ

Questions fréquentes

Qu'est-ce que Didit ?

Didit est une infrastructure d'identité et de lutte contre la fraude, la plateforme que nous aurions aimé avoir lorsque nous développions nos propres produits : ouverte, flexible et pensée pour les développeurs. Elle s'intègre parfaitement à votre stack, sans être une boîte noire difficile à gérer.

Une seule API pour vérifier les personnes (KYC, Know Your Customer), les entreprises (KYB, Know Your Business), analyser les portefeuilles crypto (KYT, Know Your Transaction) et surveiller les transactions en temps réel. Le tout, sur une architecture conçue pour être :

  • Rapide : p99 inférieur à 2 secondes sur chaque session
  • Fiable : en production chez plus de 3 000 entreprises dans plus de 220 pays
  • Sécurisée : SOC 2 Type 1 & Type 2, ISO 27001, conforme au GDPR par conception, et attestée officiellement par le régulateur financier espagnol comme plus sûre qu'une vérification en personne

En coulisses : plus de 14 000 types de documents dans plus de 48 langues, plus de 1 000 sources de données et plus de 200 signaux de fraude par session. L'infrastructure Didit apprend dynamiquement de chaque session et s'améliore chaque jour.

Qu'est-ce qu'eIDAS 2.0, en clair ?

eIDAS 2.0, abréviation de electronic IDentification, Authentication and trust Services, est la mise à jour 2024 par l'UE de son cadre réglementaire en matière d'identité. Le changement majeur est le Portefeuille européen d'identité numérique (souvent abrégé en Portefeuille EUDI) : une application pour smartphone à laquelle chaque citoyen et résident de l'UE aura droit d'ici fin 2026.

Le portefeuille contient des accréditations vérifiables, un permis de conduire numérique, une attestation d'identité vérifiée, un diplôme universitaire, émises par des parties de confiance et présentées à des parties s'y fiant avec une preuve cryptographique, éventuellement avec divulgation sélective (prouver que vous avez plus de 18 ans sans révéler votre date de naissance complète).

Pour les entreprises, eIDAS 2.0 consiste à la fois à accepter les accréditations présentées par le portefeuille et à émettre les accréditations que vos utilisateurs transportent.

Qui doit accepter le portefeuille EUDI, et quand ?

Ce que le Règlement (UE) 2024/1183 (eIDAS 2) établit :

  • Les États membres doivent chacun proposer au moins un portefeuille européen d'identité numérique (portefeuille EUDI) d'ici le 24 décembre 2026.
  • Les parties utilisatrices privées qui sont légalement ou contractuellement tenues d'utiliser une authentification forte de l'utilisateur pour l'identification en ligne doivent accepter le portefeuille EUDI à la demande de l'utilisateur d'ici le 24 décembre 2027 (Article 5f(2)). Les micro-entreprises et petites entreprises sont exemptées.
  • Les très grandes plateformes en ligne qui nécessitent une authentification de l'utilisateur doivent également accepter le portefeuille EUDI à la demande volontaire de l'utilisateur (Article 5f(3)). Le texte ne fixe pas de date distincte pour cette obligation.

Les autres entreprises peuvent accepter le portefeuille volontairement. L'acceptation du portefeuille EUDI par Didit arrive bientôt : lis ce dont une entreprise a besoin pour accepter le portefeuille EUDI.

Quelle est la rapidité de la vérification pour mon utilisateur final ?

Le processus complet prend normalement moins de 30 secondes de bout en bout, prendre la pièce d'identité, la scanner, prendre le selfie, c'est fait. C'est le plus rapide du marché. Les fournisseurs KYC traditionnels prennent généralement plus de 90 secondes pour le même processus.

Côté back-end, Didit renvoie le résultat en moins de deux secondes au p99, mesuré à partir du moment où l'utilisateur termine le selfie jusqu'au déclenchement de votre webhook. La capture mobile est optimisée pour les téléphones et les réseaux lents : compression d'image progressive, chargement paresseux du SDK, et un transfert en un clic du bureau au téléphone via QR code si l'utilisateur commence sur le web.

En quoi l'identité réutilisable est-elle différente de la connexion fédérée (Connexion avec Apple, Google) ?

La connexion fédérée prouve l'existence d'un compte auprès du fournisseur d'identité. L'entreprise destinataire reçoit une adresse e-mail et éventuellement un nom. Ce n'est pas une identité conforme aux exigences réglementaires.

L'identité réutilisable inclut :

  • Une vérification de niveau document gouvernemental (passeport, carte d'identité nationale scannée et traitée par OCR)
  • Un lien biométrique avec la personne présentant le document (selfie comparé au portrait du document)
  • Un contrôle de vivacité qui détecte les deepfakes, les masques et les attaques par relecture
  • Un statut AML vérifié par rapport aux listes de sanctions, de PEP et de médias défavorables
  • Une attestation signée d'un fournisseur réglementé, horodatée, avec une piste vérifiable

Le vérificateur obtient la même assurance réglementaire que s'il effectuait son propre KYC, sans les coûts, les frictions et la baisse de conversion.

Que se passe-t-il si un utilisateur échoue, abandonne ou si la session expire ?

Chaque session aboutit à l'un des sept statuts clairs, pour que ton code sache toujours quoi faire :

  • Approved, toutes les vérifications sont passées. Fais avancer l'utilisateur.
  • Declined, une ou plusieurs vérifications ont échoué. Tu peux permettre à l'utilisateur de soumettre à nouveau l'étape spécifique qui a échoué (par exemple, reprendre le selfie) sans relancer tout le processus.
  • In Review, signalé pour examen de conformité. Ouvre le cas dans la console, vois tous les signaux, décide d'approuver ou de refuser.
  • In Progress, l'utilisateur est en cours de processus.
  • Not Started, lien envoyé, l'utilisateur ne l'a pas encore ouvert. Envoie un rappel s'il reste trop longtemps inactif.
  • Abandoned, l'utilisateur a ouvert le lien mais n'a pas terminé à temps. Relance ou expire.
  • Expired, le lien de session a expiré. Crée une nouvelle session.

Un webhook signé se déclenche à chaque changement de statut, pour que ta base de données reste toujours synchronisée. Les sessions abandonnées et refusées sont gratuites.

Où sont stockées les données de mes clients et comment sont-elles protégées ?

Les données de production sont traitées et stockées par défaut dans l'Union Européenne, sur Amazon Web Services. Les contrats d'entreprise peuvent demander des régions alternatives pour les juridictions dont les régulateurs l'exigent.

Chiffrement partout. AES-256 au repos sur chaque base de données, stockage d'objets et sauvegarde. Transport Layer Security 1.3 en transit sur chaque appel API, webhook et session de la console Business. Les données biométriques sont chiffrées sous une Customer Master Key distincte.

La rétention est sous ton contrôle. La rétention par défaut est indéfinie (illimitée), sauf si tu configures une durée plus courte, entre 30 jours et 10 ans par application, et tu peux supprimer n'importe quelle session individuelle à tout moment depuis le tableau de bord ou l'API.

Certifications : SOC 2 Type 1 & Type 2, ISO/IEC 27001:2022, iBeta Level 1 PAD, et une attestation publique du Tesoro / SEPBLAC / CNMV espagnol confirmant que la vérification d'identité à distance de Didit est plus sûre qu'une vérification en personne. Rapport complet sur /security-compliance.

Didit est-il conforme pour mon secteur d'activité ?

Didit est conforme par défaut aux exigences des régulateurs qui comptent pour l'infrastructure d'identité :

  • GDPR + UK GDPR, séparation responsable du traitement / sous-traitant, accord de traitement des données complet publié, autorité de contrôle chef de file désignée (AEPD espagnole).
  • AMLD6 + EU AML Single Rulebook, plus de 1 300 listes de sanctions, de personnes politiquement exposées et de couverture médiatique négative filtrées en temps réel.
  • eIDAS 2.0, cinq eID nationales actives aujourd'hui (MitID, BankID Suède, Finnish Trust Network, Smart-ID, Mobile-ID) ; acceptation du portefeuille EUDI bientôt disponible.
  • MiCA (Markets in Crypto-Assets), prêt pour les passerelles d'entrée vers les cryptoactifs (on-ramps), les plateformes d'échange et les dépositaires.
  • DORA, Digital Operational Resilience Act, résilience opérationnelle des services financiers de l'UE.
  • BIPA, CUBI, Washington HB 1493, CCPA / CPRA, confidentialité biométrique aux États-Unis (Illinois, Texas, Washington) et protection de la vie privée des consommateurs en Californie.
  • UK Online Safety Act, obligations de contrôle de l'âge et de sécurité des enfants.
  • FATF Travel Rule, données du donneur d'ordre et du bénéficiaire pour les transferts de cryptoactifs, interopérable avec IVMS-101.

Note détaillée, chaque certificat, chaque lettre de régulateur : /security-compliance.

À quelle vitesse puis-je intégrer et commencer à vérifier les utilisateurs ?
  • 60 secondes pour un compte sandbox sur business.didit.me, pas de carte de crédit.
  • 5 minutes pour une vérification fonctionnelle via Claude Code, Cursor ou tout agent de codage via notre serveur Model Context Protocol (MCP).
  • Un week-end pour une intégration prête pour la production avec vérification par webhook signé, tentatives de réessai et un flux de remédiation lorsqu'un utilisateur est refusé.

Trois chemins d'intégration, choisis celui qui correspond à ta stack :

  • Intégration native avec nos SDK Web, iOS, Android, React Native ou Flutter.
  • Redirection de l'utilisateur vers la page de vérification hébergée, zéro SDK.
  • Envoi d'un lien par e-mail, SMS, WhatsApp ou tout autre canal, zéro travail front-end.

Même tableau de bord, même facturation, même prix par succès pour les trois. Guide étape par étape sur docs.didit.me/integration/integration-prompt.

Comment la confidentialité est-elle gérée sous le GDPR ?

L'identité réutilisable est une amélioration de la confidentialité par rapport à la stack KYC traditionnelle :

  • La divulgation sélective est intégrée, le vérificateur ne voit que les champs nécessaires, pas le document sous-jacent
  • Pas de registre central, le justificatif d'identité réside dans le portefeuille de l'utilisateur, pas sur un registre Didit de qui a présenté quoi à qui
  • Consentement par présentation, l'utilisateur approuve explicitement chaque divulgation
  • Stockage dans l'UE, le pack de preuves côté émetteur reste dans les centres de données de l'UE ; le portefeuille lui-même est sur l'appareil de l'utilisateur
  • Droit à l'oubli, lorsqu'un utilisateur révoque un justificatif d'identité, la plateforme réceptrice doit le supprimer de ses registres en vertu du GDPR ; l'API de révocation par plateforme de Didit rend cela possible en un seul appel

La base légale pour le traitement côté réception est l'intérêt légitime en vertu du GDPR, l'utilisateur a explicitement présenté un justificatif d'identité pour accéder au service. L'accord de traitement des données (DPA) standard de Didit couvre la relation de co-responsable du traitement.

Que se passe-t-il si l'utilisateur change de document d'identité ou déménage ?

Trois types de déclencheurs :

  • Renouvellement de document (passeport expiré, nouvelle carte d'identité nationale émise) → l'utilisateur relance une actualisation légère ; la vérification est réémise avec la nouvelle empreinte du document
  • Changement d'identité matériel (nouveau nom légal, changement de marqueur de genre, changement de pays de résidence) → re-vérification complète à 0,33 $ ; l'ancien justificatif est révoqué et un nouveau est émis
  • Changement de statut AML (un utilisateur auparavant « propre » devient une PPE ou figure sur une liste de sanctions) → la surveillance continue de Didit signale automatiquement le changement, le champ AML du justificatif est mis à jour, et chaque plateforme réceptrice voit le statut actualisé lors de la prochaine présentation

La plateforme réceptrice n'a jamais à courir après l'utilisateur pour les mises à jour, le justificatif porte son propre signal de fraîcheur, et les justificatifs périmés sont rejetés au moment de la présentation.

Quelles preuves un régulateur voit-il pour une vérification réutilisée ?

Le vérificateur (la plateforme réceptrice) reçoit le même pack de preuves par présentation que le vérificateur original, plus la chaîne d'émission :

  • Les preuves KYC originales, scan de document, similarité biométrique, correspondances AML, signaux de risque d'appareil + IP, horodatages signés
  • La chaîne d'émission, quelle plateforme alimentée par Didit a émis le justificatif d'identité, quand, sur quel workflow
  • Le journal de présentation, quand cet utilisateur a présenté à ta plateforme, quels champs il a divulgués, le verdict de ton vérificateur
  • Le statut AML actuel, actualisé quotidiennement par la surveillance continue de Didit
  • La signature HMAC SHA-256 sur chaque champ, pour que la chaîne de traçabilité soit prouvable

Didit est la seule plateforme KYC avec une attestation formelle d'un gouvernement d'un État membre de l'UE, le Trésor espagnol, la Banque d'Espagne et le SEPBLAC ont conjointement attesté que le service est plus sûr que la vérification en personne. Cette attestation s'étend à chaque présentation réutilisée.

Infrastructure pour l'identité et la fraude.

Une seule API pour le KYC, le KYB, la surveillance des transactions et le screening de portefeuilles. Intégration en 5 minutes.

Demande à une IA de résumer cette page