
# Regenerar códigos de recuperación

`POST /fapi/v1/me/recovery-codes:regenerate` · llamado desde el host de inicio de sesión del entorno

Reemplaza los códigos de recuperación del usuario por otros nuevos; todos los códigos anteriores dejan de ser válidos. Los nuevos códigos se muestran solo una vez en esta respuesta y se envía una notificación de seguridad a las direcciones de correo electrónico del usuario. Requiere la cookie `__Host-idp_session` del usuario autenticado; si la cookie falta, ha caducado 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 de front (`Authorization: DPoP <token>` con una prueba DPoP; consulte [Token de acceso a la API de front](/docs/api/fapi/front-api-token)).

## Solicitud

Cabeceras:

| Cabecera | Obligatoria | Descripción |
| --- | --- | --- |
| `Idp-Client` | sí | Identificador del SDK. |
| `Origin` | sí | Debe ser exactamente `https://<host de inicio de sesión>`. |

Cuerpo:

```json
{}
```

## Respuesta

`200 OK`:

```json
{"recovery_codes": ["…", "…"]}
```

## Errores

| Estado | Código | Cuándo |
| --- | --- | --- |
| 401 | `unauthenticated` | No hay una cookie de sesión válida. |
| 401 | `step_up_required` | La sesión no se verificó en los últimos 5 minutos; vuelva a verificarla con `max_age=300` en la cabecera `WWW-Authenticate`. |
| 403 | `origin_not_allowed` | Falta `Origin` o es incorrecta. |
| 404 | `not_found` | Los códigos de recuperación están desactivados en el entorno. |
| 409 | `conflict` | El usuario no tiene un segundo factor; no se generaron códigos de recuperación. |

## Ejemplo

```bash
curl -X POST https://example.keenauth.app/fapi/v1/me/recovery-codes:regenerate \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -H "Origin: https://example.keenauth.app" \
  -H "Content-Type: application/json" \
  -d '{}' \
  -b cookies.txt
```

## Datos personales

Este endpoint contiene datos personales: credenciales. [Datos personales en las API de KeenAuth](/docs/policies/personal-data) describe qué se almacena, cuánto tiempo se conserva y cómo se elimina. No envíe categorías especiales de datos personales (salud, datos biométricos, religión, opiniones políticas, orientación sexual) en ningún campo.
