> ## 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é Salesforce : KYC et KYB

> Package Salesforce de Didit pour la vérification d'identité, KYC et KYB. Sans code, dès $0.33 par KYC complet, $10 offerts/mois, sans contrat.

Ajoutez la vérification d'identité Didit à Salesforce Sales Cloud et Service Cloud avec notre package géré. Le composant s'insère sur les pages de fiche Contact et Lead, crée des sessions dans votre organisation via Apex (votre clé API Didit reste dans Salesforce) et écrit les résultats dans les champs standard de la fiche, afin que les Flux et les Rapports puissent les exploiter. Une **Invocable Action** intégrée permet à Flow Builder de déclencher automatiquement des vérifications, par exemple lors de la création d'un nouveau lead.

## Prérequis

* Une organisation Salesforce (édition Enterprise ou supérieure ; Developer Edition pour les tests)
* Un compte [Didit Console](https://business.didit.me) avec un workflow configuré
* L'autorisation d'installer des packages gérés et de créer des Sites dans Configuration

***

### Étape 1 : installer l'application

Le lien ci-dessous installe le package **DiditVerifyManaged 1.0.0.2** publié.
L'installation du package est distincte de l'approbation de la publication sur la marketplace.

1. Ouvrez le lien d'installation : [[https://login.salesforce.com/packaging/installPackage.apexp?p0=04td10000004M0LAAU](https://login.salesforce.com/packaging/installPackage.apexp?p0=04td10000004M0LAAU)](https://login.salesforce.com/packaging/installPackage.apexp?p0=04td10000004M0LAAU)
2. Sélectionnez **Installer pour les administrateurs uniquement** pendant la configuration et les tests de l'intégration.
   Accordez l'accès aux utilisateurs prévus une fois votre configuration validée.

![Install Didit app in salesforce](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/install-package.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=8758cc01110ca562d2e88b7cb76a9ab5)

3. Cliquez sur **Installer**

***

### Étape 2 : récupérer vos identifiants Didit

#### Récupérer votre clé API (pour le mode API)

1. Connectez-vous à la [Didit Business Console](https://business.didit.me)
2. Accédez à **API et Webhooks** dans la barre latérale gauche
3. Copiez votre clé API

![How to get the API key from the Didit Business Console](https://mintcdn.com/didit-0f962782/gKLcMCmiLycklBol/images/shopify-how-to-get-api-key.jpg?fit=max\&auto=format\&n=gKLcMCmiLycklBol\&q=85\&s=9027ca685cc296a400e78d320a566453)

#### Récupérer votre ID de workflow

1. Dans la Didit Business Console, accédez à **Workflows**
2. Sélectionnez le workflow que vous souhaitez utiliser (ou créez-en un nouveau)
3. Copiez l'**ID du workflow** (un UUID du type `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`)

![How to get the Workflow ID from the Didit Business Console](https://mintcdn.com/didit-0f962782/gKLcMCmiLycklBol/images/shopify-how-to-get-workflow-id.jpg?fit=max\&auto=format\&n=gKLcMCmiLycklBol\&q=85\&s=529dc681169efc0a6cdc96d6c0e0a605)

***

### Étape 3 : configurer les paramètres Didit

1. Cliquez sur le **Lanceur d'applications** (icône en forme de grille, en haut à gauche) et recherchez **« Didit »**

![how to enter in didit app](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/app-launcher-search-didit.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=1a2fb9eee64fa9735b29e4d64a20e56e)

2. Ouvrez l'application **Didit** : vous arrivez sur l'onglet **Paramètres Didit**
3. Renseignez vos identifiants et vos préférences :

| Champ | Description | Par défaut |
| - | - | - |
| **Mode** | `api` (recommandé) ou `unilink` | `api` |
| **Clé API Didit** | Votre clé API Didit (mode API uniquement) | — |
| **ID du workflow** | Votre ID de workflow Didit (mode API uniquement) | — |
| **Secret de webhook** | Secret HMAC fourni par Didit Console → API et Webhooks. Requis pour recevoir les mises à jour de vérification en temps réel. Si ce champ est vide, tous les webhooks entrants sont rejetés. | — |
| **URL UniLink** | URL de vérification fixe (mode UniLink uniquement) | — |
| **Mode d'affichage** | `modal` (fenêtre contextuelle) ou `embedded` (intégré) | `embedded` |
| **Données du vendeur** | `record_id`, `record_email`, `custom prefix + record id` ou `none` | `record_id` |
| **Langue** | Code de langue (par exemple `en`, `es`, `fr`) | `Auto detect by browser` |
| **Envoi automatique des données du contact** | Préremplir la vérification avec les données de l'enregistrement | `true` |
| **Afficher le bouton de fermeture** | Afficher le bouton X sur la fenêtre modale | `true` |
| **Confirmation de sortie** | Demander confirmation avant de fermer la fenêtre modale | `true` |
| **Fermeture automatique à la fin** | Fermer automatiquement la fenêtre modale une fois la vérification terminée | `false` |
| **Journalisation de débogage** | Activer la journalisation dans la console du navigateur | `false` |
| **Texte du bouton** | Libellé du bouton de vérification | `Verify Identity` |
| **Texte du bouton après réussite** | Libellé affiché après la vérification | `Identity Verified` |
| **Couleur du bouton** | Couleur hexadécimale de fond du bouton | `#2667ff` |

4. Cliquez sur **Enregistrer les paramètres**

### Étape 4 : ajouter le composant aux pages de fiche

1. Accédez à une fiche **Contact** ou **Lead**

![contact page view](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/contact-page-1.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=0a5d3676ade4b7d2e4334df2305ae050)

2. Cliquez sur l'**icône en forme d'engrenage → Modifier la page** (ou Configuration → Gestionnaire d'objets → Contact/Lead → Pages d'enregistrement Lightning)

![contact details view](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/contact-page-2.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=68b8d16948761de61d5ee8a4c5dcc0f2)

3. Dans Lightning App Builder, faites glisser **Didit Identity Verification** depuis le panneau Composants

![Drag didit component](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/drag-didit-component.gif?s=f34880744041ffa63271a683a641b3ba)

4. Cliquez sur **Enregistrer**, puis sur **Activer** la page, sélectionnez « Attribuer comme page par défaut de l'organisation » lors de l'activation, et regardez la vidéo :

![Save and activate page with the didit component](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/save-and-activate.gif?s=2f9f3fffb2fed482ea524236b5ad910d)

5. L'exemple ci-dessus utilise une page de fiche Contact ; les étapes sont identiques pour les pages de fiche Lead.

## Fonctionnement

### Mode API (recommandé)

1. L'utilisateur clique sur **Verify Identity** sur un enregistrement Contact/Lead
2. Apex crée une session via l'API Didit (la clé API reste côté serveur)
3. Le SDK Didit ouvre le parcours de vérification, sous forme de superposition modale ou de vue intégrée, selon le paramètre **Display Mode** de votre configuration
4. Une fois la vérification terminée, l'enregistrement est mis à jour automatiquement :
   * `Verification Status` → résultat de la session (`Approved`, `Declined`, `In Review`, etc.)
   * `Identity Verified` → `true` pour Approved ; `false` pour Declined
   * Horodatage `Verified At` et `Didit Session ID`
   * `Verified Document Type`, `Document Expiry Date`, `AML Check Status` (renseignés via webhook, voir ci-dessous)
5. Le composant affiche directement le statut de vérification, le type de document, la date d'expiration et le résultat AML, sans qu'aucune configuration de mise en page ne soit nécessaire

### Mode UniLink

1. L'utilisateur clique sur **Verify Identity**
2. Une URL UniLink fixe s'ouvre dans une fenêtre modale ou un iframe (aucun appel API n'est nécessaire)
3. Une fois la vérification terminée, le résultat est enregistré dans l'enregistrement

### Mises à jour automatiques de la vérification (webhooks)

Lorsqu'une session de vérification se termine (que l'agent suive la page ou non), Didit envoie un webhook à votre organisation Salesforce pour mettre à jour automatiquement l'enregistrement Contact/Lead. Cela nécessite une configuration unique d'un Salesforce Site.

#### Pourquoi est-ce nécessaire ?

Salesforce n'accepte pas les requêtes HTTP entrantes provenant de services externes sans endpoint public. Un Salesforce Site crée cet endpoint afin que Didit puisse transmettre les résultats de vérification directement à votre organisation en temps réel.

#### Étape 1 : accéder à Setup > Sites

Dans Salesforce, cliquez sur l'**icône en forme d'engrenage > Setup**. Dans la zone **Quick Find**, saisissez **Sites** puis cliquez dessus sous **Sites and Domains**.

![Étape 1 - recherche de Sites](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/step1-sites-search.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=07d8ca3804316538de6d15b6ccb39caf)

Si c'est la première fois, cochez **« I have read and accepted the Salesforce Site Terms of Use »**, puis cliquez sur **Register My Salesforce Site Domain**.

![Étape 1 - page Sites avec domaine enregistré](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/step1-sites-registered.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=9a89d50c21cfc4911cf707a111f963ad)

#### Étape 2 : créer un nouveau Site

Cliquez sur le bouton **New** dans la liste des Sites. Renseignez :

* **Site Label** : `DiditWebhook`
* **Site Name** : rempli automatiquement avec `DiditWebhook`
* **Default Web Address** : `didit`
* **Active** : case cochée
* **Active Site Home Page** : `InMaintenance`

Laissez tous les autres champs à leur valeur par défaut, puis cliquez sur **Save**.

![Étape 2 - formulaire de nouveau Site](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/step2-new-site-form.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=d5869ff430f4050ebde176ff6020c260)

#### Étape 3 : vérifier la création du Site

Après l'enregistrement, la page de détail du Site s'affiche. Notez l’**Site URL**, qui ressemblera à `https://your-org.develop.my.salesforce-sites.com/didit`. Vous en aurez besoin plus tard.

![Étape 3 - Site créé](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/step3-site-created.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=daa8ed30fedd1369d33abe13828ddb12)

#### Étape 4 : accorder au Guest User l'accès à la classe du webhook

Sur la page de détail du Site, cliquez sur **Public Access Settings**. Cela ouvre le profil Guest User. Faites défiler jusqu'à **Enabled Apex Class Access** et cliquez sur **Edit**. Sélectionnez **DiditWebhookReceiver** dans la liste Available et cliquez sur **Add** pour le déplacer dans la liste Enabled. Cliquez sur **Save**.

![Étape 4 - accès aux classes Apex](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/step4-apex-class-access.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=8bcfbece75a5a7864e8e1ab8fc07db9d)

#### Étape 5 : configurer le webhook dans la Didit Console

1. Accédez à [business.didit.me](https://business.didit.me) > **API & Webhooks**
2. Définissez votre **Webhook URL** sur : `https://your-org.develop.my.salesforce-sites.com/didit/services/apexrest/didit/webhook/`

> **Remarque :** Le format exact du domaine dépend du type de votre organisation. Les organisations Developer Edition incluent `.develop` dans l'URL. Les organisations de production utilisent `https://your-org.my.salesforce-sites.com/didit/services/apexrest/didit/webhook/`. Copiez systématiquement l'URL depuis la page de détail de votre Site (étape 3) pour en être certain.

3. Copiez la **Webhook Secret Key**
4. Dans Salesforce, accédez à **Didit Settings** et collez le secret dans le champ **Webhook Secret**
5. Cliquez sur **Save Settings**

C'est tout. Désormais, chaque résultat de vérification mettra automatiquement à jour l'enregistrement Contact/Lead, même si personne n'a la page Salesforce ouverte.

#### Ce que le webhook enregistre

Lorsque Didit envoie un webhook, le Contact ou le Lead est mis à jour automatiquement.

**Toujours mis à jour, quel que soit le type de workflow :**

| Champ | Ce qu'il stocke |
| - | - |
| **Verification Status** | `Approved`, `Declined`, `In Review`, `In Progress`, `Abandoned` |
| **Identity Verified** | `true` pour Approved ; `false` pour Declined ou Abandoned |
| **Verified At** | Horodatage du résultat Approved |
| **Didit Session ID** | L'UUID de la session |

**Mis à jour uniquement lorsque la fonctionnalité fait partie de votre workflow :**

| Champ | Requiert |
| - | - |
| **Verified Document Type** | Vérification d'identité dans votre workflow |
| **Document Expiry Date** | Vérification d'identité dans votre workflow |
| **AML Check Status** | Filtrage AML dans votre workflow |
| **Verification Decline Reasons** | Vérification d'identité dans votre workflow |

Si une fonctionnalité n'est pas activée dans votre workflow Didit, les champs correspondants restent simplement vides, sans effet sur le reste.

Un enregistrement enfant **Didit Verification** (`Didit_Verification__c`) est également créé pour chaque session, ce qui vous offre une piste d'audit complète avec des informations supplémentaires (numéro de document, pays de délivrance, nom figurant sur le document, date de naissance, score de correspondance faciale, score de détection du vivant, nombre de correspondances AML). Là encore, uniquement pour les fonctionnalités incluses dans le workflow.

Vous pouvez ajouter la liste associée **Didit Verifications** à la mise en page de votre page Contact/Lead pour consulter l'historique.

### Automatisation par Flow (action invocable)

Le plugin inclut une action Apex invocable que les Flows Salesforce peuvent appeler pour déclencher automatiquement la vérification :

1. Dans Flow Builder, ajoutez un élément **Action**
2. Recherchez **« Create Didit Verification Session »**
3. Transmettez l'identifiant d'un enregistrement Contact ou Lead
4. L'action renvoie `url`, `sessionId`, `success` et `error`
5. Utilisez l'URL dans une action **Send Email** ou **Send Notification** pour la transmettre au client

**Exemples de cas d'usage :**

* **Lors de la création d'un Lead** : envoyer automatiquement un lien de vérification à chaque nouveau lead
* **Surveillance de l'expiration des documents** : créez un Scheduled Flow qui s'exécute chaque jour, repère tous les Contacts dont `Document Expiry Date ≤ TODAY + 90 days` et envoie un lien de revérification. Cela fonctionne directement grâce au champ `Document Expiry Date` renseigné par le webhook.

## Dépannage

### Le bouton ne fait rien au clic

* Assurez-vous d'avoir enregistré votre clé API et votre ID de workflow dans **Didit Settings**
* Vérifiez que l'ID de workflow appartient à la même application que votre clé API
* Activez **Debug Logging** dans **Didit Settings**, puis consultez la console du navigateur pour repérer les erreurs

### « Received a non-JSON response from the Didit API »

* Vérifiez que le Remote Site Setting pour `https://verification.didit.me` est actif : Setup → Remote Site Settings
* Vérifiez que votre clé API est valide et n'a pas expiré dans la [Didit Business Console](https://business.didit.me)

### Le webhook renvoie 401, avec « Webhook secret not configured »

* Accédez à **Didit Settings**, collez votre Webhook Secret Key (copiée depuis Didit Console → API & Webhooks) dans le champ **Webhook Secret**, puis cliquez sur **Save Settings**

### Le webhook renvoie 401, avec « Invalid signature » ou « Request timestamp is stale »

* Signature invalide : vérifiez que le Webhook Secret saisi dans Didit Settings correspond exactement à celui de la Didit Console, sans espace ni caractère supplémentaire
* Horodatage périmé : les webhooks doivent arriver dans les 5 minutes suivant leur envoi. Si l'horloge de votre organisation Salesforce est désynchronisée, cela peut provoquer de faux positifs, mais c'est très rare

### La fenêtre de vérification ne s'ouvre pas (erreur CSP dans la console du navigateur)

* Le CSP Trusted Site pour `https://verify.didit.me` est inclus dans le package géré et déployé automatiquement. Si vous déployez depuis les sources, vérifiez que `cspTrustedSites/Didit_Verify_Frontend.cspTrustedSite-meta.xml` est inclus dans votre déploiement

## Support (24/7)

Notre équipe est disponible pour vous aider à démarrer.

> [card] [E-mail](mailto:hello@didit.me)
>
> Envoyez-nous un e-mail à [hello@didit.me](mailto:hello@didit.me).


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