Webhooks
Votre site est prévenu quand un numéro est publié, remplacé, retiré ou remis en ligne : pour envoyer une newsletter, mettre à jour une page ou un catalogue.
Configurer
Dans Intégrations, ajoutez l’adresse https de votre point de réception (5 au plus) et choisissez les événements. Chaque point a son secret de signature ; le bouton « Envoyer un test » envoie un événement test.
Événements
| Type | Quand |
|---|---|
numero.publie | Un numéro est publié |
numero.remplace | Le PDF d’un numéro est remplacé |
numero.retire | Un numéro est retiré (hors ligne) |
numero.remis_en_ligne | Un numéro est remis en ligne |
Format
POST /votre/point-de-reception
Content-Type: application/json
Liseuse-Signature: t=1790000000,v1=5f2b…
{
"id": "evt_8c1f…",
"type": "numero.publie",
"cree_le": "2026-10-01T21:49:48.000Z",
"donnees": {
"id": "liseuse-pdf.com:inklura-escales-n12",
"titre": "Escales n°12 · octobre 2026",
"publication": { "code": "escales", "nom": "Escales" },
"date": "2026-10-01", "pages": 12,
"page_publique": "https://liseuse-pdf.com/apercu/inklura-escales-n12"
}
}Répondez par un code 2xx en moins de 4 secondes. Sans réponse ou en cas d’erreur 5xx, l’envoi est retenté après 1 minute, 5 minutes, 30 minutes puis 2 heures (même corps, même id, nouvelle signature). Les 50 derniers envois de chaque point de réception sont journalisés dans Intégrations avec leur réponse, et chacun peut être renvoyé (même identifiant id : ignorez les doublons). Vous pouvez aussi relire l’état avec GET /publications.
Vérifier la signature
v1 est le HMAC-SHA256 hexadécimal de <t>.<corps brut> avec votre secret. Refusez les signatures fausses ou de plus de 5 minutes. Les SDK le font pour vous :
// Node.js (Express : express.raw({ type: "application/json" })) const evenement = LiseusePDF.verifierWebhook(req.body, req.get("Liseuse-Signature"), process.env.LISEUSE_SECRET_WEBHOOK); // PHP $evenement = LiseusePDF::verifierWebhook(file_get_contents('php://input'), $_SERVER['HTTP_LISEUSE_SIGNATURE'] ?? '', getenv('LISEUSE_SECRET_WEBHOOK')); # Python evenement = LiseusePDF.verifier_webhook(request.get_data(), request.headers["Liseuse-Signature"], secret)