La réception (intake) vous permet de collecter des fichiers auprès de tiers via une demande de dépôt. Plutôt que d'interroger l'API en boucle pour savoir si un destinataire a déposé ses documents, abonnez un webhook aux évènements de la famille request.*. Coffrify envoie alors une requête POST signée à votre URL dès qu'une demande est créée, qu'un dépôt est soumis, que la collecte est complète ou que la demande expire. Vous traitez l'information à l'instant où elle survient, en consommant un seul appel sortant par évènement.
Les évènements request.*
Quatre types d'évènements couvrent le cycle de vie d'une demande de réception. Ils sont tous stables et utilisables en production.
| Évènement | Quand il survient |
|---|---|
| request.created | Une demande de dépôt vient d'être créée et envoyée au destinataire. |
| request.submitted | Le destinataire a soumis les fichiers demandés. |
| request.completed | Tous les fichiers requis ont été reçus. |
| request.expired | L'échéance est passée sans soumission. |
La liste complète et à jour des évènements est exposée publiquement, sans authentification, sur GET /v1/webhooks/events. Vous pouvez la consulter pour découvrir les nouvelles familles ou vérifier les libellés exacts.
Créer un webhook sur la famille request
POST/v1/webhooksAbonne une URL aux évènements choisis. Nécessite le scope webhooks:manage.Indiquez un name, l'url qui recevra les requêtes et la liste des events à écouter. Pour la réception, abonnez-vous aux quatre évènements request.*. La réponse renvoie le secret (préfixe whsec_) qui sert à vérifier les signatures : il n'est montré qu'à la création, conservez-le côté serveur.
Forme d'un évènement reçu
Chaque livraison est un POST dont le corps JSON suit une enveloppe stable. Le champ type porte le nom de l'évènement, data contient les informations propres à la demande, et id identifie l'évènement de façon unique (utile pour la déduplication).
Le request_id du champ data est la référence à reprendre pour interroger la demande ou ses soumissions via l'API REST. Les évènements request.submitted, request.completed et request.expired partagent la même enveloppe, seul le contenu de data varie selon l'étape.
Recevoir et vérifier la livraison
Coffrify émet à la fois les en-têtes Standard Webhooks (webhook-id, webhook-timestamp, webhook-signature) et des en-têtes hérités (X-Coffrify-Signature, X-Coffrify-Event-Id, X-Coffrify-Event-Type). Vérifiez la signature avant de traiter le corps : calculez un HMAC-SHA256 avec votre secret sur la chaîne webhook-id.webhook-timestamp.corps_brut, puis comparez au champ v1 de l'en-tête webhook-signature. Tout vérificateur compatible Standard Webhooks fonctionne sans adaptation.
Réessais et réponses attendues
Répondez avec un code 2xx dès que vous avez accusé réception, sans attendre la fin de votre traitement métier. Toute réponse non 2xx, un délai dépassé ou une erreur réseau déclenche une série de réessais avec un intervalle croissant, étalée sur environ 72 heures. Le même id d'évènement est conservé d'une tentative à l'autre, ce qui rend la déduplication fiable.
- Validez la signature, répondez 2xx, puis traitez en arrière-plan : un traitement lent peut faire expirer la connexion et provoquer un réessai inutile.
- Une URL injoignable de façon répétée finit par désactiver le webhook ; surveillez vos livraisons depuis votre espace.
- Un évènement de test (webhook.test) peut être envoyé depuis l'interface pour valider votre point de terminaison avant la mise en production.
Du dépôt à l'action
Un flux de réception typique enchaîne ces étapes sans aucune interrogation périodique. Le webhook porte l'évènement, votre code réagit, puis va chercher le détail via le request_id quand il en a besoin.
- Vous créez une demande de dépôt (request.created part vers votre webhook).
- Le tiers dépose ses fichiers ; request.submitted vous prévient en temps réel.
- Lorsque tout le requis est reçu, request.completed déclenche la suite de votre processus (notification interne, classement, démarrage d'un traitement).
- Si l'échéance passe sans soumission, request.expired vous laisse relancer le destinataire ou clôturer le dossier.