Certivant verwendenLive ID & EntwicklerEntwickler — API-Schlüssel & REST-API

Entwickler — API-Schlüssel & REST-API

Stellen Sie API-Schlüssel aus und verwalten Sie sie, konfigurieren Sie Scopes und nutzen Sie die REST-API von Certivant, um Verifizierungsanfragen zu erstellen und den KYC-Status aus Ihren eigenen Systemen programmgesteuert abzugleichen.

Who can do this:Org ownerOrg adminOrg member— Mitglieder benötigen die Berechtigung api.access, um die Seite anzusehen. Zum Ausstellen von Schlüsseln ist Admin-Zugriff erforderlich.

Was passiert hier?

Die REST-API von Certivant ermöglicht es Ihren eigenen Systemen, Verifizierungsanfragen anzulegen, Dokumente hochzuladen und den Status abzurufen, ohne das Dashboard zu nutzen. Es gibt zwei Hauptanwendungsfälle:

  1. Verifizierung in den eigenen Onboarding-Ablauf einbetten. Ihr Anmeldeformular sendet die Daten an Ihr Backend, das Backend ruft Certivant auf, und der Antragsteller erhält einen Link zur gehosteten Prüfung von Certivant.
  2. Verifizierungsstatus in Data Warehouse oder CRM synchronisieren. In Kombination mit Webhooks aktualisieren sich Ihre Systeme bei Statusänderungen.

Die Authentifizierung der API erfolgt über API-Schlüssel, die Sie im Dashboard ausstellen. Die vollständige Endpunkt-Dokumentation finden Sie unter /app/{your-org}/kyc/developer. Diese Seite behandelt die Verwaltung der Schlüssel und einen konzeptionellen Überblick.

Wo finden Sie es?

KYC → Entwickler in der linken Seitenleiste. (API-Schlüssel befanden sich früher unter den KYC/B-Einstellungen. Sie haben jetzt eine eigene Startseite für Entwickler.)

