En pocas palabras
- Usa
POST /v1/whatsapp/messages/presencepara 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;messageIdes opcional yrecordingsigue disponible solo en QR.
Cómo usarlo
Envíacomposing 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 recibidowamid... usando el número de la línea en from.
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 ento. Puedes enviar composing o recording.
Reglas por conexión
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.

