Prise en main de l’API Adobe Sign

L'API Acrobat Sign est un excellent moyen d'améliorer la façon dont vous gérez les accords signés. Les développeurs peuvent facilement intégrer leurs systèmes à l’API Sign, qui fournit un moyen fiable et facile de charger des documents, de les envoyer pour signature, d’envoyer des rappels et de collecter des signatures électroniques.

Ce que vous pouvez apprendre

Ce tutoriel pratique explique comment les développeurs peuvent utiliser l’API Sign pour améliorer les applications et les workflows créés avec Adobe Acrobat Services. Acrobat Services comprend l’API Adobe PDF Services, l’API Adobe PDF Embed (gratuite) et l’API Adobe Document Generation.

Plus précisément, découvrez comment inclure l’API Acrobat Sign dans votre application pour collecter des signatures et d’autres informations, telles que les informations sur les employés figurant sur un formulaire d’assurance. Des étapes génériques avec des requêtes et des réponses HTTP simplifiées sont utilisées. Vous pouvez implémenter ces demandes dans votre langue préférée. Vous pouvez créer un PDF à l’aide d’une combinaison d’Acrobat Services API, le charger dans l’API Sign en tant que document temporaire et demander les signatures de l’utilisateur final à l’aide de l’accord ou du workflow widget.

Création d’un document de PDF

Commencez par créer un modèle Microsoft Word et enregistrez-le comme PDF. Vous pouvez également automatiser votre pipeline à l’aide de l’API Document Generation pour télécharger un modèle créé dans Word, puis générer un document de PDF. L’API Document Generation fait partie de Acrobat Services. Elle est gratuite pendant six mois, puis disponible au fur et à mesure pour seulement 0,05 $ par transaction de document.

Dans cet exemple, le modèle est un simple document avec quelques champs de signataire à remplir. Nommez les champs pour l’instant, puis insérez-les ultérieurement dans ce tutoriel.

Capture d’écran du formulaire d’assurance avec quelques champs

Découverte du point d’accès API valide

Avant de travailler avec l’API Sign, créez un compte développeur gratuit pour accéder à l’API, testez l’exchange et l’exécution de vos documents, ainsi que la fonctionnalité d’envoi d’e-mails.

Adobe distribue l’API Acrobat Sign dans le monde entier dans de nombreuses unités de déploiement appelées « partitions ». Chaque partition dessert le compte d’un client, tel que NA1, NA2, NA3, EU1, JP1, AU1, IN1 et autres. Les noms des partitions correspondent à des emplacements géographiques. Ces partitions composent l’URI de base (points d’accès) des points de terminaison API.

Pour accéder à l’API Sign, vous devez d’abord découvrir le point d’accès correct pour votre compte, qui peut être api.na1.adobesign.com, api.na4.adobesign.com, api.eu1.adobesign.com ou autres, selon votre emplacement.

  GET /api/rest/v6/baseUris HTTP/1.1
  Host: https://api.adobesign.com
  Authorization: Bearer {YOUR-INTEGRATION-KEY-HERE}
  Accept: application/json

  Response Body (example):

  {
    "apiAccessPoint": "https://api.na4.adobesign.com/",
    "webAccessPoint": "https://secure.na4.adobesign.com/"
  }

Dans l’exemple ci-dessus, est une réponse avec la valeur comme point d’accès.

IMPORTANT
Dans ce cas, toutes les demandes ultérieures que vous effectuez à l’API Sign doivent utiliser ce point d’accès. Si vous utilisez un point d’accès qui ne dessert pas votre zone géographique, une erreur s’affiche.

Chargement d’un document temporaire

Adobe Sign vous permet de créer différents flux qui préparent les documents pour signature ou collecte de données. Quel que soit le flux de votre application, vous devez d’abord télécharger un document, qui reste disponible pendant sept jours seulement. Les appels API suivants doivent ensuite faire référence à ce document temporaire.

Le document est chargé à l'aide d'une demande de POST vers le point de terminaison /transientDocuments. La requête en plusieurs parties se compose du nom du fichier, d’un flux de fichier et du type MIME (média) du fichier document. La réponse du point de terminaison contient un ID qui identifie le document.

