---
title: "API do WhatsApp para escolas e cursos: grupos por turma, avisos e reunião de pais"
description: "Como escolas e cursos usam a API não oficial do WhatsApp: grupos por turma criados por código, modo avisos, mensagem fixada, comunidade, lembretes e LGPD."
url: "https://wame.api.br/blog/api-whatsapp-escola-curso-grupos-turma"
language: "pt-BR"
og:type: "article"
published_time: "2026-09-28"
modified_time: "2026-09-28"
author: "Raphael Serafim"
keywords: "api whatsapp não oficial, api não oficial whatsapp, whatsapp para escola, grupo de turma whatsapp automático, comunicação escola pais whatsapp, api whatsapp grupos, whatsapp para cursos"
reading_time: "9 min de leitura"
---

# API do WhatsApp para escolas e cursos: grupos por turma, avisos e reunião de pais

> Como escolas e cursos usam a API não oficial do WhatsApp: grupos por turma criados por código, modo avisos, mensagem fixada, comunidade, lembretes e LGPD.

**Para escolas e cursos, a API não oficial do WhatsApp automatiza a parte mais trabalhosa da comunicação: criar um grupo por turma a partir do sistema acadêmico, deixar os grupos em modo avisos, fixar o comunicado importante, organizar tudo numa comunidade da escola e mandar lembretes individuais só para os responsáveis que autorizaram.** A secretaria para de montar grupo à mão todo começo de semestre, e os pais recebem a informação no lugar onde já estão.

> A camada não oficial não é afiliada, endossada ou suportada pelo WhatsApp ou pela Meta. O uso é de responsabilidade de quem envia.

## Por que a camada não oficial

Grupos, comunidades, mensagem fixada e canal são recursos que a WhatsApp Cloud API oficial não expõe da mesma forma. Para uma escola, eles são justamente o centro da comunicação. Na WAME, esses recursos saem por endpoints REST simples, numa instância conectada ao número da escola por QR Code, com infraestrutura hospedada — nada de servidor próprio rodando biblioteca. O panorama completo está em [vantagens da API não oficial](/blog/api-whatsapp-nao-oficial-vantagens).

## A estrutura recomendada

Antes do código, a organização que funciona na maioria das escolas:

- **Uma comunidade da escola**, que reúne todos os grupos e tem o canal de avisos gerais.
- **Um grupo por turma**, em modo avisos, para comunicados da coordenação e dos professores.
- **Conversa privada** com cada responsável, para o que é individual: lembrete de prova, falta, boleto, reunião.
- **Canal do WhatsApp** (opcional), aberto a qualquer interessado: calendário, eventos, matrícula.

A regra é simples: **o que é de todos vai no grupo; o que é de um aluno vai no privado**. Nota, ocorrência disciplinar e situação financeira nunca vão para o grupo.

## Criar os grupos das turmas por código

No início do ano letivo, um script lê as turmas do sistema acadêmico e cria os grupos. O endpoint exige nome e participantes iniciais — coloque os números da coordenação e do professor responsável:

```bash
curl -X POST "https://server.wame.api.br/SUA_KEY/groups" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "7º Ano B — 2027",
    "participants": ["5511988880001", "5511988880002"]
  }'
```

Depois, a descrição com as regras do grupo:

```bash
curl -X PUT "https://server.wame.api.br/SUA_KEY/groups/ID_DO_GRUPO" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "7º Ano B — 2027",
    "description": "Canal oficial de avisos da turma. Dúvidas individuais: fale com a secretaria no privado."
  }'
```

E o modo avisos, para que só a escola publique:

```bash
# Só administradores enviam mensagens
curl -X PATCH "https://server.wame.api.br/SUA_KEY/groups/ID_DO_GRUPO?setting=announcement"

# Só administradores editam nome, descrição e foto
curl -X PATCH "https://server.wame.api.br/SUA_KEY/groups/ID_DO_GRUPO?setting=locked"
```

Em JavaScript, o laço sobre as turmas fica assim:

```js
const BASE = `https://server.wame.api.br/${process.env.WAME_KEY}`;
const post = (path, body, method = 'POST') =>
  fetch(`${BASE}${path}`, {
    method,
    headers: { 'Content-Type': 'application/json' },
    body: body ? JSON.stringify(body) : undefined,
  }).then((r) => r.json());

