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

# Instâncias e billing

> Criar, listar, atualizar instâncias e fluxo de billing no SDK

Use estes recursos para autenticação da conta, ciclo de vida da instância e billing.

Para sessão WhatsApp, veja [Sessão](/pt-BR/sdk/typescript/session). Para chats, veja [Chats](/pt-BR/sdk/typescript/chats). Para envio de mensagens, veja [Mensagens](/pt-BR/sdk/typescript/messages).

Campos comuns em chamadas de instância:

| Campo           | Tipo     | Obrigatório | Descrição           |
| --------------- | -------- | ----------- | ------------------- |
| `instanceId`    | `string` | Sim         | ID da instância.    |
| `instanceToken` | `string` | Sim         | Token da instância. |

## Auth

### `auth.getAccessToken()`

Obtém JWT com `clientToken` e `clientSecret`. Na maioria dos fluxos, os recursos fazem isso automáticamente.

```ts theme={null}
const token = await vzaps.auth.getAccessToken();
console.log(token.slice(0, 16));
```

**Retorno:** `string` com o JWT de acesso (`accessToken` de `POST /token`).

## Instâncias e billing

### `instances.create(data)`

```ts theme={null}
const created = await vzaps.instances.create({
  name: 'Atendimento',
  webhook: 'https://example.com/webhooks/vzaps',
  eventsSubscribe: ['Message', 'Connected', 'Disconnected'],
});
```

**Retorno:** `InstancePublicCreateResponse` — `id`, `name`, `token`, `url`, `webhook`, `eventsSubscribe`, `status`, `createdAt`, `updatedAt`.

### `instances.list(data?)`

```ts theme={null}
const instances = await vzaps.instances.list({
  page: 1,
  pageSize: 20,
  search: 'atendimento',
});
```

**Retorno:** pagina `{ page, size, total, totalPages, content[], summary }`. Cada item de `content` segue o resumo publico da instancia (`id`, `name`, `status`, etc.).

### `instances.get(instanceId, options?)`

Retorna uma instância no mesmo formato público resumido de cada item de `instances.list()`.

```ts theme={null}
const instance = await vzaps.instances.get('VZ...');
```

**Retorno:** mesmo formato resumido de um item de `instances.list()` (`id`, `name`, `token`, `url`, `webhook`, `status`, etc.).

### `instances.update(instanceId, data, options?)`

```ts theme={null}
await vzaps.instances.update('VZ...', {
  name: 'Atendimento Comercial',
}, {
  instanceToken: 'instance-token',
});
```

**Retorno:** instancia atualizada no mesmo formato resumido de `instances.get()`.

### `instances.restart(instanceId, options?)`

```ts theme={null}
await vzaps.instances.restart('VZ...', {
  instanceToken: 'instance-token',
});
```

**Retorno:** `InstanceActionResponse` — `instanceId`, `status`, `details`.

### `instances.delete(instanceId, options?)`

```ts theme={null}
await vzaps.instances.delete('VZ...', {
  instanceToken: 'instance-token',
});
```

**Retorno:** corpo vazio em sucesso (`204`) ou envelope de erro padrao.

### `instances.subscribe(instanceId, data?, options?)`

```ts theme={null}
const checkout = await vzaps.instances.subscribe('VZ...', {}, {
  instanceToken: 'instance-token',
});
```

**Retorno:** `BillingHostedSession` — `url`, `sessionId`, `mode` (`direct` ou checkout), `subscriptionId`.

### `instances.resumeSubscription(instanceId, options?)`

```ts theme={null}
await vzaps.instances.resumeSubscription('VZ...', {
  instanceToken: 'instance-token',
});
```

**Retorno:** `{ status: "ok" }`.

### `instances.cancel(instanceId, options?)`

```ts theme={null}
await vzaps.instances.cancel('VZ...', {
  instanceToken: 'instance-token',
});
```

**Retorno:** `{ message }` confirmando cancelamento ou agendamento.

## Chamadas avançadas

Use `vzaps.request()` quando precisar de uma operação ainda não encapsulada por um recurso:

```ts theme={null}
await vzaps.request(method, path, options);
```

Para o contrato HTTP completo, use a aba [API](/pt-BR/api-reference/introduction).
