Crear Webhook
Permite registrar un webhook para recibir notificaciones automáticas cuando ocurra un evento específico (por ejemplo, cuando un documento sea firmado o un firmante rechace).
Al crear el webhook, Firmeasy devuelve un secret_key
único. Este secreto será utilizado para firmar todos los payloads enviados al target_url
, permitiendo verificar la autenticidad mediante HMAC-SHA256.
¿Por qué utilizamos HMAC?
El estándar HMAC (Hash-based Message Authentication Code) se emplea para garantizar la integridad y autenticidad de las notificaciones enviadas a tu target_url
.
Cuando Firmeasy dispara un webhook, calcula un hash del contenido (payload) utilizando la secret_key
única de tu webhook. Esto permite:
- ✅ Asegurarte de que la solicitud fue realmente enviada por Firmeasy.
- ✅ Verificar que el contenido no fue alterado en tránsito.
- ✅ Rechazar mensajes no firmados o manipulados.
Para implementar la validación en tu servidor receptor, solo debes recalcular el HMAC con tu clave secreta (secret_key
) y comparar el resultado con el hash recibido en el header. Así puedes tener confianza total en la integridad del evento.
Endpoint
https://app.firmeasy.legal/api/v1/webhooks
Campos Obligatorios
Los campos marcados con un asterisco (*) son obligatorios y deben ser proporcionados en la solicitud. Los demás campos son opcionales.
Headers requeridos
Nombre | Tipo | Descripción | Límites |
---|---|---|---|
Authorization * | string | Token de acceso obtenido en el login, con el prefijo 'Bearer'. | Obligatorio |
Content-Type | string | Especifica el tipo de contenido del cuerpo de la solicitud HTTP. Para las peticiones que incluyen datos JSON | 'application/json' |
Cuerpo de la solicitud (Parámetrosy)
Nombre | Tipo | Descripción | Límites |
---|---|---|---|
target_url * | string | URL destino a la que se enviarán los eventos cuando ocurra el trigger. | Obligatorio |
event * | string | Evento que activará el webhook. Ej: 'document_signed' o 'signer_rejected'. | Obligatorio |
Ejemplo de request
{ "target_url": "https://hooks.empresaglobal.com/events/9d4f7a2c-35e1-4a8b-9216-bc0f3f6b2b93", "event": "signer_rejected"}
Campos devueltos
Nombre | Tipo | Descripción |
---|---|---|
id | string | Identificador único del webhook en Firmeasy. |
user | string | ID del usuario que es propietario del webhook. |
document | string/null | Documento asociado si aplica, o null. |
event | string | Evento configurado que disparará el webhook. |
target_url | string | URL destino configurada. |
active | boolean | Indica si el webhook está activo. |
secret_key | string | Clave secreta única que sirve para firmar los payloads con HMAC. |
signed_headers | array/null | Headers firmados (por ahora null). |
created_at | datetime | Fecha de creación. |
updated_at | datetime | Última actualización. |
Ejemplo de respuesta
{ "id": "c4e51f28-7a91-45c0-a918-2b84f8a14e57", "user": "6b2fcd91-3d78-4a19-80fa-50d2ac93e481", "document": null, "event": "signer_rejected", "target_url": "https://hooks.empresaglobal.com/events/c4e51f28-7a91-45c0-a918-2b84f8a14e57", "active": true, "secret_key": "92JF4PLX8MK1S0AGB2VY5HQ7N", "custom_headers": null, "signed_headers": null, "type": "E", "created_at": "2024-12-18T10:22:45.000000Z", "updated_at": "2024-12-18T10:22:45.000000Z"}