
# Envoyer un e-mail de réinitialisation du mot de passe

`POST /v1/users/{user_id}:send-password-reset` · autorisation `user-credentials:write`

Envoie le lien de réinitialisation du mot de passe (valable 24 heures) à l'adresse e-mail principale de l'utilisateur. L'adresse ne fait pas partie de la requête et le lien n'est jamais renvoyé. Le corps facultatif ne sert qu'à choisir la langue de l'e-mail. Envoyez un en-tête `Idempotency-Key` pour rendre les nouvelles tentatives sans risque.

## Requête

| Paramètre | Dans | Obligatoire | Description |
|---|---|---|---|
| `user_id` | path | oui | Identifiant de l'utilisateur, préfixé `usr_`. |

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 celle de l'environnement. |

## Réponse

`204 No Content`. Le corps est vide ; le lien n'est pas renvoyé.

## Erreurs

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

| HTTP | `code` | Cas |
|---|---|---|
| 400 | `malformed_request`, `unknown_field` | Le corps n'est pas du JSON valide ou contient un champ inconnu. |
| 409 | `conflict` | L'utilisateur n'a pas d'adresse e-mail principale, ou elle n'est pas 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 n'existe pas dans cet environnement (ou l'identifiant est mal formé). |
| 401 | `unauthenticated` | La clé d'API est absente, invalide ou révoquée. |
| 403 | `insufficient_permissions` | La clé ne dispose pas de l'autorisation `user-credentials: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 l'en-tête `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:send-password-reset \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"locale": "en"}'
```
