Después de mandar un mensaje por la API quieres saber qué pasó con él: si llegó, si lo leyeron o si falló (por ejemplo, porque el número no tiene WhatsApp) para avisar por otro canal. Hay dos formas. Puedes usar las dos juntas.

Webhook message.status

Te avisamos cada vez que cambia el estado. Es lo recomendado: inmediato y sin llamadas de más.

GET /messages/{id}

Consultas cuando lo necesitas. Útil para revisar un mensaje puntual o como respaldo.

Los estados

Si el cliente desactivó las confirmaciones de lectura en WhatsApp, el mensaje puede quedarse en delivered aunque lo haya leído.

Con el webhook

1

Guarda el wamid al enviar

POST /messages devuelve id y wamid. El webhook identifica el mensaje por su wamid, así que guárdalo junto a tu registro (el pedido, el turno, la factura…).
2

Suscríbete a message.status

En Ajustes › API y webhooks, crea un webhook con el evento Estado de un mensaje enviado (entregado, leído, fallido).
3

Actualiza tu registro con cada aviso

message.status llega por todos los mensajes que mandas: los de la API, los del chat y los de las campañas. Si solo te interesan los tuyos, ignora los wamid que no conoces (como en el ejemplo). En campañas grandes pueden ser miles de avisos.

Consultando

Un mensaje que falló
Si consultas periódicamente, hazlo con calma: una vez por minuto durante los primeros minutos alcanza. La mayoría de los mensajes pasan a delivered en segundos.

Qué hacer cuando falla

La lista completa de códigos está en la documentación de Meta.

Métricas propias

Con los estados guardados puedes calcular, por ejemplo, qué porcentaje de tus confirmaciones de pedido se leen y cuánto tardan. Para las campañas no hace falta: eltick ya te muestra entregas, lecturas y respuestas en Resultados de campañas, y GET /campaigns te da los totales.