Webhooks

Recevez des notifications en temps réel sur les événements Luneo

Exemple de webhook handler

const express = require('express');
const crypto = require('crypto');

app.post('/webhooks/luneo', (req, res) => {
  const signature = req.headers['x-luneo-signature'];
  const payload = JSON.stringify(req.body);
  
  // Vérifier la signature HMAC
  const expectedSignature = crypto
    .createHmac('sha256', process.env.WEBHOOK_SECRET)
    .update(payload)
    .digest('hex');
  
  if (signature !== expectedSignature) {
    return res.status(401).send('Invalid signature');
  }
  
  const { event, data } = req.body;
  
  switch (event) {
    case 'design.completed':
      console.log('Design prêt:', data.designId);
      break;
    case 'order.paid':
      console.log('Commande payée:', data.orderId);
      break;
  }
  
  res.status(200).send('OK');
});

Événements disponibles

  • design.completed - Un design a été généré avec succès
  • design.failed - La génération d'un design a échoué
  • order.created - Une nouvelle commande a été créée
  • order.paid - Une commande a été payée
  • order.shipped - Une commande a été expédiée

Sécurité

Tous les webhooks sont signés avec HMAC-SHA256. Vérifiez toujours la signature avant de traiter un événement.