Requête exemple
Réponse exemple
POST/v1/rulesCrée une règle d'automatisation pour l'espace de travail.Crée une règle d'automatisation qui exécutera automatiquement une action lorsqu'un évènement Coffrify se produira dans l'espace de travail. La règle est validée à la création : l'évènement déclencheur et le type d'action doivent appartenir aux valeurs supportées, et certains types d'action imposent des champs obligatoires dans action_config (URL de webhook, URL Slack, libellé de tag ou durée de prolongation). La règle est créée active par défaut. En cas de succès, l'API renvoie le code HTTP 201 et la règle complète. Cet endpoint respecte l'idempotence : fournissez un en-tête Idempotency-Key pour éviter les doublons en cas de nouvelle tentative.
Authentification
Cet endpoint exige une clé API valide disposant du scope transfers:manage. La requête doit présenter la clé dans l'en-tête Authorization. L'appel compte dans le quota de débit de type écriture de l'espace de travail.
Corps de la requête
| Champ | Type | Requis | Description |
|---|---|---|---|
| name | string | Oui | Nom de la règle. Espaces de bordure supprimés ; ne peut pas être vide. |
| trigger_event | string | Oui | Évènement déclencheur. Doit faire partie des valeurs supportées (voir ci-dessous). |
| action_type | string | Oui | Type d'action. Doit faire partie des valeurs supportées (voir ci-dessous). |
| action_config | object | Conditionnel | Paramètres de l'action. Obligatoire selon le action_type choisi (voir la validation par action). Vaut un objet vide par défaut. |
| description | string | Non | Description libre. Les espaces de bordure sont supprimés ; une chaîne vide devient null. |
| trigger_conditions | object | Non | Filtres conditionnels (encryption_mode, min_files, status, recipient_email, country_code). null si omis ou non-objet. |
| is_enabled | boolean | Non | Active ou désactive la règle. true par défaut. |
Évènements déclencheurs supportés (trigger_event) :
transfer.created,transfer.e2e_created,transfer.downloaded,transfer.first_download,transfer.expired,transfer.limit_reached,transfer.geo_blocked,transfer.password_failed,transfer.approved,transfer.rejected,transfer.approval_requestedapi_key.created,api_key.revoked,api_key.rotated,api_key.expiredrequest.created,request.deleted,request.submission_receivedreply.received,signature.completed,identity.verified
Types d'action supportés (action_type) :
webhook/trigger_webhook: appellent une URL en POST. Exigentaction_config.url(URL valide).slack_notify: poste sur Slack. Exigeaction_config.webhook_url.email_recipient/email_workspace: envoient un email (au destinataire du transfert ou au propriétaire de l'espace).action_config.subjectetaction_config.bodyoptionnels.tag_transfer/untag_transfer: ajoutent/retirent un tag. Exigentaction_config.tag(non vide).extend_expiry: prolonge l'expiration d'un transfert. Exigeaction_config.hoursouaction_config.days(> 0).archive_transfer: archive le transfert ciblé. Aucun champaction_configrequis.
Réponse
En cas de succès, l'API renvoie le code 201 et l'objet de la règle créée, avec les mêmes champs que ceux retournés par GET /v1/rules. À la création, last_triggered_at vaut null et trigger_count vaut 0.
Erreurs
| Code | Quand | Résolution |
|---|---|---|
| validation_error | name vide, trigger_event ou action_type non supporté, ou action_config incomplet pour l'action choisie (url, webhook_url, tag, hours/days). | Corrigez le champ signalé dans le message d'erreur. |
| missing_api_key | Aucune clé API fournie. | Ajoutez votre clé API à la requête. |
| invalid_api_key | Clé API inconnue ou malformée. | Vérifiez la clé utilisée. |
| scope_missing | La clé ne possède pas le scope transfers:manage. | Émettez une clé incluant transfers:manage. |
| idempotency_conflict | La même Idempotency-Key est réutilisée avec un corps différent. | Utilisez une nouvelle clé d'idempotence ou renvoyez le corps identique. |
| rate_limited | Quota de débit écriture dépassé. | Patientez selon l'en-tête Retry-After, puis réessayez. |
| internal_error | Erreur lors de l'insertion en base de données. | Réessayez ; si le problème persiste, contactez le support avec le request_id. |
Voir aussi
- GET /v1/rules : lister les règles existantes de l'espace de travail.
- GET /v1/transfers : consulter les transferts manipulés par les actions de règles.
- POST /v1/webhooks : enregistrer un webhook réutilisable pour les actions
webhook.