for (const turma of turmas) {
  const grupo = await post('/groups', {
    name: turma.nome,
    participants: [turma.coordenacao, turma.professor],
  });
  // A resposta traz o grupo em `data` e o link de convite pronto em `groupLink`.
  turma.grupoId = grupo.data.id;
  turma.convite = grupo.groupLink;
  await fetch(`${BASE}/groups/${turma.grupoId}?setting=announcement`, { method: 'PATCH' });
  await new Promise((r) => setTimeout(r, 5000)); // sem pressa: um grupo por vez
}
```

Crie os grupos com calma, um de cada vez. Criar dezenas de grupos em poucos segundos não é comportamento de secretaria — é comportamento de robô.

## Entrada dos responsáveis: convite, não adição em massa

A tentação é pegar a lista de telefones da matrícula e adicionar todo mundo com `POST /groups/{id}/participants`. Não faça isso em massa: quem não tem o número da escola salvo pode nem ser adicionado, e ser colocado num grupo sem pedir é um dos motivos mais comuns de denúncia.

O caminho seguro é o link de convite com aprovação:

```bash
# Link de convite da turma
curl -X GET "https://server.wame.api.br/SUA_KEY/groups/ID_DO_GRUPO/invite"

# Solicitações pendentes
curl -X GET "https://server.wame.api.br/SUA_KEY/groups/ID_DO_GRUPO/request_participants_list"

# Aprovar quem está na lista de responsáveis da turma
curl -X PUT "https://server.wame.api.br/SUA_KEY/groups/ID_DO_GRUPO/request_participants_list" \
  -H "Content-Type: application/json" \
  -d '{ "participants": ["5511977770001"], "action": "approve" }'
```

O sistema compara quem pediu para entrar com os responsáveis cadastrados naquela turma e aprova automaticamente; quem não está na lista fica para a secretaria avaliar. Ninguém de fora entra no grupo do 7º B. O link vai no e-mail de boas-vindas, no portal do aluno ou numa mensagem privada para quem já conversa com a escola. Um fluxo parecido, aplicado a grupo pago, está em [grupo VIP com entrada automática](/blog/grupo-vip-pago-whatsapp-automatizar-api).

## Fixar o comunicado importante

Em grupo de turma, o aviso da semana de provas some debaixo de outros comunicados. Fixe-o no topo:

```bash
curl -X POST "https://server.wame.api.br/SUA_KEY/message/pin" \
  -H "Content-Type: application/json" \
  -d '{ "id": "ID_DA_MENSAGEM", "duration": 604800 }'
```

A duração é em segundos — 604800 são sete dias. Quando o período passar, a mensagem sai do topo sozinha, ou você usa `/message/unpin`. O `id` é o que a API devolve ao enviar a mensagem para o grupo.

## Comunidade da escola

A comunidade junta os grupos das turmas debaixo de um mesmo guarda-chuva, com um espaço de avisos que alcança todos:

```bash
# Criar a comunidade
curl -X POST "https://server.wame.api.br/SUA_KEY/community" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Escola Horizonte", "subject": "Comunidade oficial da Escola Horizonte" }'

# Criar um grupo já dentro da comunidade
curl -X POST "https://server.wame.api.br/SUA_KEY/community/ID_DA_COMUNIDADE/group" \
  -H "Content-Type: application/json" \
  -d '{ "subject": "8º Ano A — 2027", "participants": ["5511988880001"] }'
```

O passo a passo completo está em [criar e gerenciar uma comunidade pela API](/blog/tutorial-criar-comunidade-whatsapp-api), e a automação de moderação de grupos em [automatizar grupos pela API](/blog/automatizar-grupos-whatsapp-api).

## Lembretes individuais para quem autorizou

Lembrete de prova, aviso de falta e confirmação de reunião são individuais. Mande no privado, com o nome do aluno, e só para responsáveis que autorizaram a comunicação por WhatsApp na matrícula:

```js
for (const r of responsaveisAutorizados) {
  await post('/message/text', {
    to: r.telefone,
    text: `Olá, ${r.nome}! Lembrete: ${r.aluno} tem prova de Matemática amanhã, às 8h. Qualquer dúvida, é só responder aqui.`,
  });
  await new Promise((ok) => setTimeout(ok, 3000 + Math.random() * 4000));
}
```

Mensagens personalizadas e espalhadas no tempo são exatamente o que diferencia comunicação escolar de disparo. Texto idêntico para centenas de números em poucos minutos esbarra no freio da própria API, que responde `429`. O desenho de fila está em [fila, rate limit e retry](/blog/fila-rate-limit-retry-disparo-whatsapp), e a organização de quem autorizou em [lista de contatos com opt-in e opt-out](/blog/lista-contatos-optin-optout-whatsapp).

## Reunião de pais com convite de evento

Para a reunião de pais, o convite de evento aparece no chat com data, horário e local — e dá para mandar no grupo da turma:

```bash
curl -X POST "https://server.wame.api.br/SUA_KEY/message/event" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "ID_DO_GRUPO@g.us",
    "name": "Reunião de pais — 7º Ano B",
    "description": "Apresentação do 2º bimestre e plantão com professores.",
    "startTime": "2027-05-15T12:00:00Z",
    "locationName": "Auditório da escola",
    "locationAddress": "Rua Exemplo, 500 — São Paulo"
  }'
