field das mensagens recebidas, messages, mas com a lista statuses no lugar de messages.
A forma de saber qual é qual é verificar qual lista veio no value:
A sequência normal
Para cada mensagem enviada com sucesso chegam três eventos, em momentos diferentes:
Todos usam o mesmo
id, que é o wamid devolvido no envio. É por ele que você liga o status à mensagem no seu banco de dados:
conversation aparece no sent e no delivered, e informa a categoria da conversa e quando a janela de 24 horas expira. O pricing indica se a conversa é cobrada e em qual categoria.
O
read só chega se o cliente tiver a confirmação de leitura ativada no aparelho. A ausência dele não significa que a mensagem não foi lida.Quando a mensagem falha
No lugar da sequência normal, chega um único evento comstatus: "failed" e o array errors, que explica o motivo:
error_data.details é o que explica a causa em texto; o title é genérico. Registre o code junto da mensagem para conseguir agrupar as falhas depois.
Falhas mais comuns
A lista completa está na referência de códigos de erro da Meta.
Mensagens de template
Templates seguem exatamente o mesmo caminho:sent, delivered e read, ou failed com o motivo. A diferença aparece em conversation.origin.type, que indica a categoria cobrada — marketing, utility ou authentication.
Os eventos que tratam do template em si, como aprovação e qualidade, são outros e estão em Templates.