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

# Session

> WhatsApp session status, QR code, pairing, and disconnect

Use `sessions` for pairing, status checks, and WhatsApp session disconnect.

For instances and billing, see [Instances and billing](/en/sdk/typescript/instances-and-billing). For chats, see [Chats](/en/sdk/typescript/chats).

## Session

### `sessions.status(instanceId, options?)`

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

Returns `SessionStatusResponse`. The `data` object uses this field order:

1. `connected` — always first
2. `phone`
3. `whatsappJid`
4. `pushName`
5. `businessName`
6. `businessProfile` — subfields: `businessHoursTimezone`, `categories`, `profileOptions`, `address`, `email`
7. `profilePictureId`
8. `profilePictureUrl`
9. `profileUrl`
10. `verifiedName` — `about`, `website` (when applicable)

When disconnected, `data` only has `connected: false`. Empty fields are omitted.

### `sessions.qr(instanceId, options?)`

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

**Return:** envelope `{ code, success, data }`. When not connected yet, `data.qrCode` (PNG data URL). When already connected, `data.status` and `data.phone`.

### `sessions.pairCode(instanceId, phone, options?)`

```ts theme={null}
const pairCode = await vzaps.sessions.pairCode('VZ...', '5511999999999', {
  instanceToken: 'instance-token',
});
```

**Return:** envelope `{ code, success, data }` with `data.linkingCode` (pairing code).

### `sessions.disconnect(instanceId, options?)`

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

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