
# Introducir un código de verificación

`POST /fapi/v1/verifications/{verification_id}:attempt` · llamado desde el host de inicio de sesión del entorno

Comprueba el código de 6 dígitos que el usuario recibió tras [Enviar un código de verificación](/docs/api/fapi/verifications/start). Un código correcto marca la dirección como verificada y consume el código; la respuesta es `204`. Un código incorrecto consume uno de los intentos del código. Un código incorrecto, vencido, usado o agotado, un identificador desconocido y el identificador de otro usuario devuelven la misma respuesta `422 verification_invalid`; en ese caso, el usuario solicita un nuevo código. Requiere la cookie `__Host-idp_session` del usuario autenticado; si la cookie falta, ha vencido o ha sido revocada, devuelve `401 unauthenticated`. Una aplicación propia en otro origen puede enviar en su lugar su token de acceso a la API frontal (`Authorization: DPoP <token>` con una prueba DPoP; consulte [Token de acceso a la API frontal](/docs/api/fapi/front-api-token)).

## Solicitud

Parámetro de ruta:

| Parámetro | Descripción |
| --- | --- |
| `verification_id` | El `id` de la respuesta del envío. |

Encabezados:

| Encabezado | Obligatorio | Descripción |
| --- | --- | --- |
| `Idp-Client` | sí | Identificador del SDK. |
| `Origin` | sí | Debe ser exactamente `https://<sign-in host>`. |
| `Content-Type` | sí | `application/json`. |

Cuerpo:

| Campo | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `code` | string | sí | El código de 6 dígitos del correo electrónico. |

## Respuesta

`204 No Content`; la dirección queda verificada.

## Errores

| Estado | Código | Cuándo |
| --- | --- | --- |
| 400 | `malformed_request` | El cuerpo no es JSON válido. |
| 400 | `unknown_field` | El cuerpo tiene un campo distinto de `code`. |
| 401 | `unauthenticated` | No hay una cookie de sesión válida. |
| 403 | `origin_not_allowed` | Falta `Origin` o es incorrecto. |
| 403 | `test_feature_not_in_production` | El código es el código de prueba fijo `424242` y el entorno es de producción. El intento se consume como un código incorrecto. |
| 413 | `payload_too_large` | El cuerpo es demasiado grande. |
| 415 | `unsupported_media_type` | `Content-Type` no es `application/json`. |
| 422 | `validation_failed` | Falta `code`. |
| 422 | `verification_invalid` | El código es incorrecto, ha vencido, ya se usó o se agotaron los intentos, o el identificador es desconocido. |

## Ejemplo

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