Pular para o conteúdo principal
Use estes recursos para autenticação da conta, ciclo de vida da instância e billing. Para sessão WhatsApp, veja Sessão. Para chats, veja Chats. Para envio de mensagens, veja Mensagens. Campos comuns em chamadas de instância:
CampoTipoObrigatórioDescrição
InstanceIDstringSimID da instância (path ou campo da struct).
InstanceTokenstringSimToken da instância (header X-Instance-Token).
Todos os métodos de recurso aceitam context.Context como primeiro argumento.

Auth

Auth.GetAccessToken(ctx)

Obtém JWT com ClientToken e ClientSecret. Na maioria dos fluxos, recursos fazem isso automáticamente.
token, err := client.Auth.GetAccessToken(ctx)
fmt.Println(token[:16])
Retorno: string com o JWT de acesso (accessToken de POST /token).

Instâncias e billing

Instances.Create(ctx, req)

created, err := client.Instances.Create(ctx, vzaps.InstanceCreateRequest{
	Name:            "Suporte",
	Webhook:         "https://example.com/webhooks/vzaps",
	EventsSubscribe: []string{"Message", "Connected", "Disconnected"},
})
Retorno: InstancePublicCreateResponseid, name, token, url, webhook, events_subscribe, status, created_at, updated_at.

Instances.List(ctx, req)

instances, err := client.Instances.List(ctx, vzaps.InstanceListRequest{
	Page:     1,
	PageSize: 20,
	Search:   "support",
})
Retorno: pagina { page, size, total, total_pages, content[], summary }. Cada item de content segue o resumo publico da instancia (id, name, status, etc.).

Instances.Get(ctx, instanceID)

Retorna uma instância no mesmo formato público de cada linha de Instances.List().
instance, err := client.Instances.Get(ctx, "VZ...")
Retorno: mesmo formato resumido de um item de instances.list() (id, name, token, url, webhook, status, etc.).

Instances.Update(ctx, instanceID, body, options)

_, err := client.Instances.Update(ctx, "VZ...", map[string]any{
	"name": "Suporte Comercial",
}, vzaps.InstanceOptions{
	InstanceToken: "instance-token",
})
Retorno: instancia atualizada no mesmo formato resumido de instances.get().

Instances.Restart(ctx, instanceID, options)

_, err := client.Instances.Restart(ctx, "VZ...", vzaps.InstanceOptions{
	InstanceToken: "instance-token",
})
Retorno: InstanceActionResponseinstance_id, status, details.

Instances.Delete(ctx, instanceID, options)

_, err := client.Instances.Delete(ctx, "VZ...", vzaps.InstanceOptions{
	InstanceToken: "instance-token",
})
Retorno: corpo vazio em sucesso (204) ou envelope de erro padrao.

Instances.Subscribe(ctx, instanceID, body, options)

checkout, err := client.Instances.Subscribe(ctx, "VZ...", nil, vzaps.InstanceOptions{
	InstanceToken: "instance-token",
})
Retorno: BillingHostedSessionurl, session_id, mode (direct ou checkout), subscription_id.

Instances.ResumeSubscription(ctx, instanceID, options)

_, err := client.Instances.ResumeSubscription(ctx, "VZ...", vzaps.InstanceOptions{
	InstanceToken: "instance-token",
})
Retorno: { status: "ok" }.

Instances.Cancel(ctx, instanceID, options)

_, err := client.Instances.Cancel(ctx, "VZ...", vzaps.InstanceOptions{
	InstanceToken: "instance-token",
})
Retorno: { message } confirmando cancelamento ou agendamento.

Chamadas avançadas

Use client.Request() quando precisar de uma operação ainda não encapsulada em um recurso:
err := client.Request(ctx, method, path, vzaps.RequestOptions{}, &out)
Para o contrato HTTP completo, use a aba API.