En outre, votre application peut spécifier une URL de rappel pour qu’Acrobat Sign envoie une commande ping à l’application une fois le processus de signature terminé.

  POST /api/rest/v6/transientDocuments HTTP/1.1
  Host: {YOUR-API-ACCESS-POINT}
  Authorization: Bearer {YOUR-INTEGRATION-KEY-HERE}
  x-api-user: email:your-api-user@your-domain.com
  Content-Type: multipart/form-data
  File-Name: "Insurance Form.pdf"
  File: "[path]\Insurance Form.pdf"
  Accept: application/json

  Response Body (example):

  {
     "transientDocumentId": "3AAA...BRZuM"
  }

Création d’un formulaire web

Les formulaires web (auparavant appelés widgets de signature) sont des documents hébergés que toute personne disposant d’un accès peut signer. Parmi les exemples de formulaires web, citons les formulaires d’inscription, les renonciations et d’autres documents auxquels de nombreuses personnes accèdent et qu’elles signent en ligne.

Pour créer un formulaire web à l’aide de l’API Sign, vous devez d’abord télécharger un document temporaire. La demande du POST au point de terminaison /widgets utilise le transientDocumentId renvoyé.

Dans cet exemple, le formulaire web est ACTIVE, mais vous pouvez le créer dans l’un des trois états suivants :

  • VERSION PRÉLIMINAIRE : pour créer progressivement le formulaire web.

  • CRÉATION : pour ajouter ou modifier des champs de formulaire dans le formulaire web.

  • ACTIF : pour héberger immédiatement le formulaire web.

Les informations sur les participants au formulaire doivent également être définies. La propriété memberInfos contient des données sur les participants, telles que l'adresse électronique. Actuellement, cet ensemble ne prend pas en charge plus d’un membre. Cependant, comme l’adresse électronique du signataire du formulaire web est inconnue au moment de la création du formulaire web, l’adresse e-mail doit rester vide, comme dans l’exemple suivant. La propriété role définit le rôle assumé par les membres dans memberInfos (tels que SIGNER et APPROVER).

  POST /api/rest/v6/widgets HTTP/1.1
  Host: {YOUR-API-ACCESS-POINT}
  Authorization: Bearer {YOUR-INTEGRATION-KEY-HERE}
  x-api-user: email:your-api-user@your-domain.com
  Content-Type: application/json

  Request Body:

  {
    "fileInfos": [
      {
      "transientDocumentId": "YOUR-TRANSIENT-DOCUMENT-ID"
      }
     ],
    "name": "Insurance Form",
      "widgetParticipantSetInfo": {
          "memberInfos": [{
              "email": ""
          }],
      "role": "SIGNER"
      },
      "state": "ACTIVE"
  }

  Response Body (example):

  {
     "id": "CBJ...PXoK2o"
  }

Vous pouvez créer un formulaire web en tant que DRAFT ou AUTHORING, puis modifier son état lorsque le formulaire passe par votre pipeline d’applications. Pour modifier l’état d’un formulaire web, reportez-vous au point de terminaison PUT /widgets/{widgetId}/state.

Lecture de l’URL d’hébergement du formulaire web

L’étape suivante consiste à découvrir l’URL hébergeant le formulaire web. Le point d’entrée /widgets récupère une liste de données de formulaire web, y compris l’URL hébergée du formulaire web que vous transférez à vos utilisateurs, pour collecter des signatures et d’autres données de formulaire.

