📋
Webhooks·Débutant·8 min

Catalogue complet des événements webhook disponibles

Découvrez les 74 types d'événements webhook Coffrify, regroupés par famille, avec leurs conditions de déclenchement et les plans requis.

Télécharger en PDF

L'API Coffrify expose deux endpoints pour consulter le catalogue des événements webhook : un endpoint public (GET /v1/webhooks/events) accessible sans authentification et mis en cache 5 minutes, et un endpoint filtrable par famille (GET /v1/webhooks/events/by-family) qui nécessite le scope webhooks:read. Les 74 événements sont tous marqués stable et couvrent 17 familles : transfers, workspace, membres, clés API, tokens, webhooks, SCIM, SAML, audit, RGPD, collections, coffres (Data Room), demandes de fichiers, domaines, billing, sessions et règles d'automatisation. Certains événements sont réservés aux plans Pro, Ultra ou Entreprise : le champ required_plan l'indique explicitement dans chaque entrée du catalogue.

GET/v1/webhooks/eventsRetourne le catalogue complet des événements (public, sans authentification, cache 300 s).GET/v1/webhooks/events/by-familyRetourne le catalogue filtré par famille et les compteurs par famille (scope webhooks:read requis).

Authentification

L'endpoint GET /v1/webhooks/events est public : aucune clé API n'est nécessaire. Il est prévu pour les générateurs de documentation et les explorateurs curl. L'endpoint GET /v1/webhooks/events/by-family exige une clé API avec le scope webhooks:read. Transmettez votre clé dans l'en-tête Authorization: Bearer cof_live_… (ou cof_test_… en environnement de test, cof_sandbox_… en sandbox).

Paramètres de requête

L'endpoint accepte quelques filtres optionnels (par famille, par plan). Le tableau ci-dessous récapitule les paramètres disponibles et leurs valeurs.

ParamètreTypeRequisDescription
familystringNonFiltre les événements par famille (transfer, workspace, member, api_key, api_token, webhook, scim, saml, audit, gdpr, collection, coffre, request, domain, billing, session, rule, system). Disponible uniquement sur /by-family.

Consulter le catalogue

L'appel le plus simple récupère tout le catalogue sans authentification. Les exemples ci-dessous montrent comment l'interroger dans chaque langage.

# Catalogue complet (public, sans clé)
curl https://api.coffrify.com/v1/webhooks/events
 
# Filtré par famille (scope webhooks:read requis)
curl https://api.coffrify.com/v1/webhooks/events/by-family?family=transfer \
-H "Authorization: Bearer cof_live_sk_VOTRE_CLE"

Réponse de GET /v1/webhooks/events

La réponse liste tous les types d'événements (object: list), regroupés par families. C'est cette liste qui fait foi : un webhook ne peut s'abonner qu'à des type présents ici.

{
"object": "list",
"total": 74,
"families": [
"transfer", "workspace", "member", "api_key", "api_token",
"webhook", "scim", "saml", "audit", "gdpr",
"collection", "coffre", "request", "domain",
"billing", "session", "rule", "system"
],
"data": [
{
"type": "transfer.created",
"family": "transfer",
"description": "A new transfer was created.",
"stability": "stable"
},
{
"type": "transfer.scan_infected",
"family": "transfer",
"description": "Scan detected malware. Files quarantined.",
"stability": "stable",
"required_plan": "pro"
},
{
"type": "transfer.geo_blocked",
"family": "transfer",
"description": "Download blocked by geo policy.",
"stability": "stable",
"required_plan": "ultra"
},
{
"type": "workspace.sso_configured",
"family": "workspace",
"description": "SSO/SAML configuration was added or updated.",
"stability": "stable",
"required_plan": "entreprise"
},
"..."
]
}

Réponse de GET /v1/webhooks/events/by-family

La variante par famille renvoie chaque événement avec sa family et son niveau de stabilité, plus des compteurs par famille. Pratique pour construire une interface de sélection groupée.

