Web-SDK
Zeigen Sie eine Certivant-Verifizierung mit einem einzigen Script-Tag in Ihrer eigenen Website an — als Modal oder inline, mit den Ereignissen ready, step, complete, cancel und error, strengen Origin-Prüfungen und Kameraunterstützung.
Das Certivant Web-SDK ist ein kleines, abhängigkeitsfreies Script, das eine Verifizierung innerhalb Ihrer Seite öffnet — als Modal oder inline in einem Container — und Ihrem Code mitteilt, wann der Antragsteller jeden Schritt erreicht und wann er fertig ist. Der Antragsteller verlässt Ihre Website nie, und über Ihre Seite gehen niemals personenbezogene Daten: Das SDK meldet einen Schrittnamen, einen Endstatus und eine öffentliche ID.
Es bettet dieselben gehosteten Seiten ein, die Sie bereits per Link versenden können:
| Sie übergeben | Öffnet | Seite |
|---|---|---|
token | die gehostete Verifizierung | /verify/<token> |
formSlug | ein öffentliches Formular | /forms/<slug> |
liveIdToken | die Aufnahmeseite für Live ID | /live-id/<token> |
url | eine der oben genannten Seiten als vollständiger Link | muss auf einem vertrauenswürdigen Origin liegen |
1. Ihre Website freigeben
Browser zeigen eine Seite nur dann in einem Frame an, wenn der Eigentümer der Seite zustimmt. Fügen Sie unter Einstellungen → KYC → Einbettung die Origins der Websites hinzu, die sie einbetten werden — einen pro Zeile:
https://app.example.com
https://*.example.org
http://localhost:3000
- Ein Origin ist
https://hostmit optionalem:port, ohne Pfad. - Ein vorangestelltes
*.erlaubt jede Subdomain (https://*.example.org), niemals die nackte Domain und niemals ein nacktes Suffix wie*.com. - Einfaches
httpist nur fürlocalhost,127.0.0.1und[::1]akzeptiert. - Bis zu 20 Origins. Jede andere Website zeigt „verweigert die Verbindung“.
Die Liste gilt nur für die Links Ihrer Organisation. Certivant liest sie anhand des Tokens oder des Formular-Slugs des Links, sodass eine Organisation niemals das Einbetten der Seiten einer anderen erlauben kann.
2. Die Verifizierung erstellen
Erstellen Sie die Verifizierung mit der REST-API und erhalten Sie ihr gehostetes
Token (kvs_…) — siehe Sitzungen. Tun Sie dies auf Ihrem Server: Legen Sie
niemals einen API-Schlüssel in den Browser.
3. Das Script einbinden und öffnen
<script src="https://app.certivant.com/embed/certivant.js"></script>
<button id="verify">Verify my identity</button>
<script>
document.getElementById("verify").addEventListener("click", function () {
var flow = Certivant.open({
token: "kvs_…", // from your server
onReady: function () { console.log("loaded"); },
onStep: function (e) { console.log("step", e.step); },
onComplete: function (e) { console.log("done", e.status, e.requestId); },
onCancel: function () { console.log("closed"); },
onError: function (e) { console.error(e.code, e.message); }
});
});
</script>
Der Origin des Scripts ist der Certivant-Origin, den es einrahmt. Verwenden Sie eine eigene Domain, laden
Sie das Script von dort oder übergeben Sie origin: "https://id.yourbrand.com".
Inline
<div id="verification"></div>
<script>
Certivant.open({
mode: "inline",
container: "#verification", // element or selector
formSlug: "customer-onboarding",
locale: "fr",
minHeight: 640
});
</script>
Der Frame wächst mit seinem Inhalt (Ereignisse resize) und schrumpft nie unter minHeight.
Optionen
| Option | Typ | Hinweise |
|---|---|---|
token / formSlug / liveIdToken / url | string | Eine davon ist erforderlich. |
formKey | string | Zugriffsschlüssel für Formulare, die einen benötigen. |
origin | string | Certivant-Origin, der eingerahmt wird. Standard: der Ort, von dem das Script geladen wurde. |
trustedOrigins | string[] | Zusätzliche Origins, auf die url zeigen darf. |
mode | "modal" oder "inline" | Standard modal. |
container | Element oder string | Erforderlich für inline. |
locale | string | Sprache eines öffentlichen Formularlinks (fr, de…). Gehostete Verifizierungen folgen der Browsersprache des Antragstellers. |
theme | "light" oder "dark" | Nur für den Modal-Frame. |
title, closeLabel | string | Barrierefreie Bezeichnungen (übersetzen Sie sie für Ihre Website). |
closeOnBackdrop | boolean | Schließen, wenn der Hintergrund angeklickt wird. Standard false. |
minHeight | number | Mindesthöhe im Inline-Modus in px. Standard 600. |
loadTimeoutMs | number | Wartezeit, bevor not_ready gemeldet wird. Standard 20000. |
Certivant.open() liefert ein Handle: close() (meldet cancel, sofern der Ablauf nicht bereits
abgeschlossen ist), destroy() (still), on(event, fn), off(event, fn) sowie iframe und origin.
Ereignisse
| Ereignis | Callback | Nutzlast |
|---|---|---|
ready | onReady | keine — die Seite ist geladen und zeigt den Ablauf. |
step | onStep | { step, index?, total? } — z. B. intro, upload, review; Formulare melden page-1… |
complete | onComplete | { status, requestId? } — status ist approved, rejected, escalated, submitted oder pending-review. |
cancel | onCancel | keine — der Antragsteller hat das Modal geschlossen, bevor er fertig war. |
error | onError | { code, message } — link_expired, link_cancelled, unavailable, invalid_options, untrusted_origin, not_ready. |
resize | onResize | { height } — der Inline-Modus übernimmt dies für Sie. |
complete bedeutet, dass der Antragsteller seinen Teil abgeschlossen hat. Eine gehostete Verifizierung
meldet submitted: Die Entscheidung fällt danach. Verlassen Sie sich daher auf die Webhooks
kyc.request.approved / kyc.request.rejected auf Ihrem Server, niemals auf ein
Browserereignis. Die Aufnahmeseite für Live ID ist die Ausnahme — sie antwortet sofort mit approved (matched)
oder rejected.
not_ready wird ausgelöst, wenn die Seite nach 20 Sekunden nicht ready gemeldet hat. Die übliche Ursache
ist, dass der Origin Ihrer Website nicht unter Einbettung steht oder das Token bereits verwendet wurde.
Sicherheitsmodell
- Wer eine Seite einrahmen darf. Der Proxy setzt auf Ihren gehosteten Links, Formularen und Live-ID-Seiten
Content-Security-Policy: frame-ancestors 'self' <your origins>(und entferntX-Frame-Options). Ein unbekanntes Token, ein Fehler oder eine leere Liste lassen sie nicht einrahmbar. Dashboard- und Anmeldeseiten sind nie einrahmbar. - Wem das SDK vertraut. Die URL des Frames wird nur aus dem eigenen Origin des SDK, aus
originoder austrustedOriginsgebildet. Eine Nachricht wird nur akzeptiert, wenn sie vom Fenster genau dieses iframes stammt, vom exakten Origin, der eingerahmt wurde, und ein versioniertes Envelope{ "source": "certivant", "version": 1, … }ist. Alles andere wird ignoriert. - Mit wem die Seite spricht. Die eingerahmte Seite sendet nur an den übergeordneten Origin, den das SDK
angekündigt hat (
?parentOrigin=), und nur wenn dieser Origin in Ihrer Erlaubnisliste steht (oder dem eigenen Origin der Seite entspricht) und, sofern der Browser ihn bereitstellt, mitlocation.ancestorOriginsübereinstimmt. Es wird nie mit dem Ziel*gesendet. - Keine personenbezogenen Daten. Ereignisse enthalten nie Namen, Dokumentdaten, Scores oder Bilder.
Kamera, Mikrofon und Standort
Das SDK setzt auf dem iframe allow="camera; microphone; geolocation; clipboard-write", wodurch diese
Berechtigungen an die eingebettete Seite delegiert werden. Die eigene Permissions-Policy von Certivant
erlaubt sie für ihre Seiten (camera=(self)…), sodass beide Seiten übereinstimmen. Ihre Website selbst muss
über HTTPS (oder localhost) ausgeliefert werden und darf keinen Permissions-Policy-Header senden, der
camera oder microphone blockiert.
Einfaches iframe
Ohne das SDK können Sie ein normales iframe verwenden — erlauben Sie zuerst Ihren Origin und fügen Sie das
Attribut allow hinzu:
<iframe
src="https://app.certivant.com/verify/kvs_…?embed=1&parentOrigin=https%3A%2F%2Fyour-site.example"
allow="camera; microphone; geolocation; clipboard-write"
style="width:100%;height:760px;border:0"
></iframe>
Ereignisse werden an das von Ihnen angekündigte parentOrigin gesendet, sofern es erlaubt ist. Hören Sie mit
window.addEventListener("message", …) zu und prüfen Sie selbst event.origin, event.source und das
Envelope.
Fehlerbehebung
| Symptom | Abhilfe |
|---|---|
| „verweigert die Verbindung“ / leerer Frame | Fügen Sie den Origin Ihrer Website unter Einstellungen → KYC → Einbettung hinzu (Schema und Port prüfen). |
Fehler not_ready | Wie oben, oder das Token wurde bereits verbraucht oder ist abgelaufen. |
| Kamera startet nicht | Liefern Sie Ihre Seite über HTTPS aus; prüfen Sie, dass auf Ihrer Website kein Permissions-Policy-Header camera blockiert; behalten Sie das Attribut allow bei. |
| Keine Ereignisse kommen an | Die Seite sendet nur, wenn Ihr Origin erlaubt ist und ?embed=1&parentOrigin=… vorhanden ist — verwenden Sie das SDK oder fügen Sie die Parameter selbst hinzu. |
| Eigene Domain | Laden Sie das Script von dort oder übergeben Sie origin. |
Versionierung
Das Script meldet seine Version in Certivant.version und im Antwort-Header X-Certivant-SDK-Version. Das
Nachrichten-Envelope trägt version: 1; Ergänzungen innerhalb von Version 1 sind abwärtskompatibel, und eine
inkompatible Änderung erscheint als Version 2, wobei die vorherige Version weiterhin ausgeliefert wird. Der
Loader wird für einige Minuten zwischengespeichert.
Für native Apps siehe Mobile WebView.
Auslöser
Vollständige Referenz für jeden Auslöser von Certivant-Automatisierungs-Workflows — wann jedes Ereignis ausgelöst wird, sein Datenkontext, Beispielnutzlasten, die Konfiguration von Gegenstand und Umfang sowie DSL-Filtermuster.
Mobile WebView
Zeigen Sie eine Certivant-Verifizierung in einer React-Native- oder Flutter-App an — WebView-Einstellungen, Kameraberechtigungen und dieselben Ereignisse wie beim Web-SDK, mit Beispielcode.