Ce point de terminaison renvoie une liste, afin que vous puissiez localiser le formulaire spécifique par son ID dans userWidgetList avant d'obtenir l'URL hébergeant le formulaire web :

  GET /api/rest/v6/widgets HTTP/1.1
  Host: {YOUR-API-ACCESS-POINT}
  Authorization: Bearer {YOUR-INTEGRATION-KEY-HERE}
  Accept: application/json

  Response Body:

  {
    "userWidgetList": [
      {
        "id": "CBJCHB...FGf",
        "name": "Insurance Form",
        "groupId": "CBJCHB...W86",
        "javascript": "<script type='text/javascript' ...
        "modifiedDate": "2021-03-13T15:52:41Z",
        "status": "ACTIVE",
        "Url":
        "https://secure.na4.adobesign.com/public/esignWidget?wid=CBFCIB...Rag*",
        "hidden": false
      },
      {
        "id": "CBJCHB...I8_",
        "name": "Insurance Form",
        "groupId": "CBJCHBCAABAAyhgaehdJ9GTzvNRchxQEGH_H1ya0xW86",
        "javascript": "<script type='text/javascript' language='JavaScript'
        src='https://sec
        "modifiedDate": "2021-03-13T02:47:32Z",
        "status": "ACTIVE",
        "Url":
        "https://secure.na4.adobesign.com/public/esignWidget?wid=CBFCIB...AAB",
        "hidden": false
      },
      {
        "id": "CBJCHB...Wmc",

Gestion de votre formulaire web

Il s’agit d’un document PDF que les utilisateurs peuvent remplir. Cependant, vous devez toujours indiquer à l’éditeur du formulaire les champs que les utilisateurs doivent remplir et où ils se trouvent dans le document :

Capture d’écran du formulaire d’assurance avec quelques champs

Le document ci-dessus n’affiche pas encore les champs. Ils sont ajoutés lors de la définition des champs qui collectent les informations du signataire, ainsi que leur taille et leur position.

Maintenant, accédez à l’onglet Formulaires web sur la page « Vos accords » et recherchez le formulaire que vous avez créé.

Capture décran de longlet Gérer dans Acrobat Sign

Capture d’écran de l’onglet Gérer d’Acrobat Sign avec les formulaires web sélectionnés

Cliquez sur Modifier pour ouvrir la page de modification du document. Les champs prédéfinis disponibles se trouvent dans le panneau de droite.

Capture d’écran de l’environnement de création de formulaires Acrobat Sign

L’éditeur vous permet de glisser-déposer des champs de texte et de signature. Après avoir ajouté tous les champs nécessaires, vous pouvez les redimensionner et les aligner pour affiner votre formulaire. Enfin, cliquez sur Enregistrer pour créer le formulaire.

Capture d’écran de l’environnement de création de formulaires Acrobat Sign avec les champs de formulaire ajoutés

Envoi d’un formulaire web pour signature

Une fois le formulaire web terminé, vous devez l’envoyer afin que les utilisateurs puissent le remplir et le signer. Une fois le formulaire enregistré, vous pouvez afficher et copier l’URL et le code incorporé.

Copier l’URL du formulaire web : utilisez cette URL pour envoyer des utilisateurs vers une version hébergée de cet accord pour révision et signature. Par exemple :

https://secure.na4.adobesign.com/public/esignWidget?wid=CBFCIBAA3…babw*

Copier le code intégré du formulaire web : ajoutez l’accord à votre site web en copiant ce code et en le collant dans votre HTML.

Par exemple :

<iframe
src="https://secure.na4.adobesign.com/public/esignWidget?wid=CBFC
...yx8*&hosted=false" width="100%" height="100%" frameborder="0"
style="border: 0;
overflow: hidden; min-height: 500px; min-width: 600px;"></iframe>

Capture d’écran du formulaire web final

Lorsque vos utilisateurs accèdent à la version hébergée de votre formulaire, ils révisent le document temporaire chargé pour la première fois avec les champs positionnés comme spécifié.

Capture d’écran du formulaire web final

L’utilisateur remplit ensuite les champs et signe le formulaire.

Capture d’écran de l’utilisateur sélectionnant le champ de signature

Ensuite, l’utilisateur signe le document avec une signature précédemment enregistrée ou avec une nouvelle signature.

Capture d’écran de l’expérience de signature

Capture décran de la signature

Lorsque l'utilisateur clique sur Appliquer, Adobe lui demande d'ouvrir son courrier électronique et de confirmer la signature. La signature reste en attente jusqu’à l’arrivée de la confirmation.

Capture décran dune étape supplémentaire

Cette authentification ajoute l’authentification à plusieurs facteurs et renforce la sécurité du processus de signature.

Capture décran du message de confirmation

Capture décran du message dachèvement

Lecture des formulaires web terminés

Il est maintenant temps d’obtenir les données de formulaire que les utilisateurs ont remplies. Le point de terminaison /widgets/{widgetId}/formData récupère les données saisies par l'utilisateur dans un formulaire interactif lorsqu'il a signé le formulaire.

GET /api/rest/v6/widgets/{widgetId}/formData HTTP/1.1
Host: {YOUR-API-ACCESS-POINT}
Authorization: Bearer {YOUR-INTEGRATION-KEY-HERE}
Accept: text/csv

Le flux de fichier CSV résultant contient des données de formulaire.

Response Body:
"Agreement
name","completed","email","role","first","last","title","company","agreementId",
"email verified","web form signed/approved"
"Insurance Form","","myemail@email.com","SIGNER","John","Doe","My Job Title","My
Company Name","","","2021-03-07 19:32:59"

Création d’un accord

À la place des formulaires web, vous pouvez créer des accords. Les sections suivantes illustrent quelques étapes simples pour gérer les accords à l’aide de l’API Sign.

L’envoi d’un document à des destinataires spécifiés pour signature ou approbation crée un accord. Vous pouvez suivre le statut et l’achèvement d’un accord à l’aide des API.

Vous pouvez créer un accord à l’aide d’un document temporaire, d’un document de bibliothèque ou d’une URL. Dans cet exemple, l’accord est basé sur transientDocumentId, tout comme le formulaire web créé précédemment.

POST /api/rest/v6/agreements HTTP/1.1
Host: {YOUR-API-ACCESS-POINT}
Authorization: Bearer {YOUR-INTEGRATION-KEY-HERE}
x-api-user: email:your-api-user@your-domain.com
Content-Type: application/json
Accept: application/json
Request Body:
{
    "fileInfos": [
      {
      "transientDocumentId": "{transientDocumentId}"
      }
     ],
    "name": "{agreementName}",
    "participantSetsInfo": [
      {
      "memberInfos": [
          {
          "email": "{signerEmail}"
          }
        ],
        "order": 1,
        "role": "SIGNER"
      }
    ],
    "signatureType": "ESIGN",
    "state": "IN_PROCESS"
  }

Dans cet exemple, l’accord est créé en cours de traitement, mais vous pouvez le créer dans l’un des trois états suivants :

  • VERSION PRÉLIMINAIRE : pour créer progressivement l’accord avant de l’envoyer.

  • CRÉATION : pour ajouter ou modifier des champs de formulaire dans l’accord.

  • EN_COURS : pour envoyer immédiatement l’accord.

Pour modifier un état d’accord, utilisez le point de terminaison PUT /agreements/{agreementId}/state pour effectuer l’une des transitions d’état autorisées ci-dessous :

  • VERSION PRÉLIMINAIRE À LA CRÉATION

  • CRÉATION EN_COURS

  • EN_COURS vers ANNULÉ

La propriété participantSetsInfo ci-dessus fournit les adresses e-mail des personnes censées participer à l’accord et l’action qu’elles effectuent (signer, approuver, accuser réception, etc.). Dans l’exemple ci-dessus, il n’y a qu’un seul participant : le signataire. Les signatures par écrit sont limitées à quatre par document.

Contrairement aux formulaires web, lorsque vous créez un accord, Adobe l’envoie automatiquement pour signature. Le point de terminaison renvoie l’identifiant unique de l’accord.

  Response Body:

  {
     id (string): The unique identifier of the agreement
  }

Récupération d’informations sur les membres de l’accord

Une fois que vous avez créé un accord, vous pouvez utiliser le point de terminaison /agreements/{agreementId}/members pour récupérer des informations sur les membres de l’accord. Par exemple, vous pouvez vérifier si un participant a signé l’accord.

GET /api/rest/v6/agreements/{agreementId}/members HTTP/1.1
Host: {YOUR-API-ACCESS-POINT}
Authorization: Bearer {YOUR-INTEGRATION-KEY-HERE}
Accept: application/json

Le corps de la réponse JSON obtenu contient des informations sur les participants.

  Response Body:

  {
     "participantSets":[
        {
           "memberInfos":[
              {
                 "id":"CBJ...xvM",
                 "email":"participant@email.com",
                 "self":false,
                 "securityOption":{
                    "authenticationMethod":"NONE"
                 },
                 "name":"John Doe",
                 "status":"ACTIVE",
                 "createdDate":"2021-03-16T03:48:39Z",
                 "userId":"CBJ...vPv"
              }
           ],
           "id":"CBJ...81x",
           "role":"SIGNER",
           "status":"WAITING_FOR_MY_SIGNATURE",
           "order":1
        }
     ],

Envoi de rappels d’accord

Selon les règles métier, une échéance peut empêcher les participants de signer l’accord après une date spécifique. Si l’accord a une date d’expiration, vous pouvez le rappeler aux participants à mesure que cette date approche.

En fonction des informations des membres de l’accord que vous avez reçues après l’appel au point de terminaison /agreements/{agreementId}/members dans la dernière section, vous pouvez envoyer des rappels par e-mail à tous les participants qui n’ont toujours pas signé l’accord.

Une demande de POST au point de terminaison /agreements/{agreementId}/reminders crée un rappel pour les participants spécifiés d’un accord identifié par le paramètre agreementId.

POST /agreements/{agreementId}/reminders HTTP/1.1
Host: {YOUR-API-ACCESS-POINT}
Authorization: Bearer {YOUR-INTEGRATION-KEY-HERE}
x-api-user: email:your-api-user@your-domain.com
Content-Type: application/json
Accept: application/json
  Request Body:

  {
    "recipientParticipantIds": [{agreementMemberIdList}],
    "agreementId": "{agreementId}",
    "note": "This is a reminder that you haven't signed the agreement yet.",
    "status": "ACTIVE"
  }

  Response Body:

  {
     id (string, optional): An identifier of the reminder resource created on the
     server. If provided in POST or PUT, it will be ignored
  }

Une fois le rappel publié, les utilisateurs reçoivent un e-mail avec les détails de l’accord et un lien vers l’accord.

Capture décran du message de rappel

Lecture des accords terminés

Comme pour les formulaires web, vous pouvez lire les détails des accords signés par les destinataires. Le point de terminaison /agreements/{agreementId}/formData récupère les données saisies par l’utilisateur lorsqu’il a signé le formulaire web.

GET /api/rest/v6/agreements/{agreementId}/formData HTTP/1.1
Host: {YOUR-API-ACCESS-POINT}
Authorization: Bearer {YOUR-INTEGRATION-KEY-HERE}
Accept: text/csv
Response Body:
"completed","email","role","first","last","title","company","agreementId"
"2021-03-16 18:11:45","myemail@email.com","SIGNER","John","Doe","My Job Title","My
Company Name","CBJCHBCAABAA5Z84zy69q_Ilpuy5DzUAahVfcNZillDt"

Marche à suivre

L’API Acrobat Sign vous permet de gérer des documents, des formulaires web et des accords. Les workflows simplifiés mais complets créés à l’aide de formulaires web et d’accords sont réalisés d’une manière générique qui permet aux développeurs de les mettre en œuvre dans n’importe quel langage.

Pour obtenir un aperçu du fonctionnement de l'API Sign, vous pouvez trouver des exemples dans le Guide du développeur d'utilisation d'API. Cette documentation contient de courts articles sur la plupart des étapes suivies tout au long de l’article, ainsi que d’autres sujets connexes.

L’API Acrobat Sign est disponible via plusieurs niveaux de formules de signature électronique mono et multi-utilisateurs. Vous pouvez donc choisir le modèle de tarification le mieux adapté à vos besoins. Maintenant que vous savez à quel point il est facile d’incorporer l’API Sign dans vos applications, d’autres fonctionnalités peuvent vous intéresser, comme Acrobat Sign Webhooks, un modèle de programmation basée sur le push. Au lieu d’exiger que votre application effectue des vérifications fréquentes dans les événements Acrobat Sign, les webhooks vous permettent d’enregistrer une URL HTTP pour laquelle l’API Sign exécute une demande de rappel de POST chaque fois qu’un événement se produit. Les webhooks permettent une programmation robuste en alimentant votre application avec des mises à jour en temps réel et instantanées.

Consultez la tarification à l’utilisation, qui vous indiquera la fin de votre période d’essai gratuite de six mois pour l’API Adobe PDF Services, et l’API gratuite Adobe PDF Embed.

Pour ajouter des fonctionnalités passionnantes telles que la création automatique de documents et la signature de documents à votre application, commencez par Adobe Acrobat Services.

recommendation-more-help
61c3404d-2baf-407c-beb9-87b95f86ccab