
# Mitglied reaktivieren

`POST /fapi/v1/organizations/{org_id}/memberships/{membership_id}:reactivate` · aufgerufen vom Anmelde-Host der Umgebung

Reaktiviert eine gesperrte Mitgliedschaft; das Mitglied kann die Organisation mit den zuvor gehaltenen Rollen wieder auswählen. Die Reaktivierung eines aktiven Mitglieds liefert die Mitgliedschaft unverändert zurück. Das Konto des Benutzers muss selbst aktiv sein.

Erforderlich ist entweder das Cookie `__Host-idp_session` des angemeldeten Benutzers mit einem exakten `Origin`-Header oder das Front-API-Zugriffstoken einer Erstanbieter-Anwendung (`Authorization: DPoP <token>` mit einem DPoP-Nachweis; siehe [Front-API-Zugriffstoken](/docs/api/fapi/front-api-token)). Der Benutzer muss aktives Mitglied der Organisation sein und sowohl die Berechtigung `idp_members:update_roles` als auch `idp_members:remove` besitzen. Ein Benutzer, der kein Mitglied ist, erhält `404 not_found`; ein Mitglied ohne beide Berechtigungen erhält `403 insufficient_permissions`. Die eigene Mitgliedschaft können Sie hier nicht ändern (`403 insufficient_permissions`), und nur ein Mitglied mit der Admin-Rolle kann ein Mitglied mit einer privilegierten Rolle ändern (`403 role_not_assignable`).

Mit `@keenauth/js`: `await keenauth.organizations.reactivateMember(orgId, membershipId, { expectedVersion: 4 })`.

## Anfrage

Header:

| Header | Erforderlich | Beschreibung |
| --- | --- | --- |
| `Idp-Client` | ja | SDK-Kennung. |
| `Origin` | ja, mit dem Cookie | `https://<sign-in host>`. |
| `If-Match` | nein | Eine Version, `"<version>"`, aus der Mitgliederliste. Eine Version, die nicht übereinstimmt, oder mehr als eine Version liefert `412 precondition_failed`. |

`org_id`: die Kennung der Organisation (`org_…`). `membership_id`: die Kennung der Mitgliedschaft (`mem_…`).

Kein Body.

## Antwort

`200 OK` mit der Mitgliedschaft (dieselben Felder wie ein Eintrag der [Mitgliederliste](/docs/api/fapi/organizations/memberships/list)) und `ETag: "<version>"`.

## Fehler

| Status | Code | Wann |
| --- | --- | --- |
| 400 | `malformed_request` | `If-Match` ist fehlerhaft. |
| 401 | `unauthenticated` | Kein gültiges Sitzungs-Cookie oder Token. |
| 403 | `insufficient_permissions` | Dem Benutzer fehlt `idp_members:update_roles` oder `idp_members:remove`, oder die Mitgliedschaft ist die eigene des Benutzers. |
| 403 | `role_not_assignable` | Das Mitglied hat eine privilegierte Rolle und der Benutzer hat nicht die Admin-Rolle. |
| 403 | `origin_not_allowed` | Der `Origin`-Header stimmt nicht überein. |
| 403 | `user_not_active` | Das Konto des Benutzers ist gesperrt oder steht zur Löschung an. |
| 404 | `not_found` | Keine solche Organisation oder Mitgliedschaft für diesen Benutzer; eine unbekannte, fehlerhafte oder fremde Kennung führt zur selben Antwort. |
| 409 | `organization_disabled` | Die Organisation ist deaktiviert oder steht zur Löschung an (`organization_pending_deletion`). |
| 412 | `precondition_failed` | `If-Match` nennt nicht die aktuelle Version der Mitgliedschaft. |
| 422 | `validation_failed` | Die Mitgliedschaft wurde entfernt. |
| 503 | `service_unavailable` | Vorübergehend nicht verfügbar; nach `Retry-After` erneut versuchen. |

## Beispiel

```bash
curl -X POST "https://example.keenauth.app/fapi/v1/organizations/org_01jbz6x8kq3m2n4p5r6s7t8v9a/memberships/mem_01jbz6x8kq3m2n4p5r6s7t8v9b:reactivate" \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -H "Origin: https://example.keenauth.app" \
  -H 'If-Match: "3"' \
  -b cookies.txt
```

```json
{
  "id": "mem_01jbz6x8kq3m2n4p5r6s7t8v9b",
  "user_id": "usr_01jbz6x8kq3m2n4p5r6s7t8v9c",
  "status": "active",
  "roles": [{ "role_id": "rol_01jbz6x8kq3m2n4p5r6s7t8v9w", "source": "admin_api" }],
  "created_at": "2026-11-03T09:00:00Z",
  "activated_at": "2026-11-03T09:00:00Z",
  "expires_at": null,
  "updated_at": "2026-11-03T11:00:00Z",
  "version": 4
}
```

## Personenbezogene Daten

Dieser Endpunkt verarbeitet personenbezogene Daten: Organisationsmitgliedschaften und Einladungen. [Personenbezogene Daten in den KeenAuth-APIs](/docs/policies/personal-data) beschreibt, was gespeichert wird, wie lange es aufbewahrt wird und wie es gelöscht wird. Senden Sie in keinem Feld besondere Kategorien personenbezogener Daten (Gesundheit, biometrische Daten, Religion, politische Meinungen, sexuelle Orientierung).
