> ## Documentation Index
> Fetch the complete documentation index at: https://docs.talkover.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Testar Webhook

> Enviar um payload de teste para verificar conectividade do webhook

## Visão Geral

Envia um payload de teste para a URL do webhook para verificar conectividade e garantir que seu endpoint está configurado corretamente para receber eventos de webhook.

## Endpoint

<ParamField path="agent_id" type="string" required>
  UUID do Agente
</ParamField>

<ParamField path="webhook_id" type="string" required>
  UUID do Webhook
</ParamField>

## Requisição

<RequestExample>
  ```bash theme={null}
  curl -X POST \
    'https://app.talkover.ai/api/v1/agents/9fbef0b7-8d4e-4a08-9207-66c22155721d/webhooks/9fcafbf2-7593-44d6-8cd7-1b221beba62a/test' \
    -H 'Authorization: Bearer YOUR_TOKEN'
  ```

  ```javascript theme={null}
  const response = await fetch('https://app.talkover.ai/api/v1/agents/9fbef0b7-8d4e-4a08-9207-66c22155721d/webhooks/9fcafbf2-7593-44d6-8cd7-1b221beba62a/test', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer YOUR_TOKEN'
    }
  });
  const data = await response.json();
  ```

  ```php theme={null}
  <?php

  $client = new \GuzzleHttp\Client();
  $response = $client->post('https://app.talkover.ai/api/v1/agents/9fbef0b7-8d4e-4a08-9207-66c22155721d/webhooks/9fcafbf2-7593-44d6-8cd7-1b221beba62a/test', [
      'headers' => [
          'Authorization' => 'Bearer YOUR_TOKEN',
      ],
  ]);
  $data = json_decode($response->getBody());
  ```
</RequestExample>

## Payload de Teste

Quando você chama o endpoint de teste, o seguinte payload será enviado para sua URL de webhook:

```json theme={null}
{
  "event": "webhook.test",
  "agent_id": "9fbef0b7-8d4e-4a08-9207-66c22155721d",
  "agent_name": "Meu Agente",
  "webhook_id": "9fcafbf2-7593-44d6-8cd7-1b221beba62a",
  "webhook_name": "Meu Webhook",
  "timestamp": "2025-09-03T23:19:51.000Z",
  "test": true
}
```

## Resposta

<ResponseField name="success" type="boolean">
  Indica se o webhook de teste foi enviado com sucesso
</ResponseField>

<ResponseField name="message" type="string">
  Mensagem de sucesso
</ResponseField>

<ResponseField name="data" type="object">
  Dados dos resultados do teste
</ResponseField>

<ResponseField name="data.status_code" type="integer">
  Código de status HTTP retornado pelo seu endpoint de webhook
</ResponseField>

<ResponseField name="data.response_time" type="integer">
  Tempo de resposta em milissegundos
</ResponseField>

<ResponseExample title="Teste Bem-sucedido">
  ```json theme={null}
  {
    "success": true,
    "message": "Webhook de teste enviado com sucesso",
    "data": {
      "status_code": 200,
      "response_time": 150
    }
  }
  ```
</ResponseExample>

## Respostas de erro

<ResponseExample title="401 Não Autorizado">
  ```json theme={null}
  {
    "message": "Token Bearer ausente"
  }
  ```
</ResponseExample>

<ResponseExample title="404 Não Encontrado">
  ```json theme={null}
  {
    "success": false,
    "message": "Agente não encontrado neste ambiente."
  }
  ```
</ResponseExample>

<ResponseExample title="404 Webhook Não Encontrado">
  ```json theme={null}
  {
    "success": false,
    "message": "Webhook não encontrado."
  }
  ```
</ResponseExample>

<ResponseExample title="Teste Falhou">
  ```json theme={null}
  {
    "success": false,
    "message": "Teste de webhook falhou: Timeout de conexão"
  }
  ```
</ResponseExample>

<ResponseExample title="Teste Falhou - Resposta Inválida">
  ```json theme={null}
  {
    "success": false,
    "message": "Teste de webhook falhou: HTTP 500 Erro Interno do Servidor"
  }
  ```
</ResponseExample>

## Notas Importantes

* O payload de teste usa o tipo de evento `webhook.test` para distingui-lo de eventos reais
* Seu endpoint de webhook deve retornar um código de status HTTP 2xx para testes bem-sucedidos
* O teste respeita o timeout configurado do webhook e configurações de nova tentativa
* Use este endpoint para verificar conectividade antes de ir ao ar com eventos de webhook
* Payloads de teste incluem o campo `test: true` para ajudar a identificá-los em seus logs

## Requisitos do Endpoint de Webhook

Seu endpoint de webhook deve:

1. **Aceitar requisições POST** com payloads JSON
2. **Retornar códigos de status 2xx** para processamento bem-sucedido
3. **Responder dentro do timeout configurado** (padrão: 30 segundos)
4. **Lidar com o tipo de evento de teste** adequadamente
5. **Implementar verificação de assinatura adequada** se usando segredos de webhook

## Endpoints relacionados

* [Listar Webhooks do Agente](/api-reference/endpoints/list-agent-webhooks) - Obter todos os webhooks de um agente
* [Criar Webhook](/api-reference/endpoints/create-webhook) - Configurar um novo webhook
* [Obter Detalhes do Webhook](/api-reference/endpoints/get-webhook-details) - Recuperar informações específicas do webhook
* [Atualizar Webhook](/api-reference/endpoints/update-webhook) - Modificar configuração do webhook
* [Excluir Webhook](/api-reference/endpoints/delete-webhook) - Remover configuração do webhook
* [Alternar Status do Webhook](/api-reference/endpoints/toggle-webhook-status) - Habilitar/desabilitar webhook
