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.