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

# Webhooks

> Configure webhooks, consulte logs e reenvie entregas com o SDK .NET

Use `client.Webhooks` para configurar a URL que recebe eventos da instância e para consultar logs de entrega.

## `client.Webhooks.GetAsync<TResponse>(instanceId, options?)`

Retorna a configuração atual de webhook da instância.

```csharp theme={null}
await client.Webhooks.GetAsync<object>("VZ...", new InstanceRequestOptions
{
    InstanceToken = "instance-token",
});
```

**Retorno:** envelope `{ Code, Success, Data }` com `Webhook` e `subscribe` (eventos).

## `client.Webhooks.SetAsync<TResponse>(request)`

Define a URL de webhook e os eventos assinados.

```csharp theme={null}
await client.Webhooks.SetAsync<object>(new WebhookSetRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
    WebhookURL = "https://example.com/vzaps/webhook",
    Events = new[] { "Message", "Connected", "Disconnected" },
});
```

**Retorno:** envelope `{ Code, Success, Data }` com `Webhook` e `Events` configurados.

## `client.Webhooks.SearchLogsAsync<TResponse>(request)`

Pesquisa logs de entregas feitas para o webhook.

```csharp theme={null}
await client.Webhooks.SearchLogsAsync<object>(new WebhookLogSearchRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
});
```

**Retorno:** envelope `{ Code, Success, Data }` com pagina de logs (`content[]`, totais).

## `client.Webhooks.GetLogAsync<TResponse>(request)`

Consulta um log específico.

```csharp theme={null}
await client.Webhooks.GetLogAsync<object>(new WebhookLogRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
    LogId = "log_123",
});
```

**Retorno:** envelope `{ Code, Success, Data }` com um log de entrega (status, payload, tentativas, etc.).

## `client.Webhooks.RetryLogAsync<TResponse>(request)`

Reenvia uma entrega registrada no log.

```csharp theme={null}
await client.Webhooks.RetryLogAsync<object>(new WebhookLogRequest
{
    InstanceId = "VZ...",
    InstanceToken = "instance-token",
    LogId = "log_123",
});
```

**Retorno:** envelope `{ Code, Success, Data }` confirmando reenvio do callback.

## Quando usar webhooks

Use webhooks para integração server-to-server persistente. Use [Realtime](/pt-BR/sdk/dotnet/realtime) quando seu processo precisa manter uma conexão WebSocket ativa e tratar eventos em tempo real.
