intermediate
kunden
identitaet
verifizierung

Identitaetspruefung (Stripe)

Vollstaendiger Leitfaden zur Kunden-Identitaetspruefung mit Stripe Identity - Modi, Risikobewertung, Verifizierungsablauf und Verwaltung

Levy Fleets TeamJanuary 15, 202522 min read

Identitaetspruefung (Stripe)

Levy Fleets integriert Stripe Identity fuer eine robuste Identitaetspruefung von Kunden. Dies hilft, Betrug zu verhindern, Vorschriften einzuhalten und die Sicherheit der Fahrer zu gewaehrleisten. Dieser Leitfaden behandelt Verifizierungsmodi, Ausloeser, den Verifizierungsablauf und Verwaltungsoptionen.

Ueberblick

Die Identitaetspruefung bestaetigt, dass ein Kunde die Person ist, die er vorgibt zu sein, indem amtliche Ausweisdokumente validiert werden. Das System verwendet Stripe Identity, welches bietet:

  • Dokumentenscan: Fotos von Ausweisdokumenten (Fuehrerschein, Reisepass, Personalausweis)
  • Selfie-Abgleich: Vergleicht Selfie mit Ausweisfoto
  • Lebendigkeitserkennung: Verhindert Fotobetrug
  • Datenextraktion: Zieht verifizierten Namen, Geburtsdatum, Adresse aus dem Ausweis
  • Risikobewertung: Integration mit Stripe Radar zur Betrugserkennung

Verifizierungsmodi

Jeder Subaccount kann einen von drei Verifizierungsmodi konfigurieren:

Deaktivierter Modus

identity_verification_mode: 'disabled'
  • Keine Identitaetspruefung erforderlich
  • Alle Kunden koennen ohne Verifizierung fahren
  • Nuetzlich fuer risikoarme Umgebungen oder den ersten Start
  • Keine Verifizierungskosten

Alle-Benutzer-Modus

identity_verification_mode: 'all_users'
  • Jeder neue Kunde muss seine Identitaet vor der ersten Fahrt verifizieren
  • Verifizierung wird waehrend der Anmeldung oder beim ersten Fahrtversuch angefordert
  • Strengste Einstellung fuer maximale Sicherheit
  • Hoehere Verifizierungskosten, aber maximaler Betrugsschutz

Risikobasierter Modus

identity_verification_mode: 'risk_based'
  • Verifizierung nur erforderlich, wenn der Risikoschwellenwert ueberschritten wird
  • Verwendet Stripe Radar Risikobewertung von der ersten Zahlung
  • Konfigurierbarer Schwellenwert bestimmt den Ausloesepunkt
  • Balanciert Sicherheit mit Kundenerfahrung

Empfohlene Einstellung

Die risikobasierte Verifizierung wird fuer die meisten Betriebe empfohlen, da sie Sicherheit mit Kundenerfahrung und Kosteneffizienz in Einklang bringt.

Wie die risikobasierte Verifizierung funktioniert

Risikobewertungsberechnung

Wenn ein Kunde seine erste Zahlung taetigt, analysiert Stripe Radar:

  • Zahlungsmethoden-Eigenschaften
  • IP-Adresse und Standort
  • Geraetefingerabdruck
  • Historische Muster
  • Kartenaussteller-Land

Stripe gibt ein risk_level zurueck, das das System in einen Score umwandelt:

RisikostufeNumerischer ScoreBeschreibung
normal10Niedriges Risiko, vertrauenswuerdige Zahlung
elevated50Einige Risikoindikatoren vorhanden
highest75Mehrere Hochrisiko-Signale

Risikoschwellenwert-Konfiguration

Subaccounts konfigurieren einen Schwellenwert-Score (Standard: 50):

identity_verification_risk_threshold: 50

Verifizierung ist erforderlich, wenn: kunden_risiko_score >= schwellenwert

Beispielszenarien:

Kunden-ScoreSchwellenwertVerifizierung erforderlich?
10 (normal)50Nein
50 (elevated)50Ja
75 (highest)50Ja
75 (highest)80Nein

Wann die Risikobewertung erfolgt

Der Risikoscore wird waehrend der ersten erfolgreichen Kartenbelastung erfasst:

  1. Kunde fuegt Zahlungsmethode hinzu
  2. Kunde startet erste Fahrt
  3. Am Fahrtende wird die Zahlung verarbeitet
  4. Stripe Radar bewertet die Belastung
  5. Risikoscore wird im Kundendatensatz gespeichert
  6. Wenn der Schwellenwert ueberschritten wird, wird Verifizierung markiert