```

O horário é em UTC: 12h UTC são 9h em Brasília. Um lembrete no dia anterior, no grupo, completa o fluxo.

## Canal da escola

Para o que é público — calendário letivo, eventos abertos, matrícula —, um Canal do WhatsApp alcança só quem escolheu seguir, sem expor o número de ninguém e sem gerar conversa. Veja [canal do WhatsApp pela API](/blog/canal-whatsapp-newsletter-api).

## LGPD: dados de alunos pedem cuidado redobrado

Escola lida com dados de menores, e o WhatsApp é um canal onde erro de envio é visível para muita gente. Alguns princípios que valem para qualquer instituição:

- **Autorização registrada.** Colete na matrícula a autorização do responsável para comunicação por WhatsApp e guarde o registro.
- **Cada um recebe só o que é seu.** Nota, frequência, ocorrência e financeiro vão no privado do responsável, nunca no grupo.
- **Grupo em modo avisos** evita que dados de uma família apareçam para as outras em conversas paralelas.
- **Saída fácil.** Quem pedir para parar de receber sai da lista na hora.
- **Encerramento de ano.** Grupos da turma antiga são arquivados ou encerrados, não reaproveitados com gente nova.

Isso é orientação geral, não parecer jurídico. Para os detalhes da sua instituição, fale com o encarregado de dados. Há mais contexto em [API de WhatsApp e LGPD](/blog/whatsapp-api-lgpd-contrato-cliente).

## E o risco para o número?

A comunicação escolar é, por natureza, de baixo risco: as mensagens vão para quem tem vínculo com a escola, pediu para receber e espera os avisos. Grupos em modo avisos, entrada por convite com aprovação e lembretes personalizados mantêm a taxa de bloqueio muito baixa para quem usa do jeito certo. O que derruba número é outra coisa — lista de estranhos, texto repetido em massa, gente adicionada sem pedir — e a WAME não apoia esse uso. Se quiser acompanhar a saúde do número, veja [sinais de que o número está em risco](/blog/sinais-numero-whatsapp-risco-bloqueio).

## Conclusão

Com a API não oficial do WhatsApp, escolas e cursos automatizam a comunicação que hoje consome a secretaria: grupos por turma criados a partir do sistema acadêmico, modo avisos, entrada dos responsáveis por convite com aprovação, comunicado fixado, comunidade da escola, lembretes individuais para quem autorizou e reunião de pais com convite de evento. O cuidado central é separar o que é coletivo do que é individual e tratar dados de alunos com o rigor que eles exigem. Os endpoints estão na [documentação](/docs).

## Perguntas frequentes

### Dá para criar os grupos de todas as turmas automaticamente?

Dá. Com a API não oficial da WAME, POST /{key}/groups cria o grupo com nome e participantes iniciais, PUT /{key}/groups/{id} define nome e descrição e GET /{key}/groups/{id}/invite gera o link de convite. Um script percorre a lista de turmas do sistema acadêmico e cria tudo de uma vez.

### Como deixar só a escola postar no grupo da turma?

Use PATCH /{key}/groups/{id}?setting=announcement. O grupo vira modo avisos: só administradores enviam mensagens, e pais ou alunos apenas leem. Para liberar de novo, use not_announcement. Com locked, só administradores editam nome, descrição e foto.

### É melhor adicionar os pais direto ou mandar link de convite?

Prefira o link de convite com aprovação. Adicionar em massa pessoas que não têm o número da escola salvo tende a falhar e gera denúncia. Com o link, cada responsável entra por escolha própria e a escola aprova as solicitações com PUT /{key}/groups/{id}/request_participants_list.

### Posso mandar lembrete de prova no privado de cada responsável?

Pode, para os responsáveis que autorizaram receber comunicação por WhatsApp. Mande mensagens personalizadas, com o nome do aluno e a disciplina, espalhadas em fila. Aviso geral da turma cabe melhor no grupo em modo avisos.

### Quais cuidados de LGPD a escola deve ter ao usar WhatsApp?

Dados de alunos, especialmente menores, exigem cuidado redobrado: colete a autorização dos responsáveis para o canal, envie a cada um só o que diz respeito ao seu filho, não exponha notas ou ocorrências em grupo e mantenha registro de quem autorizou. Na dúvida, consulte o encarregado de dados da instituição.
