Verifizierungsergebnisse mit Webhooks erhalten

Didit schickt Ihnen keine E-Mail, wenn sich der Status einer Verifizierung ändert: richten Sie einen Webhook ein, damit Ihr Backend in dem Moment davon erfährt, in dem es passiert, und prüfen Sie die Signatur, bevor Sie ihm vertrauen.

Short answer

Ein Webhook ist eine HTTP-Anfrage, die Didit an Ihre URL sendet, wenn sich etwas ändert. Fügen Sie ein Ziel unter API & Webhooks hinzu, abonnieren Sie die gewünschten Ereignisse - es gibt kein Wildcard, listen Sie jedes einzeln auf - speichern Sie das Signing-Secret, und prüfen Sie die Signatur, bevor Sie irgendetwas verarbeiten.

Didit sendet keine E-Mail, wenn eine Session zu In Review oder Declined wechselt. Um in dem Moment davon zu erfahren, in dem sich ein Status ändert, ohne die Konsole zu aktualisieren, richten Sie einen Webhook ein - eine URL auf Ihrem Server, an die Didit das Update automatisch sendet.

Webhooks sind das empfohlene Integrationsmuster. Das Pollen des Decision-Endpoints funktioniert als Fallback, ist aber langsamer, kostet mehr Anfragen und verpasst Ereignisse, die ausschließlich per Webhook zugestellt werden - Datenbearbeitungen durch einen Prüfer, Statusänderungen bei Transaktionen und Änderungen auf Entity-Ebene.

#Einrichtung

  1. Zu API & Webhooks gehen

    Öffnen Sie in der Business Console die Anwendung, für die Sie Ereignisse empfangen möchten, und gehen Sie dann zu API & Webhooks.

  2. Ein Ziel hinzufügen

    Geben Sie ihm eine Bezeichnung, die öffentliche HTTPS-URL Ihres Endpunkts, und wählen Sie die gewünschten Ereignisse aus - mindestens Statusänderungen von Sessions.

  3. Das Signing-Secret speichern

    Das Ziel zeigt Ihnen einmalig ein Secret. Speichern Sie es - Ihr Server nutzt es, um zu bestätigen, dass eine Anfrage tatsächlich von Didit stammt und nicht von einem Nachahmer. Vollständige Prüfschritte: Signaturprüfung.

  4. Testen

    Nutzen Sie Try Webhook auf derselben Seite, um ein vollständig ausgefülltes Testereignis - approved, declined, in review, KYB, entity und transaction Szenarien - an Ihren Endpunkt zu senden. So können Sie Ihre Integration validieren, ohne eine echte Verifizierung durchzuführen.

Webhook-Ziele in der Didit-Konsole mit abonnierten Ereignissen und Zustellverlauf
  1. Add destination registriert die URL, an die Didit Ergebnisse sendet.
  2. Prüfen Sie jede Zustellung gegen dieses Signing-Secret, bevor Sie ihr vertrauen.
  3. Wählen Sie, welche Ereignisse ein Ziel empfängt.
  4. Test Webhook sendet einen Beispiel-Payload, damit Sie bestätigen können, dass Ihr Endpunkt ihn akzeptiert.
Jedes Ziel hat seine eigenen abonnierten Ereignisse, ein eigenes Signing-Secret und ein eigenes Zustellprotokoll.

#Die Ereignisse, die Sie abonnieren können

Es gibt kein Wildcard - listen Sie jede Ereignisfamilie auf, die Sie möchten. Sie auf mehrere Ziele zu verteilen ist in Ordnung und oft übersichtlicher.

EreignisFeuert wenn
status.updatedSich der Status einer KYC- oder KYB-Session ändert. Das, das Sie fast sicher wollen
data.updatedVerifizierungsdaten nach der Erstellung bearbeitet werden - ein Prüfer korrigiert ein Feld
user.status.updatedEin konsolidierter Nutzer zwischen ACTIVE, FLAGGED und BLOCKED wechselt
user.data.updatedSich Profil, Zähler oder Kennungen eines konsolidierten Nutzers ändern
business.status.updatedEin konsolidiertes Unternehmen den Status wechselt
business.data.updatedSich die Daten eines konsolidierten Unternehmens ändern
transaction.createdEine Transaktion erstellt wird und ihr erstes Urteil bereitsteht
transaction.status.updatedSich der Status einer Transaktion danach ändert
travel_rule.status.updatedSich der Status eines Travel-Rule-Austauschs ändert
Note

Es gibt kein session.status.updated oder kyc.completed. Wenn Sie einen Namen abonniert haben, der nicht in dieser Liste steht, erhalten Sie nichts - und es wird genau wie ein Zustellfehler aussehen. Prüfen Sie zuerst den Namen.

#Was Ihr Endpunkt tun sollte

  • Prüfen Sie zuerst die Signatur. HMAC-en Sie den rohen Request-Body - niemals eine neu serialisierte Version des geparsten JSON, denn erneutes Serialisieren ändert die Bytes und die Signatur stimmt nicht mehr überein. Verwenden Sie einen zeitkonstanten Vergleich.
  • Geben Sie schnell 2xx zurück. Erledigen Sie aufwendige Arbeit asynchron, nachdem Sie geantwortet haben.
  • Seien Sie idempotent. Schlüsseln Sie über die Event-ID, oder über Session-ID + Status + Webhook-Typ. Wiederholungen und Duplikate kommen vor.
  • Behandeln Sie jeden Status, der Sie interessiert, einschließlich derer, die lange nach dem Onboarding eintreffen - eine genehmigte Session kann später durch laufendes AML-Monitoring zu In Review wechseln.
  • Nur HTTPS. Reine HTTP-Endpunkte werden nicht unterstützt.

#Wiederholungen

Bei einem 5xx, einem 404, einem Timeout oder einem Verbindungsfehler wiederholt Didit zweimal:

  • Erste Wiederholung etwa 1 Minute nach dem ursprünglichen Fehlschlag
  • Zweite Wiederholung etwa 4 Minuten danach

Danach wird die Zustellung verworfen. Jeder Versuch wird separat im Tab Deliveries des Ziels protokolliert, sodass Sie genau sehen können, was passiert ist, statt zu raten.

Important

Zwei Wiederholungen über fünf Minuten sind keine dauerhafte Warteschlange. Ist Ihr Endpunkt eine Stunde lang nicht erreichbar, sind diese Ereignisse verloren. Gleichen Sie beim Start ab, indem Sie den Decision-Endpoint für Sessions pollen, für die Sie keinen finalen Status haben - Webhooks sind der schnelle Pfad, nicht der einzige.

#Hinter einer Firewall oder WAF

Didit liefert von der statischen IP 18.203.201.92 mit einem DiditWebhook/2.0-User-Agent aus. Wenn Ihr Edge unbekannte Clients blockiert - Cloudflares Standardhaltung zum Beispiel - erlauben Sie diese IP für den empfangenden Hostnamen, oder Zustellungen scheitern, bevor sie Ihren Code erreichen.

#Noch kein Backend?

Sie können Ergebnisse weiterhin manuell im Bereich Verifications der Konsole überwachen, während Sie eines aufbauen, oder in der Zwischenzeit einen No-Code-Verifizierungslink nutzen.

#Nächste Schritte