{
"id": "01a0d4a2-8c9d-7e0f-8a1b-2c3d4e5f6a7b",
"event": "message.status",
"createdAt": "2026-09-24T17:22:41.530Z",
"data": {
"wamid": "wamid.HBgNNTQ5MTEyMzQ1Njc4ORUCABEYEjQ2QkI1RkY3M0E1RDlDNzY0AA==",
"status": "read",
"conversationId": "01a0d456-e5a1-7b2c-8d3e-4f5a6b7c8d9e",
"contactId": "01a0d456-e419-7c69-a35f-38a00ae65b81",
"phoneNumberId": "109876543210987",
"campaignId": null,
"errorCode": null
}
}Eventos de webhook
message.status
Cambió el estado de un mensaje que mandaste (desde la API, el chat o una campaña). Solo avanza: sent → delivered → read, o failed.
WEBHOOK
message.status
{
"id": "01a0d4a2-8c9d-7e0f-8a1b-2c3d4e5f6a7b",
"event": "message.status",
"createdAt": "2026-09-24T17:22:41.530Z",
"data": {
"wamid": "wamid.HBgNNTQ5MTEyMzQ1Njc4ORUCABEYEjQ2QkI1RkY3M0E1RDlDNzY0AA==",
"status": "read",
"conversationId": "01a0d456-e5a1-7b2c-8d3e-4f5a6b7c8d9e",
"contactId": "01a0d456-e419-7c69-a35f-38a00ae65b81",
"phoneNumberId": "109876543210987",
"campaignId": null,
"errorCode": null
}
}Encabezados
Nombre del evento, igual que event en el cuerpo.
Id de la entrega, igual que id en el cuerpo. Se repite en los reintentos: úsalo para no procesar dos veces lo mismo.
Firma: t=<unix>,v1=<hex>, donde v1 es el HMAC-SHA256 de "<t>.<cuerpo>" con tu secreto de firma.
Cuerpo
application/json
Id de la entrega. Se repite en los reintentos.
Opciones disponibles:
message.received, message.status, contact.created, contact.opted_out, campaign.completed Allowed value:
"message.status"Cuándo ocurrió el evento.
Show child attributes
Show child attributes
Solo en el evento de prueba del botón Probar.
Respuesta
200
Responde con cualquier 2xx para confirmar que lo recibiste.

