
# Eliminar una membresía

`DELETE /v1/organizations/{org_id}/memberships/{membership_id}` · permiso `organizations:write`

Elimina la membresía (motivo `removed_by_admin`). No se puede eliminar al último administrador activo de la organización. `If-Match` es opcional. La eliminación se audita como `organization_membership.deleted`.

## Solicitud

| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `org_id` | ruta | sí | ID de la organización (`org_…`). |
| `membership_id` | ruta | sí | ID de la membresía (`mem_…`). |
| `If-Match` | encabezado | no | `ETag` actual; si no coincide, `412`. |

Sin cuerpo de solicitud.

## Respuesta

`204 No Content`.

## Errores

| HTTP | código | Cuándo |
|---|---|---|
| 404 | `not_found` | La membresía no existe en esta organización. |
| 409 | `last_org_admin` | La membresía corresponde al último administrador activo de la organización. |
| 412 | `precondition_failed` | `If-Match` no coincide con la versión actual. |
| 401 | `unauthenticated` | La credencial falta, no es válida o ha sido revocada. |
| 403 | `insufficient_permissions` | La credencial no tiene el permiso requerido. |
| 429 | `rate_limited` | Se ha superado el límite de frecuencia; reintente después del período indicado en `Retry-After`. |
| 503 | `service_unavailable` | Una dependencia no está disponible temporalmente; reintente después del período indicado en `Retry-After`. |

## Ejemplo

```bash
curl -i -X DELETE "https://api.eu.keenauth.com/v1/organizations/org_01j9xk3m7q8r2s4t6v8w0y2z4a/memberships/mem_01j9xn5p9s0t4v6w8x0y2z4a6c" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

## Datos personales

Este endpoint trata datos personales: membresías de organizaciones e invitaciones. [Datos personales en las API de KeenAuth](/docs/policies/personal-data) describe qué se almacena, durante cuánto tiempo se conserva y cómo se elimina. No envíe categorías especiales de datos personales (salud, datos biométricos, religión, opiniones políticas, orientación sexual) en ningún campo.
