Une Data Room M&A sur Coffrify est un espace partagé persistant attaché à votre workspace. Elle centralise les transferts de fichiers (coffrify_transfers.room_id), les échanges internes et la liste des membres invités. Chaque membre reçoit un lien magique (https://files.coffrify.com/room/{slug}?t=…) qui lui ouvre l'accès sans création de compte. L'expiration, la protection par mot de passe, le filigrane et le téléchargement sont configurables à la création ou par PATCH ultérieur.
/v1/roomsCrée une nouvelle Data Room dans le workspace authentifié.POST/v1/rooms/{id}/membersInvite un membre (email + rôle) et retourne son lien magique d'accès./v1/rooms/{id}/members?id={memberId}Révoque l'accès d'un membre (pose un revoked_at, non-destructif).Authentification
Toutes les opérations d'écriture (création, invitation, révocation, mise à jour, suppression) requièrent le scope rooms:manage. La lecture seule (liste des rooms, détail, liste des membres) requiert le scope rooms:read. Passez votre clé dans l'en-tête Authorization: Bearer cof_live_… (ou cof_test_… en environnement de test, cof_sandbox_… pour les démonstrations).
Corps de la requête
POST /v1/rooms : création de la Data Room.
| Champ | Type | Requis | Description |
|---|---|---|---|
| name | string | Oui | Nom de la Data Room (affiché aux invités). |
| description | string | Non | Description libre, visible dans l'interface. |
| expires_in_days | integer | Non | Durée de vie en jours (1-365, défaut : 30). |
| password | string | Non | Mot de passe optionnel. Hashé en SHA-256 côté serveur avant stockage. |
| watermark_enabled | boolean | Non | Active le filigrane sur les fichiers visualisés (défaut : true). |
| allow_download | boolean | Non | Autorise le téléchargement des fichiers (défaut : true). |
POST /v1/rooms/{id}/members : invitation d'un membre.
| Champ | Type | Requis | Description |
|---|---|---|---|
| string | Oui | Adresse e-mail du membre invité (normalisée en minuscules). | |
| role | string | Non | Rôle attribué : viewer (défaut) ou editor. Transmis dans l'e-mail d'invitation. |
Exemple complet : créer une room, inviter deux membres
Réponses
POST /v1/rooms retourne HTTP 201 avec l'objet room créé :
POST /v1/rooms/{id}/members retourne HTTP 201 avec l'identifiant du membre et son lien magique :
GET /v1/rooms/{id} retourne le détail enrichi avec les compteurs agrégés :
DELETE /v1/rooms/{id}/members?id={memberId} retourne HTTP 200 :
Erreurs
| Code HTTP | code | Quand | Résolution |
|---|---|---|---|
| 400 | validation_error | name absent à la création de room, email invalide lors d'une invitation, id absent en query param lors d'une révocation, ou PATCH envoyé sans aucun champ modifiable. | Vérifiez le corps de la requête et les paramètres obligatoires. |
| 401 | missing_api_key / invalid_api_key | Clé absente, mal formée ou appartenant à un autre environnement. | Utilisez une clé cof_live_… en production ou cof_test_… en test. |
| 403 | scope_missing | La clé ne possède pas le scope rooms:manage (ou rooms:read pour un GET). | Régénérez la clé en ajoutant les scopes nécessaires dans la console. |
| 404 | not_found | Identifiant de room inexistant ou n'appartenant pas au workspace. | Vérifiez l'id retourné lors de la création de la room. |
| 429 | rate_limited | Quota par minute dépassé sur les endpoints d'écriture. | Respectez l'en-tête Retry-After ou passez sur un plan supérieur. |
| 500 | internal_error | Erreur base de données inattendue. | Réessayez avec un Idempotency-Key ; si l'erreur persiste, contactez le support. |
Voir aussi
- Référence : POST /v1/rooms
- Référence : POST /v1/rooms/{id}/members
- Référence : DELETE /v1/rooms/{id}/members
- Référence : PATCH /v1/rooms/{id}
- Quickstart : Envoyer un premier transfert
- Quickstart : Gérer les clés API et les scopes