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

# Grupos

> Listar, criar e gerenciar grupos WhatsApp com o SDK Java

Use `client.groups()` para listagem, metadados, link de convite, configuracoes e acoes de administracao em grupos.

Campos comuns em todas as chamadas:

| Campo           | Tipo     | Obrigatório | Descrição           |
| --------------- | -------- | ----------- | ------------------- |
| `instanceId`    | `string` | Sim         | ID da instância.    |
| `instanceToken` | `string` | Sim         | Token da instância. |

Operações em grupo específico também exigem `groupId` no payload.

## `client.groups().list(...)`

Lista grupos com páginação.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.groups().list(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
```

**Retorno:** envelope `{ code, success, data.groups[] }` com paginacao quando aplicavel.

## `client.groups().get(...)`

Obtém metadados de um grupo.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.groups().get(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
```

**Retorno:** envelope `{ code, success, data }` com metadados do grupo (`jid`, `name`, `topic`, participantes, etc.).

## `client.groups().inviteLink(...)`

Obtém ou reseta o link de convite.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.groups().inviteLink(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
```

**Retorno:** envelope `{ code, success, data.invite_link }`.

Com reset:

```ts theme={null}
const newInvite = await vzaps.groups.inviteLink({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  groupId: '120363012345678901@g.us',
  reset: true,
});
```

## `client.groups().setPhoto(...)`

Altera a foto do grupo. Aceita URL pública ou data URL base64.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.groups().setPhoto(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
```

**Retorno:** envelope `{ code, success, data.details }` confirmando a alteracao.

## `client.groups().setName(...)`

Altera o nome do grupo.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.groups().setName(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
```

**Retorno:** envelope `{ code, success, data.details }` confirmando a alteracao.

## `client.groups().setDescription(...)`

Altera a descrição do grupo.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.groups().setDescription(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
```

**Retorno:** envelope `{ code, success, data.details }` confirmando a alteracao.

## `client.groups().setSettings(...)`

Altera configurações do grupo.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.groups().setSettings(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
```

**Retorno:** envelope `{ code, success, data.details }` confirmando a alteracao.

## `client.groups().create(...)`

Cria um grupo com participantes.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.groups().create(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
```

**Retorno:** envelope `{ code, success, data }` com dados do grupo criado.

## `client.groups().addAdmin(...)`

Promove participantes a administrador.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.groups().addAdmin(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
```

**Retorno:** envelope `{ code, success, data.details }` confirmando a alteracao.

## `client.groups().removeAdmin(...)`

Remove administradores do grupo.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.groups().removeAdmin(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
```

**Retorno:** envelope `{ code, success, data.details }` confirmando a alteracao.