Das Entwicklerportal ist ein zentraler Bereich mit einem Menü auf der linken Seite:

  • Übersicht & Schnellstart — Ihre Basis-URL, die Authentifizierung und eine Anfrage zum Kopieren in 8 Sprachen (cURL, JavaScript, TypeScript, Python, PHP, Go, Java, C#). Die Beispiele sind mit Ihrem echten Host und einem Platzhalter für Ihren Schlüssel vorausgefüllt.
  • API-Schlüssel — Ihre Schlüssel auflisten, erstellen und widerrufen.
  • Endpunkt-Referenz — jeder Endpunkt der Integration (/v1) mit Methode, Pfad, Scopes und Parametern, dazu ein Link zum interaktiven API-Playground.
  • Webhook-Handler — fertige Handler mit Signaturprüfung in 6 Sprachen (siehe auch Webhooks).
  • Ratenbegrenzung — das wirksame Limit Ihrer Organisation pro Minute, nur lesend angezeigt.
  • FAQ — die Fragen, die Integratoren am häufigsten stellen.

API-Schlüssel ausstellen

Auf Neuer Schlüssel klicken

Die Karte API-Schlüssel oben auf der Seite Entwickler listet Ihre Schlüssel mit Umgebung, Berechtigungen, Erstellungsdatum und letzter Verwendung auf. Jede Zeile hat Schaltflächen zum Bearbeiten, Rotieren und Widerrufen des Schlüssels.

Die Karte API-Schlüssel auf der Seite Entwickler. Jeder Schlüssel zeigt seine Umgebung und Berechtigungs-Badges, das Schlüsselpräfix, Erstellungs- und letzte Verwendungszeit sowie die Schaltflächen Bearbeiten, Rotieren und Widerrufen.

Ein Dialog öffnet sich.

Der Dialog API-Schlüssel erstellen mit einer Bezeichnung, der Umgebung Live oder Test, den Berechtigungen Lesen, Schreiben, Einreichen und Verwalten sowie den Berechtigungen je Ressource.

Benennen

Wählen Sie eine Bezeichnung, die verrät, wo der Schlüssel verwendet wird: „Produktions-Backend (Heroku)“, „CI-Pipeline“, „Lokale Entwicklung — Laptop von Alice“. Der Name erscheint im Audit-Protokoll bei jeder API-Aktion.

Scopes auswählen

Berechtigungen werden pro Schlüssel vergeben. Es gibt zwei Wege, sie zu gewähren, und Sie können beide kombinieren:

ScopeWas er erlaubt
kyc:readAlles lesen: Anfragen, Dokumente, Formulare, Analytik.
kyc:writeDinge anlegen und ändern: Anfragen, Dokument-Uploads, Formularversand, Live-Verifizierungen.
kyc:submitEine Anfrage zur automatischen Verarbeitung freigeben.
kyc:managePrivilegierte Aktionen: Entscheidungen überschreiben, Dokumente löschen, Daten eines Antragstellers löschen oder exportieren.

Oder wählen Sie engere Berechtigungen je Ressource (Lesen, Schreiben, Einreichen, Verwalten für jede Ressource):

RessourceScopesUmfasst
Prüfungenverifications:read · write · submit · manageVerifizierungsanfragen, KYB, EDD, Betrugssignale
Formulareforms:read · write · manageFormularliste, Versand eines Formulars, Verfolgung der Zustellung
Dokumentedocuments:read · write · manageDokumente der Anfrage
Live-ID-Verifizierunglive_id:read · writePlanung und Verfolgung von Live-Verifizierungsanrufen
Webhookswebhooks:read · manageWebhook-Endpunkte (müssen ausdrücklich gewährt werden)
Analytikanalytics:readAnalytik und Triage-Übersicht
Datenschutz & Löschungprivacy:manageLöschanträge, Löschung, Export je Antragsteller

Verwalten bei einer Ressource umfasst jede andere Aktion dieser Ressource. Ein Scope je Ressource reicht nie über seine Ressource hinaus. Ein Schlüssel mit nur forms:read kann keine Verifizierungsanfragen lesen.

Wählen Sie die minimalen Scopes, die der Schlüssel tatsächlich braucht. Ein Schlüssel für „Formular aus unserem Anmeldeablauf senden“ braucht nur forms:write.

(Optional) Schlüssel einschränken

  • Formulare — beschränken Sie den Schlüssel auf bestimmte Formulare. Er kann dann nur über diese Formulare auflisten, senden und Verifizierungen anlegen, und er sieht nur die Verifizierungen, die über sie angelegt wurden (Liste, Details, Dokumente, Zusammenfassung, Analytik). Alles andere wird mit 403 form_not_allowed abgelehnt. Ein auf Formulare beschränkter Schlüssel kann keine Verifizierung ohne Angabe eines seiner Formulare (formId) anlegen und die Endpunkte für Löschung von Antragstellern, Löschanträge, Wiederverwendung und Live-Verifizierung nicht nutzen. Verifizierungen, die vor dieser Durchsetzung bestanden, werden für einen auf Formulare beschränkten Schlüssel sichtbar, sobald Certivant seine einmalige Nachpflege durchführt.
  • Workflows — beschränken Sie den Schlüssel auf bestimmte Automatisierungs-Workflows. Für jede Verifizierung, die der Schlüssel anlegt, dürfen nur diese Workflows laufen (unabhängig davon, wer sie später auslöst: der Antragsteller, eine Entscheidung oder ein Prüfer). Andere Workflows werden für diese Verifizierung übersprungen. Verifizierungen, die im Dashboard, von Antragstellern über ein öffentliches Formular oder von anderen Schlüsseln angelegt werden, sind nicht betroffen. Kein API-Aufruf schlägt wegen dieser Einschränkung fehl.

Lassen Sie alles unangekreuzt, wenn es keine Einschränkung geben soll.

  • IP-Adressen — listen Sie die IPv4-/IPv6-Adressen oder CIDR-Bereiche auf, von denen der Schlüssel verwendet werden darf (eine pro Zeile, z. B. 203.0.113.7, 198.51.100.0/24, 2001:db8::/32). Anfragen von anderen Adressen werden mit 403 ip_not_allowed abgelehnt.

Die untere Hälfte des Dialogs API-Schlüssel erstellen mit der Liste Auf Formulare beschränken, dem Feld Erlaubte IP-Adressen, dem optionalen Ablaufdatum und der Schaltfläche API-Schlüssel erstellen.

Scopes, Einschränkungen und Ablaufdatum können Sie später über Bearbeiten (das Stift-Symbol) ändern. Der Schlüssel selbst und die Umgebung lassen sich nicht ändern.

Der Dialog API-Schlüssel bearbeiten mit denselben Berechtigungen und Einschränkungen wie bei der Erstellung. Die Umgebung ist ausgegraut, weil sie nicht geändert werden kann.

(Optional) Ablaufdatum

Legen Sie ein Datum fest, an dem der Schlüssel automatisch abläuft. Empfohlen für kurzlebige Integrationen (CI-Token, Demos). Produktionsschlüssel haben oft kein Ablaufdatum. Rotieren Sie sie stattdessen nach einem Zeitplan. Ein abgelaufener Schlüssel liefert 401 api_key_expired.

Umgebung wählen

Live-Schlüssel beginnen mit ck_live_, Test-Schlüssel mit ck_test_ (siehe unten Live oder Test).

Erstellen

Der Schlüssel wird einmal in einem Dialog angezeigt. Kopieren Sie ihn jetzt, denn er kann später nicht mehr abgerufen werden. Das Dashboard zeigt nur das Präfix (z. B. ck_live_a3f1), damit Sie Schlüssel unterscheiden können, ohne sie preiszugeben.

Den Schlüssel verwenden

Senden Sie ihn im Header Authorization:

Authorization: Bearer ck_live_a3f...

Schlüssel, die vor dem Format ck_live_ / ck_test_ erstellt wurden (beginnend mit kyk_), funktionieren unverändert weiter.

Der schnellste Weg zu einer funktionierenden Integration:

Eine Anfrage anlegen

curl https://api.certivant.com/api/v1/kyc/requests \
  -H "Authorization: Bearer $CV_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "INDIVIDUAL",
    "applicant": {
      "fullName": "Jane Doe",
      "email": "jane@example.com"
    }
  }'

