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

# Gestionando Usuarios

> Consultar, actualizar y eliminar perfiles de usuario

## Consultando Usuarios

### Obtener Todos los Usuarios

```bash theme={null}
GET /api/v2/users?type=PERSON
```

**Parámetros de Filtro:**

* `type` - PERSON o COMPANY
* `id` - ID de usuario específico
* `externalId` - ID del usuario de tu sistema
* `firstName`, `lastName` - Búsqueda por nombre
* `email` - Búsqueda por email
* `customerId` - Filtrar por cliente
* `limit`, `page` - Paginación

### Obtener Usuario por ID

```bash theme={null}
GET /api/v2/users/{userId}
```

```javascript theme={null}
const getUser = async (userId) => {
  const response = await fetch(
    `https://sandbox.killb.app/api/v2/users/${userId}`,
    {
      headers: {
        'Authorization': `Bearer ${accessToken}`
      }
    }
  );
  
  return await response.json();
};
```

### Encontrar por ID Externo

```bash theme={null}
GET /api/v2/users?externalId=user-12345
```

<Tip>
  Usa `externalId` para encontrar rápidamente usuarios por tu ID de usuario interno sin almacenar el ID de usuario de KillB en todos lados.
</Tip>

## Actualizando Usuarios

```bash theme={null}
PATCH /api/v2/users/{userId}
```

<CodeGroup>
  ```json Actualizar Persona theme={null}
  {
    "type": "PERSON",
    "data": {
      "email": "nuevoemail@example.com",
      "phone": "+573009876543",
      "address": {
        "street1": "Nueva Calle 456",
        "city": "Medellín",
        "state": "Antioquia",
        "zipCode": "050001",
        "countryCode": "CO"
      }
    }
  }
  ```

  ```javascript Node.js theme={null}
  const updateUser = async (userId, updates) => {
    const response = await fetch(
      `https://sandbox.killb.app/api/v2/users/${userId}`,
      {
        method: 'PATCH',
        headers: {
          'Authorization': `Bearer ${accessToken}`,
          'Content-Type': 'application/json'
        },
        body: JSON.stringify(updates)
      }
    );
    
    return await response.json();
  };
  ```
</CodeGroup>

<Warning>
  Cambiar ciertos campos (como número de documento) puede activar re-verificación y establecer temporalmente el estado como PENDING.
</Warning>

## Eliminando Usuarios

```bash theme={null}
DELETE /api/v2/users/{userId}
```

```javascript theme={null}
const deleteUser = async (userId) => {
  const response = await fetch(
    `https://sandbox.killb.app/api/v2/users/${userId}`,
    {
      method: 'DELETE',
      headers: {
        'Authorization': `Bearer ${accessToken}`
      }
    }
  );
  
  if (response.ok) {
    console.log('Usuario eliminado exitosamente');
  }
};
```

<Warning>
  La eliminación de usuario es una **eliminación suave**. Los datos del usuario se retienen para cumplimiento pero se marcan como inactivos.
</Warning>

## Próximos Pasos

<CardGroup cols={2}>
  <Card title="Crear Cuentas" icon="wallet" href="/es/guides/accounts/overview">
    Agregar cuentas bancarias y billeteras para usuarios
  </Card>

  <Card title="Iniciar Transacciones" icon="arrow-right-arrow-left" href="/es/guides/ramps/overview">
    Comenzar a procesar transacciones ramp
  </Card>
</CardGroup>
