
# Saisir un code de vérification

`POST /fapi/v1/verifications/{verification_id}:attempt` · appelé depuis l'hôte de connexion de l'environnement

Vérifie le code à 6 chiffres reçu par l'utilisateur après [Envoyer un code de vérification](/docs/api/fapi/verifications/start). Un bon code marque l'adresse comme vérifiée et épuise le code ; la réponse est `204`. Un mauvais code consomme l'une des tentatives du code. Un code faux, expiré, déjà utilisé ou épuisé, un identifiant inconnu et l'identifiant d'un autre utilisateur donnent tous la même réponse `422 verification_invalid` ; dans ce cas, l'utilisateur demande un nouveau code. Nécessite le cookie `__Host-idp_session` de l'utilisateur authentifié ; si le cookie est absent, expiré ou révoqué, renvoie `401 unauthenticated`. Une application de première partie sur une autre origine peut envoyer à la place son jeton d'accès à l'API frontale (`Authorization: DPoP <token>` avec une preuve DPoP ; voir [Jeton d'accès à l'API frontale](/docs/api/fapi/front-api-token)).

## Requête

Paramètre de chemin :

| Paramètre | Description |
| --- | --- |
| `verification_id` | L'`id` de la réponse à l'envoi. |

En-têtes :

| En-tête | Obligatoire | Description |
| --- | --- | --- |
| `Idp-Client` | oui | Identifiant du SDK. |
| `Origin` | oui | Doit être exactement `https://<hôte de connexion>`. |
| `Content-Type` | oui | `application/json`. |

Corps :

| Champ | Type | Obligatoire | Description |
| --- | --- | --- | --- |
| `code` | string | oui | Le code à 6 chiffres reçu par e-mail. |

## Réponse

`204 No Content` ; l'adresse est vérifiée.

## Erreurs

| Statut | Code | Quand |
| --- | --- | --- |
| 400 | `malformed_request` | Le corps n'est pas un JSON valide. |
| 400 | `unknown_field` | Le corps contient un champ autre que `code`. |
| 401 | `unauthenticated` | Aucun cookie de session valide. |
| 403 | `origin_not_allowed` | `Origin` est absent ou incorrect. |
| 403 | `test_feature_not_in_production` | Le code est le code de test fixe `424242` et l'environnement est un environnement de production. La tentative est épuisée comme un mauvais code. |
| 413 | `payload_too_large` | Le corps est trop volumineux. |
| 415 | `unsupported_media_type` | `Content-Type` n'est pas `application/json`. |
| 422 | `validation_failed` | `code` est absent. |
| 422 | `verification_invalid` | Le code est faux, expiré, déjà utilisé ou épuisé, ou l'identifiant est inconnu. |

## Exemple

```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"}'
```