Liefert die ID der neuen Anfrage und eine einmalige URL, unter der der Antragsteller Dokumente hochlädt.

Den Antragsteller zur URL schicken

Sie können die URL selbst per E-Mail versenden, in Ihren eigenen Onboarding-Ablauf einbetten oder den Versand über den Ablauf „Einladung senden“ im Dashboard von uns erledigen lassen.

Das Ergebnis per Webhook empfangen oder abfragen

  • Webhook (empfohlen): Registrieren Sie einen Endpunkt, der kyc.request.approved / rejected / escalated verarbeitet. Siehe Webhooks.
  • Abfrage: GET /api/v1/kyc/requests/{id} liefert den aktuellen Status. Empfohlenes Intervall: mindestens 30 Sekunden.

Zuordnung zu Partnern und Unter-Mandanten

Wenn Sie Verifizierungen im Auftrag vieler Endkunden aus einer Organisation durchführen, etwa das klassische Partner- oder Reseller-Modell. Ein E-Signatur-Anbieter prüft zum Beispiel Unterzeichner für Hunderte Unternehmen. Dann brauchen Sie nicht für jeden Kunden eine eigene Organisation. Versehen Sie jede Anfrage beim Anlegen über die API mit zwei optionalen Feldern:

  • subTenantName — der Anzeigename des Endkunden (z. B. „Acme Corp“).
  • subTenantExternalId — Ihre interne ID für diesen Kunden (z. B. cust_8842).

Sobald Anfragen so markiert sind, können Sie:

  • Den Listen-Endpunkt filtern nach subTenantExternalId (GET /api/v1/kyc/requests?subTenantExternalId=cust_8842).
  • Webhooks weiterleiten — beide Felder werden in jedem Ereignis-Envelope zurückgegeben. Ihr Handler weiß so, zu welchem Kunden ein Ergebnis gehört, ohne eine Suche durchführen zu müssen.
  • Die Dashboards filtern — Nutzung, Audit-Protokoll, Monitoring, Berichte und Analytik erhalten alle einen Filter Unter-Mandant, sobald eine Anfrage die Markierungen trägt. Die Listen für KYC/KYB können die Spalten Unter-Mandant und Externe ID anzeigen (standardmäßig ausgeblendet. Aktivieren Sie sie über das Spaltenmenü).

