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 documentsCréer des enveloppesEnvoyer 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

RessourceLien
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)

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, ledocumentId 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 ClickToSignUn 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
StatusStatut actuel de l’enveloppe (Completed, Active, etc.)
IdIdentifiant unique de l’enveloppe
NameNom de l’enveloppe
BulkParentIdIdentifiant de l’enveloppe principale en cas d’envoi en masse
IsExpiringSoonIndique 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
IdIdentifiant unique de l’enveloppe
EnvelopeStatusStatut actuel de l’enveloppe (Completed, Active, etc.)
NameNom de l’enveloppe
ActivitiesListe des actions effectuées sur l’enveloppe
Activities[].StatusStatut de chaque action (Completed, Pending, etc.)
Activities[].FinishedDateDate de finalisation de l’action
Activities[].OpenedDateDate d’ouverture de l’enveloppe par le signataire
Activities[].Action.SignInformations du signataire (e-mail, prénom, nom)
Activities[].Action.SendCopyInformations 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

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 documentUtilisation
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 ! 🎯