Convertir una dirección de correo electrónico verificada en la dirección principal del usuario

POST /v1/users/{user_id}/emails/{email_id}:set-primary · permiso users:write

Convierte una dirección verificada en la dirección principal del usuario; la principal anterior pasa a ser una dirección secundaria. Una dirección no verificada no puede convertirse en principal. Si la dirección ya es principal, no se escribe nada y se devuelve 200. El cambio se registra en el registro de auditoría de gestión como user.primary_email_changed, con la clave de API como actor, y emite user.updated.

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), tal como lo devuelve GET /v1/users/{user_id}/emails.

La solicitud no admite cuerpo (se acepta un cuerpo vacío o {}).

Respuesta

200 OK con la fila de correo electrónico actualizada. Sin el permiso users:read_pii, la dirección aparece enmascarada (a***@e***.com).

{
  "id": "0191f0a0-3333-7444-8555-666666666666",
  "email": "ada@example.com",
  "verified": true,
  "primary": true,
  "created_at": "2026-01-15T09: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 no está vacío ni es {}.
409 primary_requires_verified La dirección no está verificada.
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; 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:set-primary \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"

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.