API et développeurs
Webhooks
Enregistrez des points de terminaison HTTPS pour recevoir des notifications en temps réel lorsque vos tâches PDF se terminent ou échouent. Découvrez comment vérifier les signatures de webhook et gérer les nouvelles tentatives.
Les webhooks permettent à votre application de recevoir des notifications d'événements en temps réel de la part de PDFSimple. Plutôt que d'interroger l'API pour connaître le statut d'une tâche, enregistrez un point de terminaison et PDFSimple lui enverra une requête POST avec une charge utile signée lorsqu'un événement se produit.
Configurer un webhook
- Rendez-vous dans Tableau de bord → Webhooks et cliquez sur Ajouter un point de terminaison.
- Saisissez l'URL de votre point de terminaison HTTPS (ex. https://yourapp.com/webhooks/pdfsimple).
- Sélectionnez les événements que vous souhaitez recevoir (ex. job.completed, job.failed).
- Cliquez sur Créer. Un secret de webhook unique s'affiche — copiez-le immédiatement, il n'est affiché qu'une seule fois.
- Stockez le secret en toute sécurité dans les variables d'environnement de votre application.
Votre secret de webhook sert à vérifier que les charges utiles proviennent bien de PDFSimple. Ne l'exposez jamais publiquement. En cas de compromission, supprimez le webhook et créez-en un nouveau.
Événements de webhook
- job.completed — une tâche de traitement PDF s'est terminée avec succès. La charge utile inclut l'identifiant de la tâche, l'URL du fichier de sortie et les métadonnées.
- job.failed — une tâche a rencontré une erreur. La charge utile inclut le message d'erreur.
Vérifier les signatures de webhook
Chaque requête webhook inclut un en-tête X-PDFSimple-Signature contenant une signature HMAC-SHA256 du corps brut de la requête, calculée à l'aide de votre secret de webhook. Vérifiez toujours cette signature avant de traiter la charge utile.
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)
);
}Nouvelles tentatives et garanties de livraison
Si votre point de terminaison ne renvoie pas de réponse 2xx dans les 30 secondes, PDFSimple relancera la livraison avec un délai exponentiel, jusqu'à 5 tentatives sur 30 jours. Les événements de webhook sont conservés pendant 30 jours.
Répondez avec HTTP 200 le plus rapidement possible. Traitez la charge utile de manière asynchrone dans une tâche en arrière-plan pour éviter les délais d'expiration.
Cet article vous a-t-il été utile ?