> ## Documentation Index
> Fetch the complete documentation index at: https://docs.messagefy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Deletar Mensagem

> Apague mensagens enviadas para todos os participantes da conversa

# Deletar Mensagem

O endpoint de exclusão permite apagar uma mensagem já enviada. A mensagem será removida para **todos os participantes** da conversa (equivalente ao "Apagar para todos" do WhatsApp).

## Endpoint

```
DELETE /api/v1/message/DeleteMessage
```

## Payload

```json theme={null}
{
  "channelId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "messageId": "20CFBA298FAB68AA75D3B369EDB5C805",
  "chatId": "5511999999999@s.whatsapp.net",
  "correlationId": "delete-msg-001"
}
```

## Campos

<ParamField body="channelId" type="uuid" required>
  Identificador do canal pelo qual a mensagem foi enviada.
</ParamField>

<ParamField body="messageId" type="string" required>
  ID da mensagem que será deletada. Este ID é recebido nos webhooks de envio (`MESSAGE_SENT`) ou nos webhooks de mensagem recebida.
</ParamField>

<ParamField body="chatId" type="string" required>
  Identificador do chat (conversa) onde a mensagem está. Para conversas individuais, é o JID do contato (ex: `5511999999999@s.whatsapp.net`). Para grupos, é o JID do grupo (ex: `120363402110764959@g.us`).
</ParamField>

<ParamField body="correlationId" type="string">
  ID de rastreamento definido pelo cliente. Opcional.
</ParamField>

<Warning>
  Você só pode deletar mensagens que foram **enviadas por você** (pelo mesmo canal). Não é possível deletar mensagens de outros participantes. Além disso, o WhatsApp impõe um limite de tempo para exclusão -- mensagens muito antigas podem não ser deletáveis.
</Warning>

## Exemplos

### Deletar mensagem individual

<CodeGroup>
  ```bash cURL theme={null}
  curl -X DELETE https://api-dev.messagefy.io/api/v1/message/DeleteMessage \
    -H "Content-Type: application/json" \
    -H "X-API-KEY: sua-api-key-aqui" \
    -d '{
      "channelId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "messageId": "20CFBA298FAB68AA75D3B369EDB5C805",
      "chatId": "5511999999999@s.whatsapp.net"
    }'
  ```

  ```python Python theme={null}
  import requests

  response = requests.delete(
      "https://api-dev.messagefy.io/api/v1/message/DeleteMessage",
      headers={
          "Content-Type": "application/json",
          "X-API-KEY": "sua-api-key-aqui"
      },
      json={
          "channelId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "messageId": "20CFBA298FAB68AA75D3B369EDB5C805",
          "chatId": "5511999999999@s.whatsapp.net"
      }
  )
  print(response.json())
  ```

  ```javascript Node.js theme={null}
  const response = await fetch(
    "https://api-dev.messagefy.io/api/v1/message/DeleteMessage",
    {
      method: "DELETE",
      headers: {
        "Content-Type": "application/json",
        "X-API-KEY": "sua-api-key-aqui",
      },
      body: JSON.stringify({
        channelId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        messageId: "20CFBA298FAB68AA75D3B369EDB5C805",
        chatId: "5511999999999@s.whatsapp.net",
      }),
    }
  );
  const data = await response.json();
  console.log(data);
  ```
</CodeGroup>

### Deletar mensagem em grupo

```json theme={null}
{
  "channelId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "messageId": "A5B4C3D2E1F09876543210ABCDEF1234",
  "chatId": "120363402110764959@g.us"
}
```

## Resposta

```json theme={null}
{
  "packageId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "messageId": "20CFBA298FAB68AA75D3B369EDB5C805"
}
```

<ResponseField name="packageId" type="uuid">
  Identificador do pacote de exclusão enviado ao provedor.
</ResponseField>

<ResponseField name="messageId" type="string">
  ID da mensagem que foi solicitada para exclusão.
</ResponseField>

<Note>
  A exclusão é processada de forma assíncrona. O retorno com sucesso indica que o comando de exclusão foi aceito e encaminhado ao provedor. Você receberá um webhook `MESSAGE_DELETED` quando a exclusão for confirmada pelo provedor.
</Note>

## Erros Comuns

| Status             | Descrição                                           |
| ------------------ | --------------------------------------------------- |
| `400 Bad Request`  | Canal inválido, messageId ausente ou chatId ausente |
| `401 Unauthorized` | API Key inválida ou ausente                         |

## Webhook de Confirmação

Quando a exclusão é confirmada pelo provedor, você recebe um webhook `MESSAGE_DELETED`:

```json theme={null}
{
  "packageId": null,
  "channelId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "content": {
    "type": "MESSAGE_DELETED",
    "messageId": "3EB0A1B2C3D4E5F6",
    "chatId": "5511999887766@s.whatsapp.net",
    "isFromMe": false
  }
}
```

| Campo       | Tipo      | Descrição                                                            |
| ----------- | --------- | -------------------------------------------------------------------- |
| `messageId` | `string`  | ID da mensagem apagada                                               |
| `chatId`    | `string`  | JID da conversa onde a mensagem foi apagada                          |
| `isFromMe`  | `boolean` | `true` se a mensagem foi apagada pelo canal, `false` se pelo contato |

<Note>
  Este mesmo webhook também é recebido quando um **contato** apaga uma mensagem na conversa
  (nesse caso `isFromMe` será `false`). Isso permite manter seu sistema sincronizado
  com as exclusões realizadas por qualquer participante.
</Note>
