
# Renvoyer une invitation

`POST /fapi/v1/organizations/{org_id}/invitations/{invitation_id}:resend` · appelé depuis l'hôte de connexion de l'environnement

Renvoie par e-mail une invitation en attente, avec un nouveau lien ; le lien précédent cesse de fonctionner. La date d'expiration ne change pas. Une invitation peut être envoyée au plus cinq fois, à au moins dix minutes d'intervalle ; un envoi trop rapproché ou au-delà de la limite renvoie `429 invite_rate_limited` avec `Retry-After`. Une invitation qui n'est plus en attente, ou qui a été créée sans remise par e-mail, renvoie `422 invitation_invalid`. Le lien lui-même n'est jamais renvoyé.

Nécessite le cookie `__Host-idp_session` de l'utilisateur authentifié avec un `Origin` exact, ou un jeton d'accès à l'API frontale d'une application de premier niveau (`Authorization: DPoP <token>` avec une preuve DPoP ; voir [Jeton d'accès à l'API frontale](/docs/api/fapi/front-api-token)). L'utilisateur doit être membre actif de l'organisation et disposer de l'autorisation `idp_members:invite`. Un utilisateur qui n'est pas membre reçoit `404 not_found` ; un membre sans cette autorisation reçoit `403 insufficient_permissions`. Seul un membre ayant le rôle administrateur peut renvoyer une invitation portant un rôle privilégié (`403 role_not_assignable`).

Avec `@keenauth/js` : `await keenauth.organizations.resendInvitation(orgId, invitationId)`.

## Requête

En-têtes :

| En-tête | Obligatoire | Description |
| --- | --- | --- |
| `Idp-Client` | oui | Identifiant du SDK. |
| `Origin` | oui, avec le cookie | `https://<hôte de connexion>`. |

`org_id` : l'identifiant de l'organisation (`org_…`). `invitation_id` : l'identifiant de l'invitation (`inv_…`).

Aucun corps.

## Réponse

`200 OK` avec [l'invitation](/docs/api/fapi/organizations/invitations/create) et `ETag: "<version>"` ; `send_count` et `last_sent_at` reflètent cet envoi.

## Erreurs

| Statut | Code | Quand |
| --- | --- | --- |
| 401 | `unauthenticated` | Aucun cookie de session ni jeton valide. |
| 403 | `insufficient_permissions` | L'utilisateur ne dispose pas de `idp_members:invite` dans l'organisation. |
| 403 | `role_not_assignable` | L'invitation porte un rôle privilégié et l'utilisateur ne détient pas le rôle administrateur. |
| 403 | `origin_not_allowed` | L'`Origin` ne correspond pas. |
| 404 | `not_found` | Aucune organisation ou invitation de ce type pour cet utilisateur ; un identifiant inconnu, mal formé ou étranger reçoit la même réponse. |
| 409 | `organization_disabled` | L'organisation est désactivée ou en attente de suppression (`organization_pending_deletion`). |
| 422 | `invitation_invalid` | L'invitation n'est pas en attente, ou elle n'a pas été créée pour une remise par e-mail. |
| 429 | `invite_rate_limited` | Déjà envoyée cinq fois, ou moins de dix minutes depuis le dernier envoi ; réessayez après `Retry-After`. |
| 501 | `not_implemented` | La remise par e-mail n'est pas disponible dans ce déploiement. |
| 503 | `service_unavailable` | Service temporairement indisponible ; réessayez après `Retry-After`. |

## Exemple

```bash
curl -X POST "https://example.keenauth.app/fapi/v1/organizations/org_01jbz6x8kq3m2n4p5r6s7t8v9a/invitations/inv_01jbz6x8kq3m2n4p5r6s7t8v9d:resend" \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -H "Origin: https://example.keenauth.app" \
  -b cookies.txt
```

```json
{
  "id": "inv_01jbz6x8kq3m2n4p5r6s7t8v9d",
  "email": "new.member@example.com",
  "role_ids": ["rol_01jbz6x8kq3m2n4p5r6s7t8v9w"],
  "delivery": "email",
  "delivery_status": "queued",
  "status": "pending",
  "send_count": 2,
  "last_sent_at": "2026-11-03T10:30:00Z",
  "expires_at": "2026-11-10T10:00:00Z",
  "accepted_user_id": null,
  "accepted_at": null,
  "revoked_at": null,
  "created_at": "2026-11-03T10:00:00Z",
  "updated_at": "2026-11-03T10:30:00Z",
  "version": 2
}
```

## Données personnelles

Ce point de terminaison traite des données personnelles : appartenances aux organisations et invitations. [Données personnelles dans les API KeenAuth](/docs/policies/personal-data) décrit ce qui est stocké, combien de temps cela est conservé et comment cela est supprimé. Ne transmettez aucune catégorie particulière de données personnelles (santé, données biométriques, religion, opinions politiques, orientation sexuelle) dans un champ quelconque.
