🤝
Data Rooms & Collections·Intermédiaire·8 min

Partager un document depuis une Data Room avec lien sécurisé

Attachez un transfert existant à une Data Room, puis générez un lien de téléchargement présigné à durée limitée pour un partage confidentiel et traçable.

Télécharger en PDF

Une Data Room Coffrify est un espace de partage persistant qui regroupe plusieurs transferts sous un accès unique, sécurisé et journalisé. Ce guide vous explique comment : 1) attacher un transfert existant à une Data Room via POST /v1/rooms/{id}/documents, et 2) générer un lien de téléchargement présigné à durée limitée via POST /v1/transfers/{id}/download-url. Le document héritera automatiquement des protections de la room (filigrane, interdiction de téléchargement) et chaque URL sera signée avec HMAC côté serveur, sans jamais exposer vos clés de stockage au client final.

GET/v1/rooms/{id}/documentsLister les transferts attachés à une Data Room.POST/v1/rooms/{id}/documentsAttacher un transfert existant (identifié par son short_code) à une Data Room.POST/v1/transfers/{id}/download-urlGénérer une ou plusieurs URLs de téléchargement présignées pour les fichiers d'un transfert.

Authentification

Ces trois endpoints nécessitent une clé API passée dans l'en-tête Authorization: Bearer <clé>. Les préfixes de clés valides sont cof_live_…, cof_test_… ou cof_sandbox_… selon votre environnement. - Lister les documents d'une room : scope rooms:read - Attacher ou détacher un document : scope rooms:manage - Générer un lien de téléchargement présigné : scope transfers:download Votre clé doit posséder les deux scopes rooms:manage et transfers:download pour couvrir le flux complet de ce guide.

Corps de la requête : attacher un document

Pour attacher un transfert existant à une room, vous l'identifiez par son short_code. Le tableau ci-dessous liste les champs acceptés.

ChampTypeRequisDescription
short_codestringOuiLe code court du transfert à attacher (ex. a1b2c3d4). Le transfert doit appartenir au même workspace que la room.

Corps de la requête : générer un lien de téléchargement

La génération d'un lien de téléchargement précise le fichier visé et la durée de validité souhaitée. Voici les champs disponibles.

ChampTypeRequisDescription
file_idstringNonIdentifiant UUID d'un fichier spécifique. Si omis, une URL est retournée pour chaque fichier du transfert.
expires_in_secondsintegerNonDurée de validité de l'URL en secondes. Minimum : 60, maximum : 86400 (24 h). Par défaut : 3600 (1 h).

Exemple complet

L'exemple ci-dessous attache un document à une room, puis génère un lien de téléchargement présigné pour ce document. Choisissez votre langage.

import httpx
 
API_KEY = "cof_live_xxxxxxxxxxxxxxxxxxxx"
BASE_URL = "https://api.coffrify.com/v1"
ROOM_ID = "room_01hxyz"
SHORT_CODE = "a1b2c3d4"
 
headers = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
 
# 1. Attacher le transfert à la Data Room
attach = httpx.post(
f"{BASE_URL}/rooms/{ROOM_ID}/documents",
headers=headers,
json={"short_code": SHORT_CODE},
)
attach.raise_for_status()
doc = attach.json()
print("Document attaché :", doc["short_code"], "|", doc["transfer_title"])
 
transfer_id = doc["id"]
 
# 2. Générer un lien de téléchargement présigné (30 min)
download = httpx.post(
f"{BASE_URL}/transfers/{transfer_id}/download-url",
headers=headers,
json={"expires_in_seconds": 1800},
)
download.raise_for_status()
result = download.json()
 
for f in result["files"]:
print(f" {f['file_name']} -> {f['download_url'][:80]}...")
 
print("Expire le :", result["expires_at"])

Réponse : document attaché (201)

La réponse renvoie le transfert tel qu'il apparaît désormais dans la room, avec son short_code et son titre. Conservez son id pour les opérations suivantes.

{
"id": "tfr_01hxyz",
"short_code": "a1b2c3d4",
"transfer_title": "Pacte d'actionnaires v3.pdf",
"status": "active",
"expires_at": "2026-07-01T00:00:00.000Z",
"allow_download": true,
"watermark_enabled": true,
"created_at": "2026-06-01T10:22:45.123Z"
}

Réponse : liens de téléchargement présignés (200)

La réponse fournit les URLs signées et leur durée de validité (expires_in_seconds). Ces liens court-circuitent la porte publique : ne les exposez jamais côté client.

{
"transfer_id": "tfr_01hxyz",
"short_code": "a1b2c3d4",
"expires_in_seconds": 1800,
"expires_at": "2026-06-06T12:30:00.000Z",
"files": [
{
"file_id": "fil_01habc",
"file_name": "Pacte d'actionnaires v3.pdf",
"file_size": 204800,
"file_type": "application/pdf",
"download_url": "https://coffrify-transfer.s3.fr-par.scw.cloud/workspaces/...?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=1800&..."
}
],
"note": "These URLs bypass the public share + password gate AND do NOT increment total_downloads. For admin/agent operational use only."
}

Erreurs

Les erreurs portent sur une room ou un transfert introuvable, ou un scope manquant. Le tableau ci-dessous indique la résolution.

Code HTTPCode erreurQuandRésolution
400validation_errorshort_code absent ou vide dans le corps de la requête d'attachement.Vérifiez que le champ short_code est présent et non vide.
404not_foundLa room ou le transfert n'existe pas dans votre workspace.Vérifiez l'identifiant de room et le short_code du transfert.
409conflictLe transfert est déjà attaché à une autre room.Détachez-le d'abord via DELETE /v1/rooms/{autre_id}/documents.
410not_foundLe transfert existe mais son statut est deleted.Créez un nouveau transfert ou restaurez l'original depuis l'interface.
503internal_errorLes credentials Scaleway ne sont pas configurés sur le déploiement.Contactez le support Coffrify ou vérifiez vos variables d'environnement.
429rate_limitedQuota sandbox dépassé (25 transferts / 24 h en environnement cof_sandbox_…).Attendez la prochaine fenêtre de 24 h ou utilisez une clé cof_live_….

Voir aussi

  • Créer une Data Room
  • Créer un transfert et uploader des fichiers
  • Référence : GET /v1/rooms/{id}/documents
  • Référence : POST /v1/transfers/{id}/download-url
  • Gérer les membres d'une Data Room
Continuer

Autres tutoriels à suivre