Référence APIInviter un viewer sur une data room
POST/v1/workspace/datarooms/{id}/viewers

Inviter un viewer sur une data room

Ajoute un viewer à une data room et lui envoie une invitation par email avec un lien magique.

2 min de lectureTélécharger en PDF

Requête exemple

{
"name": "Camille Durand",
"role": "Lead investor",
"email": "investisseur@fonds-alpha.com",
"company": "Fonds Alpha Capital"
}

Réponse exemple

{
"id": "v_3f9a8c21-0e4d-4b77-9a12-7c5e1d8f0b3a",
"name": "Camille Durand",
"role": "Lead investor",
"email": "investisseur@fonds-alpha.com",
"status": "invited",
"company": "Fonds Alpha Capital",
"invitation_sent": true
}

Cette route ajoute un viewer à une data room du workspace actif, puis lui envoie une invitation par email contenant un lien magique d'accès. Le comportement est idempotent sur le couple data room + email : si un viewer existe déjà pour cet email, il est ressuscité (statut remis à invited) avec un nouveau jeton, plutôt que dupliqué. Dans ce cas la réponse renvoie un 200 ; pour une création réelle elle renvoie un 201. Le jeton d'accès brut n'est jamais retourné dans la réponse : seul le viewer le reçoit via l'email d'invitation.

Authentification

L'appel s'authentifie via la session Coffrify (cookies Supabase) : aucun scope de clé API spécifique n'est requis. En revanche, l'appelant doit avoir un rôle de gestion dans le workspace : seuls les rôles owner, admin et member sont autorisés. Tout autre rôle reçoit un 403 Insufficient permissions. La data room doit appartenir au workspace actif.

Corps de la requête

ChampTypeRequisDescription
emailstringOuiEmail du viewer à inviter. Normalisé en minuscules et validé ; un email invalide renvoie un 400.
namestringNonNom du viewer. Tronqué à 200 caractères. Peut être omis ou null.
companystringNonSociété du viewer. Tronquée à 200 caractères. Peut être omise ou null.
rolestringNonLibellé de rôle du viewer (ex. "Lead investor"). Tronqué à 80 caractères. Peut être omis ou null.

L'ajout d'un nouveau viewer est soumis au quota par data room selon le plan du workspace (max_viewers_per_dataroom). Si le quota est atteint, la requête renvoie un 402 avec un corps quota_exceeded. La ré-invitation d'un viewer existant ne consomme pas de quota supplémentaire.

Réponse

En cas de succès, la réponse contient l'id du viewer, son email normalisé, ses name, company et role, un status toujours égal à "invited", et invitation_sent (booléen) indiquant si l'email d'invitation a bien été déclenché. L'envoi de l'email est best-effort : invitation_sent peut être false sans que la création du viewer échoue. Le statut HTTP est 201 pour une création et 200 pour une ré-invitation. La date d'expiration effective du lien est le minimum entre l'expiration de la data room et celle du jeton.

Erreurs

CodeQuandRésolution
400 Invalid JSONLe corps n'est pas un JSON valide.Envoyez un corps JSON bien formé avec l'en-tête Content-Type adéquat.
400 Valid email requiredLe champ email est absent ou invalide.Fournissez un email valide.
401 UnauthorizedAucune session valide.Authentifiez-vous avant l'appel.
403 Insufficient permissionsLe rôle de l'appelant n'est pas owner, admin ou member.Demandez un rôle de gestion sur le workspace.
402 quota_exceededLe quota de viewers par data room du plan est atteint (nouveau viewer uniquement).Passez à un plan supérieur (voir upgrade_url) ou révoquez un viewer existant.
404 No active workspaceAucun workspace actif résolu pour l'utilisateur.Sélectionnez un workspace actif.
404 Not foundLa data room n'existe pas ou n'appartient pas au workspace actif.Vérifiez l'id de la data room.
500Échec d'insertion du viewer en base.Réessayez ultérieurement ; contactez le support si l'erreur persiste.

Voir aussi

GET/v1/workspace/datarooms/{id}/viewersLister tous les viewers d'une data room avec leur statut.POST/v1/workspace/datarooms/{id}/viewers/{viewerId}/resendRégénérer et renvoyer le lien magique d'un viewer sans réécrire ses informations.