{
"object": "list",
"data": [
{ "type": "transfer.created", "family": "transfer", "stability": "stable", "description": "A new transfer was created." },
{ "type": "transfer.downloaded", "family": "transfer", "stability": "stable", "description": "Recipient successfully fetched download URLs." },
{ "type": "transfer.expired", "family": "transfer", "stability": "stable", "description": "Transfer reached expires_at." },
{ "type": "transfer.scan_infected", "family": "transfer", "stability": "stable", "required_plan": "pro", "description": "Scan detected malware. Files quarantined." },
{ "type": "transfer.geo_blocked", "family": "transfer", "stability": "stable", "required_plan": "ultra", "description": "Download blocked by geo policy." }
],
"total": 17,
"families": [
{ "family": "transfer", "count": 17 },
{ "family": "workspace", "count": 9 },
{ "family": "member", "count": 6 },
{ "family": "api_key", "count": 5 },
{ "family": "coffre", "count": 5 },
{ "family": "request", "count": 4 },
{ "family": "collection", "count": 4 },
{ "family": "scim", "count": 4 },
{ "family": "api_token", "count": 3 },
{ "family": "domain", "count": 3 },
{ "family": "billing", "count": 3 },
{ "family": "audit", "count": 2 },
{ "family": "gdpr", "count": 2 },
{ "family": "webhook", "count": 2 },
{ "family": "session", "count": 2 },
{ "family": "rule", "count": 2 },
{ "family": "system", "count": 1 }
],
"filter": { "family": "transfer" }
}

Tableau des événements par famille

Le tableau ci-dessous recense chaque événement, le plan minimum requis et son déclencheur. Référez-vous-y pour savoir à quoi vous abonner selon votre cas d'usage.

