Référence APICréer une data room et inviter des viewers
POST/v1/workspace/datarooms

Créer une data room et inviter des viewers

Crée une data room M&A dans le workspace courant, attache éventuellement des documents et envoie des invitations par email aux viewers fournis.

2 min de lectureTélécharger en PDF

Requête exemple

{
"name": "Projet Hélios - Cession majoritaire",
"status": "active",
"viewers": [
{
"name": "Claire Dupont",
"role": "Analyste M&A",
"email": "investisseur@fonds-alpha.com",
"company": "Fonds Alpha"
}
],
"documents": [
{
"title": "Liasse fiscale 2025",
"source_id": "f7c2a9e0-1234-4abc-8def-0123456789ab",
"description": "Comptes annuels consolidés",
"source_type": "vault_file",
"watermark_required": true
}
],
"description": "Data room de due diligence pour la cession de 60% du capital.",
"nda_required": true,
"target_company": "Hélios Industries SAS",
"expires_in_days": 90,
"nda_template_text": "Accord de confidentialité applicable à l'ensemble des documents..."
}

Réponse exemple

{
"id": "a1f2c3d4-5678-49ab-9cde-0123456789ab",
"status": "active",
"reference": "DR-7K9M-2X4P",
"invitations": [
{
"email": "investisseur@fonds-alpha.com",
"viewer_id": "b2e3d4c5-6789-4abc-9def-1234567890ab",
"invitation_sent": true
}
],
"documents_added": 1
}
POST/v1/workspace/dataroomsCrée une data room, attache des documents et envoie les invitations viewers en lot.

Crée une nouvelle data room M&A dans le workspace courant. En une seule requête, l'endpoint peut aussi attacher une liste de documents (documents) et inviter une liste de viewers (viewers) : pour chaque viewer valide, un token de consultation est généré et un email d'invitation est envoyé via le template dataroom-invitation. La reference de la data room est générée automatiquement (avec retry en cas de collision unique). Les opérations sur les documents et les viewers sont best-effort : un échec d'insertion ou d'envoi n'annule pas la création de la data room. Chaque action est journalisée dans coffrify_audit_log (dataroom.created, dataroom.viewer_invited).

Authentification

Requiert une session Supabase valide (cookies) et non une clé API à scope : clé API valide, aucun scope spécifique. L'appelant doit en outre être membre actif du workspace avec un rôle gestionnaire : owner, admin ou member. Les rôles viewer et auditor reçoivent une erreur 403. Le workspace ciblé est résolu via le cookie cf-workspace-id, ou à défaut le premier workspace actif de l'utilisateur.

Corps de la requête

ChampTypeRequisDescription
namestringOuiNom de la data room. Tronqué à 200 caractères ; vide ou absent renvoie 400.
target_companystringNonSociété cible de l'opération. Tronqué à 200 caractères.
descriptionstringNonDescription libre. Tronquée à 2000 caractères.
nda_requiredbooleanNonExige un NDA avant accès. Vaut true par défaut (seule la valeur explicite false le désactive).
nda_template_textstringNonTexte du NDA présenté aux viewers. Tronqué à 50000 caractères.
expires_in_daysnumberNonDurée de validité en jours. Borné entre 7 et 730, défaut 90. Détermine expires_at.
statusstringNonStatut initial : draft (défaut) ou active. Toute autre valeur retombe sur draft. Créer directement en active consomme le quota de data rooms actives.
viewersarrayNonListe de viewers à inviter. Chaque entrée : email (requis, dédupliqué et validé), name, company, role. Les emails invalides sont ignorés silencieusement.
documentsarrayNonListe de documents à attacher. Chaque entrée : source_type (vault_file, transfer_file ou upload), source_id (requis), title (défaut = source_id), description, watermark_required (défaut true).

Réponse

En cas de succès, renvoie un 201 avec l'id et la reference de la data room créée, son status effectif, le tableau invitations (un objet par viewer effectivement inséré : email, viewer_id, invitation_sent indiquant si l'email a bien été déclenché), et documents_added (nombre de documents retenus et insérés). Les viewers dont l'email est invalide ou dont l'insertion échoue n'apparaissent pas dans invitations.

Erreurs

CodeQuandRésolution
401 UnauthorizedAucune session Supabase valide.Authentifiez la requête avec une session valide.
404 No active workspaceAucun workspace actif résolu pour l'utilisateur.Vérifiez l'appartenance au workspace et le cookie cf-workspace-id.
403 Insufficient permissionsLe rôle de l'appelant n'est pas gestionnaire (owner/admin/member).Utilisez un compte ayant un rôle gestionnaire dans le workspace.
400 Invalid JSONLe corps de la requête n'est pas un JSON valide.Envoyez un corps JSON bien formé avec l'en-tête Content-Type: application/json.
400 name required (1-200 chars)Le champ name est absent ou vide après troncature.Fournissez un name non vide d'au plus 200 caractères.
402 quota_exceededCréation directe en status=active alors que le quota de data rooms actives du plan est atteint (corps : feature, plan, used, limit, upgrade_url).Archivez/clôturez une data room active, créez en draft, ou mettez à niveau le plan via upgrade_url.
500 InternalÉchec d'insertion en base (hors collision de référence) ou impossibilité d'allouer une référence unique après plusieurs essais.Réessayez ; si l'erreur persiste, contactez le support.

Voir aussi