Requête exemple
Réponse exemple
Cette route permet à un membre du workspace (côté vendor) de répondre à une question Q&A posée par un viewer dans une Data Room. La réponse est enregistrée sur la question ciblée, le statut passe à answered (ou closed), et un email dataroom-answer-received est envoyé au viewer ayant posé la question. Le comportement est idempotent : si la question a déjà reçu une réponse, l'édition reste autorisée mais l'email n'est pas renvoyé afin d'éviter le spam (seule la première réponse déclenche la notification).
L'ownership est revérifié côté serveur via un client de service, indépendamment du RLS : la propriété de la Data Room et l'appartenance au workspace sont contrôlées à chaque appel.
Authentification
Clé API valide / session authentifiée, aucun scope spécifique n'est requis. L'autorisation repose sur l'appartenance au workspace : l'appelant doit être un membre active du workspace propriétaire de la Data Room, ou le propriétaire du compte (owner_id du workspace). À défaut, la requête renvoie 403 forbidden.
Paramètres de chemin
| Champ | Type | Requis | Description |
|---|---|---|---|
| id | string (uuid) | Oui | Identifiant de la Data Room. Doit correspondre au dataroom_id de la question. |
| questionId | string (uuid) | Oui | Identifiant de la question à laquelle répondre. |
Corps de la requête
| Champ | Type | Requis | Description |
|---|---|---|---|
| answer_text | string | Oui | Texte de la réponse. Trimé puis validé : entre 2 et 8000 caractères. |
| make_public | boolean | Non | Si true, passe la visibility de la question à public_to_all : la réponse devient visible par tous les viewers de la Data Room. Par défaut la visibilité reste inchangée. |
| close | boolean | Non | Si true, le statut de la question passe directement à closed au lieu de answered. |
Réponse
En cas de succès, la réponse JSON contient ok (true), question_id (identifiant de la question), answered_at (horodatage ISO de la réponse), visibility (public_to_all si make_public était true, sinon la visibilité existante de la question) et status (closed si close était true, sinon answered).
Erreurs
| Code | Quand | Résolution |
|---|---|---|
| 401 unauthorized | Aucune session/clé API valide. | Authentifiez la requête avant de réessayer. |
| 400 missing_params | id ou questionId absent de l'URL. | Fournissez les deux identifiants dans le chemin. |
| 400 answer_too_short | answer_text trimé fait moins de 2 caractères. | Envoyez une réponse d'au moins 2 caractères. |
| 400 answer_too_long | answer_text dépasse 8000 caractères. | Raccourcissez la réponse sous la limite de 8000 caractères. |
| 404 question_not_found | Aucune question avec ce questionId. | Vérifiez l'identifiant de la question. |
| 400 question_mismatch | La question existe mais n'appartient pas à la Data Room id. | Utilisez l'id de Data Room correspondant à la question. |
| 404 dataroom_not_found | Aucune Data Room avec cet id. | Vérifiez l'identifiant de la Data Room. |
| 409 dataroom_unavailable | La Data Room est archived ou closed. | Réactivez la Data Room ou répondez dans une Data Room active. |
| 403 forbidden | L'appelant n'est ni membre actif ni propriétaire du workspace. | Connectez-vous avec un compte membre du workspace propriétaire. |
| 500 update_failed | Échec de la mise à jour en base (avec detail). | Réessayez ; si l'erreur persiste, contactez le support. |
Voir aussi
/v1/workspace/datarooms/{id}/questionsLister les questions Q&A d'une Data Room./v1/workspace/datarooms/{id}Récupérer le détail et le statut d'une Data Room.GET/v1/workspace/datarooms/{id}/viewersLister les viewers d'une Data Room et leur statut d'accès.