Freedam

Desarrolladores · Webhooks

Reacciona en tiempo real a lo que pasa en tu biblioteca

Suscríbete a catorce eventos sobre recursos, colecciones, importaciones, uso compartido y flujos de trabajo. Cada payload va firmado y cada entrega queda registrada. Las entregas fallidas se reintentan, y un endpoint que sigue fallando se desactiva automáticamente.

Catorce eventos en cuatro grupos

Cada endpoint recibe solo los eventos a los que lo suscribes.

Eventos de recursos

  • asset.createdSe añadió un recurso nuevo a la biblioteca.
  • asset.updatedCambió la ficha de un recurso. Incluye la lista de campos modificados.
  • asset.deletedSe eliminó un recurso. Distingue la eliminación reversible de la definitiva.
  • asset.downloadedSe descargó un archivo original o generado. Incluye la resolución.

Eventos de colecciones

  • collection.createdSe creó una colección nueva.
  • collection.updatedCambió el nombre, la colección principal o la configuración de una colección.
  • collection.deletedSe eliminó una colección.
  • collection.assets_addedSe añadieron uno o varios recursos. Admite operaciones masivas.
  • collection.assets_removedSe quitaron uno o varios recursos. Admite operaciones masivas.

Eventos de uso compartido

  • share.createdSe emitió un enlace compartido.
  • share.accessedUn destinatario vio o descargó contenido a través del enlace compartido.

Eventos de importación y flujo de trabajo

  • upload.batch_completedTerminó un lote. Incluye el número de éxitos y de fallos.
  • upload.batch_failedUn lote terminó con un fallo. Incluye el motivo.
  • workflow.transitionedUn recurso pasó de un estado del flujo de trabajo a otro.
Forma del payload

Un payload pequeño y coherente

Cada payload contiene el nombre del evento, una marca de tiempo y un pequeño objeto data con los ID que necesitas para consultar la ficha completa en la API. Las actualizaciones incluyen además la lista de campos que cambiaron, para que decidas qué refrescar sin volver a pedirlo todo.

{
  "event": "asset.created",
  "timestamp": "2026-05-06T08:30:14Z",
  "data": {
    "asset_id": 18432,
    "gaid": "IM-20260506-3F9A2C8B0D"
  }
}
Verificación de la firma

HMAC-SHA256 en cada entrega

Calcula la firma con el secreto de tu endpoint y compárala en tiempo constante antes de procesar el cuerpo. Cuando rotas el secreto, el anterior sigue siendo válido durante veinticuatro horas, así que puedes desplegar el cambio cuando te convenga.

// Verify a webhook signature (Node.js)
import crypto from 'crypto';

function verifyWebhook(payload, signatureHeader, secret) {
    const expected = crypto
        .createHmac('sha256', secret)
        .update(payload)
        .digest('hex');

    return crypto.timingSafeEqual(
        Buffer.from(expected),
        Buffer.from(signatureHeader),
    );
}

Entrega fiable

Freedam se encarga de los reintentos, de los endpoints que fallan y de la rotación de secretos, para que tu handler siga siendo pequeño.

Payloads firmados

Cada entrega lleva una firma HMAC-SHA256 calculada con el secreto de tu endpoint. Verifícala cuando llegue la solicitud, antes de procesar el cuerpo.

Reintentos automáticos

Las entregas fallidas se reintentan con backoff. Los endpoints que siguen fallando se pausan para que los fallos no se acumulen en tu bandeja de entrada ni en tu cola.

Desactivación automática ante fallos persistentes

Tras diez entregas fallidas consecutivas, el endpoint se desactiva automáticamente. Puedes volver a activarlo cuando el problema esté resuelto.

Rotación de secretos con periodo de gracia

Rota el secreto de un endpoint sin interrupción del servicio. El secreto anterior sigue siendo válido durante veinticuatro horas, lo que te da tiempo para actualizar tu handler.

Historial de entregas

Cada intento de entrega queda registrado con la marca de tiempo, el código de estado, un extracto del cuerpo de la respuesta y el número de reintentos. Puedes inspeccionar o repetir cualquier entrega a través de la API.

Entregas de prueba cuando quieras

Envía un evento de prueba desde la API o desde la configuración para comprobar que tu handler funciona antes de pasar a producción.

Desarrolladores · Webhooks

Conecta tu biblioteca con tus otras herramientas

Registra tu primer endpoint en la demo, o usa la API de gestión para configurar endpoints desde el código.