> For the complete documentation index, see [llms.txt](https://docs.otima.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.otima.io/whatsapp/recursos-de-api/typing-indicator.md).

# Typing Indicator

O Typing Indicator permite que sua aplicação informe ao usuário final que uma resposta está sendo preparada, simulando o comportamento de “digitando…” no WhatsApp.

Esse recurso melhora significativamente a experiência do usuário, tornando o atendimento mais natural, fluido e humano — especialmente em situações onde há algum tempo de processamento antes da resposta final.

### Como funciona

Ao enviar o Typing Indicator:

* O WhatsApp exibe o status **"digitando..."** para o usuário
* O indicador aparece **antes do envio da mensagem**
* Ele desaparece automaticamente quando:
  * A mensagem é enviada, **ou**
  * Após **25 segundos** (timeout padrão Meta)

### Quando utilizar

Use o Typing Indicator sempre que houver um pequeno delay na resposta, por exemplo:

* Processamento de dados
* Integrações com APIs externas
* Geração de respostas dinâmicas (IA, automações, etc.)
* Consultas em banco de dados

\- Isso evita que o usuário pense que o atendimento travou ou foi abandonado.

***

Todas as requisições devem ser feitas utilizando autenticação Bearer Token.

### Envios <a href="#envios" id="envios"></a>

URL Base de envio do typing indicator:

{% code overflow="wrap" expandable="true" %}

```http
POST https://sync-core-api.otima.io/whatsapp/provider/{NUMERO_AQUI}/typing-indicator
```

{% endcode %}

### Parâmetros

#### Body (JSON)

```json
{
  "message_id": "wamid.HBgMNTUzMTk0OTIyODQxFQIAERgSODk3NDQ2QzlCNEY3RTIzRjI0AA"
}
```

#### Campo obrigatório

| Campo       | Tipo   | Descrição                                  |
| ----------- | ------ | ------------------------------------------ |
| message\_id | string | ID da mensagem recebida do usuário (wamid) |

### Resposta de sucesso

```json
{
  "message": "O indicador de digitação foi enviado."
}
```

### Fluxo recomendado

Um fluxo ideal de uso seria:

1. Usuário envia mensagem
2. Sua aplicação recebe o webhook
3. Envia o **Typing Indicator**
4. Processa a resposta
5. Envia a mensagem final

***

### 💡 Exemplo prático

```http
curl --request POST \
  --url https://sync-core-api.otima.io/whatsapp/provider/{NUMERO_AQUI}/typing-indicator \
  --header 'Content-Type: application/json' \
  --data '{
    "message_id": "wamid.HBgMNTUzMTk0OTIyODQxFQIAERgSODk3NDQ2QzlCNEY3RTIzRjI0AA"
}'
```

**Dicas:**

* Combine com filas (queues) para garantir envio imediato do indicator
* Em respostas mais longas (>10s), considere:
  * Enviar indicator
  * Processar
  * Responder antes do timeout (25s)
* Ideal para bots com IA ou integrações pesadas

***

{% hint style="danger" %}

#### Importante <a href="#boas-praticas" id="boas-praticas"></a>

* O indicador expira automaticamente após **25 segundos**
* Não é persistente — precisa ser reenviado se necessário (com cuidado)
* Requer obrigatoriamente um `message_id` válido
* Uso incorreto pode resultar com uma mensagem de erro do envio

**Tratamento de erros:**

Erros comuns incluem:

* `message_id` inválido ou inexistente
* Estrutura JSON incorreta
* Endpoint com `{NUMBER_ID}` inválido
* Sempre valide os dados antes do envio.
  {% endhint %}

{% hint style="success" %}

#### Boas práticas <a href="#boas-praticas" id="boas-praticas"></a>

Para evitar problemas de comportamento ou erros na API, siga estas regras:

**Recomendado**

* Enviar o indicador **logo após receber a mensagem do usuário**
* Utilizar apenas quando **uma resposta real será enviada**
* Garantir que o `message_id` seja válido

&#x20;**Evite**

* Enviar múltiplos indicators antes de uma única resposta
* Disparar o indicador sem intenção de responder
* Usar com delays muito longos sem enviar resposta
  {% endhint %}