Subaccount-Richtlinien-Ueberschreibung

Einige Subaccounts koennen unabhaengig vom Risiko eine Verifizierung fuer alle Benutzer erfordern:

identity_verification_mode: 'all_users'

Wenn dies eingestellt ist, ist die Verifizierung vor der ersten Fahrt erforderlich und umgeht die risikobasierte Logik.

Verifizierungsablauf

Kundenerfahrung

  1. Ausloeser: Kunde versucht eine Aktion, die Verifizierung erfordert
  2. Benachrichtigung: Push-Benachrichtigung oder In-App-Aufforderung erscheint
  3. Stripe Identity starten: Native Verifizierungs-UI oeffnet sich
  4. Dokumentenscan: Kunde fotografiert Ausweisdokument
  5. Selfie: Kunde macht Selfie zum Vergleich
  6. Verarbeitung: Stripe verarbeitet und verifiziert
  7. Ergebnis: Sofortiges Bestanden/Nicht-bestanden-Ergebnis wird angezeigt
  8. Fahrtzugang: Bei Erfolg kann der Kunde mit Fahrten fortfahren

Technischer Ablauf

Kundenaktion
    ↓
Pruefung identity_verification_required
    ↓
Falls erforderlich → API-Aufruf an /api/customers/{id}/identity-session
    ↓
Stripe Identity Sitzung erstellt
    ↓
Client-Secret an mobile App zurueckgegeben
    ↓
Stripe Identity SDK gestartet
    ↓
Verifizierung abgeschlossen
    ↓
Webhook empfangen: identity.verification_session.verified
    ↓
Kundendatensatz mit verifizierten Daten aktualisiert
    ↓
identity_verification_required = false

Verifizierungsstatus

Der Kunden-Identitaetsstatus wird im Feld identity_status verfolgt:

StatusBedeutungKann Kunde fahren?
nullNie Verifizierung versuchtAbhaengig von Richtlinie
pendingVerifizierung in BearbeitungNein (falls erforderlich)
verifiedErfolgreich verifiziertJa
requires_inputMuss erneut versuchenNein
failedVerifizierung fehlgeschlagenNein
canceledSitzung wurde abgebrochenNein

Dashboard-Indikatoren

Wenn ein Kunde eine Verifizierung benoetigt, erscheint ein bernsteinfarbenes Banner auf seiner Detailseite:

Banner-Inhalt:

  • Ueberschrift "Identitaetspruefung erforderlich"
  • Grund fuer die Anforderung (Subaccount-Richtlinie oder Risikoschwellenwert)
  • Datum, an dem die Verifizierung markiert wurde
  • Aktueller Risikoscore und -stufe
  • Aktueller Verifizierungsstatus
  • Button Anforderung loeschen

Bereich Identitaetspruefung

Die Kunden-Detailseite enthaelt einen speziellen Bereich, der zeigt:

FeldBeschreibung
StatusAktueller Verifizierungsstatus
Verifiziert amDatum/Uhrzeit der erfolgreichen Verifizierung
RisikoscoreStripe Radar Risikoscore (0-100)
Risikostufenormal, elevated, highest
AusweistypFuehrerschein, Reisepass, etc.
Verifizierter NameAus dem Ausweis extrahierter Name
GeburtsdatumGeburtsdatum aus dem Ausweis
AdresseAdresse aus dem Ausweis (falls verfuegbar)

Status-Badges

Kunden koennen verifizierungsbezogene Badges anzeigen:

BadgeFarbeBedeutung
Identitaet erforderlichBernsteinWartet auf Verifizierung
VerifiziertGruenErfolgreich verifiziert
Verifizierung fehlgeschlagenRotVerifizierungsversuch fehlgeschlagen

Verifizierung verwalten

Grund fuer Verifizierungsanforderung anzeigen

Auf der Kunden-Detailseite zeigt das Banner fuer Identitaetspruefung, warum die Verifizierung erforderlich war:

Subaccount-Richtlinie:

Grund: Subaccount erfordert Verifizierung fuer alle Benutzer

Risikoschwellenwert ueberschritten:

