> ## Documentation Index
> Fetch the complete documentation index at: https://docs.notifique.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Indicador de escritura

> Muestra que tu empresa está preparando una respuesta de WhatsApp en conexiones QR, Meta Cloud y Gupshup.

## En pocas palabras

* Usa `POST /v1/whatsapp/messages/presence` para mostrar **escribiendo...**.
* Las conexiones oficiales de Meta y Gupshup requieren `messageId`, el ID de un mensaje recibido en esa instancia.
* Las conexiones QR requieren `to`; `messageId` es opcional y `recording` sigue disponible solo en QR.

La llamada oficial también marca el mensaje recibido como leído. El indicador desaparece cuando se envía una respuesta o después de hasta 25 segundos, según el proveedor.

## Cómo usarlo

Envía `composing` para iniciar el indicador. En `from`, indica el ID de la instancia, el teléfono E.164 de la línea o el nombre de la instancia. También se acepta el campo legado `instanceId`; si envías ambos, `from` tiene prioridad. No se aceptan pools porque la presencia debe dirigirse a una línea concreta. En `messageId`, usa el ID externo del webhook oficial entrante (`messages[].id`). `GET /v1/whatsapp/messages/inbound` también devuelve ese valor como `externalMessageId`; el campo `id` de esa lista es interno y no sirve para la presencia oficial.

### Conexión oficial Meta o Gupshup

Este ejemplo envía el indicador para el mensaje recibido `wamid...` usando el número de la línea en `from`.

```bash theme={null}
curl -X POST 'https://api.notifique.dev/v1/whatsapp/messages/presence' \
  -H 'Authorization: Bearer TU_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "from": "+5528999999999",
    "presence": "composing",
    "messageId": "wamid.HBgNNTUxMTk5OTk5OTk5FQIAEhgg..."
  }'
```

`messageId` debe ser el ID externo `messages[].id` del webhook entrante, igual a `externalMessageId` en la lista de recibidos. No uses el `id` interno de la lista. La API comprueba que pertenece a la instancia y al workspace de la clave. Los IDs de otra línea, los mensajes salientes y los IDs aún no registrados devuelven `404 WHATSAPP_PRESENCE_MESSAGE_NOT_FOUND`.

### Conexión QR (no oficial)

En QR, indica el destinatario en `to`. Puedes enviar `composing` o `recording`.

```json theme={null}
{
  "from": "+5528999999999",
  "to": "5511999999999",
  "presence": "composing"
}
```

## Reglas por conexión

| Conexión | `to` | `messageId` | Valores de `presence` |
| - | - | - | - |
| Meta Cloud API oficial | Se ignora | Obligatorio: ID del mensaje recibido | `composing` |
| Gupshup oficial (BSP) | Se ignora | Obligatorio: ID del mensaje recibido | `composing` |
| QR / Evolution | Obligatorio: teléfono o JID | Opcional | `composing`, `recording` |

> [!NOTE]
>
> Envía el indicador solo cuando el cliente vaya a notar una espera. Cada llamada oficial también marca el mensaje entrante como leído; no uses esta ruta solo para renovar el indicador.

Consulta la [referencia OpenAPI de WhatsApp](https://docs.notifique.dev/es/whatsapp-api/api-reference/openapi-whatsapp.json) para ver el schema y las respuestas.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.