LEICBIT
Produto Preços Documentação Blog Ajuda
EN PT ES

Documentação de Webhooks

Aprenda a configurar webhooks para receber alertas em tempo real do Leicbit

Os exemplos de código, nomes de campos JSON e trechos técnicos abaixo permanecem em inglês (padrão da indústria para referência de API).

Visão geral

Os webhooks do Leicbit permitem receber notificações em tempo real quando eventos de segurança são detectados nos domínios monitorados. Em vez de verificar alertas manualmente, os webhooks enviam requisições HTTP POST ao seu endpoint sempre que novos incidentes forem encontrados.

Notificações em tempo real

Receba alertas instantâneos quando roubo de credenciais ou breaches forem detectados nos seus domínios.

Entrega segura

Todas as requisições webhook são assinadas e verificadas para garantir integridade e autenticidade.

Integração simples

Processo de configuração simples com documentação completa e ferramentas de teste.

Informações detalhadas

Cada webhook contém dados abrangentes sobre o evento de segurança para ação imediata.

Guia de configuração

Siga estes passos para configurar webhooks na sua conta Leicbit:

Pré-requisito: Você precisa de uma conta Leicbit ativa com pelo menos um domínio monitorado.

Passo 1: Acessar configurações

  1. Entre no painel Leicbit
  2. Vá em Configurações no menu principal
  3. Clique na aba Integração

Passo 2: Configurar webhook

  1. Ative o webhook marcando "Enable Webhook"
  2. Informe a URL do webhook no campo "Webhook URL"
  3. Clique em "Test Webhook" para verificar a conexão
  4. Clique em "Save Settings" para ativar o webhook
Sucesso! Seu webhook está ativo e receberá notificações de todos os eventos de segurança.

Requisitos da URL do webhook

  • Deve ser uma URL HTTPS válida (HTTP não é suportado por segurança)
  • Deve ser acessível publicamente pela internet
  • Deve responder com status HTTP 200 para confirmar recebimento
  • Deve responder em até 10 segundos para evitar timeout

Payload do webhook

Cada requisição webhook contém informações detalhadas sobre o evento de segurança. Estrutura do payload:

{ "event": "credentials.detected", "total_new_alerts": 12, "domains": [ { "domain": "example.com", "new_alerts": 9 }, { "domain": "shop.example.com", "new_alerts": 3 } ], "detected_at": "2026-01-15T10:30:00+00:00" }

O webhook é enviado ao final de uma varredura que encontrou novas credenciais vazadas, resumindo o detectado nos domínios monitorados. Para detalhe por credencial, use o painel ou a Findings API.

Campos do payload

Campo Tipo Descrição
event string Nome do evento. Atualmente sempre credentials.detected.
total_new_alerts integer Total de novos alertas de credenciais vazadas nesta varredura.
domains array Detalhamento por domínio: { "domain", "new_alerts" }.
detected_at ISO 8601 Quando a varredura foi concluída (UTC).

Tipos de evento

O Leicbit envia atualmente um único evento webhook. Outros podem ser adicionados; sempre trate pelo campo event em vez de assumir um conjunto fixo.

credentials.detected

Disparado quando: Uma varredura encontra novas credenciais vazadas em um ou mais domínios.

Payload: Resumo da varredura — total_new_alerts mais detalhamento por domínio.

Ação necessária: Revise os novos alertas no painel e rotacione as credenciais afetadas.

Segurança

O Leicbit implementa várias medidas para garantir integridade e autenticidade das requisições webhook:

Somente HTTPS

Todas as requisições webhook são enviadas via HTTPS. Endpoints HTTP não são suportados.

Verificação de requisição

Cada requisição inclui um header de assinatura para verificar que veio do Leicbit:

X-Leicbit-Signature: t=1234567890,v1=abc123def456...

Processo de verificação

Para verificar uma requisição webhook:

  1. Extraia timestamp e assinatura do header X-Leicbit-Signature
  2. Concatene o timestamp e o corpo da requisição
  3. Gere HMAC-SHA256 usando seu webhook secret
  4. Compare a assinatura gerada com a recebida
