👣Alteração de status da mensagem

Esse webhook é disparado toda vez que uma mensagem é enviada com sucesso e há alterações em seu status.

Mas o que são os status de uma mensagem?

À grosso modo, os status são literalmente os estágios que uma mensagem no WhatsApp é tratada, ela estará presente nos eventos de NEW-MESSAGE e MESSAGE-UPDATED, mas é aconselhado apenas à olhar o evento de MESSAGE-UPDATED, pois é nele que haverá mais consistência.

Quais são os status disponíveis?

Basicamente, existem seis status, sendo eles:

  • 0 - Esse status indica erro no envio da mensagem, ocorreu algum problema no momento de enviar a mensagem até o contato do WhatsApp.

  • 1 - Aguardando envio, a mensagem já saiu da fila e está aguardando o WhatsApp receber a mensagem.

  • 2 - O servidor do WhatsApp recebeu a mensagem e deu o primeiro sinal de ACK.

  • 3 - A mensagem foi enviada com sucesso para o contato e o servidor do WhatsApp deu o sinal de confirmação ACK para a mensagem.

  • 4 - A mensagem foi lida pelo usuário.

  • 5 - Apenas para casos de áudio e vídeo, essa propriedade indica que o usuário deu play no áudio ou vídeo, ou seja, além de visualizar ele também abriu o arquivo.

SIGNIFICADO DE ACK:

[Ing. Forma reduzida para acknowledgement] (Confirmação). Código de comunicação enviado por uma unidade receptora à uma estação transmissora, com o objetivo de confirmar que está pronta para receber um pacote de dados ou que o pacote enviado chegou sem erros. Cf. Nak.

Formatos recebidos via Webhook em casos de MESSAGE-UPDATED

O exemplo abaixo é para casos de quando a mensagem foi enviada via Zapfy, é possível notar o messageUuid e id, essas propriedades são utilizadas para identificar de qual mensagem esse evento se refere. Se preferir, você também pode utilizar o identificador id dentro de key.

{
  "type": "MESSAGE-UPDATED",
  "instanceKey": "b08f4262-b74f-4b7b-9958-1c7d5d1dc5e7",
  "id": "c53b047e-687f-4775-aa64-9bea0bd7ad78",
  "data": [
    {
      "key": {
        "remoteJid": "5527997320619:[email protected]", // Contato que recebeu / enviou a mensagem
        "id": "BAE598CD990F9514", // ID de identificação da mensagem no whatsapp
        "fromMe": true, // Propriedade que indica se a mensagem foi enviada pelo número conectado à instância
        "messageUuid": "c53b047e-687f-4775-aa64-9bea0bd7ad78"
      },
      "update": {
        "status": 3 // Status da mensagem
      }
    }
  ],
  "ids": [
    "c53b047e-687f-4775-aa64-9bea0bd7ad78"
  ]
}

Agora, vemos um exemplo de quando sua instância recebe uma mensagem, perceba que a estrutura se mantém a mesma, a única alteração é na propriedade id fora de key e messageUuid, os valores são nulos pois a mensagem não foi enviada via Zapfy.

{
  "type": "MESSAGE-UPDATED",
  "instanceKey": "b08f4262-b74f-4b7b-9958-1c7d5d1dc5e7",
  "id": null,
  "data": [
    {
      "key": {
        "remoteJid": "[email protected]", // Contato que recebeu / enviou a mensagem
        "id": "3EB054EA40CA962D1FF7", // ID de identificação da mensagem no whatsapp
        "fromMe": false, // Propriedade que indica se a mensagem foi enviada pelo número conectado à instância
        "messageUuid": null
      },
      "update": {
        "status": 4
      }
    }
  ],
  "ids": [
    null
  ]
}s

Sempre se baseie na propriedade fromMe para saber se foi sua instância que enviou a mensagem.

Se essa propriedade for false, significa que a mensagem foi recebida, e não enviada, ou seja, alguém mandou essa mensagem para o número conectado na sua instância.

Last updated