Suspendre un membership
POST /v1/organizations/{org_id}/memberships/{membership_id}:suspend · autorisation organizations:write
Suspend un membership actif (motif admin_suspended). Un membre suspendu ne peut pas se connecter dans le contexte de l'organisation et ses sessions d'organisation prennent fin. Le dernier administrateur actif de l'organisation ne peut pas être suspendu. Suspendre un membership déjà suspendu n'écrit rien. L'écriture est journalisée sous organization_membership.updated avec change=suspended.
Requête
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
org_id |
chemin | oui | Identifiant de l'organisation (org_…). |
membership_id |
chemin | oui | Identifiant du membership (mem_…). |
If-Match |
en-tête | non | ETag actuel ; s'il est fourni, il doit correspondre (412) et l'écriture est liée à cette version. |
Aucun corps de requête.
Réponse
200 OK avec le membership mis à jour et son ETag.
{
"id": "mem_01j9xn5p9s0t4v6w8x0y2z4a6c",
"organization_id": "org_01j9xk3m7q8r2s4t6v8w0y2z4a",
"user_id": "usr_01j9xh2k6p7q1r3s5t7v9w1x3y",
"status": "suspended",
"source": "admin_api",
"reason": "admin_suspended",
"roles": [
{
"role_id": "rol_01j9xr7s1t2w6x8y0z2a4b6c8e",
"source": "admin_api",
"assigned_at": "2026-10-12T09:31:00.123456Z"
}
],
"expires_at": null,
"created_at": "2026-10-12T09:31:00.123456Z",
"activated_at": "2026-10-12T09:31:00.123456Z",
"suspended_at": "2026-10-12T10:00:00Z",
"removed_at": null,
"updated_at": "2026-10-12T10:00:00Z",
"version": 2
}
Erreurs
| HTTP | code | Quand |
|---|---|---|
| 404 | not_found |
Le membership n'existe pas dans cette organisation. |
| 409 | last_org_admin |
Le membership est le dernier administrateur actif de l'organisation. |
| 412 | precondition_failed |
If-Match ne correspond pas à la version actuelle. |
| 422 | validation_failed |
Le membership est invité ou supprimé (/status invalid_state). |
| 401 | unauthenticated |
L'identifiant d'authentification est absent, invalide ou révoqué. |
| 403 | insufficient_permissions |
L'identifiant d'authentification ne dispose pas de l'autorisation requise. |
| 429 | rate_limited |
La limite de débit a été dépassée ; réessayez après la période indiquée par Retry-After. |
| 503 | service_unavailable |
Une dépendance est temporairement indisponible ; réessayez après la période indiquée par Retry-After. |
Exemple
curl -i -X POST "https://api.eu.keenauth.com/v1/organizations/org_01j9xk3m7q8r2s4t6v8w0y2z4a/memberships/mem_01j9xn5p9s0t4v6w8x0y2z4a6c:suspend" \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H 'If-Match: "2"'
Données personnelles
Cet endpoint traite des données personnelles : memberships et invitations d'organisation. Données personnelles dans les API KeenAuth décrit ce qui est stocké, la durée de conservation et la suppression. N'envoyez de données personnelles sensibles (santé, données biométriques, religion, opinions politiques, orientation sexuelle) dans aucun champ.