Enviar el correo de verificación a una dirección de correo electrónico
POST /v1/users/{user_id}/emails/{email_id}:send-verification · permiso users:write
Envía el correo de verificación a una fila de correo electrónico del usuario. email_id es el UUID interno (en minúsculas y con guiones). La respuesta incluye la caducidad de la solicitud de verificación; no se devuelve ningún código ni enlace. El cuerpo opcional solo selecciona el idioma del correo.
Solicitud
| Parámetro | En | Obligatorio | Descripción |
|---|---|---|---|
user_id |
ruta | sí | Id del usuario, con el prefijo usr_. |
email_id |
ruta | sí | Id de la fila de correo electrónico (UUID interno, en minúsculas y con guiones). |
Cuerpo opcional:
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
locale |
string | no | Etiqueta de idioma BCP 47 del correo, por ejemplo tr o pt-BR. Por defecto, el idioma del usuario o el del entorno. |
Respuesta
200 OK. expires_at indica cuándo caduca la solicitud de verificación.
{
"expires_at": "2026-01-16T09:30:00Z"
}
Errores
Cada error es un cuerpo application/problem+json con un code estable.
| HTTP | code |
Cuándo |
|---|---|---|
| 400 | malformed_request, unknown_field |
El cuerpo no es JSON válido o tiene un campo desconocido. |
| 409 | conflict |
El correo electrónico ya está verificado. |
| 415 | unsupported_media_type |
Se envió un cuerpo sin Content-Type: application/json. |
| 422 | validation_failed |
locale no es una etiqueta de idioma BCP 47 válida, o un campo tiene un tipo incorrecto. |
| 404 | not_found |
El usuario o la fila de correo electrónico no existe en este entorno, el correo no pertenece a este usuario, o un id tiene un formato incorrecto. |
| 401 | unauthenticated |
Falta la clave de API, no es válida o ha sido revocada. |
| 403 | insufficient_permissions |
La clave no tiene el permiso users:write. |
| 429 | rate_limited |
Se superó el límite de frecuencia de la API o el límite de envío de correos por usuario; respete Retry-After. |
| 503 | service_unavailable |
Una dependencia no está disponible temporalmente; vuelva a intentarlo más tarde. |
Ejemplo
curl -X POST https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p/emails/0191f0a0-3333-7444-8555-666666666666:send-verification \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"locale": "en"}'
Datos personales
Este endpoint contiene datos personales: perfil del usuario final. Datos personales en las API de KeenAuth 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.