Importante: Sempre verifique assinaturas webhook em produção para evitar requisições não autorizadas.

Testes

O Leicbit oferece ferramentas integradas para verificar sua configuração de webhook:

Botão Test Webhook

Use o botão "Test Webhook" nas configurações para enviar um payload de teste ao seu endpoint:

{ "event_id": "test_1234567890", "event_type": "test_webhook", "timestamp": "2024-01-15T10:30:00Z", "domain": { "id": "test_domain", "name": "test.example.com", "description": "Test domain for webhook verification" }, "alert": { "id": "test_alert", "severity": "info", "title": "Test Webhook", "description": "This is a test webhook to verify your endpoint configuration", "details": { "test": true, "message": "If you receive this, your webhook is working correctly" } }, "user": { "id": "test_user", "email": "[email protected]" }, "webhook_id": "test_webhook" }

Resposta esperada

Seu endpoint deve responder com:

  • Status HTTP: 200 OK
  • Tempo de resposta: Menos de 10 segundos
  • Content-Type: application/json (opcional)
Indicadores de sucesso: Você verá uma mensagem verde de sucesso na página de configurações quando o teste passar.

Solução de problemas

Problemas comuns e soluções:

Teste falha com "Connection refused"
Causa: Seu endpoint webhook não é acessível pela internet.
Solução: Garanta que o endpoint seja publicamente acessível e não esteja atrás de firewall que bloqueie requisições entrantes.
Webhook retorna erro HTTP 500
Causa: Seu endpoint encontrou erro interno ao processar o webhook.
Solução: Verifique os logs do servidor e confirme que o endpoint aceita o formato do payload.
Webhook expira após 10 segundos
Causa: Seu endpoint demora demais para responder.
Solução: Otimize o handler para responder rápido. Considere processar o webhook de forma assíncrona.
Não recebo notificações webhook
Causa: Webhook pode estar desativado ou mal configurado.
Solução: Verifique se webhooks estão ativos e a URL está correta. Teste o webhook para confirmar.

Exemplos

Exemplos de como tratar webhooks em diferentes linguagens:

Exemplo Node.js

const express = require('express'); const crypto = require('crypto'); const app = express(); app.use(express.json()); app.post('/webhook', (req, res) => { const signature = req.headers['x-leicbit-signature']; const body = JSON.stringify(req.body); const expectedSignature = crypto .createHmac('sha256', process.env.WEBHOOK_SECRET) .update(body) .digest('hex'); if (signature !== `v1=${expectedSignature}`) { return res.status(401).json({ error: 'Invalid signature' }); } const { event_type, alert, domain } = req.body; // Handle event… res.status(200).json({ received: true }); }); app.listen(3000);

Exemplo Python

from flask import Flask, request, jsonify import hmac, hashlib, os app = Flask(__name__) @app.route('/webhook', methods=['POST']) def webhook(): signature = request.headers.get('X-Leicbit-Signature') body = request.get_data() expected = hmac.new( os.environ['WEBHOOK_SECRET'].encode(), body, hashlib.sha256 ).hexdigest() if signature != f'v1={expected}': return jsonify({'error': 'Invalid signature'}), 401 # Handle event… return jsonify({'received': True})

Exemplo PHP

<?php $secret = $_ENV['WEBHOOK_SECRET']; $signature = $_SERVER['HTTP_X_LEICBIT_SIGNATURE'] ?? ''; $body = file_get_contents('php://input'); $expected = 'v1=' . hash_hmac('sha256', $body, $secret); if (!hash_equals($signature, $expected)) { http_response_code(401); exit(json_encode(['error' => 'Invalid signature'])); } // Handle event… http_response_code(200); echo json_encode(['received' => true]);

Precisa de ajuda?

Se precisar de assistência com configuração de webhook ou dúvidas sobre a integração:

Documentação

Consulte nossa documentação completa de API para mais detalhes.

Ver docs da API
Suporte

Entre em contato com nossa equipe para assistência personalizada.

Contatar suporte