Presença, Leitura e "Digitando"

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 .../presence com presence: "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 lidoPOST .../mark-read marca as mensagens recebidas como lidas (o "check azul" para o remetente).
  • Auto-read — ligue auto_read_messages nas configurações da conexão e cada mensagem recebida é marcada como lida automaticamente.
  • Humanize — ligue humanize_enabled e, 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:

json
{
  "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:

json
{
  "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:

json
{
  "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#

json
{
  "name": "Novo Nome",
  "status": "Novo status"
}

Opcao 2: Multipart (para enviar foto)#

text
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:

json
{
  "instance_id": "84c2e480-...",
  "updated": true,
  "fields": ["name", "status"]
}