Saltar al contenido principal

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.
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.

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.
Consulta la referencia OpenAPI de WhatsApp para ver el schema y las respuestas.