Webhooks
Recevez des notifications en temps réel lorsque des événements se produisent dans votre compte Selery. Automatisez vos workflows et synchronisez vos systèmes.
Qu'est-ce qu'un webhook ?
Un webhook est une notification HTTP automatique envoyée par Selery vers votre application lorsqu'un événement spécifique se produit. Au lieu de vérifier constamment les changements, votre système est notifié instantanément.
Push instantané
Notifications en temps réel
Sécurisé
Signatures cryptographiques
Fiable
Système de retry automatique
Événements disponibles
Propriétés
3 événementsproperty.created
Nouvelle propriété ajoutée
Un bien immobilier vient d'être créé dans votre patrimoine
property.updated
Propriété modifiée
Les informations d'un bien ont été mises à jour
property.deleted
Propriété supprimée
Un bien a été retiré de votre patrimoine
Locataires
3 événementstenant.created
Nouveau locataire ajouté
Un nouveau bail vient d'être signé
tenant.updated
Informations locataire modifiées
Les coordonnées d'un locataire ont changé
lease.expired
Bail arrivé à échéance
Un bail arrive à expiration dans 30 jours
Finances
3 événementspayment.received
Paiement reçu
Un loyer a été encaissé
payment.overdue
Paiement en retard
Un loyer n'a pas été payé à la date prévue
expense.created
Nouvelle dépense enregistrée
Une facture de travaux a été ajoutée
Prospection
3 événementslead.created
Nouveau prospect détecté
Le radar a trouvé une nouvelle opportunité
deal.status_changed
Statut d'affaire modifié
Une opportunité passe en négociation
contact.created
Nouveau contact ajouté
Un nouveau contact a été enregistré
Configuration étape par étape
Créer un endpoint webhook
Configurez une URL publique dans votre application pour recevoir les notifications.
Exemple d'endpoint en Node.js
const express = require('express');
const crypto = require('crypto');
const app = express();
app.use(express.raw({ type: 'application/json' }));
app.post('/webhooks/selery', (req, res) => {
const signature = req.headers['x-selery-signature'];
const payload = req.body;
// Vérifier la signature
const expectedSignature = crypto
.createHmac('sha256', process.env.SELERY_WEBHOOK_SECRET)
.update(payload)
.digest('hex');
if (signature !== `sha256=${expectedSignature}`) {
return res.status(401).send('Signature invalide');
}
const event = JSON.parse(payload);
// Traiter l'événement
switch (event.event) {
case 'property.created':
console.log('Nouvelle propriété:', event.data);
break;
case 'payment.received':
console.log('Paiement reçu:', event.data);
break;
default:
console.log('Événement non géré:', event.event);
}
res.status(200).send('OK');
});
app.listen(3000, () => {
console.log('Serveur webhook démarré sur le port 3000');
});
Points importants
- • Votre endpoint doit être accessible publiquement (HTTPS recommandé)
- • Répondez avec un statut 200 pour confirmer la réception
- • Vérifiez toujours la signature pour sécuriser votre endpoint
Configurer le webhook dans Selery
Ajoutez votre endpoint dans l'interface d'administration ou via l'API.
Via l'interface web
Via l'API
curl -X POST https://api.selery.io/v1/webhooks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://yourapp.com/webhooks/selery",
"events": [
"property.created",
"property.updated",
"payment.received"
],
"secret": "your-webhook-secret"
}'
Tester et déboguer
Validez votre intégration avec des outils de test et de monitoring.
Test de webhook
Utilisez l'outil de test intégré pour envoyer un webhook d'exemple.
Exemples de payload
{
"event": "property.created",
"timestamp": "2024-08-11T14:30:00Z",
"data": {
"id": "prop_789",
"type": "apartment",
"address": "15 Rue Victor Hugo, Lyon 6ème",
"surface": 85,
"rooms": 4,
"purchase_price": 450000,
"created_at": "2024-08-11T14:30:00Z",
"owner": {
"id": "user_123",
"name": "Jean Dupont"
}
},
"webhook": {
"id": "wh_456",
"url": "https://yourapp.com/webhooks/selery"
}
}
Sécurité des webhooks
Validation des signatures
Chaque webhook inclut une signature HMAC-SHA256 dans l'en-têtex-selery-signature
.
- • Utilisez votre secret webhook pour calculer la signature
- • Comparez avec la signature reçue
- • Rejetez les requêtes avec signatures invalides
Bonnes pratiques
- • Utilisez HTTPS pour votre endpoint
- • Limitez les tentatives de retry
- • Loggez les échecs pour le débogage
- • Implémentez une idempotence
- • Validez le format des données reçues