Elido
Todo lo que hace Elido
Pro y Business

Webhooks. Eventos en tiempo real, entregados con fiabilidad.

Los puntos finales de webhook por espacio de trabajo reciben eventos de clics, conversiones y gestión de enlaces con firmas HMAC-SHA256. Reintentos automáticos con retroceso exponencial. El modo SIEM transmite eventos a su plataforma de seguridad.

  • 10+ tipos de evento - clics, conversiones, cambios de dominio
  • Firma HMAC-SHA256 en cada entrega
  • Reintentos con backoff exponencial durante 72 horas
  • Registro de entregas con replay en un clic
Entrega de webhook
Origen del eventolink.clickedlink.createdElidoHMAC-SHA256firmar + encolarTu endpointPOST /webhooksapi.acme.com010203
Solicitud saliente
POSThttps://api.acme.com/webhooks
X-Elido-Signature: sha256=3c4d2e1f8a...
Content-Type: application/json
X-Elido-Event: link.clicked
{
"event": "link.clicked",
"event_id": "evt_01hw...",
"data": { link_id, url, country, device, ts }
}
<2 s de latencia mediana Firmado con HMAC-SHA256
<2s
Latencia media de entrega de eventos
72h
Ventana de reintentos antes del fallo final
HMAC-SHA256
Algoritmo de firma de solicitudes
10+
Tipos de eventos compatibles

Tipos de evento

Más de 10 tipos de evento listos

Suscríbete por endpoint - recibe solo los eventos que te interesan. Los eventos de clic de alto volumen se envían por defecto en una ventana batch de 5 segundos; el modo raw-click entrega por clic para procesadores de streaming.

10+ tipos de evento
  • link.clicked

    Cada clic de redirección. Modo batch (ventana de 5 s) o raw-click.

  • link.created

    Se ha creado un nuevo enlace corto en el workspace.

  • link.updated

    Se han cambiado metadatos, URL destino o reglas del enlace.

  • link.deleted

    Enlace eliminado - actualiza cualquier referencia dependiente.

  • domain.verified

    El dominio propio ha pasado la verificación DNS.

  • conversion.attributed

    Evento de ingresos asociado a un clic vía Stripe o Shopify.

  • campaign.completed

    La campaña alcanzó su fecha final o tope de clics.

  • member.invited

    Miembro del workspace añadido o aprovisionado por SCIM.

Además link.expired, link.click_cap_reached, domain.ssl_issued y más - consulta el catálogo completo de eventos.

Garantías de entrega

Backoff exponencial. Ventana de 72 horas.

Una respuesta fuera del rango 2xx o un timeout de 30 segundos dispara reintentos automáticos: 30 s → 2 min → 10 min → 30 min → 2 h → 8 h → 24 h → 48 h. Tras 72 horas la entrega se marca como definitivamente fallida y se elimina de la cola - pero permanece en el registro de entregas para replay manual.

  • Timeout de respuesta de 30 segundos
    Devuelve 200 de inmediato; procesa en asíncrono si tu handler es lento.
  • 8 reintentos en 72 horas
    Backoff exponencial - sin efecto avalancha al reiniciar.
  • Auto-pausa tras 30 fallos consecutivos
    El admin del workspace recibe email. Reanudar desde el panel.
  • Replay con un clic desde el log
    Payload original, mismo event_id - el receptor debe ser idempotente.
Cronología de reintentos de entrega
Ventana de reintentos de 72 horas
Intento 1
14:02:01
500 Internal Server Error
Backoff 30 sexponencial × 1
Intento 2
14:02:31
timeout (30 s)
Backoff 2 minexponencial × 4
Intento 3
14:04:31
200 OK
Timeout de respuesta
30 segundos
Máx. intentos
8 reintentos
Ventana
72 horas
Registro de entregas de webhook
Modo SIEM
EventoEndpointEstadoLatenciaHora
link.clickedapi.acme.com/wh200142ms14:04:31
link.createdapi.acme.com/wh20088ms14:03:19
conversion.attributedlogs.acme.com50030001ms14:02:01
domain.verifiedapi.acme.com/wh20067ms13:58:44
link.deletedlogs.acme.comtimeout30000ms13:55:12
Mostrando 5 de 1.284 entregas · Últimas 24 horasEndpoint activo

Registro de entregas

Registro completo. Filtra, inspecciona, vuelve a enviar.

Cada intento se registra: ID del evento, tipo de evento, URL del endpoint, estado HTTP, cuerpo de respuesta (hasta 4 KB) y latencia. Retención de 30 días en Pro y 90 días en Business.

  • Filtra por tipo de evento, endpoint, estado y rango de fechas
  • Las entradas fallidas muestran el cuerpo completo de la petición para depurar
  • Replay envía el payload original - mismo event_id
  • API: POST /v1/webhooks/deliveries/:id/replay
  • Modo SIEM: JSON estructurado con garantía de reintentos de 7 días

