> ## 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.

# Gerenciando Usuários

> Consultar, atualizar e excluir perfis de usuário

## Consultando Usuários

### Obter Todos os Usuários

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

**Parâmetros de Filtro:**

* `type` - PERSON ou COMPANY
* `id` - ID de usuário específico
* `externalId` - ID do usuário do seu sistema
* `firstName`, `lastName` - Busca por nome
* `email` - Busca por email
* `customerId` - Filtrar por cliente
* `limit`, `page` - Paginação

### Obter Usuário 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>
  Use `externalId` para encontrar rapidamente usuários pelo seu ID de usuário interno sem armazenar o ID de usuário da KillB em todos os lugares.
</Tip>

## Atualizando Usuários

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

<CodeGroup>
  ```json Atualizar Pessoa theme={null}
  {
    "type": "PERSON",
    "data": {
      "email": "novoemail@example.com",
      "phone": "+5511987654321",
      "address": {
        "street1": "Nova Rua 456",
        "city": "São Paulo",
        "state": "SP",
        "zipCode": "01234-567",
        "countryCode": "BR"
      }
    }
  }
  ```

  ```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>
  Alterar certos campos (como número de documento) pode acionar re-verificação e definir temporariamente o status como PENDING.
</Warning>

## Excluindo Usuários

```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('Usuário excluído com sucesso');
  }
};
```

<Warning>
  A exclusão de usuário é uma **exclusão suave**. Os dados do usuário são retidos para conformidade mas marcados como inativos.
</Warning>

## Próximos Passos

<CardGroup cols={2}>
  <Card title="Criar Contas" icon="wallet" href="/pt/guides/accounts/overview">
    Adicionar contas bancárias e carteiras para usuários
  </Card>

  <Card title="Iniciar Transações" icon="arrow-right-arrow-left" href="/pt/guides/ramps/overview">
    Começar a processar transações ramp
  </Card>
</CardGroup>
