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

Use `client.Groups` para operacoes de grupos WhatsApp em uma instancia.

Campos comuns em toda chamada:

| Campo           | Tipo     | Obrigatorio | Descricao           |
| --------------- | -------- | ----------- | ------------------- |
| `InstanceId`    | `string` | Sim         | ID da instancia.    |
| `InstanceToken` | `string` | Sim         | Token da instancia. |

Operacoes especificas de grupo tambem exigem `GroupId` no payload.

## `client.Groups.ListAsync<TResponse>(request)`

Lista grupos com paginacao.

```csharp theme={null}
var groups = await client.Groups.ListAsync<object>(new GroupListRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
    Page = 1,
    PageSize = 20,
});

Console.WriteLine(groups);
```

**Retorno:** envelope `{ Code, Success, Data.Groups[] }` com paginacao quando aplicavel.

## `client.Groups.GetAsync<TResponse>(request)`

Obtem metadados do grupo.

```csharp theme={null}
var group = await client.Groups.GetAsync<object>(new GroupInfoRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
    GroupId = "120363012345678901@g.us",
});

Console.WriteLine(group);
```

**Retorno:** envelope `{ Code, Success, Data }` com metadados do grupo (`Jid`, `Name`, `Topic`, participantes, etc.).

## `client.Groups.InviteLinkAsync<TResponse>(request)`

Obtem ou redefine link de convite.

```csharp theme={null}
var invite = await client.Groups.InviteLinkAsync<object>(new GroupInviteLinkRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
    GroupId = "120363012345678901@g.us",
    Reset = false,
});

Console.WriteLine(invite);
```

**Retorno:** envelope `{ Code, Success, Data.InviteLink }`.

Com reset:

```csharp theme={null}
var newInvite = await client.Groups.InviteLinkAsync<object>(new GroupInviteLinkRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
    GroupId = "120363012345678901@g.us",
    Reset = true,
});
```

## `client.Groups.SetPhotoAsync<TResponse>(request)`

Altera foto do grupo. Aceita URL publica ou data URL base64.

```csharp theme={null}
await client.Groups.SetPhotoAsync<object>(new GroupMutationRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
    GroupId = "120363012345678901@g.us",
    Image = "https://cdn.example.com/groups/photo.jpg",
});
```

**Retorno:** envelope `{ Code, Success, Data.Details }` confirmando a alteracao.

## `client.Groups.SetNameAsync<TResponse>(request)`

Altera nome do grupo.

```csharp theme={null}
await client.Groups.SetNameAsync<object>(new GroupMutationRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
    GroupId = "120363012345678901@g.us",
    Name = "Suporte VIP",
});
```

**Retorno:** envelope `{ Code, Success, Data.Details }` confirmando a alteracao.

## `client.Groups.SetDescriptionAsync<TResponse>(request)`

Altera descricao do grupo.

```csharp theme={null}
await client.Groups.SetDescriptionAsync<object>(new GroupMutationRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
    GroupId = "120363012345678901@g.us",
    Description = "Canal oficial de suporte",
});
```

**Retorno:** envelope `{ Code, Success, Data.Details }` confirmando a alteracao.

## `client.Groups.SetSettingsAsync<TResponse>(request)`

Altera configuracoes do grupo.

```csharp theme={null}
await client.Groups.SetSettingsAsync<object>(new GroupMutationRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
    GroupId = "120363012345678901@g.us",
    AdminOnlyMessage = true,
    AdminOnlySettings = false,
    DelayMessage = 0,
});
```

**Retorno:** envelope `{ Code, Success, Data.Details }` confirmando a alteracao.

## `client.Groups.CreateAsync<TResponse>(request)`

Cria grupo com participantes.

```csharp theme={null}
await client.Groups.CreateAsync<object>(new GroupMutationRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
    GroupName = "Suporte VIP",
    GroupDescription = "Canal de suporte",
    GroupImage = "https://cdn.example.com/groups/photo.jpg",
    Participants = new[] { "5511999999999", "5511888888888" },
});
```

**Retorno:** envelope `{ Code, Success, Data }` com dados do grupo criado.

## `client.Groups.AddAdminAsync<TResponse>(request)`

Promove participantes a admin.

```csharp theme={null}
await client.Groups.AddAdminAsync<object>(new GroupMutationRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
    GroupId = "120363012345678901@g.us",
    Participants = new[] { "5511999999999" },
});
```

**Retorno:** envelope `{ Code, Success, Data.Details }` confirmando a alteracao.

## `client.Groups.RemoveAdminAsync<TResponse>(request)`

Remove admins do grupo.

```csharp theme={null}
await client.Groups.RemoveAdminAsync<object>(new GroupMutationRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
    GroupId = "120363012345678901@g.us",
    Participants = new[] { "5511999999999" },
});
```

**Retorno:** envelope `{ Code, Success, Data.Details }` confirmando a alteracao.
