Tutorial : Hello World
Petit guide pas à pas pour faire une 1ère signature en mode API avec Datasure eSign.
Tutoriel : Implémentation de Datasure eSign
Ce tutoriel vous guide à travers l’implémentation de Datasure eSign. Il est conçu pour vous familiariser avec les bases d’un workflow de demande de signature.
📌 À la fin de ce guide, vous serez capable de :
✅ Téléverser des documents
✅ Créer des enveloppes
✅ Envoyer des enveloppes
📖 Pour plus d’informations sur l’API REST, vous pouvez également consulter :
📌 Pré-requis
- Une langue de programmation compatible REST ou un outil REST (ex. : Postman).
- Un compte Datasure eSign actif (même un compte d’essai fonctionne).
🔹 Liens utiles :
🔗 Points d’entrée API pour ce tutoriel
Ressource | Lien |
---|---|
Endpoint REST Datasure eSign | 🔗 https://esign.datasure.net/Api/v6.0/ |
Documentation Swagger API | 🔗 Swagger API Datasure eSign |
📖 Contenu du tutoriel
🔹 Ce guide vous présentera le cas d’usage suivant :

🚀 Prêt à envoyer votre première enveloppe avec l’API REST de Datasure eSign ?
👉 Passons à la première étape ! 🎯
Hello World - Premier appel API avec Datasure eSign
Avant de commencer avec la première requête, veuillez noter les points suivants :
🔐 Authentification obligatoire
Tous les appels API nécessitent une autorisation via un jeton API (apiToken
).
📌 Le jeton API est un secret spécifique à l’utilisateur et ne doit pas être partagé.
🔹 Bonnes pratiques :
- Créez des clés API distinctes pour chaque intégration afin d'éviter qu’une même clé ne soit utilisée sur plusieurs systèmes.
- En cas de fuite accidentelle, vous pourrez révoquer une clé spécifique sans perturber les autres intégrations.
📌 Ajout du jeton API dans l’en-tête (Header
)
Header
)✅ Exemple d’autorisation avec Bearer Token :
Authorization: Bearer asdfngtmvv8pfmsuaxpzz85zux3e63dd9zttrwitx9mln6qka6tds83du3p3lroe
✅ Exemple d’autorisation avec un API Token spécifique :
ApiToken: asdfngtmvv8pfmsuaxpzz85zux3e63dd9zttrwitx9mln6qka6tds83du3p3lroe
🔗 Vérification de la connexion avec une requête de version
Avant d’envoyer des documents, testons la connexion en récupérant la version de l’API.
✅ Type de requête : GET
✅ URL de l’endpoint :
https://esign.datasure.net/Api/v6/system/version
✅ Authentification : Ajouter le jeton API dans l’en-tête (Header
).
📌 Réponse attendue
Si la connexion est réussie, l’API retournera la version actuelle sous forme de texte :
"22.20.0.71"
📌 Récapitulatif des étapes
1️⃣ Définir la requête en modeGET
2️⃣ Spécifier l’URL : https://esign.datasure.net/Api/v6/system/version
3️⃣ Ajouter l’authentification (ApiToken
) dans l’en-tête
4️⃣ Envoyer la requête et récupérer la version de l’API
🚀 Votre connexion API avec Datasure eSign est maintenant validée ! 🎯
Téléverser un document avec Datasure eSign
📌 L’authentification est requise
📌 Un seul fichier peut être téléversé à la fois
📤 Étape 1 : Téléverser un document
Nous allons téléverser un fichier PDF pour l’utiliser dans une enveloppe.
✅ Type de requête : POST
✅ URL de l’endpoint :
https://esign.datasure.net/Api/v6/file/upload
✅ Authentification : Ajouter le jeton API dans l’en-tête (Header
).
✅ Corps de la requête (Body - Form-Data
) :
- Clé :
file
- Valeur : Sélectionnez un fichier PDF à téléverser
📌 Exemple d’en-tête d’authentification
ApiToken: your_api_token_here
📥 Étape 2 : Réponse attendue
Si l’appel est réussi, l’API retourne un documentId
unique :
"3252931f-1234-420c-1234-0c7656d8d2ea"
🚀 CedocumentId
sera nécessaire pour créer une enveloppe.
⚠️ Informations importantes
🔹 Durée de vie du fichier téléversé
- Le fichier est temporaire sur le serveur.
- Il sera supprimé après 10 minutes, sauf si une enveloppe est créée avec.
- Une fois l’enveloppe créée, le
documentId
devient invalide et ne peut plus être utilisé.
🔹 Téléchargement d’un fichier signé
- Pour récupérer le fichier après signature, vous devez récupérer son
FileId
via le statut de l’enveloppe. - Utilisez l’endpoint suivant pour récupérer les fichiers signés :
https://esign.datasure.net/Api/v6.0/envelope/##envelopeId##
🔹 Remplacez##envelopeId##
par l’ID de l’enveloppe obtenue après envoi.
📌 Récapitulatif des étapes
1️⃣ Envoyer un fichier avecPOST
vers https://esign.datasure.net/Api/v6/file/upload
2️⃣ Récupérer ledocumentId
dans la réponse
3️⃣ Utiliser cedocumentId
pour créer une enveloppe
4️⃣ Une fois l’enveloppe créée, utiliser l’EnvelopeId
pour récupérer le fichier signé
🚀 Votre document est maintenant téléversé et prêt à être utilisé dans une enveloppe ! 🎯
Préparer une enveloppe (optionnel) avec Datasure eSign
📌 L’authentification est requise
📌 Étape optionnelle – uniquement si vous n’avez pas de configuration prédéfinie
📖 Pourquoi préparer une enveloppe ?
- Une configuration d’enveloppe définit les champs de signature, les champs de formulaire, et les activités à effectuer.
- Si vous avez déjà une configuration, vous pouvez ignorer cette étape.
- Si vous ne disposez pas d’une configuration, utilisez cette méthode pour générer une configuration à la volée.
📤 Étape 1 : Envoyer une requête pour préparer l’enveloppe
✅ Type de requête : POST
✅ URL de l’endpoint :
https://esign.datasure.net/Api/v6/file/prepare
✅ Authentification : Ajouter le jeton API dans l’en-tête (Header
).
📌 Corps de la requête JSON (exemple de base)
{
"FileIds": [
"3252931f-1234-420c-1234-0c7656d8d2ea"
]
}
🔹 RemplacezFileIds
par l’ID du fichier téléversé précédemment.
📥 Étape 2 : Ajouter des paramètres optionnels (facultatif)
Vous pouvez ajouter des paramètres pour affiner la configuration :
📌 Exemple de requête avec options avancées
{
"FileIds": [
"3252931f-1234-420c-1234-0c7656d8d2ea"
],
"ClearFieldMarkupString": true,
"SigStringConfigurations": [
{
"StartPattern": "string",
"EndPattern": "string",
"ClearSigString": true,
"SearchEntireWordOnly": true
}
]
}
🔹 Ce format permet de définir automatiquement des signatures et champs basés sur des motifs (StartPattern
et EndPattern
).
📥 Étape 3 : Réponse attendue
Si l’appel est réussi, l’API retourne une configuration de document vierge (aucun champ assigné) ou une configuration basée sur les champs déjà présents dans le fichier.
📌 Exemple de réponse JSON
{
"UnassignedElements": {
"TextBoxes": [],
"CheckBoxes": [],
"ComboBoxes": [],
"RadioButtons": [],
"ListBoxes": [],
"Signatures": [],
"Attachments": [],
"LinkConfiguration": {
"HyperLinks": [],
"DocumentLinks": []
}
},
"Activities": []
}
🔹 Si le document contient déjà des champs de formulaire, ils apparaîtront dans cette réponse.
📌 Récapitulatif des étapes
1️⃣ Vérifiez si vous avez déjà une configuration d’enveloppe
2️⃣ Si non, utilisezPOST
vers https://esign.datasure.net/Api/v6/file/prepare
3️⃣ Ajoutez l’ID du fichier (FileId
) téléversé précédemment
4️⃣ (Optionnel) Ajoutez des paramètres avancés (SigStringConfigurations
, ClearFieldMarkupString
)
5️⃣ Récupérez la configuration retournée pour l’utiliser dans l’envoi d’enveloppe
🚀 Vous avez maintenant une configuration prête à être utilisée pour envoyer votre enveloppe avec Datasure eSign ! 🎯
Envoyer une enveloppe avec Datasure eSign
📌 L’authentification est requise
📌 Chaque action doit être définie dans la configuration de l’enveloppe
📌 La langue du destinataire doit être supportée par votre organisation (Paramètres > Localisation
)
📤 Étape 1 : Envoyer une enveloppe
✅ Type de requête : POST
✅ URL de l’endpoint :
https://esign.datasure.net/Api/v6/envelope/send
✅ Authentification : Ajouter le jeton API dans l’en-tête (Header
).
📥 Étape 2 : Exemple de configuration d’une enveloppe
Cette configuration inclut :
✅ Un premier destinataire qui signe avec ClickToSign
✅ Un second destinataire qui reçoit une copie du document signé
📌 Corps de la requête JSON
{
"Documents": [{
"FileId": "d33d43ca-1234-1234-1234-b645fc4e0fb2",
"DocumentNumber": 1
}],
"Name": "Test",
"Activities": [{
"Action": {
"Sign": {
"RecipientConfiguration": {
"ContactInformation": {
"Email": "jane.doe@sample.com",
"GivenName": "Jane",
"Surname": "Doe",
"LanguageCode": "EN"
}
},
"Elements": {
"Signatures": [{
"ElementId": "sample sig click2sign",
"Required": true,
"DocumentNumber": 1,
"DisplayName": "Sign here",
"AllowedSignatureTypes": {
"ClickToSign": {}
},
"FieldDefinition": {
"Position": {
"PageNumber": 1,
"X": 100,
"Y": 200
},
"Size": {
"Width": 100,
"Height": 70
}
}
}]
}
}
}
}, {
"Action": {
"SendCopy": {
"RecipientConfiguration": {
"ContactInformation": {
"Email": "john.doe@sample.com",
"GivenName": "John",
"Surname": "Doe",
"LanguageCode": "EN"
}
}
}
}
}]
}
📥 Étape 3 : Réponse attendue
Si l’appel est réussi, l’API retourne un EnvelopeId
unique :
{
"EnvelopeId": "45fd01ce-1234-4792-1234-f5230e41b130"
}
🚀 CetEnvelopeId
est utilisé pour gérer l’enveloppe (rappels, annulation, suppression, rejet, etc.).
📌 Récapitulatif des étapes
1️⃣ Envoyer une requêtePOST
vers https://esign.datasure.net/Api/v6/envelope/send
2️⃣ Inclure dans leBody
une configuration JSON avec les destinataires et leurs actions
3️⃣ Ajouter l’authentification (ApiToken
) dans l’en-tête
4️⃣ Envoyer la requête et récupérer l’EnvelopeId
📩 Dès que l’enveloppe est créée, elle est envoyée au premier destinataire.
🚀 Votre enveloppe est maintenant envoyée avec Datasure eSign et prête à être signée ! 🎯
Ouvrir une enveloppe avec Datasure eSign
📌 L’authentification est requise
📌 LeViewerLink
permet d’ouvrir et de signer l’enveloppe via un navigateur
📤 Étape 1 : Récupérer l’URL de visualisation (ViewerLink)
✅ Type de requête : GET
✅ URL de l’endpoint :
https://esign.datasure.net/api/v6/envelope/{envelopeId}/viewerlinks
🔹 Remplacez{envelopeId}
par l’ID de l’enveloppe obtenue après l’envoi.
✅ Authentification : Ajouter le jeton API dans l’en-tête (Header
).
📌 Exemple d’en-tête d’authentification
ApiToken: your_api_token_here
📥 Étape 2 : Réponse attendue
Si l’appel est réussi, l’API retourne une liste de liens de visualisation (ViewerLinks
), correspondant aux destinataires de l’enveloppe.
📌 Exemple de réponse JSON
{
"ViewerLinks": [
{
"ActivityId": "5609d2ea-1234-1234-1234-1959e63fde64",
"Email": "john.doe@sample.com",
"ViewerLink": "https://esign.datasure.net/workstepredirector/sign?identifier=mdIkzVC1234512IgiOLD3Iodfynd~12345RbJQXusyZuCNp7FR6PniOT12345B~fQ1234A=="
}
]
}
📥 Étape 3 : Utilisation du lien de signature
📌 LeViewerLink
permet au destinataire d’accéder directement au document et de le signer.
💡 Intégration dans un portail web
- Affichez ce lien dans votre application pour permettre aux utilisateurs de signer directement.
- Redirigez automatiquement l’utilisateur vers cette URL pour accéder à la signature.
📌 Récapitulatif des étapes
1️⃣ Envoyer une requêteGET
vers https://esign.datasure.net/api/v6/envelope/{envelopeId}/viewerlinks
2️⃣ Ajouter l’authentification (ApiToken
) dans l’en-tête
3️⃣ Récupérer leViewerLink
de la réponse JSON
4️⃣ Ouvrir ce lien dans un navigateur pour signer le document
🚀 Votre document est maintenant accessible en ligne pour être signé via Datasure eSign ! 🎯
Rechercher une enveloppe avec Datasure eSign
📌 L’authentification est requise
📌 Cette API permet de retrouver une enveloppe en fonction de divers critères
📤 Étape 1 : Rechercher une enveloppe
✅ Type de requête : POST
✅ URL de l’endpoint :
https://esign.datasure.net/Api/v6/envelope/find
✅ Authentification : Ajouter le jeton API dans l’en-tête (Header
).
📌 Exemple d’en-tête d’authentification
ApiToken: your_api_token_here
📥 Étape 2 : Exemple de configuration pour la recherche
Vous pouvez utiliser différents filtres pour rechercher une enveloppe, comme la date, le statut, l’e-mail du signataire ou encore un texte de recherche.
📌 Exemple de requête complète avec plusieurs filtres
{
"StartDate": "2022-12-05T13:09:53.052Z",
"EndDate": "2022-12-05T13:09:53.052Z",
"SearchText": "HelloWorld",
"Status": "Canceled",
"InStatusSinceDays": 10,
"SenderEmail": "john.doe@sample.com",
"SignerEmail": "jane.doe@sample.com",
"RecipientEmail": "jane.doe@sample.com",
"WaitingForRecipientWithEmail": "jane.doe@sample.com",
"BulkParentId": "83467fdc-1234-4592-1234-9c64787cd7a1"
}
📌 Liste des statuts disponibles pour la recherche :
Canceled
Completed
Expired
Rejected
ActionRequired
WaitingForOthers
ExpiringSoon
Active
📥 Étape 3 : Exemple de recherche rapide
Si vous souhaitez uniquement rechercher les enveloppes terminées, utilisez cette requête simplifiée :
{
"Status": "Completed"
}
🔹 Si l’enveloppe est encore en cours, utilisez"Active"
comme statut.
📥 Étape 4 : Réponse attendue
L’API renvoie une liste des enveloppes correspondant aux critères de recherche.
📌 Exemple de réponse JSON
{
"Envelopes": [
{
"Status": "Completed",
"Id": "62664b59-1234-455c-1234-3ed972fe5857",
"Name": "Test2",
"BulkParentId": "",
"IsExpiringSoon": false
},
{
"Status": "Completed",
"Id": "45fd01ce-1234-4792-1234-f5230e41b130",
"Name": "Test",
"BulkParentId": "",
"IsExpiringSoon": false
}
]
}
📌 Les champs retournés dans la réponse :
Clé | Description |
---|---|
Status | Statut actuel de l’enveloppe (Completed , Active , etc.) |
Id | Identifiant unique de l’enveloppe |
Name | Nom de l’enveloppe |
BulkParentId | Identifiant de l’enveloppe principale en cas d’envoi en masse |
IsExpiringSoon | Indique si l’enveloppe va expirer bientôt |
📌 Récapitulatif des étapes
1️⃣ Envoyer une requêtePOST
vers https://esign.datasure.net/Api/v6/envelope/find
2️⃣ Ajouter les filtres nécessaires dans leBody
(statut, dates, e-mail, texte de recherche, etc.)
3️⃣ Ajouter l’authentification (ApiToken
) dans l’en-tête
4️⃣ Récupérer la liste des enveloppes correspondant aux critères
🚀 Vous pouvez maintenant retrouver n’importe quelle enveloppe avec Datasure eSign ! 🎯
Récupérer les informations d’une enveloppe avec Datasure eSign
📌 L’authentification est requise
📌 L’EnvelopeId
permet d’obtenir le statut actuel de l’enveloppe
📤 Étape 1 : Obtenir le statut d’une enveloppe
✅ Type de requête : GET
✅ URL de l’endpoint :
https://esign.datasure.net/Api/v6/envelope/{envelopeId}
🔹 Remplacez{envelopeId}
par l’ID de l’enveloppe concernée.
✅ Authentification : Ajouter le jeton API dans l’en-tête (Header
).
📌 Exemple d’en-tête d’authentification
ApiToken: your_api_token_here
📥 Étape 2 : Réponse attendue
Si l’appel est réussi, l’API retourne le statut actuel de l’enveloppe ainsi que les détails des actions effectuées.
📌 Exemple de réponse JSON
{
"Id": "45fd01ce-1234-4792-1234-f5230e41b130",
"EnvelopeStatus": "Completed",
"Name": "Test",
"Activities": [
{
"Id": "e99769a9-1234-4e8a-1234-b237d41bf720",
"Status": "Completed",
"FinishedDate": "2022-05-06T09:00:33.37+00:00",
"OpenedDate": "2022-05-06T09:00:16.553+00:00",
"Action": {
"Sign": {
"ContactInformation": {
"Email": "jane.doe@sample.com",
"GivenName": "Jane",
"Surname": "Doe",
"LanguageCode": "EN"
}
}
}
},
{
"Id": "be0c0dd0-1234-4d6b-1234-7771138f19e8",
"Status": "Completed",
"FinishedDate": "2022-05-06T09:00:39.277+00:00",
"Action": {
"SendCopy": {
"ContactInformation": {
"Email": "john.doe@sample.com",
"GivenName": "John",
"Surname": "Doe",
"LanguageCode": "EN"
}
}
}
}
]
}
📖 Explication des informations retournées
Clé | Description |
---|---|
Id | Identifiant unique de l’enveloppe |
EnvelopeStatus | Statut actuel de l’enveloppe (Completed , Active , etc.) |
Name | Nom de l’enveloppe |
Activities | Liste des actions effectuées sur l’enveloppe |
Activities[].Status | Statut de chaque action (Completed , Pending , etc.) |
Activities[].FinishedDate | Date de finalisation de l’action |
Activities[].OpenedDate | Date d’ouverture de l’enveloppe par le signataire |
Activities[].Action.Sign | Informations du signataire (e-mail, prénom, nom) |
Activities[].Action.SendCopy | Informations du destinataire recevant une copie |
📌 Récapitulatif des étapes
1️⃣ Envoyer une requêteGET
vers https://esign.datasure.net/Api/v6/envelope/{envelopeId}
2️⃣ Ajouter l’authentification (ApiToken
) dans l’en-tête
3️⃣ Récupérer le statut actuel et les détails des actions de l’enveloppe
🚀 Vous pouvez maintenant suivre l’état d’une enveloppe et vérifier son avancement avec Datasure eSign ! 🎯
Callback avec Datasure eSign
📌 Les URL de callback permettent à votre système d’être notifié des changements d’état d’une enveloppe ou d’une étape de signature
📌 Évitez d’interroger (polling
) régulièrement le serveur Datasure eSign en utilisant les callbacks
📌 Fonctionnement des callbacks
- Lorsqu’une enveloppe ou une étape de signature change d’état, Datasure eSign envoie une notification à l’URL de callback configurée.
- Il existe plusieurs types de callbacks, mais seul le callback d’enveloppe est déclenché lorsque l’enveloppe atteint un état final (
Completed
,Rejected
, etc.). - Les mises à jour d’état peuvent nécessiter un temps de post-traitement, ce qui signifie que le statut final peut ne pas être immédiatement disponible.
⚠️ Bonnes pratiques pour traiter un callback
✅ Envoyez immédiatement une réponse HTTP 200 (OK
) à la réception du callback.
⛔ Si votre système ne répond pas immédiatement en HTTP 200, Datasure eSign tentera de renvoyer le callback plusieurs fois.
📌 Si aucun HTTP 200 n’est reçu après plusieurs tentatives, l’enveloppe risque de rester bloquée en état "en cours" !
📥 Étape 1 : Exemple de réception et traitement du callback
🔹 Requête entrante envoyée par Datasure eSign (exemple de callback)
{
"EnvelopeId": "45fd01ce-1234-4792-1234-f5230e41b130",
"Status": "Completed",
"Timestamp": "2023-01-10T14:25:00.123Z"
}
🔹 Réponse immédiate à renvoyer par votre serveur
HTTP/1.1 200 OK
Content-Type: application/json
📥 Étape 2 : Bonnes pratiques de gestion des callbacks
1️⃣ Recevoir le callback et enregistrer l’information dans votre système.
2️⃣ Envoyer immédiatement une réponse HTTP 200 OK à Datasure eSign.
3️⃣ Traiter ensuite les autres opérations (ex. : téléchargement du document signé).
📌 Récapitulatif des étapes
1️⃣ Configurez une URL de callback dans Datasure eSign
2️⃣ À chaque changement d’état d’une enveloppe, Datasure eSign enverra une requête à cette URL
3️⃣ Votre serveur doit immédiatement répondre avec unHTTP 200 OK
4️⃣ Ensuite, vous pouvez exécuter des actions supplémentaires (stockage, téléchargement du document signé, etc.)
🚀 Les callbacks permettent de suivre l’évolution des enveloppes sans avoir à interroger régulièrement Datasure eSign ! 🎯
Télécharger un document signé avec Datasure eSign
📌 L’authentification est requise
📌 Disponible uniquement pour les enveloppes en statutCompleted
📤 Étape 1 : Obtenir lesFileId
des documents signés
FileId
des documents signés✅ Type de requête : GET
✅ URL de l’endpoint :
https://esign.datasure.net/Api/v6/envelope/{envelopeId}/files
🔹 Remplacez{envelopeId}
par l’ID de l’enveloppe concernée.
✅ Authentification : Ajouter le jeton API dans l’en-tête (Header
).
📌 Exemple d’en-tête d’authentification
ApiToken: your_api_token_here
📥 Étape 2 : Réponse attendue
Si l’appel est réussi, l’API retourne les identifiants (FileId
) des documents signés et des fichiers annexes.
📌 Exemple de réponse JSON
{
"Documents": [
{
"FileId": "af80f562-1234-1234-1234-ed28cfa74738",
"FileName": "Test.pdf",
"Attachments": [],
"PageCount": 1,
"DocumentNumber": 1
}
],
"AuditTrail": {
"FileId": "12340286-1234-1234-123-31c3512347b0",
"XmlFileId": "81234c27-1234-1234-1234-74bd8012348b"
},
"LegalDocuments": []
}
📌 Types de fichiers récupérables :
Type de document | Utilisation |
---|---|
Fichier signé (FileId ) | Document final signé |
Audit trail (AuditTrail.FileId ) | Preuve de signature avancée |
XML Audit trail (AuditTrail.XmlFileId ) | Version XML de la preuve |
📥 Étape 3 : Télécharger le document signé
✅ Type de requête : GET
✅ URL de l’endpoint :
https://esign.datasure.net/Api/v6/file/{fileId}
🔹 Remplacez{fileId}
par l’ID du fichier récupéré à l’étape précédente.
📌 Exemple de téléchargement du fichier signé
https://esign.datasure.net/Api/v6/file/af80f562-1234-1234-1234-ed28cfa74738
📌 Exemple de téléchargement de l’Audit Trail
https://esign.datasure.net/Api/v6/file/12340286-1234-1234-123-31c3512347b0
📥 Étape 4 : Informations complémentaires
📌 Pourquoi télécharger aussi l’Audit Trail ?
- Les signatures avancées nécessitent des preuves supplémentaires pour garantir la validité légale.
- Pour les certificats qualifiés jetables, il peut être nécessaire de conserver également le formulaire de demande de certificat.
📌 Comment stocker ces fichiers ?
- Fichier signé (
FileId
) → Stockage principal. - Audit Trail (
AuditTrail.FileId
) → Stockage avec preuve légale. - Audit Trail XML (
AuditTrail.XmlFileId
) → Archivage structuré.
📌 Récapitulatif des étapes
1️⃣ Envoyer une requêteGET
vers https://esign.datasure.net/Api/v6/envelope/{envelopeId}/files
2️⃣ Récupérer lesFileId
des documents signés et des fichiers annexes
3️⃣ Envoyer une requêteGET
vers https://esign.datasure.net/Api/v6/file/{fileId}
pour télécharger les fichiers
🚀 Votre document signé et ses preuves associées sont maintenant disponibles avec Datasure eSign ! 🎯
Updated 13 days ago