Grund: Risikoscore 75 >= Schwellenwert 50
Risikoscore: 75/100 (highest)

Verifizierungsanforderung loeschen

Um die Verifizierungsanforderung zu entfernen, ohne dass der Kunde verifiziert:

  1. Navigieren Sie zur Kunden-Detailseite
  2. Suchen Sie das bernsteinfarbene Verifizierungsbanner
  3. Klicken Sie auf Anforderung loeschen
  4. Bestaetigen Sie die Aktion
  5. Kunde kann jetzt ohne Verifizierung fahren

Wann verwenden:

  • Bekannter vertrauenswuerdiger Kunde faelschlich markiert
  • Kunde hat Identitaet auf andere Weise verifiziert
  • Geschaeftsentscheidung, die Anforderung aufzuheben
  • Risikobewertung war falsch

Wichtig

Das Loeschen der Anforderung markiert den Kunden NICHT als verifiziert - es entfernt nur die aktuelle Anforderung. Zukuenftige Risiko-Ausloeser koennen erneut eine Verifizierung erfordern.

Manuelle Verifizierung

Um einen Kunden als verifiziert zu markieren, ohne Stripe Identity zu verwenden:

  1. Navigieren Sie zur Kunden-Detailseite
  2. Klicken Sie im Bereich Identitaetspruefung auf Manuell verifizieren
  3. Fuegen Sie Notizen hinzu, die erklaeren, wie die Identitaet bestaetigt wurde
  4. Bestaetigen Sie die Aktion

Wann verwenden:

  • Persoenliche Verifizierung an einem physischen Standort
  • Kunde hat Ausweisdokumente per E-Mail/Support bereitgestellt
  • Migration von Altkunden
  • Verifizierung ueber anderen Identitaetsanbieter

Datenbankfelder fuer manuelle Verifizierung:

FeldBeschreibung
identity_manual_verificationBoolean-Flag fuer manuelle Verifizierung
identity_manual_verification_notesNotizen des Betreibers zur Verifizierungsmethode
identity_manual_verification_byBenutzer-ID des Betreibers, der die Verifizierung durchgefuehrt hat
identity_manual_verification_atZeitstempel, wann die manuelle Verifizierung aufgezeichnet wurde

Die manuelle Verifizierung umgeht Stripe Identity vollstaendig. Der identity_status des Kunden wird auf verified gesetzt und identity_verification_required wird geloescht.

Neue Verifizierung anfordern

Um von einem Kunden eine erneute Verifizierung zu verlangen:

  1. Navigieren Sie zur Kunden-Detailseite
  2. Klicken Sie auf Aktionen > Verifizierung erforderlich
  3. Waehlen Sie einen Grund
  4. Bestaetigen Sie die Aktion

Der Kunde wird von Fahrten blockiert, bis er die Verifizierung abschliesst.

Verifizierte Daten

Wenn ein Kunde erfolgreich verifiziert, extrahiert Stripe Identity:

Immer erfasst

FeldDatenbankspalteBeschreibung
Vornameidentity_first_nameVorname aus dem Ausweis
Nachnameidentity_last_nameNachname aus dem Ausweis
Geburtsdatumidentity_dobGeburtsdatum aus dem Ausweisdokument
Ausweistypidentity_id_typeVerwendeter Dokumententyp

Falls verfuegbar

FeldDatenbankspalteBeschreibung
Adresseidentity_addressAdresse aus dem Ausweis
Ausweisnummeridentity_id_numberFuehrerschein-/Passnummer
Ausstellungslandidentity_issuing_countryLand, das das Dokument ausgestellt hat
Ablaufdatumidentity_expiration_dateDokumentenablauf

Verifizierungs-Metadaten

FeldBeschreibung
identity_statusEndgueltiger Verifizierungsstatus
identity_verified_atZeitstempel der Verifizierung
identity_session_idStripe-Sitzungsreferenz
identity_attempt_countAnzahl der Versuche

Benachrichtigungen

Das System sendet Push-Benachrichtigungen fuer identitaetsbezogene Ereignisse:

Verifizierung erforderlich

Wenn die Verifizierung zum ersten Mal markiert wird:

  • Titel: "Identitaetspruefung erforderlich"
  • Text: "Bitte verifizieren Sie Ihre Identitaet, um [App-Name] weiter nutzen zu koennen"
  • Typ: identity
  • Aktion: Oeffnet Verifizierungsablauf in der App