Die genaue Form der Anfrage finden Sie in der API-Referenz: KYC-Anfragen → Anfrage anlegen.

Ratenbegrenzung

Ihr Limit für API-Aufrufe pro Minute wird durch Ihren Tarif festgelegt. Übliche Standardwerte: 60 pro Minute im Tarif Launch, 300 pro Minute in Pro und Scale, 600 pro Minute in Enterprise. Die genaue Obergrenze für Ihre Organisation wird nur lesend auf der Seite Entwickler angezeigt. Jede API-Antwort enthält sie im Header X-RateLimit-Limit. Jeder Schlüssel wird unabhängig voneinander innerhalb dieser Obergrenze gezählt.

Überschreiten Sie das Limit, liefern Anfragen HTTP 429 Too Many Requests mit X-RateLimit-Reset (Sekunden bis zum Zurücksetzen des Fensters). Warten Sie und versuchen Sie es erneut.

Brauchen Sie eine höhere Obergrenze? Ihr Super-Administrator legt sie fest. Er kann Ihr Limit für den Kunden bis zur Obergrenze Ihres Tarifs anheben. Das geht unter Admin → Kunden → (Ihre Organisation) → Organisation bearbeiten. Eine höhere Obergrenze erfordert einen höheren Tarif. Das Limit wird vom Betreiber gesteuert. Mandanten können es sehen, aber nicht ändern. Details zur Funktionsweise finden Sie in der Entwicklerreferenz: Ratenbegrenzungen.

Sicherheitsempfehlungen

  • Speichern Sie Schlüssel in Umgebungsvariablen oder einem Geheimnis-Manager. Niemals in Git committen, niemals im Chat teilen. Schlüssel, die in öffentlichen Repositories landen, werden regelmäßig innerhalb von Minuten abgegriffen.
  • Ein Schlüssel pro Umgebung. Teilen Sie keinen ck_live_...-Schlüssel zwischen Staging und Produktion. Die Rotation des einen soll den anderen nicht beeinträchtigen.
  • Verwenden Sie eingeschränkte Schlüssel. Ein Schlüssel nur zum Lesen für das Monitoring und ein Schlüssel zum Schreiben für den Onboarding-Dienst sind sicherer als ein allmächtiger Schlüssel überall.
  • Binden Sie Schlüssel an Ihre Server. Tragen Sie für Schlüssel, die nur von festen Adressen aus verwendet werden, die IP-Zulassungsliste ein.
  • Rotieren Sie vierteljährlich. Verwenden Sie Rotieren (siehe unten). Der alte Schlüssel funktioniert während der von Ihnen gewählten Überlappung weiter, sodass Sie den neuen ohne Ausfallzeit einsetzen können. Das Audit-Protokoll erfasst den Wechsel.
  • Achten Sie auf unbefugte Nutzung. Die Schlüsselliste zeigt, wann und von welcher Adresse jeder Schlüssel zuletzt verwendet wurde. Das Audit-Protokoll erfasst das Erstellen, Bearbeiten, Rotieren und Widerrufen von Schlüsseln. Prüfen Sie jede Adresse, die Sie nicht kennen.

Einen Schlüssel rotieren

Der Dialog API-Schlüssel rotieren mit der Anzahl der Stunden, die der alte Schlüssel weiter funktioniert (0 bis 168), und der Schaltfläche Schlüssel rotieren.

Entwickler → API-Schlüssel → Rotieren erstellt einen Ersatz mit derselben Bezeichnung, denselben Berechtigungen, Einschränkungen, derselben IP-Zulassungsliste und demselben Ablaufdatum. Der neue Schlüssel wird einmal angezeigt.

  • Überlappung (0–168 Stunden, Standard 24). Der alte Schlüssel funktioniert so lange weiter und liefert danach 401 api_key_rotated. Mit 0 widerrufen Sie den alten Schlüssel sofort.
  • Die Liste markiert den alten Schlüssel als „Rotiert — alter Schlüssel funktioniert bis …“ und den neuen als „Ersetzt einen rotierten Schlüssel“. Ein bereits rotierter Schlüssel kann nicht erneut rotiert werden. Rotieren Sie stattdessen seinen Ersatz.
  • Sie können den alten Schlüssel während der Überlappung auch bearbeiten oder widerrufen, falls Sie ihn früher abschalten möchten.