Lo que puedes hacer

  • Eventos de clics, conversiones, enlaces y dominios
  • Firma de solicitudes HMAC-SHA256
  • Reintentos automáticos - hasta 72 horas
  • Modo SIEM para el reenvío de eventos de seguridad
  • Filtrado de temas por tipo de evento
  • Registro de entrega de webhooks con reenvío (replay)

Qué entregan los webhooks de Elido y cómo funciona la entrega

Los webhooks solo son útiles si son fiables. Las siguientes secciones cubren las garantías de entrega, la verificación de firmas, el comportamiento de reintento y el modo SIEM.

Tipos de eventos
01

Eventos de clics, conversiones, ciclo de vida de enlaces y dominios - configurables por punto final

Cada punto final de webhook puede suscribirse a uno o más tipos de eventos: click.created (cada clic de redirección), conversion.created (evento de conversión recibido de Stripe, Shopify o un punto final personalizado), link.created, link.updated, link.deleted, link.expired, link.click_cap_reached, domain.verified, domain.ssl_issued, domain.ssl_error, workspace.member.added, workspace.member.removed. Los eventos de clics de alto volumen pueden generar mucho ruido; por defecto, los webhooks click.created se envían con una ventana de agregación de 5 segundos (entrega por lotes, hasta 100 eventos por carga útil). Si necesita una entrega por clic en tiempo real (por ejemplo, para alimentar un procesador de flujo), active el modo raw-click en el punto final; tenga en cuenta que esto puede producir miles de solicitudes por minuto para espacios de trabajo con mucho tráfico y solo debe activarse para puntos finales que puedan manejar tal caudal.

Verificación de firmas
02

Cada solicitud se firma con HMAC-SHA256 - verifique el encabezado X-Elido-Signature antes de procesarla

Elido firma cada cuerpo de solicitud de webhook con HMAC-SHA256 utilizando el secreto compartido configurado en el punto final. La firma se incluye en el encabezado X-Elido-Signature como 'sha256=<hex_digest>'. Para verificar: calcule el HMAC-SHA256 sobre el cuerpo bruto de la solicitud utilizando el secreto compartido y compare el resultado con el valor del encabezado mediante una función de comparación de tiempo constante (para evitar ataques de tiempo). Nunca procese una carga útil de webhook antes de verificar la firma. El secreto se muestra una sola vez al crear el punto final; rótelo en el panel de control con una ventana de solapamiento de tiempo de inactividad cero (el secreto antiguo sigue siendo válido durante 15 minutos después de generar uno nuevo). Encontrará ejemplos de código para la verificación de firmas en Node.js, Python y Go en la guía de webhooks en /docs/guides/webhooks.

Comportamiento de reintento
03

Reintentos automáticos con retroceso exponencial - hasta 72 horas antes de marcar una entrega como fallida

Si un punto final devuelve un código de estado que no es 2xx o se agota el tiempo de espera (tiempo de respuesta de 30 segundos), Elido reintenta la entrega con un retroceso exponencial: 30 segundos, 2 minutos, 10 minutos, 30 minutos, 2 horas, 8 horas, 24 horas, 48 horas. Tras la ventana de 72 horas, la entrega se marca como permanentemente fallida y se elimina de la cola de reintentos. Las entregas fallidas aparecen en el registro de entregas de webhooks con el código de estado HTTP final (o 'timeout'). Puede reenviar cualquier entrega fallida desde el panel de control o la API (POST /v1/webhooks/deliveries/:id/replay), lo cual es útil para recuperar un lote de eventos tras una interrupción en el sistema de destino. Los puntos finales que devuelven 5xx durante más de 30 entregas consecutivas se pausan automáticamente y se notifica al administrador del espacio de trabajo por correo electrónico. Reanude el punto final desde el panel de control una vez solucionado el problema subyacente.

Modo SIEM
04

El modo SIEM transmite eventos de auditoría del espacio de trabajo a Splunk, Datadog o cualquier punto final de ingestión de registros HTTPS

El modo SIEM es una configuración especial de webhook para el reenvío de eventos de seguridad. En lugar de eventos de aplicación (clics, conversiones), el modo SIEM entrega eventos de auditoría del espacio de trabajo: inicios de sesión SSO, inicios de sesión fallidos, creación/rotación/eliminación de claves API, eventos de aprovisionamiento SCIM, cambios de rol, rotaciones de secretos de webhooks y acciones de administración (eliminación de enlaces, exportaciones masivas). El formato de la carga útil es JSON estructurado con un esquema estándar (marca de tiempo, actor, acción, objetivo, workspace_id, ip_address, user_agent) diseñado para su ingestión en plataformas SIEM comunes. Los webhooks SIEM tienen entrega garantizada con reintento de hasta 7 días y se firman por separado de los webhooks de aplicación. Integraciones probadas: Splunk HTTP Event Collector (HEC), Datadog Logs API, entrada HTTP de Elastic Logstash y cualquier punto final de registro HTTPS genérico. El modo SIEM es una función exclusiva de Business.