Verifizierung erfolgreich

Nach erfolgreicher Verifizierung:

  • Titel: "Identitaet verifiziert"
  • Text: "Ihre Identitaet wurde verifiziert. Sie koennen jetzt fahren!"
  • Typ: identity

Anforderung geloescht

Wenn ein Betreiber die Anforderung loescht:

  • Titel: "Alles klar!"
  • Text: "Ihr Konto wurde verifiziert und Sie koennen jetzt fahren."
  • Typ: identity

Konfiguration

Subaccount-Einstellungen

Jeder Subaccount konfiguriert Verifizierungseinstellungen:

EinstellungTypBeschreibung
identity_verification_modeenum'disabled', 'all_users', 'risk_based'
identity_verification_risk_thresholdintegerScore-Schwellenwert (0-100)

Empfohlene Konfigurationen

Hochsicherheitsmaerkte (reguliert, hochwertige Assets):

mode: 'all_users'

Standardbetrieb (ausgewogener Ansatz):

mode: 'risk_based'
threshold: 50

Risikoarme Maerkte (vertrauenswuerdige Communities, geringwertige Assets):

mode: 'disabled'

oder

mode: 'risk_based'
threshold: 75  # Nur hoechstes Risiko markieren

Telefon-Lookup-Risikodaten

Zusaetzlich zu Stripe Radar kann das System telefonbasierte Risikodaten erfassen:

Telefon-Lookup-Felder

FeldBeschreibung
phone_typeMobil, Festnetz, VOIP
phone_carrierAnbietername
phone_is_prepaidPrepaid-Status
phone_risk_scoreRisikobewertung
phone_countryTelefonnummer-Land

Risikoindikatoren

Bestimmte Telefoneigenschaften weisen auf hoeheres Risiko hin:

  • VOIP-Nummern (Google Voice, etc.)
  • Kuerzlich portierte Nummern
  • Prepaid-Anbieter in bestimmten Regionen
  • Nichtubereinstimmung zwischen Telefonland und Anmeldestandort

Anmeldestandort-Tracking

Das System verfolgt, wo sich Kunden angemeldet haben, fuer zusaetzlichen Kontext:

IP-basierter Standort

FeldBeschreibung
signup_ipIP-Adresse bei der Anmeldung
signup_ip_cityStadt aus IP-Lookup
signup_ip_regionBundesland/Region aus IP
signup_ip_countryLand aus IP

GPS-Standort

FeldBeschreibung
signup_latitudeGPS-Breitengrad
signup_longitudeGPS-Laengengrad
signup_location_accuracyGPS-Genauigkeit in Metern

Standort-Risikoindikatoren

  • IP-Standort weicht erheblich von GPS ab
  • Anmeldung von bekanntem VPN/Proxy
  • Standort weit entfernt von Betriebszonen

API-Referenz

Verifizierungssitzung erstellen

Endpunkt: POST /api/customers/{id}/identity-session

Antwort:

{
  "client_secret": "vs_client_secret_xxx",
  "session_id": "vs_xxx"
}

Kunden-Identitaetsstatus abrufen

Endpunkt: GET /api/customers/{id}

Gibt Kunde mit Identitaetsfeldern zurueck:

{
  "id": "...",
  "identity_verification_required": true,
  "identity_verification_required_at": "2024-01-15T10:30:00Z",
  "identity_verification_required_reason": "risk_threshold_exceeded:75>=50",
  "identity_status": "pending",
  "stripe_risk_score": 75,
  "stripe_risk_level": "highest"
}

Manuelle Verifizierung

Endpunkt: POST /api/customers/{id}/identity-manual-verify

Anfrage:

{
  "notes": "Verified in person at downtown location"
}

Integration mit dem Fahrtsystem

Verifizierungspruefung beim Fahrtstart

Wenn ein Kunde versucht, eine Fahrt zu starten (entweder aus der App oder ueber das Dashboard "Fahrt starten"), prueft das System:

  1. Ist Verifizierung erforderlich? → Pruefung des identity_verification_required-Flags
  2. Wenn erforderlich, ist die Verifizierung abgeschlossen? → Pruefung ob identity_status === 'verified'
  3. Fahrt blockieren, wenn nicht verifiziert → Fehler mit Verifizierungsaufforderung zurueckgeben