FamilleÉvénementPlan minimumDéclenchement
transfertransfer.createdfreeUn nouveau transfert est créé.
transfertransfer.downloadedfreeLe destinataire récupère les URL de téléchargement.
transfertransfer.expiredfreeLe transfert atteint expires_at.
transfertransfer.deletedfreeLe propriétaire supprime le transfert ou la lecture unique le consomme.
transfertransfer.clonedfreeUn transfert expiré est republié via clone.
transfertransfer.renamedfreeLe titre du transfert est modifié.
transfertransfer.settings_changedfreeMot de passe, expiration ou max_downloads sont modifiés.
transfertransfer.scannedfreeLe job antivirus se termine (neutre).
transfertransfer.scan_cleanproAucune menace détectée.
transfertransfer.scan_infectedproMalware détecté, fichiers mis en quarantaine.
transfertransfer.scan_quarantinedproVerdict suspect retourné.
transfertransfer.limit_reachedfreeLe dernier téléchargement autorisé est consommé.
transfertransfer.password_failedfreeMot de passe incorrect soumis sur un transfert protégé.
transfertransfer.geo_blockedultraTéléchargement bloqué par la politique géographique.
transfertransfer.preview_openedfreeLe destinataire ouvre la prévisualisation d'un fichier.
transfertransfer.email_sentfreeL'URL du transfert est envoyée par email via Coffrify.
transfertransfer.e2e_createdfreeUn transfert zero-knowledge (E2E) est créé.
workspaceworkspace.createdfreeUn nouveau workspace est provisionné.
workspaceworkspace.plan_changedfreeLe plan d'abonnement change.
workspaceworkspace.payment_succeededfreeFacture Stripe réglée.
workspaceworkspace.payment_failedfreeÉchec de paiement Stripe.
workspaceworkspace.usage_limit_warningfree80 % d'un quota de plan atteint.
workspaceworkspace.usage_limit_reachedfree100 % d'un quota de plan atteint.
workspaceworkspace.storage_limit_reachedfreeQuota de stockage entièrement consommé.
workspaceworkspace.member_limit_reachedfreeNombre maximal de sièges membres atteint.
workspaceworkspace.sso_configuredentrepriseConfiguration SSO/SAML ajoutée ou mise à jour.
membermember.invitedfreeUne invitation workspace est envoyée.
membermember.acceptedfreeUn utilisateur invité accepte l'invitation.
membermember.removedfreeUn membre est retiré du workspace.
membermember.role_changedfreeLe rôle d'un membre est mis à jour (owner / admin / member).
memberinvitation.expiredfreeUn lien d'invitation expire avant acceptation.
memberinvitation.revokedfreeUne invitation est révoquée manuellement.
api_keyapi_key.createdfreeUne nouvelle clé API est créée.
api_keyapi_key.revokedfreeUne clé API est révoquée.
api_keyapi_key.rotatedfreeUne clé API est renouvelée (rotation).
api_keyapi_key.expiredfreeUne clé API atteint expires_at.
api_keyapi_key.suspicious_usageultraDétection d'anomalie sur les patterns d'usage d'une clé.
api_tokenapi_token.createdfreeUn token de téléversement délégué est émis.
api_tokenapi_token.usedfreeUn token de téléversement délégué est consommé.
api_tokenapi_token.expiredfreeUn token de téléversement délégué expire sans utilisation.
webhookwebhook.delivery_failed_finalfreeUne livraison a épuisé son budget de retentatives.
webhookwebhook.endpoint_disabledfreeUn endpoint est automatiquement désactivé après des échecs consécutifs.
scimscim.user_provisionedentrepriseL'IdP crée un utilisateur via SCIM.
scimscim.user_deprovisionedentrepriseL'IdP désactive un utilisateur via SCIM.
samlsaml.login_succeededentrepriseUn utilisateur se connecte via SAML SSO.
samlsaml.login_failedentrepriseL'assertion SAML est rejetée.
auditaudit.exportedfreeLe journal d'audit est exporté.
auditaudit.policy_violatedultraUne action est refusée par une règle de politique.
gdprgdpr.deletion_requestedproUn sujet demande la suppression (RGPD art. 17).
gdprgdpr.export_requestedproUn sujet demande l'export de ses données (RGPD art. 20).
collectioncollection.createdfreeUne nouvelle collection est créée.
collectioncollection.updatedfreeLe nom ou la description d'une collection est mis à jour.
collectioncollection.deletedfreeUne collection est supprimée.
collectioncollection.item_addedfreeUn transfert est ajouté à une collection.
coffrecoffre.createdproUne Data Room est créée.
coffrecoffre.deletedproUne Data Room est supprimée.
coffrecoffre.accessedproUn invité externe ouvre la Data Room.
coffrecoffre.item_uploadedproUn fichier est déposé dans une section de la Data Room.
coffrecoffre.invitation_sentproUne invitation est envoyée à un invité externe.
requestrequest.createdfreeUne demande de fichiers est créée et envoyée.
requestrequest.submittedfreeLe destinataire soumet les fichiers demandés.
requestrequest.expiredfreeLa date limite passe sans soumission.
requestrequest.completedfreeTous les fichiers requis sont reçus.
domaindomain.addedproUn domaine personnalisé est enregistré.
domaindomain.verifiedproLa vérification DNS réussit, le domaine est actif.
domaindomain.verification_failedproLa vérification DNS échoue après la date limite.
billingbilling.trial_startedfreeUn essai gratuit est activé sur le workspace.
billingbilling.trial_endingfreeL'essai se termine dans 3 jours sans moyen de paiement.
billingbilling.subscription_cancelledfreeL'abonnement est annulé, le workspace rétrograde en fin de période.
sessionsession.createdfreeUne nouvelle session de connexion depuis un appareil ou une IP non reconnus.
sessionsession.revokedfreeUne session est révoquée manuellement par l'utilisateur ou un admin.
rulerule.triggeredproUne règle d'automatisation se déclenche et exécute ses actions.
rulerule.disabledproUne règle est désactivée automatiquement après avoir atteint son seuil d'erreurs.
systempingfreeÉvénement de test déclenché manuellement.

Erreurs

Seul l'endpoint par famille étant authentifié, les erreurs se limitent à l'absence de clé ou de scope webhooks:read. Le tableau ci-dessous les détaille.

Code HTTPCode erreurQuandRésolution
401missing_api_keyEn-tête Authorization absent sur /by-family.Ajoutez Authorization: Bearer cof_live_… à votre requête.
401invalid_api_keyLa clé API n'existe pas ou ne correspond pas à l'environnement.Vérifiez le préfixe : cof_live_…, cof_test_… ou cof_sandbox_….
401expired_api_keyLa clé a atteint sa date expires_at.Créez une nouvelle clé dans le tableau de bord ou via POST /v1/api-keys.
401revoked_api_keyLa clé a été révoquée.Générez une nouvelle clé avec le scope webhooks:read.
403scope_missingLa clé ne possède pas le scope webhooks:read.Émettez une clé incluant le scope webhooks:read.
429rate_limitedQuota de requêtes par minute dépassé.Respectez les en-têtes X-RateLimit-Remaining et X-RateLimit-Reset renvoyés.
500internal_errorErreur interne inattendue.Réessayez après quelques secondes. Si persistant, contactez le support Coffrify.

Bonnes pratiques

Voir aussi

Continuer

Autres tutoriels à suivre