Integración y API

Webhooks

Recibe notificaciones HTTP automáticas en tus sistemas cuando ocurren eventos de contratos

Características incluidas
6 tipos de eventos
Notificaciones HTTP
Formato JSON
Reintentos automáticos
Firma HMAC-SHA256
Logs de entregas
Configuración por evento
HTTPS requerido

Los webhooks te permiten recibir notificaciones automáticas en tu servidor cada vez que ocurre un evento relevante (nuevo contrato, cambio de estado, adjudicación) sin necesidad de polling constante.

¿Qué son los webhooks?

Un webhook es un HTTP POST automático que concursos.top envía a tu servidor cuando ocurre un evento. En lugar de que tu aplicación pregunte constantemente «¿hay novedades?», nosotros te notificamos instantáneamente. Ideal para automatización en tiempo real.

6 Tipos de eventos

Contrato Nuevo

Se publica un contrato que coincide un monitoreo

Contrato Actualizado

Cambio en estado, presupuesto, fecha límite

Contrato Adjudicado

Se conoce al ganador de la licitación

Pliegos Modificados

Cambio en documentos o condiciones

Contrato Anulado

Licitación cancelada o desierta

Fecha Límite Próxima

Recordatorio 48h antes del cierre

Cómo configurar webhooks

  1. Ve a tu servidor: Prepara un endpoint HTTP POST que reciba datos JSON
  2. Ir a Panel > Webhooks: Sección de configuración de webhooks
  3. Click 'Agregar webhook': Botón azul arriba
  4. Pega tu URL: Ej: https://tudominio.com/api/webhooks/contratos
  5. Selecciona eventos: Qué eventos quieres recibir (todos o específicos)
  6. Configura reintentos: Cuántos intentos si tu servidor falla
  7. Guarda: Comenzarás a recibir eventos inmediatamente

Formato del evento (JSON)

Ejemplo de webhook recibido:
{
  "event": "contrato.nuevo",
  "timestamp": "2026-01-22T14:35:00Z",
  "data": {
    "id": "2026-001234",
    "titulo": "Desarrollo de Aplicación Móvil",
    "organismo": "Ayuntamiento de Palma",
    "presupuesto": 50000,
    "region": "ES53",
    "fecha_limite": "2026-02-15",
    "link": "https://contrataciondelestado.es/..."
  },
  "monitoreo_id": "ALR-2026-00001"
}

Ejemplo de servidor receptor (Node.js/Express)

const express = require('express');
const app = express();

app.use(express.json());

app.post('/webhooks/contratos', (req, res) => {
  const evento = req.body;
  
  // Verifica HMAC signature
  const hmac = req.headers['x-ct-signature'];
  if (!verificarSignature(evento, hmac)) {
    return res.status(401).json({error: 'Firma inválida'});
  }
  
  // Procesa el evento
  if (evento.event === 'contrato.nuevo') {
    console.log('Nuevo contrato:', evento.data.titulo);
    // Tu lógica: guardar en BD, notificar al equipo, etc.
  }
  
  // Responde con 200 para confirmar
  res.json({success: true});
});

app.listen(3000);

Seguridad: Firma HMAC

Cada webhook incluye una firma HMAC-SHA256 en el header x-ct-signature. Verifica la firma para asegurar que el webhook proviene de concursos.top:

  • Header: x-ct-signature: sha256=abcd1234...
  • Calcula: HMAC-SHA256(body, tu_secret_key)
  • Compara: debe coincidir con el header

Política de reintentos

  • Intento 1: Inmediatamente
  • Intento 2: 5 minutos después
  • Intento 3: 15 minutos después
  • Intento 4: 1 hora después
  • Intento 5: 4 horas después
  • Máximo: 5 intentos en 8 horas

Éxito: HTTP 2xx (200-299). Cualquier otro código = reintento.

Disponibilidad por plan

Webhooks están disponibles a partir de Business.
  • Business: Hasta 5 webhooks
  • Enterprise: Ilimitados

Casos de uso reales

  • CRM automático: Nuevo contrato = crear lead en Salesforce
  • Slack/Teams: Notificar al equipo cuando hay coincidencia
  • Google Sheets: Agregar nuevos contratos automáticamente
  • Base de datos: Sincronizar contratos con MongoDB/PostgreSQL
  • Alertas internas: Email al responsable cuando hay cambio importante

Preguntas frecuentes

Sí. El webhook se envía en segundos después del evento. Típicamente 30-120 segundos desde publicación.

Reintentos automáticos: 5 intentos en 8 horas. Si sigue offline, se descarta después de 5 intentos.

Sí. Business: hasta 5. Enterprise: ilimitados. Cada uno recibe los mismos eventos.

Sí. Al crear webhook selecciona qué eventos quieres recibir (nuevo, actualización, adjudicación, etc.)

Sí. Panel > Webhooks > Log muestra todos los envíos (exitosos y fallidos) con timestamps y respuestas.
Prueba sin compromiso

¿Quieres ver Webhooks en acción?

Solicita una demostración gratuita y descubre cómo este módulo puede transformar la gestión de tu policía local.

Comenzar Prueba Gratis