Registro de entrega
05

Registro de entrega completo con cuerpo de solicitud, código de respuesta y reenvío con un solo clic para entregas fallidas

Se registra cada intento de entrega de webhook: ID del evento, tipo de evento, URL del punto final, marca de tiempo de la entrega, código de estado HTTP, cuerpo de la respuesta (hasta 4 KB) y latencia. El registro de entregas se puede consultar por tipo de evento, punto final, rango de fechas y estado (entregado, reintentando, fallido). Las entregas fallidas incluyen el cuerpo completo de la solicitud para que pueda inspeccionar el evento que falló sin necesidad de reenviarlo. Reenvío: POST /v1/webhooks/deliveries/:id/replay envía la carga útil original (no un evento nuevo) al punto final; se requiere idempotencia en su receptor. La retención del registro de entregas es de 30 días en Pro y 90 días en Business. Para una auditoría permanente de los eventos de webhook, configure un punto final SIEM o active la exportación programada del registro de auditoría.

Equipos de ingeniería que utilizan los webhooks de Elido en producción

Los nombres son marcadores de posición - los casos de estudio de clientes reales se publicarán aquí a medida que se lancen.

Consumimos webhooks click.created en modo por lotes para alimentar nuestro propio flujo de análisis. La verificación de la firma HMAC y el registro de entregas con reenvío nos ahorraron horas de depuración durante una interrupción parcial: reenviamos el lote de eventos perdidos desde el panel de control sin tener que reconstruir el evento desde el origen.

I
Ingeniería de plataformas, SaaS B2B, Ámsterdam
Ingeniero Senior de Plataformas

El modo SIEM que transmite eventos de auditoría del espacio de trabajo a nuestro Splunk HEC era la característica empresarial que nuestro equipo de InfoSec requería. Tener los eventos de inicio de sesión SSO y las rotaciones de claves API en Splunk, con el esquema correcto, nos permitió correlacionar los eventos de acceso de Elido con nuestras reglas de alerta SIEM en un solo día tras la configuración.

I
Ingeniería de seguridad, fintech, Múnich
Ingeniero de Seguridad de la Información

Los webhooks link.expired activan nuestro flujo de trabajo interno para actualizar la base de datos de materiales impresos: cuando caduca un enlace de código QR, nuestro equipo de operaciones recibe una tarea automática para actualizar la etiqueta física. Cero monitorización manual de los estados de caducidad de los enlaces.

I
Ingeniería de integración, SaaS de logística, Riga
Ingeniero de Integración

Webhooks de Elido vs Bitly vs Short.io

Ni Bitly ni Short.io ofrecen webhooks de salida con firma HMAC y garantías de reintento. Esta comparación es sincera sobre la diferencia.

FeatureElidoBitlyShort.io
Webhooks de salidaSí - puntos finales por espacio de trabajo, suscripción por tipo de eventoNo disponibleSí - webhook básico al hacer clic
Firma HMAC-SHA256Sí - cada entrega firmada, ejemplos de código incluidosNo aplicableParcial - encabezado de firma presente, no documentado
Reintentos automáticosSí - retroceso exponencial, ventana de 72 horasNo aplicableSin reintentos - enviar y olvidar
Registro de entrega con reenvíoSí - 30 días Pro, 90 días Business, reenvío con un clicNo aplicableSin registro de entregas
Modo de eventos de auditoría SIEMSí - Business, JSON estructurado para ingestión SIEMNo disponibleNo disponible
Pausa automática del punto final por falloSí - pausado tras 30 fallos consecutivos, administrador notificadoNo aplicableNo disponible
Tipos de eventosClic, conversión, ciclo de vida del enlace, dominio, eventos de auditoríaNo aplicableSolo clics

Preguntas sobre webhooks

¿Cómo verifico la firma HMAC-SHA256?

Lea el cuerpo bruto de la solicitud como bytes (antes de cualquier procesamiento JSON), calcule el HMAC-SHA256 sobre los bytes brutos utilizando el secreto compartido de su punto final, codifique el resultado en base16 (hexadecimal) y compárelo con el valor del encabezado X-Elido-Signature tras quitar el prefijo 'sha256='. Utilice una función de comparación de tiempo constante (por ejemplo, hmac.compare_digest en Python, crypto.timingSafeEqual en Node.js) para evitar ataques de tiempo. Nunca compare la firma con un operador de igualdad de cadenas estándar. Encontrará ejemplos de código para Node.js, Python y Go en /docs/guides/webhooks#verification.

