API y Desarrolladores
Webhooks
Registra endpoints HTTPS para recibir notificaciones en tiempo real cuando tus trabajos PDF se completen o fallen. Aprende a verificar las firmas de webhook y a gestionar los reintentos.
Los webhooks permiten que tu aplicación reciba notificaciones de eventos en tiempo real desde PDFSimple. En lugar de consultar la API repetidamente para conocer el estado de un trabajo, registra un endpoint y PDFSimple le enviará una solicitud POST con una carga útil firmada cuando ocurra un evento.
Configurar un webhook
- Ve a Panel → Webhooks y haz clic en Añadir endpoint.
- Introduce la URL de tu endpoint HTTPS (por ejemplo, https://tuaplicacion.com/webhooks/pdfsimple).
- Selecciona los eventos que quieres recibir (por ejemplo, job.completed, job.failed).
- Haz clic en Crear. Se mostrará un secreto de webhook único; cópialo de inmediato, solo se muestra una vez.
- Guarda el secreto de forma segura en las variables de entorno de tu aplicación.
Tu secreto de webhook se usa para verificar que las cargas útiles provienen de PDFSimple. Nunca lo expongas públicamente. Si se ve comprometido, elimina el webhook y crea uno nuevo.
Eventos de webhook
- job.completed: un trabajo de procesamiento de PDF finalizó correctamente. La carga útil incluye el ID del trabajo, la URL del archivo de salida y los metadatos.
- job.failed: un trabajo encontró un error. La carga útil incluye el mensaje de error.
Verificar las firmas de webhook
Cada solicitud de webhook incluye un encabezado X-PDFSimple-Signature que contiene una firma HMAC-SHA256 del cuerpo de la solicitud sin procesar, calculada con tu secreto de webhook. Verifica siempre esta firma antes de procesar la carga útil.
const crypto = require('crypto');
function verifySignature(rawBody, secret, signature) {
const expected = crypto
.createHmac('sha256', secret)
.update(rawBody)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(signature)
);
}Reintentos y garantías de entrega
Si tu endpoint no devuelve una respuesta 2xx en un plazo de 30 segundos, PDFSimple reintentará la entrega con retroceso exponencial, hasta 5 intentos durante 30 días. Los eventos de webhook se conservan durante 30 días.
Responde con el código HTTP 200 lo más rápido posible. Procesa la carga útil de forma asíncrona en un trabajo en segundo plano para evitar tiempos de espera agotados.
¿Te resultó útil?