Zum Hauptinhalt springen
ShieldID

Webhooks & Integrationen

Webhooks für die Identitätsverifizierung, eine gehostete Seite und ein Widget.

Schicken Sie einen Antragsteller auf eine gehostete Verifizierungsseite oder binden Sie das Widget in Ihren eigenen Ablauf ein, erhalten Sie einen signierten Webhook, sobald ein Ergebnis vorliegt, und lassen Sie jeden mit dem Link das Ergebnis auf einer öffentlichen Seite zur Nachweisprüfung bestätigen. Eine KYC-API-Integration, die an einem Nachmittag live gehen kann.

  • Mit HMAC-SHA256 signierte Callbacks
  • QR-Übergabe vom Desktop an das Smartphone
  • Sandbox-Sitzungen werden nie berechnet

Gehostete Verifizierungsseite

Ein Link für den gesamten Ablauf.

Erstellen Sie über die API eine Sitzung und Sie erhalten eine Verifizierungs-URL. Senden Sie sie per E-Mail, SMS oder in Ihrer eigenen App – den Rest übernimmt die Seite.

Desktop

Die antragstellende Person öffnet den Link an ihrem Schreibtisch.

QR-Übergabe

Die Seite zeigt einen QR-Code und eine kurze Anleitungskarte.

Aufnahme per Smartphone

Durch das Scannen wechselt dieselbe Sitzung zur Dokument- und Selfie-Aufnahme.

Verifiziert

Die Sitzung erreicht VERIFIED, weiterhin auf dem Smartphone.

Zurück zu Ihnen

Eine Weiterleitung zu Ihrer Rückkehr-URL sowie ein signierter Webhook, in beiden Fällen.

Funktioniert wie eine Zahlungsweiterleitung

Der Antragsteller gelangt auf eine Seite unter der eigenen URL Ihrer Sitzung. Kein Konto, keine App-Installation.

QR-Übergabe vom Desktop zum Smartphone

Wird die Seite auf einem Desktop geöffnet, zeigt sie einen QR-Code und eine kurze Anleitung an, statt den Kamerazugriff anzufordern. Beim Scannen öffnet sich derselbe Link auf dem Smartphone, das direkt zur Aufnahme von Dokument und Selfie wechselt.

Zurück zu Ihnen, mit dem Ergebnis

Sobald die Sitzung VERIFIED erreicht, leitet die Seite zu Ihrer Rückgabe-URL weiter und hängt Sitzungs-ID und Status an, sodass Ihre App erfährt, was passiert ist, ohne auf etwas anderes warten zu müssen.

Mit Ihrem Branding, bei qualifizierenden Tarifen

Ihr Firmenname, Logo, Akzentfarbe sowie Links zu Nutzungsbedingungen und Datenschutz, angewendet auf die gehostete Seite und die Seite zur Prüfung der Zugangsdaten.

Webhooks

Ein signierter Callback, sobald ein Ergebnis vorliegt.

Geben Sie uns beim Erstellen einer Sitzung eine Webhook-URL an, und wir senden das Ergebnis dorthin, sobald die Sitzung abgeschlossen ist – ganz ohne Polling.

Signiert, nicht nur gesendet

Jede Zustellung enthält einen X-Bio-Signature-Header: einen HMAC-SHA256 des Request-Bodys, damit Sie nachweisen können, dass sie von uns stammt, bevor Sie ihr vertrauen.

Mit Wiederholungen, nicht nur abgeschickt und vergessen

Eine fehlgeschlagene Zustellung wird dreimal wiederholt, mit jeweils längerer Wartezeit vor jedem Versuch.

Jeder Versuch wird protokolliert

Ob Erfolg oder Fehlschlag: Wir speichern den Versuch auf unserer Seite.

Demnächst verfügbar Ein Zustellprotokoll im Portal, in dem Sie jeden Versuch selbst einsehen können, folgt in Kürze.

Betrachten Sie das neueste VERIFIED als maßgeblich

Wegen der Wiederholungen kann eine Zustellung in seltenen Fällen in falscher Reihenfolge eintreffen. Richten Sie Ihre Logik daher nicht danach aus, ob ein Webhook eingegangen ist, sondern nach der Sitzungs-ID, und lassen Sie ein späteres VERIFIED ein früheres überschreiben. Wenn Sie einen eigenen Status führen, entfernen Sie Duplikate anhand der Sitzungs-ID statt anhand des Webhook-Eingangs.

Signatur prüfen

Vertrauen Sie der Payload, bevor Sie darauf reagieren.

Berechnen Sie den HMAC-SHA256 über den unveränderten Request-Body neu und vergleichen Sie ihn mit X-Bio-Signature, bevor Sie irgendetwas parsen.

javascript
const crypto = require("crypto");

function verifySignature(rawBody, signatureHeader, secret) {
  const expected = crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
  const a = Buffer.from(expected, "hex");
  const b = Buffer.from(signatureHeader || "", "hex");
  return a.length === b.length && crypto.timingSafeEqual(a, b);
}

