# Envio/recebimento de text message

No geral, quando se envia uma mensagem no Zapfy, após a fila executar a mensagem, é disparado um webhook inicial do tipo NEW-MESSAGE, esse webhooks é disparado toda vez que uma instância envia ou recebe uma nova mensagem.

### Exemplos reais

### **Instância envia uma mensagem do tipo `text`**

Adicionamos comentários em cada propriedade para melhor entendimento.

{% code overflow="wrap" lineNumbers="true" %}

```json
{
  "type": "NEW-MESSAGE",
  "instanceKey": "b08f4262-b74f-4b7b-9958-1c7d5d1dc5e7", // key de identificação da instância que recebeu/enviou a mensagem
  "id": "c67fad44-c6eb-4ba2-9f4e-ddc5b526dbe9", // ID da mensagem (esse ID só terá valor caso a mensagem seja enviada via API zapfy)
  "data": {
    "isOnWhatsApp": [
      {
        "exists": true, // Propriedade que diz se o contato existe ou não no WhatsApp
        "jid": "5527997320619@s.whatsapp.net" // Contato que foi o destinatário da mensagem
      }
    ],
    "messageStubParameters": [],
    "labels": [],
    "userReceipt": [],
    "reactions": [],
    "pollUpdates": [],
    "key": {
      "remoteJid": "5527997320619@s.whatsapp.net",
      "fromMe": true, // Propriedade que indica se a mensagem foi enviada pelo número conectado na instância
      "id": "BAE5773A4D88E1B4", // ID da mensagem no WhatsApp
      "messageUuid": "c67fad44-c6eb-4ba2-9f4e-ddc5b526dbe9" // UUID da mensagem que foi adicionada à fila do Zapfy, essa propriedade só existirá em casos em que a mensagem foi enviada pela ZAPFY
    },
    "message": {
      "extendedTextMessage": {
        "text": "Uma mensagem de texto direto da Zapfy :)" // Objeto completo da mensagem de texto, aqui será possível ver o que foi enviado nessa mensagem de texto
      }
    },
    "messageTimestamp": {
      "low": 1674317457,
      "high": 0,
      "unsigned": true
    },
    "status": 1 // Status da mensagem, você poderá entender melhor sobre status no Webhook de alteração de status de mensagem
  },
  "ids": [
    "c67fad44-c6eb-4ba2-9f4e-ddc5b526dbe9"
  ] // Array contendo os uuids das mensagens que foram enviadas nessa instância, nesse job.
}
```

{% endcode %}

### Instância recebe mensagem do tipo `text`:

```json
{
  "type": "NEW-MESSAGE",
  "instanceKey": "b08f4262-b74f-4b7b-9958-1c7d5d1dc5e7", // Key da instância que recebeu a mensagem
  "id": null, // ID da mensagem, nesse caso, como a mensagem não foi enviada pela Zapfy, o ID retorna como null.
  "data": {
    "isOnWhatsApp": [
      {
        "exists": true, // Propriedade que diz se o contato existe ou não no WhatsApp
        "jid": "5527997320619@s.whatsapp.net" // Contato de quem enviou a mensagem
      }
    ],
    "key": {
      "remoteJid": "5527997320619@s.whatsapp.net", // ID de identificação do contato que enviou a mensagem no whatsapp
      "fromMe": false, // Propriedade indicando que a mensagem não foi enviada pelo número conectado na instância
      "id": "3EB0CBF3275965A42934", // ID único de identificação da mensagem no whatsapp
      "messageUuid": null // O uuid é nulo pois essa mensagem não foi enviada pela Zapfy
    },
    "messageTimestamp": 1674318916, // Timestamp da mensagem
    "pushName": "André Rebonato", // Nome do usuário que enviou a mensagem no whatsapp
    "message": {
      "conversation": "Opa, beleza?", // Texto enviado pelo usuário
      "messageContextInfo": {
        "deviceListMetadata": {
          "senderKeyHash": "NBrlAUVzZa0X2g==",
          "senderTimestamp": "1674267191",
          "recipientKeyHash": "gwKoARMTqmLUWw==",
          "recipientTimestamp": "1674267207"
        }, // Informações de autenticidade da mensagem
        "deviceListMetadataVersion": 2
      }
    }
  },
  "ids": [
    null
  ]
}
```

### Dica

É importante lembrar que todo envio ou recebimento de mensagem gera eventos do tipo `MESSAGE-UPDATED`, dê uma olhada para entender melhor do que se trata em [Alteração de status da mensagem](/webhooks/envio-recebimento-de-mensagens/alteracao-de-status-da-mensagem.md).

{% hint style="info" %}
Sempre se baseie na propriedade `fromMe` para saber se foi sua instância que enviou a mensagem.<br>

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
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.zapfy.me/webhooks/envio-recebimento-de-mensagens/envio-recebimento-de-text-message.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
