> ## 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.

# Editar Mensagem

> Edite o texto de mensagens já enviadas

# Editar Mensagem

O endpoint de edição permite alterar o texto de uma mensagem já enviada. A mensagem editada aparecerá com uma indicação de "editada" para o destinatário.

## Endpoint

```
PUT /api/v1/message/EditMessage
```

## Payload

```json theme={null}
{
  "channelId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "messageId": "20CFBA298FAB68AA75D3B369EDB5C805",
  "chatId": "5511999999999@s.whatsapp.net",
  "newText": "Texto corrigido da mensagem",
  "correlationId": "edit-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á editada. 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. Para grupos, é o JID do grupo.
</ParamField>

<ParamField body="newText" type="string" required>
  Novo texto que substituirá o conteúdo original da mensagem.
</ParamField>

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

<Warning>
  Você só pode editar mensagens de **texto** que foram **enviadas por você**. Mensagens de mídia (imagem, áudio, vídeo, etc.) não podem ser editadas -- apenas mensagens de texto.
</Warning>

## Exemplos

### Editar mensagem em conversa individual

<CodeGroup>
  ```bash cURL theme={null}
  curl -X PUT https://api-dev.messagefy.io/api/v1/message/EditMessage \
    -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",
      "newText": "Reuniao remarcada para 15h (antes era 14h). Desculpe a alteracao!"
    }'
  ```

  ```python Python theme={null}
  import requests

  response = requests.put(
      "https://api-dev.messagefy.io/api/v1/message/EditMessage",
      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",
          "newText": "Reuniao remarcada para 15h (antes era 14h). Desculpe a alteracao!"
      }
  )
  print(response.json())
  ```

  ```javascript Node.js theme={null}
  const response = await fetch(
    "https://api-dev.messagefy.io/api/v1/message/EditMessage",
    {
      method: "PUT",
      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",
        newText:
          "Reuniao remarcada para 15h (antes era 14h). Desculpe a alteracao!",
      }),
    }
  );
  const data = await response.json();
  console.log(data);
  ```
</CodeGroup>

### Editar mensagem em grupo

```json theme={null}
{
  "channelId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "messageId": "A5B4C3D2E1F09876543210ABCDEF1234",
  "chatId": "120363402110764959@g.us",
  "newText": "CORRECAO: o link correto e https://messagefy.io/docs"
}
```

## Resposta

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

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

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

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

<Tip>
  Após a edição, o WhatsApp exibe o indicador "editada" junto à mensagem. O destinatário pode tocar na mensagem para ver o histórico de edições.
</Tip>

## Erros Comuns

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

## Webhook de Confirmação

Quando a edição é confirmada pelo provedor, você recebe um webhook `MESSAGE_EDITED`:

```json theme={null}
{
  "packageId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "channelId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "content": {
    "type": "MESSAGE_EDITED",
    "messageId": "3EB0A1B2C3D4E5F6",
    "newMessageId": "7F6E5D4C3B2A1908",
    "chatId": "5511999887766@s.whatsapp.net",
    "newText": "Mensagem corrigida: o horario e 15h, nao 14h.",
    "isFromMe": false,
    "jid": "5511999887766@s.whatsapp.net",
    "lid": "203928475@lid"
  }
}
```

| Campo          | Tipo             | Descrição                                                                                                    |
| -------------- | ---------------- | ------------------------------------------------------------------------------------------------------------ |
| `messageId`    | `string`         | ID original da mensagem editada                                                                              |
| `newMessageId` | `string \| null` | Novo ID atribuído à mensagem após a edição. Pode ser `null` quando o provedor não gera um novo identificador |
| `chatId`       | `string`         | JID da conversa onde a mensagem foi editada                                                                  |
| `newText`      | `string`         | Novo conteúdo da mensagem após a edição                                                                      |
| `isFromMe`     | `boolean`        | `true` se editada pelo canal, `false` se pelo contato                                                        |
| `jid`          | `string \| null` | JID de quem editou a mensagem (presente quando conhecido)                                                    |
| `lid`          | `string \| null` | LID de quem editou a mensagem (presente quando conhecido)                                                    |

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