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

# Mensagens

> Envie texto, mídia, mensagens interativas, reações e ações de chat com o SDK Java

As chamadas de mensagem ficam em `client.messages()`. O SDK Java envia `instanceId` na URL e `instanceToken` como `X-Instance-Token`; nenhum dos dois campos entra no corpo JSON.

## Texto

```java theme={null}
client.messages().sendText(SendTextMessageRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .phone("5511999999999")
    .message("Hello from Java")
    .build());
```

**Retorno:** envelope `{ code, success, data.message_id }` — mensagem aceita/enfileirada.

## Payloads dinâmicos

Use `GenericInstanceRequest` para mídia e mensagens interativas:

```java theme={null}
client.messages().sendImage(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .put("phone", "5511999999999")
    .put("image", "https://example.com/image.png")
    .put("caption", "Imagem via Java")
    .build());
```

## Retornos dos demais metodos

| Metodo                                                                                                                                                            | Retorno                                                                           |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| `sendImage`, `sendAudio`, `sendDocument`, `sendVideo`, `sendSticker`, `sendGif`, `sendLocation`, `sendContact`, `sendButtons`, `sendList`, `sendLink`, `sendPoll` | envelope `{ code, success, data.message_id }`                                     |
| `pollVote`, `react`                                                                                                                                               | envelope `{ code, success, data }` com confirmacao (`details`, `timestamp`, `id`) |
| `removeReaction`, `presence`, `markRead`, `edit`, `delete`                                                                                                        | envelope `{ code, success, data.details }`                                        |
| `downloadImage`, `downloadVideo`, `downloadAudio`, `downloadDocument`                                                                                             | envelope `{ code, success, data.mimetype, data.data }`                            |
| `send(instanceId, path, body, token)`                                                                                                                             | mesmo contrato HTTP do path proxy                                                 |

Use `GenericInstanceRequest` para mídia e mensagens interativas:

```java theme={null}
client.messages().sendImage(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .put("phone", "5511999999999")
    .put("image", "https://example.com/image.png")
    .put("caption", "Imagem via Java")
    .build());
```

**Retorno:** envelope `{ code, success, data }` com `data.mimetype` e `data.data` (base64 ou data URL).

## Escape hatch

```java theme={null}
client.messages().send(instanceId, "send/text", Map.of("phone", phone, "message", "Hi"), instanceToken);
```
