Un modèle de transfert est un jeu d'options enregistré une fois et réutilisé à volonté. Plutôt que de répéter l'expiration, le mot de passe, le filigrane ou la liste de pays autorisés à chaque envoi, vous les définissez dans un modèle, puis vous l'appliquez pour créer un transfert pré-rempli. Les modèles vivent au niveau de l'espace de travail et sont gérés via /v1/templates. La lecture requiert le scope templates:read, la création et la modification requièrent templates:manage, et l'application d'un modèle (qui crée un vrai transfert) requiert transfers:write.
Les options d'un modèle
Un modèle porte un nom et une description, plus l'ensemble des réglages qui seront copiés dans chaque transfert créé à partir de lui. Le tableau ci-dessous liste les champs que vous pouvez définir. Tous sont optionnels sauf name.
| Champ | Type | Description |
|---|---|---|
| name | string | Nom du modèle. Obligatoire. |
| description | string | Description libre, pour vos équipes. |
| is_default | boolean | Marque ce modèle comme modèle par défaut de l'espace. |
| expires_in_hours | number | Durée de validité du transfert, en heures. Minimum 1. Par défaut 48. |
| max_downloads | number | null | Nombre maximal de téléchargements. null = illimité. |
| password_enabled | boolean | Active la protection par mot de passe. |
| password | string | null | Mot de passe à appliquer au transfert. |
| watermark_enabled | boolean | Active le filigrane sur les documents pris en charge. |
| watermark_text | string | null | Texte du filigrane. |
| burn_after_read | boolean | Détruit le transfert après la première lecture. |
| geo_allowlist | string[] | null | Codes pays ISO autorisés à accéder (ex. ["FR","BE"]). |
| require_signature | boolean | Exige une signature du destinataire. |
| require_email_verification | boolean | Exige la vérification de l'adresse e-mail du destinataire. |
| approval_required | boolean | Soumet l'accès à une approbation. |
| allow_reply | boolean | Autorise le destinataire à répondre avec des fichiers. |
| custom_message | string | null | Message affiché au destinataire. |
| notification_email | string | null | Adresse notifiée des évènements du transfert. |
| encryption_mode | string | Mode de chiffrement. server_side par défaut. |
Lister les modèles
Renvoie tous les modèles de l'espace de travail, du plus récent au plus ancien, sous la forme d'une liste.
GET/v1/templatesLister les modèles de transfert (scope templates:read).Créer un modèle
Fournissez au minimum un name. Les champs non précisés prennent leurs valeurs par défaut (par exemple expires_in_hours vaut 48). S'agissant d'une écriture, vous pouvez transmettre un en-tête Idempotency-Key pour rejouer la requête sans créer de doublon.
/v1/templatesCréer un modèle de transfert (scope templates:manage).Récupérer, modifier ou supprimer un modèle
GET /v1/templates/{id} renvoie un modèle. PATCH /v1/templates/{id} met à jour uniquement les champs transmis : pour effacer une valeur, passez null (sur max_downloads, password ou geo_allowlist). DELETE /v1/templates/{id} supprime le modèle et renvoie { "id": "...", "object": "transfer_template", "deleted": true }. Un identifiant inconnu renvoie une erreur not_found.
Appliquer un modèle pour créer un transfert
C'est l'intérêt principal : POST /v1/templates/{id}/apply crée un transfert pré-rempli avec les options du modèle. Fournissez le tableau files (chaque entrée a name, size et mime_type facultatif), éventuellement un recipient, et un objet overrides pour ajuster ponctuellement certaines options sans modifier le modèle. Cet appel requiert le scope transfers:write. La réponse contient le transfert créé, les URL d'envoi par fichier et le lien de partage.
/v1/templates/{id}/applyCréer un transfert à partir d'un modèle (scope transfers:write).Exemple de réponse renvoyée par l'application d'un modèle :
Bonnes pratiques
- Nommez vos modèles par usage métier (« Contrats clients », « Diffusion presse », « Pièces sensibles ») pour que vos équipes appliquent le bon sans réfléchir aux options.
- Marquez le plus courant avec
is_defaultafin qu'il serve de base aux nouveaux envois. - Réservez les surcharges aux exceptions ponctuelles ; si un réglage change durablement, modifiez le modèle avec
PATCHplutôt que de surcharger à chaque appel. - Limitez
templates:manageaux clés qui doivent réellement créer ou modifier des modèles ; une clé de simple lecture se contente detemplates:read.