# Recibir los eventos de Drime Sign con webhooks

Recibe una notificación HTTP en tu servidor cuando un documento se envía, se ve, se firma, se rechaza o se completa en Drime Sign, y comprueba su origen.

Actualizado: 2026-10-21  
Fuente: https://drime.cloud/es/support/integrations-and-api/sign-webhooks

Un webhook hace que Drime llame a tu servidor cada vez que ocurre algo con tus solicitudes de firma. Cada llamada es un `POST` JSON, firmado con un secreto para que tu servidor pueda comprobar que viene de Drime.

## Añadir un webhook

1. Abre **Ajustes** \> **Desarrolladores** \> **Webhooks**.

   Desde Firmar, también puedes hacer clic en **Preferencias**, abrir la pestaña **Webhooks** y luego **Abrir los ajustes de Desarrolladores**.

2. Haz clic en **Añadir un webhook**.

3. En **URL del endpoint**, introduce la dirección del servidor que recibe las llamadas.

4. En **Eventos**, pon en **Activado** cada evento que quieras recibir y haz clic en **Crear el webhook**.

   **Webhook creado** lo confirma.

5. Copia el secreto ahora y haz clic en **Hecho**.

   **Secreto del webhook: cópialo ahora**: solo se muestra una vez. Guárdalo en un lugar seguro.

![La ventana del nuevo webhook con la URL del endpoint de un servidor de demostración y la lista de eventos de Drime Sign](https://drime.cloud/media/01M5F06YR56KKN1FP1T6WCV3QW/8adc8de810cf-web-sign-webhook-create.png)

## Los eventos

| Evento | Se envía cuando |
| --- | --- |
| `envelope.sent` | Se envía un documento para firmar |
| `envelope.completed` | Todos los firmantes han firmado |
| `envelope.declined` | Un firmante ha rechazado, así que el documento queda rechazado |
| `signer.viewed` | Un firmante ha abierto el documento |
| `signer.signed` | Un firmante ha firmado |
| `signer.declined` | Un firmante ha rechazado |
| `template.created` | Se crea una plantilla |

## Qué envía Drime

Cada llamada lleva estas cabeceras:

- `X-Drime-Event`: el evento, por ejemplo `envelope.completed`;
- `X-Drime-Delivery`: el número de la entrega;
- `X-Drime-Signature`: `sha256=` seguido del HMAC SHA-256 del cuerpo sin procesar, calculado con tu secreto.

El cuerpo JSON contiene `event_type`, `event_uuid`, `timestamp` y `data`, el documento en cuestión con sus firmantes. La sección **Webhooks** muestra un ejemplo completo en **Ejemplo de petición y verificación de firma**.

Una entrega puede llegar más de una vez: usa `event_uuid` para procesar cada evento una sola vez.

## Comprobar la firma

Calcula el HMAC SHA-256 del cuerpo sin procesar de la petición con tu secreto y compáralo con la cabecera `X-Drime-Signature`. Por ejemplo, en Node.js:

```js
import crypto from 'node:crypto';

function isFromDrime(rawBody, header, secret) {
  const expected = 'sha256=' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
  return header.length === expected.length && crypto.timingSafeEqual(Buffer.from(header), Buffer.from(expected));
}
```

Usa el cuerpo exactamente como lo recibes, antes de cualquier análisis del JSON.

## Probar y seguir las entregas

- **Enviar una prueba** envía un evento de prueba: **Evento de prueba en cola: consulta el registro de entregas**.
- **Entregas** muestra cada llamada con su estado: **Éxito**, **Pendiente** o **Fallido**. **Reenviar** vuelve a enviar una entrega.
- Si tu servidor no responde o responde con un error, Drime lo vuelve a intentar, hasta 10 intentos en unas 34 horas.
- El interruptor **Activado** / **Desactivado** pausa un webhook sin eliminarlo: **Webhook en pausa** lo confirma, y **Webhook activado** cuando lo vuelves a activar.

## Cambiar el secreto o eliminar el webhook

- **Regenerar el secreto** crea un secreto nuevo. La aplicación advierte: **¿Rotar el secreto? Tu secreto actual dejará de funcionar de inmediato.** Actualiza tu servidor enseguida.
- **Eliminar** quita el webhook: **¿Eliminar este webhook y todo su historial de entregas?**

## Si no funciona

| Lo que ves | Qué hacer |
| --- | --- |
| **Introduce la URL del endpoint** | Introduce la dirección de tu servidor antes de crear el webhook. |
| **Activa al menos un evento** | Elige al menos un evento en **Eventos**. |
| Las entregas siguen en **Fallido** | Comprueba que tu servidor es accesible desde internet y responde con un código de éxito. Luego haz clic en **Reenviar**. |
| Tu servidor rechaza la firma | Calcula el HMAC sobre el cuerpo sin procesar, no sobre el JSON ya analizado, y usa el secreto actual. Tras **Regenerar el secreto**, el antiguo deja de funcionar. |

## Próximos pasos

- [Crear una aplicación o conectar webhooks](https://drime.cloud/es/support/integrations-and-api/build-an-integration)
- [Crear un token de API](https://drime.cloud/es/support/integrations-and-api/api-tokens)
- [Qué contiene el certificado de auditoría de un documento firmado](https://drime.cloud/es/support/sign/audit-trail-and-certificate)
