> ## 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/go/instances-and-billing). For chats, see [Chats](/en/sdk/go/chats).

## Session

### `Sessions.Status(ctx, instanceID, options)`

```go theme={null}
status, err := client.Sessions.Status(ctx, "VZ...", vzaps.InstanceOptions{
	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(ctx, instanceID, options)`

```go theme={null}
qr, err := client.Sessions.QR(ctx, "VZ...", vzaps.InstanceOptions{
	InstanceToken: "instance-token",
})
```

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

### `Sessions.PairCode(ctx, instanceID, phone, options)`

```go theme={null}
pairCode, err := client.Sessions.PairCode(ctx, "VZ...", "5511999999999", vzaps.InstanceOptions{
	InstanceToken: "instance-token",
})
```

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

### `Sessions.Disconnect(ctx, instanceID, options)`

```go theme={null}
_, err := client.Sessions.Disconnect(ctx, "VZ...", vzaps.InstanceOptions{
	InstanceToken: "instance-token",
})
```

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