O fluxo principal (visão geral)
- Instância ACTIVE + recurso grupos ativo no workspace + API Key com
whatsapp:groups. - Listar grupos → copiar o JID (
...@g.us). - Enviar com
POST /v1/whatsapp/messagesusando o JID emto(mesma rota do chat privado).
Pré-requisitos
- API Key com escopo
whatsapp:groups. - Workspace com Recursos de grupos (experimental) ativados (Settings → Recursos experimentais).
- Instância WhatsApp conectada (status ACTIVE) e que participe de pelo menos um grupo.
- Envie a API Key em toda requisição:
- Header:
Authorization: Bearer sk_live_xxxxx - ou Header:
x-api-key: sk_live_xxxxx
- Header:
1. Listar grupos
Obtenha todos os grupos da instância de forma paginada. A API usa cache e responde sempre antes do timeout: se os grupos ainda estiverem sendo carregados, a resposta vem comloading: true e mensagem para tentar em breve. A listagem não inclui participantes; use a rota da seção 1.1 para obter os participantes de um grupo.
Request
page (padrão 1), limit (padrão 20, máx. 100).
Response (200) — com dados em cache
id (JID) do grupo, por exemplo: 120363295648424210@g.us.
1.1. Listar participantes de um grupo
Para obter a lista de participantes de um grupo, use a rota específica passando o id do grupo (JID completo ou só o número). RequestgroupId na URL pode ser 120363295648424210@g.us ou 120363295648424210; use encoding adequado para @ na URL, ex.: %40.)
Response (200)
2. Enviar mensagem para um grupo
Use a rota oficial de mensagens POST /v1/whatsapp/messages. Para grupos, preenchato com um ou mais JIDs de grupo (ex.: 120363295648424210@g.us). O restante do body é igual ao envio para números: instanceId, type, payload; opcionalmente schedule.sendAt e options.
Request — texto para um grupo
to:
schedule.sendAt em ISO 8601:
text, image, video, audio, document, location, contact, buttons — o payload segue o mesmo formato do envio para números.
3. Adicionar ou remover participantes
Use o campoto (array de JIDs de grupo), no mesmo padrão das outras rotas. Assim você pode adicionar ou remover participantes em um ou vários grupos na mesma requisição. action: add ou remove; participants: números com DDI ou JIDs.
Request — adicionar em um grupo
data.results é um array com um item por grupo. Em sucesso: groupJid, success: true, action (add|remove) e participantsCount. Em falha: groupJid, success: false e error (mensagem objetiva).
success: false e error com a mensagem (ex.: “Grupo não encontrado ou a instância não tem acesso a ele.”).
4. Enviar link de convite (um ou vários grupos)
Envie o link de convite de um ou mais grupos para um ou mais números. Usegroups (array de JIDs de grupo) e to (array de números com DDI que recebem os links). Opcionalmente description (texto que acompanha o convite). Assim você pode enviar o link de vários grupos para o mesmo contato em uma requisição.
Request — um grupo
data.results com um item por grupo. Em sucesso, cada item traz groupJid, success: true e data com send (boolean) e inviteUrl (URL do convite enviada aos números). Em falha: success: false e error.
success: false e error com a mensagem.
5. Revogar link de convite
Revoga o link de convite atual do grupo. O link antigo deixa de funcionar; um novo pode ser obtido pelo endpoint de código de convite (próximo passo). Request6. Buscar código/URL de convite
Retorna o código ou URL de convite atual do grupo. Passe ogroupJid na query.
Request
data contém a URL e o código do convite atual do grupo.
Resumo do fluxo
- GET
/v1/whatsapp/instances/{instanceId}/groups?page=1&limit=20→ listar grupos (paginado, cache); resposta pode vir comloading: true— tente de novo em breve. - GET
/v1/whatsapp/instances/{instanceId}/groups/{groupId}/participants→ listar participantes de um grupo. - POST
/v1/whatsapp/messages→ enviar mensagem para um ou mais grupos (to= array de JIDs,type,payload). - POST
/v1/whatsapp/instances/{instanceId}/groups/participants→ adicionar/remover participantes em um ou mais grupos (to= array de JIDs,action,participants). - POST
/v1/whatsapp/instances/{instanceId}/groups/invite→ enviar link de convite (to= números). - POST
/v1/whatsapp/instances/{instanceId}/groups/invite/revoke→ revogar o link atual. - GET
/v1/whatsapp/instances/{instanceId}/groups/invite-code?groupJid=...→ obter o código/URL de convite.
Referências
- Escopos: A API Key precisa do escopo whatsapp:groups. Veja a documentação de escopos da API Key.
- Erros 403: Se o workspace não tiver recursos de grupos ativados ou a chave não tiver o escopo, a API retorna 403 com código
GROUP_FEATURES_DISABLEDou mensagem de escopo ausente.
