📨

Envoyer une demande de fichier ciblée à un destinataire

Créez une demande de fichier restreinte à une liste d'adresses e-mail autorisées, récupérez son identifiant et exploitez les soumissions reçues via l'API Coffrify.

Télécharger en PDF

L'Inbox Coffrify vous permet de solliciter des fichiers auprès d'un ou plusieurs destinataires sans exposer votre coffre. Vous créez une demande (POST /v1/requests), vous la limitez à une liste d'adresses e-mail via allowed_emails, et chaque dépôt crée une soumission consultable via GET /v1/requests/:id/submissions. L'URL publique de dépôt est construite à partir du short_code retourné : https://inbox.coffrify.com/<short_code>.

POST/v1/requestsCrée une nouvelle demande de fichier dans l'espace de travail courant.GET/v1/requests/{id}Récupère une demande et ses statistiques de soumissions (pending, reviewed, approved, rejected, spam).GET/v1/requests/{id}/submissionsListe les soumissions reçues pour une demande, avec filtre optionnel par statut.

Authentification

Toutes les opérations sur les demandes exigent le scope transfers:write. Les clés de test commencent par cof_test_… et les clés de production par cof_live_…. Transmettez votre clé dans l'en-tête HTTP : Authorization: Bearer <votre_clé>.

Corps de la requête (POST /v1/requests)

Une demande déclare un titre, les destinataires autorisés et des contraintes (date limite, nombre de dépôts). Le tableau ci-dessous liste les champs acceptés.

ChampTypeRequisDescription
titlestringOuiIntitulé de la demande (max 200 caractères).
descriptionstringNonMessage affiché au déposant (max 2 000 caractères).
allowed_emailsstring[]NonListe blanche d'adresses e-mail autorisées à déposer. Si absent, tout le monde peut déposer.
is_password_protectedbooleanNonSi true, le champ password devient obligatoire.
passwordstringConditionnelMot de passe en clair, haché en SHA-256 côté serveur. Requis si is_password_protected: true.
expires_atstring (ISO 8601)NonDate d'expiration de la demande.
max_submissionsintegerNonNombre maximal de soumissions acceptées (0 = illimité).
max_file_size_mbintegerNonTaille maximale par fichier. Valeurs autorisées : 100, 500, 1000, 2000.
max_files_per_submissionintegerNonNombre maximal de fichiers par dépôt (entre 1 et 100).
notify_emailstringNonAdresse e-mail notifiée à chaque nouveau dépôt.
notify_slack_webhookstringNonURL de webhook Slack notifié à chaque nouveau dépôt.
cover_emojistringNonEmoji affiché sur la page de dépôt (max 8 caractères).
cover_colorstringNonCouleur de fond de la page, format hexadécimal #RRGGBB.

Exemple d'appel

L'exemple ci-dessous crée une demande de fichiers et récupère son lien public de dépôt. Choisissez votre langage.

curl -X POST https://api.coffrify.com/v1/requests \
-H "Authorization: Bearer cof_live_…" \
-H "Content-Type: application/json" \
-d '{
"title": "Documents RH - Onboarding Sophie Martin",
"description": "Merci de déposer votre contrat signé et votre pièce d identité.",
"allowed_emails": ["sophie.martin@exemple.fr"],
"expires_at": "2026-07-01T23:59:59Z",
"max_submissions": 1,
"max_file_size_mb": 100,
"notify_email": "rh@monentreprise.fr",
"cover_emoji": "📄"
}'

Réponse

{
"id": "req_01j9kx3y5z8w2v4n6m0p7q1r",
"short_code": "b7tfmz4k",
"title": "Documents RH - Onboarding Sophie Martin",
"description": "Merci de déposer votre contrat signé et votre pièce d'identité.",
"is_password_protected": false,
"allowed_emails": ["sophie.martin@exemple.fr"],
"status": "active",
"expires_at": "2026-07-01T23:59:59.000Z",
"max_submissions": 1,
"total_submissions": 0,
"allowed_file_types": null,
"max_file_size_mb": 100,
"max_files_per_submission": null,
"notify_email": "rh@monentreprise.fr",
"cover_color": null,
"cover_emoji": "📄",
"created_at": "2026-06-06T09:14:00.000Z",
"updated_at": "2026-06-06T09:14:00.000Z"
}

Le champ short_code est généré aléatoirement (8 caractères alphanumériques). L'URL publique de dépôt est https://inbox.coffrify.com/<short_code>. Le champ status est positionné à active à la création. L'événement request.created est émis de manière asynchrone après l'insertion.

Lister les soumissions reçues

Une fois la demande publiée, vous relevez les fichiers déposés via GET /v1/requests/{id}/submissions, avec un filtre optionnel par statut. L'exemple ci-dessous récupère les soumissions en attente de revue.

// Récupérer toutes les soumissions en attente de review
const res = await fetch(
`https://api.coffrify.com/v1/requests/${requestId}/submissions?status=pending`,
{ headers: { Authorization: 'Bearer cof_live_…' } }
);
const { data } = await res.json();
// data est un tableau de soumissions :
// { id, submitter_name, submitter_email, status, transfer_id,
// total_files, total_size_bytes, submitted_at, reviewed_at, reviewed_by }

Erreurs

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

HTTPcodeQuandRésolution
400validation_errortitle absent ou vide.Fournissez un title non vide (max 200 caractères).
400validation_erroris_password_protected: true sans password.Ajoutez le champ password dans le corps.
400validation_errorstatus invalide lors d'un PATCH (valeurs attendues : active, paused, expired, archived).Utilisez une des quatre valeurs autorisées.
400validation_errormax_file_size_mb hors des valeurs autorisées.Valeurs acceptées : 100, 500, 1000, 2000.
401missing_api_keyEn-tête Authorization absent.Ajoutez Authorization: Bearer cof_live_….
401invalid_api_keyClé malformée ou révoquée.Vérifiez la clé dans votre tableau de bord Coffrify.
403scope_missingLa clé ne possède pas le scope transfers:write.Régénérez la clé avec le scope transfers:write.
404not_foundL'identifiant de demande n'existe pas dans l'espace de travail.Vérifiez l'id transmis.
429rate_limitedQuota de requêtes par minute dépassé.Respectez le header Retry-After retourné.
500internal_errorErreur inattendue côté serveur.Réessayez et contactez le support si le problème persiste.

Voir aussi

Continuer

Autres tutoriels à suivre