Dashboard-Verhalten: Beim Starten einer Fahrt vom Dashboard fuer einen Kunden, der eine Verifizierung benoetigt, schlaegt der Vorgang mit einer Fehlermeldung fehl, die anzeigt, dass eine Verifizierung erforderlich ist.

Mobile App-Verhalten: Die App fordert den Kunden auf, die Verifizierung abzuschliessen, bevor der Fahrt-Scan erlaubt wird.

Automatische Verifizierungsanforderungs-Ausloeser

Eine Verifizierung kann automatisch erforderlich werden, wenn:

  1. Risikoscore der ersten Zahlung: Stripe Radar bewertet die erste Belastung
  2. Risikoschwellenwert ueberschritten: Score >= konfigurierter Schwellenwert
  3. Subaccount-Richtlinie: Einige Subaccounts erfordern, dass alle Benutzer verifizieren

Auswirkung des Verifizierungsstatus auf Fahrten

StatusKann Fahrt starten?
null (nie erforderlich)Ja
verifiedJa
pendingNein (wenn identity_verification_required true ist)
requires_inputNein
failedNein
canceledNein

Best Practices

Fuer Betreiber

  1. Geeigneten Modus waehlen: Verifizierungsstufe an Ihre Risikotoleranz anpassen
  2. Markierte Kunden ueberwachen: Kunden nicht im Verifizierungslimbus lassen
  3. Supportmitarbeiter schulen: Sicherstellen, dass das Team weiss, wie mit Verifizierungsproblemen umzugehen ist
  4. Manuelle Verifizierungen dokumentieren: Immer Notizen hinzufuegen, wenn der Ablauf umgangen wird
  5. Schwellenwerte ueberpruefen: Basierend auf tatsaechlichen Betrugsraten anpassen

Fuer den Kundensupport

  1. Die Anforderung erklaeren: Kunden erklaeren, warum eine Verifizierung erforderlich ist
  2. Durch den Prozess fuehren: Bei Dokumentenauswahl und Fototipps helfen
  3. Angemessen eskalieren: Nur manuell verifizieren, wenn gerechtfertigt
  4. Vor dem Loeschen pruefen: Ueberpruefen, ob das Loeschen fuer den Fall angemessen ist

Fuer technische Teams

  1. Webhook-Zustellung ueberwachen: Sicherstellen, dass Verifizierungs-Callbacks verarbeitet werden
  2. Randfaelle behandeln: Timeout- und Wiederholungsszenarien beruecksichtigen
  3. Verifizierungsversuche protokollieren: Audit-Trail pflegen
  4. Regelmaessig testen: Ueberpruefen, ob der Ablauf in allen Umgebungen funktioniert

Fehlerbehebung

Kunde kann Verifizierung nicht abschliessen

  • Pruefen Sie, ob Stripe Identity fuer Ihr Stripe-Konto aktiviert ist
  • Ueberpruefen Sie, ob die mobile App Kameraberechtigungen hat
  • Versuchen Sie einen anderen Ausweisdokumenttyp
  • Stellen Sie ausreichende Beleuchtung fuer Dokumentenfotos sicher
  • Pruefen Sie Stripe-API-Fehler in den Logs

Verifizierung bestanden, aber Kunde immer noch blockiert

  • Pruefen Sie, ob identity_verification_required geloescht wurde
  • Ueberpruefen Sie, ob der Webhook korrekt verarbeitet wurde
  • Suchen Sie nach zusaetzlichen Blockierungen (Zahlungsproblem, manuelle Blockierung)
  • Pruefen Sie auf Datenbankaktualisierungsfehler

Risikoscore scheint falsch zu sein

  • Der Risikoscore kommt von Stripe Radar, nicht von Levy kontrolliert
  • Ueberpruefen Sie die Belastung, die die Bewertung ausgeloest hat
  • Pruefen Sie auf VPN/Proxy-Nutzung durch den Kunden
  • Erwaegen Sie eine Schwellenwertanpassung bei konsistenter Ungenauigkeit

Kunde verifiziert, aber erscheint als "pending"

  • Pruefen Sie die Webhook-Verarbeitung auf Fehler
  • Aktualisieren Sie die Kundendaten manuell von Stripe
  • Ueberpruefen Sie, ob die Sitzungs-ID mit der aktuellen Verifizierung uebereinstimmt
  • Pruefen Sie auf mehrere ueberlappende Sitzungen