14. Presença, Leitura e "Digitando"#
No canal oficial, a comunicação fica mais natural: a Catcher expõe o indicador "digitando…" e a marcação de leitura da Cloud API. Você pode acioná-los por request, ou deixar a Catcher cuidar disso automaticamente.
- "Digitando…" —
POST .../presencecompresence: "composing"mostra o indicador de digitação ao contato (até ~25s, ou até a próxima mensagem). No canal oficial, o indicador só aparece em resposta a uma mensagem recebida. - Marcar como lido —
POST .../mark-readmarca as mensagens recebidas como lidas (o "check azul" para o remetente). - Auto-read — ligue
auto_read_messagesnas configurações da conexão e cada mensagem recebida é marcada como lida automaticamente. - Humanize — ligue
humanize_enablede, ao responder, a Catcher mostra "digitando…" por um instante proporcional ao tamanho do texto antes de enviar — a conversa parece humana.
POST/v1/instances/{instanceId}/presence#
Define a presença / mostra "digitando…". No canal oficial, composing aciona o
indicador de digitação da Cloud API (ancorado na última mensagem recebida do
chat); os demais valores retornam sucesso sem efeito (a Cloud API não tem
presença geral de online/offline).
Auth: Todos autenticados
Request:
{
"presence": "composing",
"chat_jid": "554137984905@s.whatsapp.net"
}
| Campo | Tipo | Obrigatório | Descricao |
|---|---|---|---|
presence |
string | sim | available, unavailable, composing, recording, paused |
chat_jid |
string | não | JID do chat (para presença por chat, ex: "digitando...") |
Valores de presença:
| Valor | Efeito no WhatsApp |
|---|---|
available |
Mostra "online" |
unavailable |
Remove "online" |
composing |
Mostra "digitando..." (requer chat_jid) |
recording |
Mostra "gravando audio..." (requer chat_jid) |
paused |
Remove "digitando..." (requer chat_jid) |
Resposta 200:
{
"instance_id": "84c2e480-...",
"presence": "composing",
"chat_jid": "554137984905@s.whatsapp.net"
}
GET/v1/instances/{instanceId}/profile#
Retorna o perfil da instância (do número conectado).
Auth: Todos autenticados
Query Parameters:
| Parametro | Tipo | Descricao |
|---|---|---|
include |
string | privacy para incluir configurações de privacidade |
Resposta 200:
{
"instance_id": "84c2e480-...",
"jid": "554137984905@s.whatsapp.net",
"push_name": "Empresa LTDA",
"status": "Atendimento 24h",
"picture_url": "/v1/instances/84c2e480-.../profile/avatar"
}
Nota:
picture_url, quando presente, sempre aponta para URL controlada pela BiaZap (S3 público ou/profile/avatar). Não ha fallback para URL temporaria do CDN do WhatsApp.
PATCH/v1/instances/{instanceId}/profile#
Atualiza o perfil da instância no WhatsApp.
Auth: Todos autenticados
Opcao 1: JSON#
{
"name": "Novo Nome",
"status": "Novo status"
}
Opcao 2: Multipart (para enviar foto)#
Content-Type: multipart/form-data
name=Novo Nome
status=Novo status
picture=<arquivo binario>
Limite: picture tem 10 MB de tamanho máximo (request multipart inteiro). Imagens image/* (JPEG/PNG/WebP) são recomendadas; o WhatsApp gera thumbnails internamente.
| Campo | Tipo | Obrigatório | Descricao |
|---|---|---|---|
name |
string | não | Novo nome (push_name) |
status |
string | não | Novo recado/status |
picture |
file/base64 | não | Nova foto de perfil (max 10 MB) |
Resposta 200:
{
"instance_id": "84c2e480-...",
"updated": true,
"fields": ["name", "status"]
}