Webhooks
Configurez des webhooks pour recevoir des notifications en temps réel.
Présentation
Les webhooks permettent à Maluro d’envoyer des notifications HTTP à votre serveur lorsque certains événements se produisent.
Configuration
Créer un webhook
Dans Paramètres → Intégrations → Webhooks :
- Cliquez sur ”+ Nouveau webhook”
- Entrez l’URL de votre endpoint
- Sélectionnez les événements à écouter
- Sauvegardez
Événements disponibles
| Événement | Description |
|---|---|
prospect.created | Nouveau prospect créé |
prospect.updated | Prospect mis à jour |
property.created | Nouveau bien ajouté |
property.updated | Bien mis à jour |
transaction.created | Nouvelle transaction |
transaction.status_changed | Changement de statut |
Format des payloads
Structure générale
{
"event": "prospect.created",
"timestamp": "2024-01-15T10:30:00Z",
"data": {
"id": "prs_123",
"name": "Jean Martin",
"email": "jean@example.com"
}
} Exemple : prospect.created
{
"event": "prospect.created",
"timestamp": "2024-01-15T10:30:00Z",
"data": {
"id": "prs_abc123",
"name": "Marie Dupont",
"email": "marie.dupont@email.com",
"type": "investor",
"created_at": "2024-01-15T10:30:00Z"
}
} Sécurité
Signature des webhooks
Chaque requête inclut un header X-Maluro-Signature :
X-Maluro-Signature: sha256=abc123... Vérification
import crypto from 'crypto';
function verifyWebhook(payload: string, signature: string, secret: string): boolean {
const expected = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return `sha256=${expected}` === signature;
} Vérifiez toujours la signature avant de traiter un webhook !
Retry et erreurs
Politique de retry
Si votre endpoint renvoie une erreur (code >= 400), Maluro réessaie :
- 1ère tentative : immédiate
- 2ème tentative : après 5 minutes
- 3ème tentative : après 30 minutes
- 4ème tentative : après 2 heures
Codes de réponse attendus
| Code | Signification |
|---|---|
| 200 | Succès |
| 4xx/5xx | Erreur, retry programmé |
Répondez rapidement (- de 5 secondes) et traitez le webhook de manière asynchrone si nécessaire.