
# Envoyer l'e-mail de vérification à une adresse e-mail

`POST /v1/users/{user_id}/emails/{email_id}:send-verification` · autorisation `users:write`

Envoie l'e-mail de vérification à une ligne d'adresse e-mail de l'utilisateur. `email_id` est l'UUID interne (en minuscules, avec tirets). La réponse contient l'expiration de la demande de vérification ; aucun code ni lien n'est renvoyé. Le corps facultatif sert uniquement à choisir la langue de l'e-mail.

## Requête

| Paramètre | Dans | Obligatoire | Description |
|---|---|---|---|
| `user_id` | path | oui | Identifiant de l'utilisateur, préfixé `usr_`. |
| `email_id` | path | oui | Identifiant de la ligne d'adresse e-mail (UUID interne, en minuscules, avec tirets). |

Corps facultatif :

| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| `locale` | string | non | Étiquette de langue BCP 47 de l'e-mail, par exemple `tr` ou `pt-BR`. Par défaut, la langue de l'utilisateur ou de l'environnement. |

## Réponse

`200 OK`. `expires_at` indique la date d'expiration de la demande de vérification.

```json
{
  "expires_at": "2026-01-16T09:30:00Z"
}
```

## Erreurs

Chaque erreur est un corps `application/problem+json` avec un `code` stable.

| HTTP | `code` | Quand |
|---|---|---|
| 400 | `malformed_request`, `unknown_field` | Le corps n'est pas un JSON valide ou contient un champ inconnu. |
| 409 | `conflict` | L'adresse e-mail est déjà vérifiée. |
| 415 | `unsupported_media_type` | Un corps a été envoyé sans `Content-Type: application/json`. |
| 422 | `validation_failed` | `locale` n'est pas une étiquette de langue BCP 47 valide, ou un champ a un type incorrect. |
| 404 | `not_found` | L'utilisateur ou la ligne d'adresse e-mail n'existe pas dans cet environnement, l'adresse n'appartient pas à cet utilisateur, ou un identifiant est mal formé. |
| 401 | `unauthenticated` | La clé API est absente, invalide ou révoquée. |
| 403 | `insufficient_permissions` | La clé ne dispose pas de l'autorisation `users:write`. |
| 429 | `rate_limited` | La limite de débit de l'API ou la limite d'envoi d'e-mails par utilisateur a été dépassée ; respectez `Retry-After`. |
| 503 | `service_unavailable` | Une dépendance est temporairement indisponible ; réessayez plus tard. |

## Exemple

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

## Données personnelles

Cet endpoint traite des données personnelles : profil de l'utilisateur final. [Données personnelles dans les API KeenAuth](/docs/policies/personal-data) décrit ce qui est stocké, la durée de conservation et la manière dont elles sont supprimées. N'envoyez aucune catégorie particulière de données personnelles (santé, données biométriques, religion, opinions politiques, orientation sexuelle) dans aucun champ.
