LEICBIT
Producto Precios Documentación Blog Ayuda
EN PT ES

Documentación de Webhooks

Aprenda a configurar webhooks para recibir alertas en tiempo real de Leicbit

Los ejemplos de código, nombres de campos JSON y fragmentos técnicos siguen en inglés (estándar de la industria para referencia de API).

Resumen

Los webhooks de Leicbit permiten recibir notificaciones en tiempo real cuando se detectan eventos de seguridad en sus dominios monitorizados. En lugar de revisar alertas manualmente, los webhooks envían solicitudes HTTP POST a su endpoint cuando hay nuevos incidentes.

Notificaciones en tiempo real

Reciba alertas instantáneas cuando se detecte robo de credenciales o brechas en sus dominios.

Entrega segura

Todas las solicitudes webhook están firmadas y verificadas para garantizar integridad y autenticidad.

Integración sencilla

Proceso de configuración simple con documentación completa y herramientas de prueba.

Información detallada

Cada webhook contiene datos completos sobre el evento de seguridad para actuar de inmediato.

Guía de configuración

Siga estos pasos para configurar webhooks en su cuenta Leicbit:

Requisito previo: Necesita una cuenta Leicbit activa con al menos un dominio monitorizado.

Paso 1: Acceder a configuración

  1. Inicie sesión en el panel Leicbit
  2. Vaya a Configuración en el menú principal
  3. Haga clic en la pestaña Integración

Paso 2: Configurar webhook

  1. Active el webhook marcando "Enable Webhook"
  2. Introduzca la URL del webhook en el campo "Webhook URL"
  3. Haga clic en "Test Webhook" para verificar la conexión
  4. Haga clic en "Save Settings" para activar el webhook
¡Éxito! Su webhook está activo y recibirá notificaciones de todos los eventos de seguridad.

Requisitos de la URL del webhook

  • Debe ser una URL HTTPS válida (HTTP no está soportado por seguridad)
  • Debe ser accesible públicamente desde internet
  • Debe responder con código HTTP 200 para confirmar recepción
  • Debe responder en menos de 10 segundos para evitar timeout

Payload del webhook

Cada solicitud webhook contiene información detallada sobre el evento de seguridad. Estructura del 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" }

El webhook se envía al finalizar un escaneo que encontró nuevas credenciales filtradas, resumiendo lo detectado en sus dominios. Para detalle por credencial, use el panel o la Findings API.

Campos del payload

Campo Tipo Descripción
event string Nombre del evento. Actualmente siempre credentials.detected.
total_new_alerts integer Total de nuevas alertas de credenciales filtradas en este escaneo.
domains array Desglose por dominio: { "domain", "new_alerts" }.
detected_at ISO 8601 Cuándo se completó el escaneo (UTC).

Tipos de evento

Leicbit envía actualmente un único evento webhook. Pueden añadirse más; trate siempre el campo event en lugar de asumir un conjunto fijo.

credentials.detected

Se dispara cuando: Un escaneo encuentra nuevas credenciales filtradas en uno o más dominios.

Payload: Resumen del escaneo — total_new_alerts más desglose por dominio.

Acción requerida: Revise las nuevas alertas en el panel y rote las credenciales afectadas.

Seguridad

Leicbit implementa varias medidas para garantizar integridad y autenticidad de las solicitudes webhook:

Solo HTTPS

Todas las solicitudes webhook se envían por HTTPS. Los endpoints HTTP no están soportados.

Verificación de solicitud

Cada solicitud incluye un header de firma para verificar que proviene de Leicbit:

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

Proceso de verificación

Para verificar una solicitud webhook:

  1. Extraiga timestamp y firma del header X-Leicbit-Signature
  2. Concatene el timestamp y el cuerpo de la solicitud
  3. Genere HMAC-SHA256 usando su webhook secret
  4. Compare la firma generada con la recibida
Importante: Verifique siempre las firmas webhook en producción para evitar solicitudes no autorizadas.

Pruebas

Leicbit ofrece herramientas integradas para verificar su configuración de webhook:

Botón Test Webhook

Use el botón "Test Webhook" en configuración para enviar un payload de prueba a su 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" }

Respuesta esperada

Su endpoint debe responder con:

  • Estado HTTP: 200 OK
  • Tiempo de respuesta: Menos de 10 segundos
  • Content-Type: application/json (opcional)
Indicadores de éxito: Verá un mensaje verde de éxito en la página de configuración cuando la prueba sea correcta.

Solución de problemas

Problemas comunes y soluciones:

La prueba falla con "Connection refused"
Causa: Su endpoint webhook no es accesible desde internet.
Solución: Asegúrese de que el endpoint sea públicamente accesible y no esté detrás de un firewall que bloquee solicitudes entrantes.
El webhook devuelve error HTTP 500
Causa: Su endpoint encontró un error interno al procesar el webhook.
Solución: Revise los logs del servidor y confirme que el endpoint acepta el formato del payload.
El webhook expira tras 10 segundos
Causa: Su endpoint tarda demasiado en responder.
Solución: Optimice el handler para responder rápido. Considere procesar el webhook de forma asíncrona.
No recibo notificaciones webhook
Causa: El webhook puede estar desactivado o mal configurado.
Solución: Verifique que los webhooks estén activos y la URL sea correcta. Pruebe el webhook para confirmar.

Ejemplos

Ejemplos de cómo manejar webhooks en distintos lenguajes:

Ejemplo 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);

Ejemplo 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})

Ejemplo 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]);

¿Necesita ayuda?

Si necesita asistencia con la configuración de webhook o tiene preguntas sobre la integración:

Documentación

Consulte nuestra documentación completa de API para más detalles.

Ver docs de API
Soporte

Contacte a nuestro equipo para asistencia personalizada.

Contactar soporte