---
title: "Como simular \"digitando...\" no WhatsApp pela API"
description: "Tutorial: como enviar presença de \"digitando...\" e \"gravando áudio...\" no WhatsApp pela API, para dar tempo de reação natural a respostas automáticas."
url: "https://wame.api.br/blog/tutorial-presenca-digitando-whatsapp-api"
language: "pt-BR"
og:type: "article"
published_time: "2026-09-17"
modified_time: "2026-09-17"
author: "Raphael Serafim"
keywords: "digitando whatsapp api, presença whatsapp api, simular digitando whatsapp bot, composing whatsapp api, gravando audio whatsapp api"
reading_time: "7 min de leitura"
---

# Como simular "digitando..." no WhatsApp pela API

> Tutorial: como enviar presença de "digitando..." e "gravando áudio..." no WhatsApp pela API, para dar tempo de reação natural a respostas automáticas.

**O endpoint de presença da API do WhatsApp manda o indicador de "digitando..." ou "gravando áudio..." para o contato antes da resposta chegar — um detalhe pequeno que muda como uma resposta automática é percebida.** Este tutorial mostra como usar esse endpoint e quando o atraso deliberado vale a pena.

## Por que simular presença importa

Uma resposta automática que chega em milissegundos, para uma pergunta que uma pessoa levaria alguns segundos para responder, tem um efeito sutil: sinaliza "isto é um robô" de um jeito que uma resposta com um pequeno atraso natural não sinaliza. Isso não é sobre enganar o cliente — é sobre não quebrar o ritmo esperado de uma conversa.

Esse cuidado combina com o que já vale para [quando a IA deve parar de responder no WhatsApp](/blog/quando-ia-deve-parar-responder-whatsapp): parte de fazer a automação funcionar bem é fazer ela se comportar de um jeito que não atrapalhe a experiência, e o ritmo da resposta é parte disso tanto quanto o conteúdo dela.

Vale notar que presença é um detalhe de percepção, não uma garantia de entrega — a mensagem real ainda depende do envio funcionar normalmente, com todo o tratamento de erro que uma automação de produção já deveria ter. Presença não substitui isso; ela só melhora a experiência de quem está do outro lado esperando.

## Pré-requisitos

- Uma instância conectada com webhook recebendo mensagens.
- Uma automação de resposta já funcionando — presença é um complemento ao envio, não substitui a mensagem em si.

## Passo a passo

### 1. Envie o estado de "digitando"

```sh
curl -X POST https://server.wame.api.br/{KEY}/message/presence \
  -H "Content-Type: application/json" \
  -d '{"to": "5511999999999", "presence": "composing"}'
```

O contato vê o indicador de "digitando..." aparecer na conversa, do mesmo jeito que veria se uma pessoa estivesse escrevendo.

### 2. Espere um tempo proporcional à resposta

Depois de mandar o presence, aguarde antes de enviar a mensagem real. Um cálculo simples: 1 segundo de base mais um pequeno acréscimo por tamanho do texto, com um teto para não atrasar demais.

```js
function tempoDigitando(texto) {
  const base = 1000; // 1s mínimo
  const porCaractere = 20; // 20ms por caractere
  const teto = 4000; // nunca mais que 4s
  return Math.min(base + texto.length * porCaractere, teto);
}
```

### 3. Envie a mensagem depois do atraso