Einen Schlüssel widerrufen

Wenn ein Schlüssel kompromittiert, geleakt oder nicht mehr benötigt ist:

  • Entwickler → API-Schlüssel → Menü mit drei Punkten → Widerrufen.
  • Wirkt sofort. Jede laufende Anfrage mit dem Schlüssel erhält beim nächsten Aufruf 401.
  • Nicht rückgängig zu machen. Es gibt keine Schaltfläche „Widerruf aufheben“. Stellen Sie einen neuen Schlüssel aus, falls Sie es bereuen.

Der Widerruf wird im Audit-Protokoll zusammen mit dem Benutzer erfasst, der ihn durchgeführt hat.

Live oder Test

Jeder Schlüssel ist entweder:

  • Test (ck_test_...) — für Entwicklung und CI gedacht.
  • Live (ck_live_...) — für die Produktion gedacht.

Die Umgebung kennzeichnet die Nutzung: Jede Antwort enthält X-Certivant-Environment: test oder live. Das Dashboard zeigt das Badge neben dem Schlüssel. So können Sie in Ihren Protokollen Testverkehr von Produktionsverkehr unterscheiden.

Test-Schlüssel isolieren die Daten nicht. Sie lesen und schreiben dieselben Verifizierungen wie Ihre Live-Schlüssel. Die einzige Sandbox ist diejenige, in der jede neue Organisation startet: Bis Certivant Ihre Organisation verifiziert hat, sind die Live-Verifizierungsfunktionen für alle Schlüssel gesperrt. Verwenden Sie eine eigene Organisation, wenn Sie vollständig getrennte Testdaten brauchen.

Fehlerbehebung

401 Unauthorized

Der Eintrag error.reason im Antworttext verrät den Grund:

error.reasonBedeutung
missing_api_keyKein Header Authorization: Bearer ….
invalid_api_keyDer Schlüssel existiert nicht (Tippfehler, abgeschnitten, falsche Organisation).
api_key_revokedDer Schlüssel wurde widerrufen.
api_key_expiredDas Ablaufdatum des Schlüssels ist überschritten.
api_key_rotatedDer Schlüssel wurde rotiert und sein Überlappungszeitraum ist beendet. Verwenden Sie den Ersatz.

403 Forbidden

error.reason:

error.reasonBedeutung
insufficient_scopeDer Schlüssel hat den Scope für den Endpunkt nicht (die Meldung nennt die zulässigen Scopes). Bearbeiten Sie den Schlüssel oder stellen Sie einen neuen aus.
ip_not_allowedDie Anfrage kommt von einer Adresse, die nicht auf der IP-Zulassungsliste des Schlüssels steht.
form_not_allowedDer Schlüssel ist auf andere Formulare beschränkt: Das Formular oder die angeforderte Verifizierung wurde nicht über eines dieser Formulare angelegt.

429 Too Many Requests

Sie sind an der Ratenbegrenzung. Prüfen Sie den Header Retry-After (Sekunden) und warten Sie entsprechend. Bei dauerhaft hohem Volumen fragen Sie ein höheres Limit an.

„Ich habe den Schlüssel verloren“

Schlüssel werden nur einmal angezeigt. Eine Wiederherstellung ist nicht möglich. Widerrufen Sie den alten Schlüssel und stellen Sie einen neuen aus. Ihr Team muss den neuen Wert überall dort eintragen, wo der alte bereitgestellt war.

  • Webhooks — in Kombination mit der API für die vollständige Integration.
  • KYC-Liste & Details — die Ansicht im Dashboard für über die API angelegte Anfragen.
  • Audit-Protokoll — jeder API-Aufruf erscheint hier.