🔔
Inbox & demandes de fichiers·Intermédiaire·8 min

Recevoir des notifications webhook à chaque dépôt dans l'Inbox

Configurez un webhook Coffrify pour être alerté en temps réel à chaque nouveau dépôt dans votre Inbox, et vérifiez la signature HMAC pour sécuriser la réception.

Télécharger en PDF

L'Inbox de Coffrify permet à vos interlocuteurs de déposer des fichiers sans compte. Chaque appel à POST /v1/inbox/submit crée une soumission (status: "received") et peut déclencher un webhook vers votre serveur. Cette page explique comment enregistrer un endpoint, souscrire aux événements request.submitted et request.completed, et valider la signature webhook-signature côté récepteur pour traiter ces notifications en toute confiance.

Endpoints concernés

Trois endpoints interviennent : créer un webhook (POST /v1/webhooks), consulter le catalogue d'événements et déclencher une soumission Inbox qui notifiera vos abonnés.

POST/v1/webhooksCrée un nouvel endpoint webhook et retourne le secret de signature (`whsec_…`).GET/v1/webhooks/event-catalogRetourne le catalogue complet des 74 types d'événements disponibles, groupés par famille.
POST/v1/inbox/submitCrée une soumission dans l'Inbox via token `cit_live_…`. Déclenche les webhooks abonnés aux événements de la famille `request`.

Authentification

La création et la gestion de webhooks nécessitent un scope `webhooks:manage` sur votre clé API (cof_live_… ou cof_test_…). La lecture seule (liste, historique de livraisons) utilise le scope webhooks:read. Le dépôt dans l'Inbox (/v1/inbox/submit) s'authentifie quant à lui avec un token Inbox au format cit_live_…, émis depuis le tableau de bord Coffrify et distinct de votre clé API.

Créer le webhook : corps de la requête

La création d'un webhook déclare l'URL de destination et les événements auxquels s'abonner. Le tableau ci-dessous détaille les champs acceptés.

ChampTypeRequisDescription
namestringOuiLibellé interne du webhook (ex. "Inbox notifications prod")
urlstringOuiURL HTTPS de votre endpoint récepteur. Doit passer la validation new URL(...).
eventsstring[]NonListe de types d'événements du catalogue. Par défaut ["transfer.downloaded"]. Pour l'Inbox, utilisez ["request.submitted", "request.completed"].
descriptionstringNonDescription libre, non fonctionnelle.
is_activebooleanNonActivé ou non. true par défaut à la création.

Exemples d'appel

L'exemple ci-dessous crée un webhook abonné aux événements de dépôt Inbox. Choisissez votre langage.

curl -X POST https://api.coffrify.com/v1/webhooks \
-H "Authorization: Bearer cof_live_VOTRE_CLE" \
-H "Content-Type: application/json" \
-d '{
"name": "Inbox notifications prod",
"url": "https://votre-serveur.com/webhooks/coffrify",
"events": ["request.submitted", "request.completed"]
}'

Réponse à la création

La réponse renvoie l'objet webhook et, surtout, son secret de signature (whsec_…). Ce secret n'apparaît qu'à la création : conservez-le pour vérifier les livraisons.

{
"id": "wh_01J9ABCDE2FGHIJK3LMNOP4QRS",
"name": "Inbox notifications prod",
"description": null,
"url": "https://votre-serveur.com/webhooks/coffrify",
"events": ["request.submitted", "request.completed"],
"is_active": true,
"signing_version": "v1",
"retry_policy": null,
"secret": "whsec_a3f8e2d1c09b7654a3f8e2d1c09b7654a3f8e2d1c09b7654a3f8e2d1c09b7654",
"created_at": "2026-06-06T10:23:45.000Z"
}

Structure d'un événement livré

Coffrify signe chaque livraison selon le standard Standard Webhooks. Les en-têtes webhook-id, webhook-timestamp et webhook-signature sont toujours présents. L'en-tête X-Coffrify-Signature (format t=<ts>,v1=<hex>) est également envoyé pour compatibilité avec les intégrations antérieures.

{
"id": "evt_01J9XYZ123456789ABCDEFGHIJ",
"object": "event",
"type": "request.submitted",
"created": 1749204225,
"data": {
"submission_id": "sub_01J9XYZ987654321ZYXWVUTSRQ",
"drop_box_id": "dbox_01J9ABC111222333444555666",
"workspace_id": "ws_01J8AB12CD34EF56GH78IJ90KL",
"requester_email": "alice@example.com",
"requester_name": "Alice Martin",
"files_count": 3,
"total_size_bytes": 2097152,
"status": "received",
"source": "api",
"tracking_token": "TRK_abcdefghijklmnopqrstuvwxyz",
"tracking_expires_at": "2026-07-06T10:23:45.000Z"
},
"test": false
}

Erreurs

Les erreurs portent sur une URL invalide, un événement inconnu ou le scope webhooks:manage manquant. Le tableau ci-dessous indique la résolution.

Code HTTPCode d'erreurQuandRésolution
401invalid_tokenClé API absente, malformée ou révoquée.Vérifiez que votre clé cof_live_… ou cof_test_… est valide et non révoquée.
403scope_missingScope webhooks:manage absent de la clé API utilisée.Recréez la clé API en cochant le scope webhooks:manage.
400validation_errorname ou url manquant, URL invalide, ou type d'événement absent du catalogue.Consultez GET /v1/webhooks/event-catalog pour la liste des types valides.
409validation_errorLimite de 25 webhooks par workspace atteinte.Supprimez un webhook inactif via DELETE /v1/webhooks/{id}.
401invalid_tokenToken Inbox (cit_live_…) absent ou révoqué lors d'un dépôt via /v1/inbox/submit.Vérifiez le token Inbox dans le tableau de bord, section Inbox > Tokens.
403scope_missingToken Inbox read_only utilisé pour un dépôt.Recréez le token Inbox avec le scope read_write.
410box_disabledLa drop-box cible est désactivée.Réactivez la drop-box dans le tableau de bord Coffrify.
402uploads_blockedLe workspace est bloqué pour cause de dépassement de quota.Passez à un plan supérieur ou libérez du stockage.
500internal_errorErreur interne de base de données.Réessayez dans quelques secondes. Si le problème persiste, consultez le status de l'API.

Voir aussi

Continuer

Autres tutoriels à suivre