```js
async function responderComDigitando(to, texto) {
  await fetch(`https://server.wame.api.br/${KEY}/message/presence`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ to, presence: 'composing' }),
  });

  await new Promise((r) => setTimeout(r, tempoDigitando(texto)));

  await fetch(`https://server.wame.api.br/${KEY}/message/text`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ to, text: texto }),
  });
}
```

### 4. Use "gravando áudio" para respostas em voz

Se a automação responde com nota de voz — como uma automação de transcrição que responde também em áudio — o mesmo endpoint aceita o estado equivalente antes de enviar o arquivo de áudio, sinalizando que uma gravação está a caminho em vez de um texto.

## Mantendo o indicador visível em respostas mais longas

Para uma resposta que realmente demora — uma consulta a um sistema externo, uma chamada a um modelo de IA que leva alguns segundos — o indicador de "digitando" pode sumir antes da mensagem chegar, se o processamento passar do tempo padrão que o WhatsApp mantém o indicador ativo. Reenviar o presence periodicamente resolve isso:

```js
async function manterDigitando(to, promessaDeResposta) {
  const intervalo = setInterval(() => {
    fetch(`https://server.wame.api.br/${KEY}/message/presence`, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ to, presence: 'composing' }),
    });
  }, 4000);

  try {
    const texto = await promessaDeResposta;
    return texto;
  } finally {
    clearInterval(intervalo);
  }
}
```

Esse padrão é especialmente relevante para automação que depende de uma [transcrição de áudio com IA](/blog/transcricao-audio-whatsapp-ia) ou de uma consulta a um sistema externo antes de responder — processos que raramente terminam nos 2-3 segundos de uma resposta simples.

## Diferença entre "composing" e outros estados de presença

O valor `composing` cobre tanto texto digitando quanto o estado equivalente de gravação, dependendo do contexto da automação — o parâmetro é o mesmo campo, e o que muda é o tipo de conteúdo que a sua aplicação pretende enviar em seguida. Vale manter consistência: se a automação vai responder em texto, dispare presence antes do envio de texto; se vai responder em áudio, o mesmo aviso prepara o usuário para o tipo certo de conteúdo que está por vir.

## Quando não vale a pena atrasar

Presença simulada ajuda em conversa de atendimento, onde um pequeno atraso humaniza. Ela **não** ajuda em:

- **Notificação transacional urgente** — confirmação de pedido, alerta de segurança. Nesses casos, atraso deliberado só irrita quem está esperando uma informação objetiva.
- **Resposta a comando explícito** — se o cliente pediu "manda o cardápio", a expectativa é receber rápido, não esperar um "digitando" artificial.
- **Alto volume automatizado** — atraso multiplicado por milhares de conversas simultâneas soma tempo de processamento sem necessidade, sem ganho perceptível de naturalidade em escala.

## Medindo o efeito antes de generalizar

Antes de aplicar presença simulada em toda a automação, vale testar num subconjunto de conversas e comparar CSAT ou taxa de resposta positiva entre quem recebeu com o indicador e quem recebeu sem. Times que pulam essa validação e aplicam globalmente correm o risco de adicionar atraso sem confirmar que o ganho de naturalidade realmente existe para o público específico deles — em alguns contextos B2B, por exemplo, o cliente pode preferir a resposta mais rápida possível a qualquer simulação de comportamento humano.

Um jeito simples de medir sem infraestrutura extra: alternar o comportamento por dia da semana ou por faixa de horário, e comparar o mesmo tipo de métrica usada em [métricas de campanha no WhatsApp](/blog/metricas-campanha-whatsapp-api) — taxa de resposta é o sinal mais direto de que o ritmo da conversa está funcionando bem.

## Erros comuns

**Atraso longo demais.** Mais de 8-10 segundos de "digitando" sem a mensagem chegar tende a gerar ansiedade, não naturalidade — o efeito contrário do pretendido.

**Mandar presence e esquecer de enviar a mensagem.** Se o passo seguinte falhar (erro de rede, exceção não tratada), o indicador de digitando aparece e nada chega depois — pior do que não ter mandado presence nenhuma.

**Aplicar em toda automação sem critério.** Como qualquer detalhe de UX, presença simulada vale para conversa que parece humana; em fluxo claramente identificado como automação (menu numerado, bot institucional), o efeito de naturalidade se perde e vira só atraso sem propósito.

**Calcular o atraso com um valor fixo para qualquer resposta.** Uma resposta de uma palavra e uma resposta de três parágrafos não deveriam ter o mesmo tempo de "digitando" — um atraso fixo de 3 segundos para tudo soa artificial de um jeito diferente, mas ainda artificial. O cálculo proporcional ao tamanho do texto, mostrado no passo 2, evita esse problema com pouco código a mais.

## Aplicando em diferentes canais

Como a WAME API atende WhatsApp, Instagram e Messenger na mesma instância, vale verificar se o indicador de presença está disponível no canal específico antes de aplicar a mesma lógica de atraso em todos — cada plataforma trata esse tipo de sinal de forma um pouco diferente do lado do usuário final, mesmo quando o endpoint de envio é compartilhado entre os três.

## Próximos passos

Presença combina bem com [responder mensagem citada pela API](/blog/tutorial-responder-mensagem-citada-whatsapp-api), no mesmo fluxo de automação de resposta. Para o restante do ciclo de vida de uma mensagem automática, veja também [editar, apagar e encaminhar mensagem pela API](/blog/editar-apagar-encaminhar-mensagem-whatsapp-api).

## Perguntas frequentes

### O que é o endpoint de presença da API do WhatsApp?

É o endpoint que envia o indicador visual de "digitando..." ou "gravando áudio..." para o contato, antes da mensagem de fato chegar — o mesmo indicador que aparece quando uma pessoa está escrevendo no app.

### Por que um bot precisaria simular que está digitando?

Resposta instantânea demais, para uma pergunta que parece exigir pensar, soa artificial e denuncia automação de um jeito que incomoda parte dos usuários. Um pequeno atraso com o indicador de digitando aproxima o ritmo da resposta automática do ritmo de uma conversa humana.

### Quanto tempo devo esperar entre mandar 'digitando' e a mensagem real?

Não há um valor fixo certo, mas 1 a 3 segundos para uma resposta curta e proporcional ao tamanho da resposta para textos mais longos costuma soar natural. Atraso maior que 8-10 segundos tende a frustrar quem está esperando, mesmo que pareça mais "humano".

### Preciso mandar 'parar de digitar' antes de enviar a mensagem?

Não é obrigatório — o indicador some sozinho quando a mensagem chega ou depois de alguns segundos de inatividade. Mas, se a resposta for demorar mais do que o esperado, reenviar o presence periodicamente mantém o indicador visível em vez de sumir no meio da espera.

### Presença funciona para chamada de áudio (gravando) também?

Sim, o mesmo endpoint aceita o estado de "gravando áudio", útil quando a resposta automática vai enviar uma nota de voz — por exemplo, numa automação de transcrição e resposta em áudio.
