Révoquer une invitation
POST /fapi/v1/organizations/{org_id}/invitations/{invitation_id}:revoke · appelé depuis l'hôte de connexion de l'environnement
Révoque une invitation en attente. La réponse est l'invitation révoquée ; son adresse a été effacée (email vaut null). Une invitation qui n'est plus en attente (acceptée, expirée ou déjà révoquée) renvoie 422 invitation_invalid.
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). 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 révoquer une invitation portant un rôle privilégié (403 role_not_assignable).
Avec @keenauth/js : await keenauth.organizations.revokeInvitation(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_…), soit le id de l'invitation.
Aucun corps.
Réponse
200 OK avec l'invitation et ETag: "<version>".
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. |
| 503 | service_unavailable |
Service temporairement indisponible ; réessayez après Retry-After. |
Exemple
curl -X POST "https://example.keenauth.app/fapi/v1/organizations/org_01jbz6x8kq3m2n4p5r6s7t8v9a/invitations/inv_01jbz6x8kq3m2n4p5r6s7t8v9d:revoke" \
-H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
-H "Origin: https://example.keenauth.app" \
-b cookies.txt
{
"id": "inv_01jbz6x8kq3m2n4p5r6s7t8v9d",
"email": null,
"role_ids": ["rol_01jbz6x8kq3m2n4p5r6s7t8v9w"],
"delivery": "email",
"delivery_status": "sent",
"status": "revoked",
"send_count": 1,
"last_sent_at": "2026-11-03T10:00:00Z",
"expires_at": "2026-11-10T10:00:00Z",
"accepted_user_id": null,
"accepted_at": null,
"revoked_at": "2026-11-03T11:00:00Z",
"created_at": "2026-11-03T10:00:00Z",
"updated_at": "2026-11-03T11:00: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 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.