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.createdNouvelle propriété ajoutée
Un bien immobilier vient d'être créé dans votre patrimoine
property.updatedPropriété modifiée
Les informations d'un bien ont été mises à jour
property.deletedPropriété supprimée
Un bien a été retiré de votre patrimoine
Locataires
3 événementstenant.createdNouveau locataire ajouté
Un nouveau bail vient d'être signé
tenant.updatedInformations locataire modifiées
Les coordonnées d'un locataire ont changé
lease.expiredBail arrivé à échéance
Un bail arrive à expiration dans 30 jours
Finances
3 événementspayment.receivedPaiement reçu
Un loyer a été encaissé
payment.overduePaiement en retard
Un loyer n'a pas été payé à la date prévue
expense.createdNouvelle dépense enregistrée
Une facture de travaux a été ajoutée
Prospection
3 événementslead.createdNouveau prospect détecté
Le radar a trouvé une nouvelle opportunité
deal.status_changedStatut d'affaire modifié
Une opportunité passe en négociation
contact.createdNouveau 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