¿Qué debe devolver mi receptor de webhooks?

Devuelva HTTP 200 (o cualquier código de estado 2xx) en un plazo de 30 segundos. El cuerpo de la respuesta se ignora; puede devolver un cuerpo vacío o { ok: true }. Si su procesamiento tarda más de 30 segundos, devuelva 200 inmediatamente y procese el evento de forma asíncrona (añádalo a una cola interna, devuelva 200 y procéselo fuera de la ruta de la solicitud). Devolver 4xx se trata igual que 5xx a efectos de reintento: ambos activan un reintento. Devuelva 200 incluso si el evento no es relevante para su integración (por ejemplo, un evento link.created que no necesita) para evitar reintentos innecesarios.

¿Cómo funciona la idempotencia para los eventos de webhook?

Cada carga útil de webhook incluye un campo event_id (UUID). Utilice este campo como clave de idempotencia en su receptor: si recibe el mismo event_id dos veces (debido a un reintento tras un fallo parcial), procéselo solo una vez. Almacene los ID de los eventos recibidos en una tabla de deduplicación con un TTL de al menos 72 horas (la ventana de reintento). La carga útil del reintento es idéntica a la original -mismo event_id, mismo cuerpo-, por lo que una simple comprobación de '¿ya he visto este event_id?' es suficiente.

¿Por qué se ha pausado mi punto final automáticamente?

Los puntos finales se pausan automáticamente tras 30 fallos de entrega consecutivos (no 2xx o tiempo de espera agotado). Esto evita que Elido sature un punto final defectuoso indefinidamente. Corrija el problema subyacente (normalmente: la URL del punto final cambió, el servidor está caído o se supera el tiempo de espera de 30 segundos debido a un procesamiento lento) y luego reanude el punto final en el panel de control. Una vez reanudado, Elido no reenvía automáticamente los eventos que se omitieron durante la pausa; reenvíelos manualmente desde el registro de entregas si necesita recuperar esos eventos.

¿Puedo recibir eventos de clic en tiempo real por cada clic individual?

Sí, active el modo raw-click en el punto final. En este modo, Elido entrega los eventos click.created individualmente, sin ventana de agregación, en los 2 segundos siguientes al clic. Tenga en cuenta que un espacio de trabajo con mucho tráfico puede generar miles de eventos por minuto en modo raw-click; asegúrese de que su receptor pueda manejar ese volumen. Para la mayoría de los casos de uso analítico, la agregación predeterminada de 5 segundos (hasta 100 clics por carga útil) es suficiente y genera muchas menos solicitudes HTTP.

¿Cuál es el límite de tamaño de la carga útil para los eventos de webhook?

Las cargas útiles de eventos individuales son inferiores a 10 KB. Las cargas útiles de clics por lotes (modo predeterminado) pueden contener hasta 100 eventos por lote, con un límite máximo de tamaño de carga útil de 100 KB. Si un lote supera los 100 KB, se divide automáticamente en varias entregas. Los campos de metadatos de gran tamaño en los clics (por ejemplo, URLs de remitente largas) se truncan a 2 KB por campo. Si su receptor impone un límite estricto al tamaño de la carga útil, configure el modo raw-click (un evento por entrega) en lugar del modo por lotes.

¿Hay alguna forma de probar los webhooks localmente durante el desarrollo?

Utilice una herramienta como ngrok, Cloudflare Tunnel o localtunnel para exponer su servidor local con una URL HTTPS pública y, a continuación, registre esa URL como un punto final de webhook en su espacio de trabajo de prueba. Alternativamente, utilice el botón de prueba de envío de webhooks en el panel de control para enviar una carga útil de muestra de cualquier tipo de evento a un punto final registrado sin activar un evento real. La Elido CLI (elido webhook test --event click.created --endpoint https://...) también funciona para pruebas locales mediante scripts.

¿Qué ocurre con los eventos de webhook durante una ventana de mantenimiento planificada?

Los eventos generados durante una ventana de mantenimiento se ponen en cola en nuestro flujo de eventos y se entregan una vez finalizado el mantenimiento. La página de estado de Elido (status.elido.app) anuncia las ventanas de mantenimiento planificadas con antelación. El SLA de entrega de webhooks excluye las ventanas de mantenimiento anunciadas. Para una ventana de mantenimiento típica de 30 a 60 minutos, el margen de reintento de 72 horas garantiza que no se pierda ningún evento de forma permanente: se entregarán en el orden en que se generaron una vez que el punto final sea alcanzable de nuevo.

¿Listo para probarlo?

Empieza con el plan gratuito, actualiza cuando necesites un dominio personalizado.