Pular para o conteúdo principal
Use $vzaps->groups() para operações de grupos WhatsApp de uma instância. Campos comuns em todas as chamadas:
CampoTipoObrigatórioDescrição
instanceIdstringSimID da instância.
instanceTokenstringSimToken da instância.
Operacoes em grupo específico também exigem groupId no payload.

groups()->list($request)

Lista grupos com páginacao.
$groups = $vzaps->groups()->list([
    'instanceId' => 'VZ...',
    'instanceToken' => 'instance-token',
    'page' => 1,
    'pageSize' => 20,
]);

print_r($groups);
Retorno: envelope { code, success, data.groups[] } com paginacao quando aplicavel.

groups()->get($request)

Obtém metadados de um grupo.
$group = $vzaps->groups()->get([
    'instanceId' => 'VZ...',
    'instanceToken' => 'instance-token',
    'groupId' => '120363012345678901@g.us',
]);

print_r($group);
Retorno: envelope { code, success, data } com metadados do grupo (jid, name, topic, participantes, etc.). Obtém ou reseta o link de convite.
$invite = $vzaps->groups()->inviteLink([
    'instanceId' => 'VZ...',
    'instanceToken' => 'instance-token',
    'groupId' => '120363012345678901@g.us',
    'reset' => false,
]);

print_r($invite);
Retorno: envelope { code, success, data.invite_link }. Com reset:
$newInvite = $vzaps->groups()->inviteLink([
    'instanceId' => 'VZ...',
    'instanceToken' => 'instance-token',
    'groupId' => '120363012345678901@g.us',
    'reset' => true,
]);

groups()->setPhoto($request)

Altera a foto do grupo. Aceita URL pública ou data URL base64.
$vzaps->groups()->setPhoto([
    'instanceId' => 'VZ...',
    'instanceToken' => 'instance-token',
    'groupId' => '120363012345678901@g.us',
    'image' => 'https://cdn.example.com/grupos/foto.jpg',
]);
Retorno: envelope { code, success, data.details } confirmando a alteracao.

groups()->setName($request)

Altera o nome do grupo.
$vzaps->groups()->setName([
    'instanceId' => 'VZ...',
    'instanceToken' => 'instance-token',
    'groupId' => '120363012345678901@g.us',
    'name' => 'Suporte VIP',
]);
Retorno: envelope { code, success, data.details } confirmando a alteracao.

groups()->setDescription($request)

Altera a descrição do grupo.
$vzaps->groups()->setDescription([
    'instanceId' => 'VZ...',
    'instanceToken' => 'instance-token',
    'groupId' => '120363012345678901@g.us',
    'description' => 'Canal oficial de suporte',
]);
Retorno: envelope { code, success, data.details } confirmando a alteracao.

groups()->setSettings($request)

Altera configurações do grupo.
$vzaps->groups()->setSettings([
    'instanceId' => 'VZ...',
    'instanceToken' => 'instance-token',
    'groupId' => '120363012345678901@g.us',
    'adminOnlyMessage' => true,
    'adminOnlySettings' => false,
    'delayMessage' => 0,
]);
Retorno: envelope { code, success, data.details } confirmando a alteracao.

groups()->create($request)

Cria um grupo com participantes.
$vzaps->groups()->create([
    'instanceId' => 'VZ...',
    'instanceToken' => 'instance-token',
    'groupName' => 'Suporte VIP',
    'groupDescription' => 'Canal de atendimento',
    'groupImage' => 'https://cdn.example.com/grupos/foto.jpg',
    'participants' => ['5511999999999', '5511888888888'],
]);
Retorno: envelope { code, success, data } com dados do grupo criado.

groups()->addAdmin($request)

Promove participantes a administrador.
$vzaps->groups()->addAdmin([
    'instanceId' => 'VZ...',
    'instanceToken' => 'instance-token',
    'groupId' => '120363012345678901@g.us',
    'participants' => ['5511999999999'],
]);
Retorno: envelope { code, success, data.details } confirmando a alteracao.

groups()->removeAdmin($request)

Remove administradores do grupo.
$vzaps->groups()->removeAdmin([
    'instanceId' => 'VZ...',
    'instanceToken' => 'instance-token',
    'groupId' => '120363012345678901@g.us',
    'participants' => ['5511999999999'],
]);
Retorno: envelope { code, success, data.details } confirmando a alteracao.