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

# Salesforce-Identitätsverifizierung: App für KYC & KYB

> Didits Managed Package für Salesforce: Identitätsverifizierung, KYC und KYB ohne Code. Ab $0.33/KYC-Check, $10/Monat gratis, ohne Vertrag.

Integrieren Sie die Ausweisverifizierung von Didit mit unserem Managed Package in die Salesforce Sales Cloud / Service Cloud. Die Komponente lässt sich auf Kontakt- und Lead-Datensatzseiten platzieren, erstellt Sitzungen über Ihre Org via Apex (Ihr Didit-API-Schlüssel verbleibt innerhalb von Salesforce) und schreibt die Ergebnisse in Standardfelder des Datensatzes zurück, sodass Flows und Berichte darauf reagieren können. Eine integrierte **Invocable Action** ermöglicht es dem Flow Builder, Verifizierungen automatisch auszulösen – beispielsweise, wenn ein neuer Lead erstellt wird.

## Voraussetzungen

* Eine Salesforce-Org (Enterprise Edition oder höher; Developer Edition zum Testen)
* Ein [Didit Console](https://business.didit.me)-Konto mit einem konfigurierten Workflow
* Berechtigung zur Installation von Managed Packages und zum Erstellen von Sites unter Setup

***

### Schritt 1: App installieren

Der folgende Link installiert das veröffentlichte Paket **DiditVerifyManaged 1.0.0.2**.
Die Paketinstallation erfolgt unabhängig von der Freigabe des Marketplace-Listings.

1. Öffnen Sie den Installationslink: [[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. Wählen Sie **Install for Admins Only**, während Sie die Integration konfigurieren und testen.
   Gewähren Sie den vorgesehenen Benutzern Zugriff, nachdem Sie Ihre Konfiguration überprüft haben.

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

3. Klicken Sie auf **Install**

***

### Schritt 2: Didit-Anmeldedaten abrufen

#### API-Schlüssel abrufen (für den API-Modus)

1. Melden Sie sich in der [Didit Business Console](https://business.didit.me) an
2. Navigieren Sie in der linken Seitenleiste zu **API & Webhooks**
3. Kopieren Sie Ihren API-Schlüssel

![So rufen Sie den API-Schlüssel aus der Didit Business Console ab](https://mintcdn.com/didit-0f962782/gKLcMCmiLycklBol/images/shopify-how-to-get-api-key.jpg?fit=max\&auto=format\&n=gKLcMCmiLycklBol\&q=85\&s=9027ca685cc296a400e78d320a566453)

#### Workflow-ID abrufen

1. Gehen Sie in der Didit Business Console zu **Workflows**
2. Wählen Sie den Workflow aus, den Sie verwenden möchten (oder erstellen Sie einen neuen)
3. Kopieren Sie die **Workflow-ID** (eine UUID wie `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`)

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

***

### Schritt 3: Didit-Einstellungen konfigurieren

1. Klicken Sie auf den **App Launcher** (Raster-Symbol oben links) und suchen Sie nach **„Didit“**

![So öffnen Sie die 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. Öffnen Sie die **Didit**-App – Sie gelangen auf den Tab **Didit Settings**
3. Tragen Sie Ihre Anmeldedaten und Einstellungen ein:

| Feld | Beschreibung | Standard |
| - | - | - |
| **Mode** | `api` (empfohlen) oder `unilink` | `api` |
| **Didit API Key** | Ihr Didit-API-Schlüssel (nur im API-Modus) | — |
| **Workflow ID** | Ihre Didit-Workflow-ID (nur im API-Modus) | — |
| **Webhook Secret** | HMAC-Secret aus Didit Console → API & Webhooks. Erforderlich, um Verifizierungsaktualisierungen in Echtzeit zu erhalten. Wenn dieses Feld leer bleibt, werden alle eingehenden Webhooks abgelehnt. | — |
| **UniLink URL** | Feste Verifizierungs-URL (nur im UniLink-Modus) | — |
| **Display Mode** | `modal` (Popup) oder `embedded` (Inline) | `embedded` |
| **Vendor Data** | `record_id`, `record_email`, `custom prefix + record id` oder `none` | `record_id` |
| **Language** | Sprachcode (z. B. `en`, `es`, `fr`) | `Auto detect by browser` |
| **Auto Send Contact Data** | Verifizierung mit Datensatzdaten vorausfüllen | `true` |
| **Show Close Button** | Schließen-Button (X) im Modal anzeigen | `true` |
| **Exit Confirmation** | Bestätigung vor dem Schließen des Modals anfordern | `true` |
| **Auto-close on Complete** | Modal nach Abschluss automatisch schließen | `false` |
| **Debug Logging** | Browser-Konsolen-Logging aktivieren | `false` |
| **Button Text** | Beschriftung des Verifizierungs-Buttons | `Verify Identity` |
| **Button Success Text** | Beschriftung nach der Verifizierung | `Identity Verified` |
| **Button Color** | Hex-Farbe des Button-Hintergrunds | `#2667ff` |

4. Klicken Sie auf **Save Settings**

### Schritt 4: Komponente zu Datensatzseiten hinzufügen

1. Navigieren Sie zu einem **Kontakt**- oder **Lead**-Datensatz

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

2. Klicken Sie auf das **Zahnrad-Symbol → Seite bearbeiten** (oder Setup → Object Manager → Contact/Lead → Lightning Record Pages)

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

3. Ziehen Sie im Lightning App Builder **Didit Identity Verification** aus dem Komponentenbereich

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

4. Klicken Sie auf **Speichern** und **aktivieren** Sie die Seite. Wählen Sie bei der Aktivierung „Assign as Org Default“ aus (siehe Video):

![Seite mit der Didit-Komponente speichern und aktivieren](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/save-and-activate.gif?s=2f9f3fffb2fed482ea524236b5ad910d)

5. Das obige Beispiel verwendet eine Kontakt-Datensatzseite – die Schritte sind für Lead-Datensatzseiten identisch.

## Funktionsweise

### API-Modus (Empfohlen)

1. Der Benutzer klickt bei einem Kontakt- oder Lead-Datensatz auf **Verify Identity**
2. Apex erstellt eine Sitzung über die Didit-API (der API-Schlüssel verbleibt serverseitig)
3. Das Didit-SDK öffnet den Verifizierungs-Flow — abhängig von Ihrer Einstellung für den Display Mode als modales Overlay oder inline eingebettete Ansicht
4. Nach Abschluss wird der Datensatz automatisch aktualisiert:
   * `Verification Status` → das Sitzungsergebnis (`Approved`, `Declined`, `In Review` usw.)
   * `Identity Verified` → `true` bei Approved; `false` bei Declined
   * `Verified At`-Zeitstempel und `Didit Session ID`
   * `Verified Document Type`, `Document Expiry Date`, `AML Check Status` (über Webhook befüllt — siehe unten)
5. Die Komponente zeigt den verifizierten Status, den Dokumenttyp, das Ablaufdatum und das AML-Ergebnis inline an — keine Konfiguration des Seitenlayouts erforderlich

### UniLink-Modus

1. Der Benutzer klickt auf **Verify Identity**
2. Eine feste UniLink-URL öffnet sich in einem Modal oder iframe (kein API-Aufruf erforderlich)
3. Nach Abschluss wird das Ergebnis im Datensatz gespeichert

### Automatische Verifizierungsaktualisierungen (Webhooks)

Wenn eine Verifizierungssitzung abgeschlossen wird (unabhängig davon, ob der Mitarbeiter die Seite geöffnet hat oder nicht), sendet Didit einen Webhook an Ihre Salesforce-Organisation, um den Kontakt- oder Lead-Datensatz automatisch zu aktualisieren. Dies erfordert eine einmalige Einrichtung einer Salesforce Site.

#### Warum ist dies erforderlich?

Salesforce akzeptiert ohne einen öffentlichen Endpoint keine eingehenden HTTP-Anfragen von externen Diensten. Eine Salesforce Site erstellt diesen Endpoint, sodass Didit Verifizierungsergebnisse in Echtzeit direkt an Ihre Organisation übertragen kann.

#### Schritt 1: Zu Setup > Sites navigieren

Klicken Sie in Salesforce auf das **Zahnrad-Symbol > Setup**. Geben Sie im Feld Schnellsuche **Sites** ein und klicken Sie unter **Sites und Domänen** darauf.

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

Wenn Sie dies zum ersten Mal tun, aktivieren Sie **„Ich habe die Nutzungsbedingungen für Salesforce Sites gelesen und stimme ihnen zu“** und klicken Sie auf **Eigene Salesforce Sites-Domäne registrieren**.

![Schritt 1 - Sites-Seite mit registrierter Domäne](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/step1-sites-registered.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=9a89d50c21cfc4911cf707a111f963ad)

#### Schritt 2: Neue Site erstellen

Klicken Sie in der Sites-Liste auf die Schaltfläche **Neu**. Füllen Sie Folgendes aus:

* **Site Label**: `DiditWebhook`
* **Site Name**: wird automatisch als `DiditWebhook` ausgefüllt
* **Default Web Address**: `didit`
* **Aktiv**: aktiviert
* **Active Site Home Page**: `InMaintenance`

Belassen Sie alle anderen Felder auf den Standardwerten und klicken Sie auf **Speichern**.

![Schritt 2 - Formular für neue Site](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/step2-new-site-form.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=d5869ff430f4050ebde176ff6020c260)

#### Schritt 3: Erstellung der Site überprüfen

Nach dem Speichern sehen Sie die Detailseite der Site. Notieren Sie sich die **Site-URL** — sie sieht etwa so aus: `https://your-org.develop.my.salesforce-sites.com/didit`. Sie benötigen diese später.

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

#### Schritt 4: Dem Gastbenutzer Zugriff auf die Webhook-Klasse gewähren

Klicken Sie auf der Detailseite der Site auf **Einstellungen für öffentlichen Zugriff**. Dadurch wird das Profil des Gastbenutzers geöffnet. Scrollen Sie nach unten zu **Aktivierter Apex-Klassenzugriff** und klicken Sie auf **Bearbeiten**. Wählen Sie **DiditWebhookReceiver** aus der Liste „Verfügbar“ aus und klicken Sie auf **Hinzufügen**, um den Eintrag in die Liste „Aktiviert“ zu verschieben. Klicken Sie auf **Speichern**.

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

#### Schritt 5: Webhook in der Didit Console konfigurieren

1. Gehen Sie zu [business.didit.me](https://business.didit.me) > **API & Webhooks**
2. Setzen Sie Ihre **Webhook-URL** auf: `https://your-org.develop.my.salesforce-sites.com/didit/services/apexrest/didit/webhook/`

> **Hinweis:** Das genaue Domänenformat hängt von Ihrem Organisationstyp ab. Developer Edition-Organisationen enthalten `.develop` in der URL. Produktionsorganisationen verwenden `https://your-org.my.salesforce-sites.com/didit/services/apexrest/didit/webhook/`. Kopieren Sie zur Sicherheit immer die URL von Ihrer Site-Detailseite (Schritt 3).

3. Kopieren Sie den **Webhook-Geheimschlüssel**
4. Gehen Sie in Salesforce zu **Didit Settings** und fügen Sie den Schlüssel in das Feld **Webhook Secret** ein
5. Klicken Sie auf **Save Settings**

Das ist alles. Von nun an aktualisiert jedes Verifizierungsergebnis automatisch den Kontakt- oder Lead-Datensatz — selbst wenn niemand die Salesforce-Seite geöffnet hat.

#### Was der Webhook speichert

Wenn Didit einen Webhook sendet, wird der Kontakt oder Lead automatisch aktualisiert.

**Wird immer aktualisiert — unabhängig vom Workflow-Typ:**

| Feld | Was gespeichert wird |
| - | - |
| **Verification Status** | `Approved`, `Declined`, `In Review`, `In Progress`, `Abandoned` |
| **Identity Verified** | `true` bei Approved; `false` bei Declined oder Abandoned |
| **Verified At** | Zeitstempel des Approved-Ergebnisses |
| **Didit Session ID** | Die UUID der Sitzung |

**Wird nur aktualisiert, wenn die Funktion Teil Ihres Workflows ist:**

| Feld | Erfordert |
| - | - |
| **Verified Document Type** | Ausweisverifizierung in Ihrem Workflow |
| **Document Expiry Date** | Ausweisverifizierung in Ihrem Workflow |
| **AML Check Status** | AML-Screening in Ihrem Workflow |
| **Verification Decline Reasons** | Ausweisverifizierung in Ihrem Workflow |

Wenn eine Funktion in Ihrem Didit-Workflow nicht aktiviert ist, bleiben die entsprechenden Felder einfach leer — es treten keine Fehler auf.

Für jede Sitzung wird außerdem ein untergeordneter **Didit Verification**-Datensatz (`Didit_Verification__c`) erstellt, der Ihnen ein vollständiges Audit-Log mit zusätzlichen Details bietet (Dokumentnummer, Ausstellungsland, Name auf dem Dokument, Geburtsdatum, Übereinstimmungswert des Gesichtsabgleichs, Liveness-Wert, Anzahl der AML-Treffer) — wiederum nur für die Funktionen, die im Workflow enthalten sind.

Sie können die Themenliste **Didit Verifications** zu Ihrem Kontakt- oder Lead-Seitenlayout hinzufügen, um den Verlauf einzusehen.

### Flow-Automatisierung (Invocable Action)

Das Plugin enthält eine Invocable-Apex-Aktion, die von Salesforce Flows aufgerufen werden kann, um die Verifizierung automatisch auszulösen:

1. Fügen Sie im Flow Builder ein **Aktionselement** hinzu
2. Suchen Sie nach **„Create Didit Verification Session“**
3. Übergeben Sie eine Kontakt- oder Lead-Datensatz-ID
4. Die Aktion gibt `url`, `sessionId`, `success` und `error` zurück
5. Verwenden Sie die URL in einer **E-Mail senden**- oder **Benachrichtigung senden**-Aktion, um sie an den Kunden zu übermitteln

**Beispielhafte Anwendungsfälle:**

* **Bei Lead-Erstellung** — senden Sie automatisch einen Verifizierungslink an jeden neuen Lead
* **Überwachung des Dokumentablaufs** — erstellen Sie einen Scheduled Flow, der täglich ausgeführt wird, alle Kontakte findet, bei denen `Document Expiry Date ≤ TODAY + 90 days` gilt, und einen Link zur erneuten Verifizierung sendet — dies funktioniert direkt nach der Einrichtung über das vom Webhook befüllte Feld `Document Expiry Date`

## Fehlerbehebung

### Schaltfläche reagiert beim Klicken nicht

* Stellen Sie sicher, dass Sie Ihren API-Schlüssel und Ihre Workflow-ID in den Didit Settings gespeichert haben
* Überprüfen Sie, ob die Workflow-ID zu derselben Anwendung wie Ihr API-Schlüssel gehört
* Aktivieren Sie **Debug Logging** in den Didit Settings und prüfen Sie die Browser-Konsole auf Fehler

### "Received a non-JSON response from the Didit API"

* Vergewissern Sie sich, dass die Remote Site Setting für `https://verification.didit.me` aktiv ist: Setup → Remote Site Settings
* Überprüfen Sie in der [Didit Business Console](https://business.didit.me), ob Ihr API-Schlüssel gültig und nicht abgelaufen ist

### Webhook gibt 401 zurück — "Webhook secret not configured"

* Gehen Sie zu **Didit Settings** und fügen Sie Ihren Webhook-Geheimschlüssel (kopiert aus Didit Console → API & Webhooks) in das Feld **Webhook Secret** ein. Klicken Sie anschließend auf **Save Settings**

### Webhook gibt 401 zurück — "Invalid signature" oder "Request timestamp is stale"

* Ungültige Signatur: Stellen Sie sicher, dass das Webhook Secret in den Didit Settings exakt mit dem in der Didit Console übereinstimmt – ohne zusätzliche Leerzeichen oder Zeichen
* Veralteter Zeitstempel: Webhooks müssen innerhalb von 5 Minuten nach dem Senden eintreffen. Wenn die Uhr Ihrer Salesforce-Organisation nicht synchron ist, kann dies falsch positive Ergebnisse auslösen, was jedoch sehr selten vorkommt

### Verifizierungsfenster öffnet sich nicht (CSP-Fehler in der Browser-Konsole)

* Die vertrauenswürdige CSP-Site für `https://verify.didit.me` ist im Managed Package enthalten und wird automatisch bereitgestellt. Wenn Sie aus dem Quellcode bereitstellen, stellen Sie sicher, dass `cspTrustedSites/Didit_Verify_Frontend.cspTrustedSite-meta.xml` in Ihrer Bereitstellung enthalten ist

## Support (24/7)

Unser Team steht Ihnen zur Verfügung, um Sie bei der Inbetriebnahme zu unterstützen.

> [card] [E-Mail](mailto:hello@didit.me)
>
> Senden Sie uns eine E-Mail an [hello@didit.me](mailto:hello@didit.me).


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