Envoi d’une demande de signature
Ce guide couvre la création d’une demande de signature, l’ajout d’un modèle ou d’un document, et l’invitation des destinataires à signer.Étapes
- Créez ou sélectionnez un modèle
- Créez une demande de signature référençant le modèle
- Ajoutez des destinataires avec les informations requises (prénom, nom, email)
- Ajoutez éventuellement des champs de formulaire avec un positionnement basé sur des pourcentages
- Envoyez la demande par email ou intégrez la vue de signature
Schéma du destinataire (champs requis)
Chaque destinataire doit inclure :first_name(requis) - Prénom du destinatairelast_name(requis) - Nom du destinataireemail(requis) - Adresse email validedesignation(requis) - Rôle :"Signer","CC", ou"Approver". Les approbateurs examinent et approuvent le document (sans signature) via les types de champsapproval_*ci-dessousorder(optionnel) - Ordre de signature pour les workflows séquentiels
phone_number,street_address,city,state_province,postal_code,country,title,companycustom_fields- Objet avec des paires clé-valeur personnalisées
Créer une demande de signature à partir d’un modèle (API)
Endpoint : POST /signing-requestsExemple curl (création d’une demande à partir d’un modèle) :
Document incluant id (le signing_request_id) et document_url le cas échéant.
Créer une demande de signature (exemple serveur) — Node (fetch)
Créer une demande de signature (exemple serveur) — Python (requests)
Créer une demande de signature à partir d’un document
Au lieu d’utiliser un modèle, vous pouvez créer une demande de signature en téléversant directement un document PDF ou DOCX. Choisissez la méthode en fonction de la taille de votre fichier :- Petits fichiers (moins de 5 Mo)
- Fichiers volumineux (jusqu'à 50 Mo)
Pour les documents de moins de 5 Mo, incluez le fichier encodé en base64 directement dans le corps de la requête :
Ajout de champs de formulaire (positionnement basé sur des pourcentages)
Lors de la création directe d’une demande de signature (POST/signing-requests) ou de sa mise à jour, vous pouvez ajouter des champs de formulaire :
Exemple de positionnement de champ
Types de champs
signature- Champ de signaturetext- Saisie de texte sur une seule lignedate- Sélecteur de datecheckbox- Case à cocherdropdown- Sélecteur déroulant (nécessitedropdown_options)initials- Champ d’initialesimage- Champ imageapproval_signature- Tampon APPROVED (Approbateur uniquement)approval_checkmark- Coche d’approbation (Approbateur uniquement)approval_date- Date d’approbation (Approbateur uniquement)
Les types de champs
approval_* ne peuvent être attribués qu’à un destinataire dont la designation est "Approver" (en attribuer un à un Signataire renvoie une erreur 400). Leur valeur est établie côté serveur lorsque l’approbateur termine son examen, vous n’avez donc pas à soumettre de valeur pour eux, et le tampon d’approbation est apposé sur le certificat d’achèvement.Directives de positionnement
Le système de coordonnées utilise des pourcentages pour une mise à l’échelle responsive :x: 0 (bord gauche) à 100 (bord droit)y: 0 (bord supérieur) à 100 (bord inférieur)width: pourcentage de la largeur de la page (par ex., 30 = 30 % de largeur)height: pourcentage de la hauteur de la page (par ex., 8 = 8 % de hauteur)
Mise à jour des demandes de signature
Avant qu’une demande de signature ne soit envoyée, vous pouvez mettre à jour ses détails via l’API. L’API propose deux méthodes :Mise à jour complète (PUT)
Utilisezcomprehensive-update-signing-request pour les mises à jour complexes impliquant plusieurs sections.
Quand l’utiliser :
- Mise à jour de plusieurs destinataires à la fois
- Suppression de destinataires (avec réattribution/suppression des champs)
- Mise à jour des champs et des rappels ensemble
- Effectuer des modifications coordonnées sur plusieurs sections
signing_request_properties- Mettre à jour le nom, la description, le document, l’expiration, les paramètresrecipients- Upsert des destinataires (inclure id pour mettre à jour, omettre pour créer)deleted_recipients- Supprimer des destinataires avecfield_action(supprimer ou réattribuer les champs)fields- Upsert des champs (inclure id pour mettre à jour, omettre pour créer)reminders- Upsert des rappels (inclure id pour mettre à jour, omettre pour créer)
- ✅ Peut mettre à jour plusieurs sections en une seule requête
- ✅ Prend en charge la suppression de destinataires avec gestion des champs
- ✅ Ne fonctionne que si la demande n’a pas encore été envoyée
Mise à jour partielle (PATCH)
Utilisezpartially-update-signing-request pour mettre à jour des propriétés spécifiques ou un seul destinataire.
Quand l’utiliser :
- Mise à jour du nom, de la description ou des paramètres
- Ajout ou mise à jour d’un destinataire à la fois
- Effectuer des modifications ciblées sans affecter les autres données
- Mettre à jour uniquement les propriétés (name, description, document, expiration_hours, settings)
- OU mettre à jour/créer un seul destinataire
- ✅ N’envoyez que les champs que vous souhaitez modifier
- ✅ Plus efficace pour les petits changements
- ✅ Les autres champs restent inchangés
- ✅ Plus sûr pour les modifications concurrentes
Choisir entre PUT et PATCH
| Scénario | Utiliser | Raison |
|---|---|---|
| Reconstruction complète de la demande de signature | PUT | Remplacement complet avec toutes les sections (properties, recipients, fields, reminders) |
| Mise à jour du nom ou des paramètres uniquement | PATCH | Plus efficace, préserve les destinataires et les champs |
| Ajout/mise à jour d’un destinataire | PATCH | Mode destinataire unique, les autres destinataires restent inchangés |
| Mise à jour de plusieurs destinataires | PUT | Peut upserter plusieurs destinataires en une seule requête |
| Suppression de destinataires avec réattribution des champs | PUT | Prend en charge deleted_recipients avec field_action |
| Modification du document et de tous les champs | PUT | Changements structurels majeurs |
| Mise à jour des champs personnalisés | PATCH | Préserve la demande de signature principale |
| Remplacement de tous les destinataires | PUT | Approche table rase |
- Mettez à jour les demandes de signature avant d’appeler
/send - Validez les données des destinataires avant de mettre à jour
- Utilisez PATCH pour les modifications incrémentales
- Implémentez une logique de nouvelle tentative avec un backoff exponentiel
Envoi (invitations par email)
Une fois que vous avez un ID de demande de signature (et avez effectué les mises à jour nécessaires), appelez POST/signing-requests/{signing_request_id}/send pour envoyer des emails à tous les destinataires.
Exemple
L’endpoint
/send vérifie que tous les destinataires disposent des informations requises (first_name, last_name, email) et que tous les champs avec variable_name ont des données correspondantes dans les enregistrements des destinataires.Intégration de la vue de signature
L’interface publique de signature est disponible selon le modèle suivant :https://app.firma.dev/signing/{signing_request_user_id}
Notes :
- Le
signing_request_user_idest généralement renvoyé dans le cadre de l’objetrecipientsou en tant que jeton propre à chaque destinataire ; consultez la réponse de GET /signing-requests/id pour les liens ou jetons de signature au niveau du destinataire. - Si l’API renvoie directement un
document_urlouembed_url, utilisez-le. Sinon, générez un lien de signature éphémère côté serveur et renvoyez-le au frontend.
Exemple — récupérer les détails de signature et afficher un iframe
Cas particuliers et astuces
- Ordre de signature : assurez-vous que les destinataires ont des valeurs
orderséquentielles (1, 2, 3…) pour les workflows de signature séquentiels - Piste d’audit : téléchargez la piste d’audit via GET
/signing-requests/{id}/trackingpour voir toutes les actions des utilisateurs - Téléchargement du PDF terminé : utilisez GET
/signing-requests/{id}/downloadaprès l’achèvement - Webhooks : abonnez-vous à des événements comme
signing_request.completedplutôt que d’effectuer du polling (voir le guide Webhooks)
Prochaines étapes
- Configurer des webhooks pour recevoir des notifications d’événements en temps réel (60 req/min)
- Ajouter des rappels automatisés pour les destinataires en attente
- Intégrer l’éditeur de modèles avec authentification JWT (120 req/min)
- Configurer les paramètres de l’espace de travail pour des modèles d’email personnalisés (100-200 req/min)
- Éditeur de modèles intégrable avec authentification JWT pour des workflows intégrés sécurisés