// Read the raw body — don't let a JSON body-parser touch it first.
app.post("/hooks/shieldid", express.raw({ type: "application/json" }), (req, res) => {
  const signature = req.header("X-Bio-Signature") || "";
  if (!verifySignature(req.body, signature, process.env.SHIELDID_WEBHOOK_SECRET)) {
    return res.status(401).send("invalid signature");
  }
  const event = JSON.parse(req.body);
  // Treat the latest VERIFIED status as authoritative; de-duplicate by session_id.
  res.status(200).send("ok");
});

JS-Widget

Der gehostete Ablauf, eingebettet in Ihre eigene Seite.

Das Widget erstellt eine Sitzung und stellt denselben gehosteten Ablauf inline in einem iframe dar, sodass Antragsteller Ihre Website nie verlassen.

  • Wird in einem iframe mit Kamera- und Mikrofonzugriff dargestellt und passt sich der Größe seines Containers an.
  • Liest den Sitzungsstatus auf dieselbe Weise wie die gehostete Seite: über Ihre Return-URL und Ihren Webhook, sobald die Sitzung abgeschlossen ist.

Demnächst verfügbar Rückrufe zum Abschluss innerhalb der Seite (onComplete, onCancel, onStep, automatische Größenanpassung) sind in Kürze verfügbar. Bis dahin nutzen Sie return_url und Webhooks, um zu erfahren, wann eine Sitzung abgeschlossen ist – sie funktionieren bereits heute.

Bevor Sie dies in Produktion bringen

Das Widget akzeptiert derzeit einen API-Schlüssel direkt im Browser. Betrachten Sie das als Komfort für die sandbox, nicht als Muster für die Produktion: Erstellen Sie die Sitzung von Ihrem eigenen Backend aus, wobei Ihr Schlüssel serverseitig bleibt, und übergeben Sie dem Widget nur die resultierende Sitzung, niemals einen Live-Schlüssel, den der Browser eines Besuchers lesen kann.

html
<script src="https://cdn.shieldid.ca/sdk/v1/widget.js"></script>
<div id="shieldid-verify"></div>
<script>
  TLVerify.init({
    apiKey: "vk_sand_your_key", // sandbox only — see the note above for production
    containerId: "shieldid-verify",
    returnUrl: "https://yourapp.example/verified",
    webhookUrl: "https://yourapp.example/hooks/shieldid",
    locale: "en",
  });
</script>

Seite zur Prüfung von Nachweisen

Eine öffentliche Seite für eine verifizierte Sitzung.

Sobald eine Sitzung VERIFIED erreicht, zeigt ihr eigener Link zur Nachweisprüfung eine verständliche Bestätigung: den Namen des Antragstellers, die Dokumentart und den Status. Jeder, der den Link hat – ein Mitunterzeichner, ein Mitarbeiter am Empfang, eine Gegenpartei – kann das Ergebnis bestätigen, ohne sich in Ihrem Dashboard anzumelden.

Jordan Reyes

Beispieldaten

Führerschein aus Kalifornien

Verifiziert

  • Zum Ansehen ist keine Anmeldung erforderlich.
  • Weder ein ID-Rohbild noch ein Konfidenzwert erscheint jemals darauf – nur ein Status und die Identität, nicht mehr.
  • Im gleichen Branding wie die gehostete Seite, in entsprechenden Tarifen.

Integrationsmuster

Wie sechs Arten von Unternehmen dies anbinden.

Die Bausteine sind überall gleich: eine Sitzung, ein Link oder ein Widget, ein Webhook. Welches Muster passt, hängt davon ab, wie und wann Sie die Antwort benötigen.

Vermietung & Immobilienverwaltung

Senden Sie den gehosteten Link in derselben E-Mail wie den Mietantrag. Der Webhook setzt den Antragsteller in Ihrem System auf „verifiziert“, noch bevor Sie die Akte prüfen.

Recht & Anwaltskanzleien

Senden Sie den Link bei der Mandatsaufnahme und legen Sie den Webhook-Beleg in der Akte ab, damit die Identifizierung des Mandanten dokumentiert ist, bevor das Mandat beginnt.

Eigentümergemeinschaften & HOA-Verbände

Verlinken Sie vom Registrierungsformular für Eigentümer oder Mieter, das der Vorstand bereits verwendet; das Ergebnis liegt vor, bevor die Einheit ins Verzeichnis aufgenommen wird.

Fintech & Kreditvergabe

Der Webhook löst automatisch Ihren eigenen Underwriting-Schritt aus, sodass ein Antragsteller nie darauf warten muss, dass eine Person bemerkt, dass ein Ergebnis eingegangen ist.

Marktplätze & Gig-Plattformen

Binden Sie das Widget in das Onboarding von Verkäufern oder Fahrern ein, damit der Ablauf Ihre App nie verlässt; erstellen Sie die Sitzung wie oben empfohlen von Ihrem Backend aus.

E-signature

Führen Sie den gehosteten Ablauf durch, bevor die Unterzeichnung beginnt, und geben Sie Dokumente erst auf Grundlage des Webhooks frei, nicht auf bloße Aussage des Antragstellers hin.

Fragen

Klare Antworten zur Integration.

Erste Schritte

Webhook einrichten. Beim Auslösen zusehen.

Erstellen Sie eine Sandbox-Sitzung mit einer Webhook-URL, führen Sie eine Verifizierung auf Ihrem eigenen Smartphone durch und lesen Sie den signierten Callback, den wir senden.