Une livraison est un POST avec un corps JSON. Définissez un secret de signature et chaque requête porte X-Pathbound-Signature, un HMAC-SHA256 du corps brut que vous pouvez vérifier en quelques lignes. Le tableau de bord journalise chaque livraison, flux par flux : code de réponse, latence, corps et nombre de tentatives.
{
"id": "ec_abc123",
"type": "contact.updated",
"resource": "contact",
"action": "updated",
"timestamp": "2026-06-08T12:00:00.000Z",
"source": "hubspot",
"object": {
"contact_id": "ct_abc",
"properties": {
"email": "[email protected]",
"jobtitle": "VP Engineering",
"lifecyclestage": "mql"
}
},
"changed_fields": ["jobtitle", "lifecyclestage"]
}
- Délai d’expiration
- Répondez en 2xx sous 30 secondes ; accusez réception vite et faites le traitement dans un job en arrière-plan.
- Nouvelles tentatives
- Une livraison en échec est retentée jusqu’à 3 fois, avec des délais de 1 s, 10 s puis 60 s. Une réponse 4xx est considérée comme définitive et n’est pas retentée.
- Disjoncteur
- Un flux se met en pause de lui-même après une longue série d’échecs consécutifs ; réactivez-le depuis le tableau de bord une fois votre endpoint rétabli.
- Au moins une fois
- Une livraison peut arriver plusieurs fois. Dédupliquez sur l’id de la livraison.
- Ordre
- La plus récente l’emporte, sans ordre strict. Traitez l’objet comme l’état courant et réconciliez par updated_at.
- Regroupement
- Des changements rapprochés sur une même fiche sont regroupés en une seule livraison, qui porte le changement net.
- Filtres
- Les événements se filtrent par nom et par sous-chaîne d’URL. Les contacts et les entreprises se filtrent par champs modifiés et par source.
- Endpoints
- HTTPS uniquement, et les plages d’adresses IP internes sont refusées. Les en-têtes personnalisés sont chiffrés au repos.