
# Bestätigungscode eingeben

`POST /fapi/v1/verifications/{verification_id}:attempt` · wird vom Anmeldehost der Umgebung aufgerufen

Prüft den 6-stelligen Code, den der Benutzer nach [Bestätigungscode senden](/docs/api/fapi/verifications/start) erhalten hat. Ein richtiger Code markiert die E-Mail-Adresse als bestätigt und verbraucht den Code; die Antwort ist `204`. Ein falscher Code verbraucht einen der Versuche des Codes. Ein falscher, abgelaufener, bereits verwendeter oder aufgebrauchter Code, eine unbekannte ID und die ID eines anderen Benutzers liefern alle dieselbe Antwort `422 verification_invalid`; in diesem Fall fordert der Benutzer einen neuen Code an. Erforderlich ist das Cookie `__Host-idp_session` des authentifizierten Benutzers; fehlt das Cookie, ist es abgelaufen oder widerrufen, wird `401 unauthenticated` zurückgegeben. Eine First-Party-Anwendung auf einem anderen Ursprung kann stattdessen ihr Front-API-Zugriffstoken senden (`Authorization: DPoP <token>` mit einem DPoP-Nachweis; siehe [Front-API-Zugriffstoken](/docs/api/fapi/front-api-token)).

## Anfrage

Pfadparameter:

| Parameter | Beschreibung |
| --- | --- |
| `verification_id` | Die `id` aus der Antwort auf das Senden. |

Header:

| Header | Erforderlich | Beschreibung |
| --- | --- | --- |
| `Idp-Client` | ja | SDK-Kennung. |
| `Origin` | ja | Muss genau `https://<Anmeldehost>` sein. |
| `Content-Type` | ja | `application/json`. |

Body:

| Feld | Typ | Erforderlich | Beschreibung |
| --- | --- | --- | --- |
| `code` | string | ja | Der 6-stellige Code aus der E-Mail. |

## Antwort

`204 No Content`; die E-Mail-Adresse ist bestätigt.

## Fehler

| Status | Code | Wann |
| --- | --- | --- |
| 400 | `malformed_request` | Der Body ist kein gültiges JSON. |
| 400 | `unknown_field` | Der Body enthält ein anderes Feld als `code`. |
| 401 | `unauthenticated` | Kein gültiges Sitzungs-Cookie. |
| 403 | `origin_not_allowed` | `Origin` fehlt oder ist falsch. |
| 403 | `test_feature_not_in_production` | Der Code ist der feste Testcode `424242` und die Umgebung ist Produktion. Der Versuch ist wie ein falscher Code aufgebraucht. |
| 413 | `payload_too_large` | Der Body ist zu groß. |
| 415 | `unsupported_media_type` | `Content-Type` ist nicht `application/json`. |
| 422 | `validation_failed` | `code` fehlt. |
| 422 | `verification_invalid` | Der Code ist falsch, abgelaufen, bereits verwendet oder die Versuche sind aufgebraucht, oder die ID ist unbekannt. |

## Beispiel

```bash
curl -X POST https://example.keenauth.app/fapi/v1/verifications/0190a5c4-1b2c-7d3e-8f40-5162738400ff:attempt \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -H "Origin: https://example.keenauth.app" \
  -H "Content-Type: application/json" \
  -b cookies.txt \
  -d '{"code": "123456"}'
```
