POST/api/public/access-request/email/start-verification
Sendet einen 6-stelligen, 10 Minuten gültigen Bestätigungscode an die angegebene E-Mail-Adresse — erster Schritt vor einem Zugangsantrag.
`POST /api/public/access-request/email/start-verification` startet die E-Mail-Verifikation für einen öffentlichen Zugangsantrag. Der Request benötigt keine Anmeldung und enthält die zu prüfende Adresse im Body-Feld `email`. Bei erfolgreicher Verarbeitung versendet das System einen sechsstelligen Bestätigungscode, der zehn Minuten gültig ist. Der Response enthält `ok`, eine `verification_id`, `expires_in_minutes` und `resend_cooldown_seconds`. Die `verification_id` muss zusammen mit derselben E-Mail-Adresse und dem empfangenen Code in der anschließenden Verify-Route verwendet werden. Sie ist kein Login-Token und darf nicht als dauerhafte Benutzerkennung gespeichert oder öffentlich protokolliert werden. Der Endpunkt ist nicht idempotent. Mehrere erfolgreiche Aufrufe können mehrere Verifikationsvorgänge beziehungsweise neue Codes erzeugen. Deshalb gilt ein IP-basiertes strenges Limit von zehn Anfragen innerhalb von 15 Minuten. Zusätzlich weist die Antwort auf eine Wiederholsperre von 60 Sekunden hin. Die Oberfläche soll während dieser Zeit keinen erneuten Versand auslösen und die verbleibende Wartezeit verständlich anzeigen. Wird das Limit überschritten, antwortet die Route mit `429 RATE_LIMIT_EXCEEDED`. Kann der Code wegen eines Zustellungsfehlers nicht versendet werden, ist `502 MAIL_NOT_SENT` dokumentiert. Diese Fälle sind getrennt zu behandeln: Ein Rate-Limit wird durch Abwarten gelöst, ein Mailfehler erfordert eine erreichbare Adresse und eine funktionierende Zustellung. Geheimnisse oder interne Mailserverdaten gehören nicht in die Fehlermeldung. Der Erfolgsfall wurde live mit einer echten `verification_id` verifiziert. Die zugehörige Nachricht wurde über einen eigenen Fake-SMTP-Server empfangen und der sechsstellige Code aus dem realen E-Mail-Inhalt gelesen. Außerdem wurde der 429-Negativfall nach wiederholten Aufrufen beobachtet. Genau dieser Nachweis darf genannt werden; daraus folgt noch kein erfolgreich abgeschlossener Zugangsantrag oder Zahlungsvorgang.
Auth & Absicherung
Keine Authentifizierung erforderlich
strictLimiter: 10 Anfragen / 15 Minuten, IP-gebunden.
Rate-Limit: 10 Anfragen pro 15 Minuten (IP-basiert)
Idempotent: Nein
Parameter
email(body, string, erforderlich)— Zu verifizierende E-Mail-AdresseBeispiel-Request
{"email":"max@example.com"}Beispiel-Response
{"ok":true,"verification_id":"<UUID>","expires_in_minutes":10,"resend_cooldown_seconds":60}Fehlercodes
429 RATE_LIMIT_EXCEEDED — Zu viele Anfragen an diesen sensiblen Endpunkt.502 MAIL_NOT_SENT — Der Bestätigungscode konnte nicht versendet werden (E-Mail-Zustellungsfehler).Live-Test-Nachweis
Erfolg (200, echter verification_id) live verifiziert; zugehörige E-Mail über eigenen Fake-SMTP-Server empfangen, 6-stelliger Code aus dem realen E-Mail-Inhalt entnommen. Negativfall 429 nach wiederholten Aufrufen beobachtet.