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

# Starter Guide

> Fluxo completo para começar com o SDK Java da VZaps

Este guia mostra o fluxo comum em Java: criar o cliente, validar autenticação, listar ou criar uma instância, parear a sessão, configurar eventos e enviar mensagem.

## 1. Criar o cliente

```java theme={null}
try (VZapsClient client = VZapsClient.builder()
    .clientToken(System.getenv("VZAPS_CLIENT_TOKEN"))
    .clientSecret(System.getenv("VZAPS_CLIENT_SECRET"))
    .build()) {
  System.out.println(client.auth().getAccessToken());
}
```

## 2. Listar instâncias

```java theme={null}
JsonNode instances = client.instances().list();
System.out.println(instances);
```

## 3. Conferir status da sessão

```java theme={null}
var options = InstanceRequestOptions.builder()
    .instanceToken(System.getenv("VZAPS_INSTANCE_TOKEN"))
    .build();

SessionStatusResponse status = client.sessions().status(System.getenv("VZAPS_INSTANCE_ID"), options);
System.out.println(status.data().connected());
```

## 4. Enviar texto

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

## 5. Usar async quando fizer sentido

```java theme={null}
try (VZapsAsyncClient client = VZapsAsyncClient.builder()
    .clientToken(System.getenv("VZAPS_CLIENT_TOKEN"))
    .clientSecret(System.getenv("VZAPS_CLIENT_SECRET"))
    .build()) {
  client.instances().list().thenAccept(System.out::println).join();
}
```

Veja [Mensagens](/pt-BR/sdk/java/messages) para todos os envios e [Realtime](/pt-BR/sdk/java/realtime) para assinaturas WebSocket.
