> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fluz.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Eliminar usuario autorizado

Elimina un usuario autorizado de la cuenta del solicitante desactivando su asignación de rol. Esta mutación no elimina al usuario: establece la asignación de rol en la cuenta del solicitante como `INACTIVE`, revocando su acceso. El propietario de la cuenta (rol `OWNER`) no puede ser eliminado mediante este endpoint.

La cuenta de destino siempre se resuelve a partir de las credenciales del solicitante: los tokens Bearer usan la cuenta del token; las llamadas Básicas (clave de API) usan la cuenta de operador configurada de la aplicación. El `authUserId` debe referirse a una asignación de rol en esa cuenta; de lo contrario, la solicitud será rechazada.

🔒 Acceso restringido

Esta mutación requiere el scope `MANAGE_SUBUSERS`. Admite autenticación tanto Bearer (token de acceso de usuario) como Basic (`<API_KEY>`).

```graphql theme={null}
mutation RemoveAuthorizedUser(
  $authUserId: UUID!
) {
  removeAuthorizedUser(
    authUserId: $authUserId
  ) {
    success
    authUserId
    status
    error {
      code
      message
    }
  }
}
```

<br />

### Parámetros

| Parámetro  | Tipo | Requerido | Descripción                                                                                                                     |
| :--------- | :--- | :-------- | :------------------------------------------------------------------------------------------------------------------------------ |
| authUserId | UUID | Sí        | El ID del usuario autorizado (ID de asignación de rol UAC) a desactivar. Obtén esto de `authorizedUsers` o `addAuthorizedUser`. |

<br />

### Respuesta

#### Respuesta exitosa

```json theme={null}
{
  "data": {
    "removeAuthorizedUser": {
      "success": true,
      "authUserId": "8b2c1e0a-7d4f-4a9b-9c2d-1f3e4a5b6c7d",
      "status": "INACTIVE",
      "error": null
    }
  }
}
```

<br />

### Campos de la respuesta

| Campo        | Tipo                | Descripción                                                                   |
| :----------- | :------------------ | :---------------------------------------------------------------------------- |
| `success`    | Boolean             | `true` si la asignación de rol se desactivó correctamente.                    |
| `authUserId` | UUID                | El ID del usuario autorizado (ID de asignación de rol UAC) que se actualizó.  |
| `status`     | UACRoleStatusType   | Estado actualizado de la asignación de rol. Será `INACTIVE` en caso de éxito. |
| `error`      | AuthorizedUserError | Si `success` es false, un objeto de error que contiene `code` y `message`.    |

<br />

<Note>
  Esta mutación devuelve errores en los datos de la respuesta, no como errores de GraphQL. Verifica siempre el campo `success` y maneja el objeto `error` cuando `success` sea false.
</Note>

### Ejemplo de solicitud

```curl theme={null}
curl -X POST https://transactional-graph.staging.fluzapp.com/api/v1/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <your_access_token>" \
  -d '{
  "query": "mutation RemoveAuthorizedUser($authUserId: UUID!) { removeAuthorizedUser(authUserId: $authUserId) { success authUserId status error { code message } } }",
  "variables": {
    "authUserId": "8b2c1e0a-7d4f-4a9b-9c2d-1f3e4a5b6c7d"
  }
}'
```

```typescript theme={null}
const response = await fetch('https://transactional-graph.staging.fluzapp.com/api/v1/graphql', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${accessToken}`
  },
  body: JSON.stringify({
    query: `
      mutation RemoveAuthorizedUser(
        $authUserId: UUID!
      ) {
        removeAuthorizedUser(
          authUserId: $authUserId
        ) {
          success
          authUserId
          status
          error {
            code
            message
          }
        }
      }
    `,
    variables: {
      authUserId: "8b2c1e0a-7d4f-4a9b-9c2d-1f3e4a5b6c7d"
    }
  })
});

const data = await response.json();

if (data.data.removeAuthorizedUser.success) {
  console.log('Authorized user removed:', data.data.removeAuthorizedUser);
} else {
  console.error('Remove authorized user failed:', data.data.removeAuthorizedUser.error);
}
```

### Códigos de error

| Código      | Mensaje                                                                             | Descripción                                                                                                                                                                                                          |
| :---------- | :---------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ARG-0002`  | Missing required arguments                                                          | No se proporcionó `authUserId`.                                                                                                                                                                                      |
| `AUTH-0008` | Invalid user access                                                                 | No se pudo resolver el solicitante a partir del token de acceso o la clave de API, o la aplicación con autenticación Básica no tiene una cuenta de operador configurada. Verifica tus credenciales de autenticación. |
| `AUTH-0031` | The requested scopes must be granted by the user first.                             | Al token le falta el scope `MANAGE_SUBUSERS` requerido para gestionar usuarios autorizados.                                                                                                                          |
| `AUTH-0034` | No role assignment found for the provided authorized user on the specified account. | El `authUserId` no existe en la cuenta del solicitante o la asignación ya está `INACTIVE`.                                                                                                                           |
| `AUTH-0036` | The account owner cannot be removed.                                                | La asignación de rol referenciada tiene el rol `OWNER` y no puede eliminarse mediante este endpoint.                                                                                                                 |
| `AUTH-0037` | Unable to manage authorized user. Please try again or contact support.              | Se produjo una falla general al desactivar la asignación de rol. Intenta nuevamente o contacta al soporte.                                                                                                           |

<br />
