Réponse exemple
Cet endpoint renvoie le détail complet d'un dépôt reçu sur un point de réception (intake). Il vous fournit les métadonnées du dépôt, des URLs présignées de téléchargement vers les blobs chiffrés, ainsi que l'enveloppe de chiffrement de bout en bout. Le déchiffrement a lieu côté client par le propriétaire de la clé privée. Coffrify n'a jamais accès au contenu en clair.
GET/v1/intakes/{id}/documents/{docId}Récupère un dépôt (métadonnées, URLs présignées, enveloppe E2E).Authentification par <code>Authorization: Bearer cof_…</code>. La clé doit porter le scope <code>intake_read</code>. Les URLs de téléchargement renvoyées sont à usage unique côté infrastructure, valides 300 secondes (<code>download_expires_in</code>). Au-delà, rappelez l'endpoint pour en obtenir de nouvelles.
Paramètres
Les deux paramètres de chemin sont obligatoires. Aucun paramètre de requête n'est accepté sur cette route.
| Paramètre | Emplacement | Type | Description |
|---|---|---|---|
| id | path | string | Identifiant de l'intake parent (préfixe in_…). |
| docId | path | string | Identifiant du dépôt (préfixe doc_…). |
| Authorization | header | string | Bearer cof_live_… ou cof_test_… avec scope intake_read. |
| Accept | header | string | Optionnel. Forcer application/json. |
Exemple de requête
Vous identifiez le dépôt par la paire (intake_id, document_id). L'intake parent doit appartenir à votre compte, sinon l'API renvoie 404 (pas de fuite d'existence transverse).
Exemple de réponse
La réponse contient les métadonnées du dépôt, l'enveloppe de chiffrement nécessaire au déchiffrement côté client, et la liste des fichiers avec leurs URLs présignées de téléchargement vers les blobs chiffrés.
Champs renvoyés
| Champ | Type | Description |
|---|---|---|
| id | string | Identifiant du dépôt. |
| intake_id | string | Identifiant de l'intake parent. |
| client_reference | string | Référence opaque attachée au dépôt (numéro de dossier). Null si non fournie. |
| metadata | object | Métadonnées libres en clair, uniquement si l'intake a metadata_policy=allow. |
| status | string | received ou processing. |
| files_count | integer | Nombre de fichiers du dépôt. |
| total_size_bytes | integer | Taille cumulée des blobs chiffrés. |
| encrypted | boolean | Toujours true sur les intakes en E2E. |
| source | string | widget ou api. |
| envelope | object | Enveloppe de chiffrement à fournir au déchiffrement côté client. |
| files[] | array | Liste des fichiers avec URL présignée et IV par fichier. |
| created_at | string | Horodatage ISO 8601 UTC. |
Durée de vie des URLs
Les URLs <code>download_url</code> sont valides 300 secondes après émission. Téléchargez les blobs immédiatement ou rappelez l'endpoint pour régénérer des URLs fraîches. Une URL expirée renvoie 403 côté CDN sans révéler d'information utile.
Codes de statut
Toute réponse non 2xx est un JSON avec les champs <code>code</code>, <code>message</code> et <code>request_id</code>. Conservez le <code>request_id</code> pour le support.
| Code | Signification | Cause typique |
|---|---|---|
| 200 | OK | Dépôt trouvé, URLs présignées émises. |
| 401 | Unauthorized | Clé absente, invalide ou révoquée. |
| 403 | Forbidden | Scope intake_read manquant, ou clé sandbox sur un intake live. |
| 404 | Not Found | Intake ou dépôt inexistant pour ce compte. |
| 410 | Gone | Le dépôt a été supprimé après expiration de la politique de rétention. |
| 429 | Too Many Requests | Respectez Retry-After et X-RateLimit-Reset. |
| 5xx | Erreur serveur | Réessayez avec une politique de backoff exponentiel. |