Exemple de code JavaScript permettant de récupérer l’ID client, de le valider, puis de le retourner dans l’en-tête de réponse
Un webhook est un rappel HTTPS défini par l’utilisateur qui est déclenché lorsqu’un événement particulier se produit sur le site source (Adobe Acrobat Sign dans ce cas).
En effet, un webhook n’est rien d’autre qu’un service web qui accepte les requêtes HTTPS POST à partir d’une source. Un webhook est un service REST qui accepte des données ou un flux de données.
Les webhooks sont destinés à la communication interservices dans un modèle de type Push.
Lorsqu’un événement de déclenchement se produit, Acrobat Sign crée une requête HTTPS POST avec un corps JSON et la transmet à l’URL spécifiée.
Les webhooks offrent plusieurs avantages par rapport à la méthode de rappel précédente :
Ce document porte principalement sur l’interface utilisateur Webhooks dans l’application web Acrobat Sign (auparavant Adobe Sign).
Les développeurs qui recherchent des détails sur l’API trouveront des informations supplémentaires ici :
Les administrateurs doivent d’abord disposer d’un service webhook prêt à accepter le transfert entrant depuis Acrobat Sign. Il existe de nombreuses options à cet égard, et tant que le service peut accepter les requêtes POST et GET, le webhook est efficace.
Une fois le service en place, un administrateur Acrobat Sign peut créer un webhook à partir de l’interface Webhook dans le menu Compte du site Acrobat Sign.
Les administrateurs peuvent configurer le webhook pour déclencher des événements d’accord, de formulaire web ou d’envoi en masse.
La portée du webhook peut inclure l’ensemble du compte ou des groupes individuels via l’interface d’administration. Les portées Utilisateur et Ressource sont également possibles via l’API.
Le type de données envoyé vers l’URL est configurable et peut inclure les éléments suivants : Informations sur l’accord, Informations sur les participants, Document signé, etc.
Une fois le webhook configuré et enregistré, Acrobat Sign envoie un nouvel objet JSON à l’URL définie chaque fois que l’événement de déclenchement est intercepté. Aucune manipulation en cours du webhook n’est requise, sauf si vous souhaitez modifier les critères de déclenchement d’événement ou la payload JSON.
Avant d’enregistrer un webhook, Acrobat Sign vérifie que l’URL du webhook indiquée dans la demande d’enregistrement est réellement destinée à recevoir des notifications ou non. À cette fin, lorsqu’une nouvelle demande d’enregistrement de webhook est reçue par Acrobat Sign, l’application envoie d’abord une demande de vérification à l’URL du webhook. Cette demande de vérification est une requête HTTPS GET envoyée à l’URL du webhook. Elle comporte un en-tête HTTP personnalisé : X-AdobeSign-ClientId. La valeur de cet en-tête est définie sur l’ID client (ID de l’application) de l’application API qui demande la création/l’enregistrement du webhook. Pour enregistrer un webhook, l’URL de celui-ci doit répondre à cette demande de vérification avec un code de réponse 2XX. De plus, elle DOIT renvoyer la même valeur d’ID client de l’une des deux façons suivantes :
Le webhook est enregistré uniquement si la réponse est positive (code de réponse 2XX) et si la validation de l’ID client figure dans l’en-tête ou le corps de la réponse. L’objectif de cette demande de vérification est de démontrer que vous souhaitez vraiment recevoir des notifications à cette URL de webhook. Si vous avez saisi une URL incorrecte par inadvertance, celle-ci ne peut pas répondre correctement à la demande de vérification de l’intention, et Acrobat Sign n’envoie aucune notification à cette URL. En outre, l’URL du webhook peut également confirmer la réception des notifications uniquement via les webhooks enregistrés par une application spécifique. Pour ce faire, validez l’ID client de l’application transmis dans l’en-tête X-AdobeSign-ClientId. Si l’URL du webhook ne reconnaît pas cet ID client, elle NE DOIT PAS répondre avec le code de réponse positive, et Acrobat Sign doit s’assurer que l’URL n’est pas enregistrée en tant que webhook.
La vérification de l’appel de l’URL du webhook est effectuée dans les scénarios suivants :
Acrobat Sign effectue une vérification implicite de l’intention dans chaque demande de notification de webhook envoyée à l’URL du webhook. Ainsi, chaque requête HTTPS de notification de webhook contient également l’en-tête HTTP personnalisé appelé X-AdobeSign-ClientId. La valeur de cet en-tête est l’ID client (ID de l’application) de l’application qui a créé le webhook. Nous considérons que la notification du webhook a été correctement distribuée si, et uniquement si, une réponse positive (code de réponse 2XX) est retournée et si l’ID client est envoyé dans l’en-tête HTTP (X-AdobeSign-ClientId) ou dans un corps de réponse JSON avec la clé xAdobeSignClientId et une valeur identique à l’ID client. Dans un cas contraire, nous réessayons de distribuer la notification à l’URL du webhook jusqu’à épuisement des tentatives.
Comme mentionné ci-dessus, la valeur de l’en-tête (ID client) X-AdobeSign-ClientId qui est inclus dans chaque demande de notification de Sign doit être reprise dans la réponse de deux manières :
|
Exemple de code JavaScript permettant de récupérer l’ID client, de le valider, puis de le retourner dans l’en-tête de réponse |
|---|
|
// Fetch client id var clientid = request.headers['X-ADOBESIGN-CLIENTID'];
//Validate it if (clientid ==="BGBQIIE7H253K6") //Replace 'BGBQIIE7H253K6' with the client id of the application using which the webhook is created { //Return it in response header response.headers['X-AdobeSign-ClientId'] = clientid; response.status = 200; // default value } |
|
Exemple de code PHP permettant de récupérer l’ID client, de le valider, puis de le retourner dans l’en-tête de réponse |
|---|
|
<?php // Fetch client id $clientid = $_SERVER['HTTP_X_ADOBESIGN_CLIENTID']; //Validate it if($clientid == "BGBQIIE7H253K6") //Replace 'BGBQIIE7H253K6' with the client id of the application using which the webhook is created { //Return it in response header header("X-AdobeSign-ClientId:$clientid"); header("HTTP/1.1 200 OK"); // default value } ?>
|
|
Exemple de code JavaScript permettant de récupérer l’ID client, de le valider, puis de le retourner dans le corps de la réponse |
|---|
|
// Fetch client id var clientid = request.headers['X-ADOBESIGN-CLIENTID'];
//Validate it if (clientid ==="BGBQIIE7H253K6") //Replace 'BGBQIIE7H253K6' with the client id of the application using which the webhook is created { var responseBody = { "xAdobeSignClientId" : clientid // Return Client Id in the body }; response.headers['Content-Type'] = 'application/json'; response.body = responseBody; response.status = 200; } |
|
Exemple de code PHP permettant de récupérer l’ID client, de le valider, puis de le retourner dans le corps de la réponse |
|---|
|
<?php // Fetch client id $clientid = $_SERVER['HTTP_X_ADOBESIGN_CLIENTID']; //Validate it if($clientid == "BGBQIIE7H253K6") //Replace 'BGBQIIE7H253K6' with the client id of the application using which the webhook is created { //Return it in response body header("Content-Type: application/json"); $body = array('xAdobeSignClientId' => $clientid); echo json_encode($body); header("HTTP/1.1 200 OK"); // default value } ?> |
|
Exemple de corps de la réponse JSON |
|---|
|
{ "xAdobeSignClientId": "BGBQIIE7H253K6" } |
Vous avez besoin des éléments suivants :
Pour créer une fonction Déclencheur HTTP JavaScript :
1. Connectez-vous via votre compte Microsoft https://portal.azure.com/.
2. Ouvrez l’application Azure Function affichée dans l’onglet Applications de fonctions.
La liste d’applications Azure Functions s’ouvre :
3. Sélectionnez l’application dans laquelle vous souhaitez créer cette fonction.
4. Cliquez sur le bouton Créer (+) pour créer une fonction Azure.
5. Sélectionnez le scénario Webhook + API et le langage JavaScript.
6. Cliquez sur Créer cette fonction.
Une nouvelle fonction capable de gérer une demande d’API entrante est créée.
Avant d’enregistrer un webhook, Acrobat Sign vérifie que l’URL du webhook indiquée dans la demande d’enregistrement est réellement destinée à recevoir des notifications ou non. À cette fin, lorsqu’une nouvelle demande d’enregistrement de webhook est reçue par Acrobat Sign, l’application envoie d’abord une demande de vérification à l’URL du webhook. Cette demande de vérification est une requête HTTPS GET envoyée à l’URL du webhook avec un en-tête HTTP personnalisé X-AdobeSign-ClientId. La valeur de cet en-tête est définie sur l’ID client de l’application qui demande la création/l’enregistrement du webhook. Pour enregistrer un webhook, l’URL de celui-ci doit répondre à cette demande de vérification avec un code de réponse 2XX. De plus, elle doit renvoyer la même valeur d’ID client de l’une des deux façons suivantes.
Vous pouvez suivre deux options :
Transmettez X-AdobeSign-ClientId dans l’en-tête de réponse. Il s’agit du même en-tête, qui est transmis dans la demande et repris dans la réponse.
Remplacez le fichier Index.js par l’extrait de code suivant :
module.exports = function (context, req) {
var clientId = req.headers['x-adobesign-clientid'];
// Validate that the incoming ClientID is genuine
if (clientId === '123XXX456') {
context.res = {
// status: 200, /* Defaults to 200 */ // any 2XX response is acceptable
body: "Notification Accepted",
headers : {
'x-adobesign-clientid' : req.headers['x-adobesign-clientid']
}
};
}
else {
context.res = {
status: 400,
body: "Opps!! Illegitimate Call identified"
};
}
context.done();
};
Testez le comportement en simulant la demande :
1. Cliquez sur le bouton Tester situé dans l’angle supérieur droit.
2. Effectuez la demande factice.
Même si les en-têtes de réponse ne sont pas affichés ci-dessus, vous pouvez les observer par simulation via Postman/DHC ou un autre service.
Dans le corps de la réponse JSON avec la clé xAdobeSignClientId, sa valeur correspondant à l’ID client envoyé dans l’en-tête de la demande.
Remplacez le fichier Index.js par l’extrait de code suivant :
module.exports = function (context, req) {
var clientId = req.headers['x-adobesign-clientid'];
// Validate that the incoming ClientID is genuine
if (clientId === '123XXX456') {
context.res = {
// status: 200, /* Defaults to 200 */ // any 2XX response is acceptable
corps: {
'xAdobeSignClientId' : clientId
},
headers : {
'Content-Type' : 'application/json'
}
};
}
else {
context.res = {
status: 400,
body: "Opps!! Illegitimate Call identified"
};
}
context.done();
};
Testez le comportement en simulant la demande :
1. Cliquez sur le bouton Tester situé dans le coin supérieur droit.
2. Effectuez la demande factice.
Notez également qu’un même comportement pour l’ID client est attendu lorsque l’URL du webhook reçoit des notifications POST.
Une fois que vous avez vérifié le comportement, l’URL du webhook fonctionne conformément aux standards Acrobat Sign. Vous pouvez ensuite mettre à jour la logique personnalisée selon vos besoins.
Obtention de l’URL de la fonction
Copiez l’URL et utilisez-la pour créer des webhooks dans Acrobat Sign.
Pour créer une fonction AWS Lambda, connectez-vous à AWS Management Console, puis sélectionnez le service AWS Lambda dans la liste des services.
Avant d’enregistrer un webhook, Acrobat Sign vérifie que l’URL du webhook indiquée dans la demande d’enregistrement est réellement destinée à recevoir des notifications ou non. À cette fin, lorsqu’une nouvelle demande d’enregistrement de webhook est reçue par Acrobat Sign, l’application envoie d’abord une demande de vérification à l’URL du webhook. Cette demande de vérification est une requête HTTPS GET envoyée à l’URL du webhook avec un en-tête HTTP personnalisé X-AdobeSign-ClientId. La valeur de cet en-tête est définie sur l’ID client de l’application qui demande la création/l’enregistrement du webhook. Pour enregistrer un webhook, l’URL de celui-ci doit répondre à cette demande de vérification avec un code de réponse 2XX. De plus, elle doit renvoyer la même valeur d’ID client de l’une des deux façons suivantes. Notez également qu’un même comportement pour l’ID client est attendu lorsque l’URL du webhook reçoit des notifications POST.
Suivez l’un des deux cas :
|
Exemple de code Node.JS permettant de récupérer l’ID client, de le valider, puis de le retourner dans l’en-tête de réponse |
|---|
|
exports.handler = function index(event, context, callback) { // Fetch client id var clientid = event.headers['X-AdobeSign-ClientId'];
//Validate it if (clientid =="BGBQIIE7H253K6") //Replace 'BGBQIIE7H253K6' with the client id of the application using which the webhook is created { var response = { statusCode: 200, headers: { "X-AdobeSign-ClientId": clientid } }; callback(null,response); } else { callback("Oops!! illegitimate call"); } } |
Dans le corps de la réponse JSON avec la clé xAdobeSignClientId, sa valeur correspondant à l’ID client envoyé dans l’en-tête de la demande.
Extrait de code
Remplacez le fichier Index.js par l’extrait de code suivant :
|
Exemple de code Node.JS permettant de récupérer l’ID client, de le valider, puis de le retourner dans l’en-tête de réponse |
|---|
|
exports.handler = function index(event, context, callback) { // Fetch client id var clientid = event.headers['X-AdobeSign-ClientId'];
//Validate it if (clientid =="BGBQIIE7H253K6") //Replace 'BGBQIIE7H253K6' with the client id of the application using which the webhook is created { var responseBody = { xAdobeSignClientId : clientid };
var response = { statusCode: 200, body: JSON.stringify(responseBody) };
callback(null,response); } else { callback("Opps!! illegitimate call"); } } |
Pour rendre cette fonction Lambda accessible au public via une méthode HTTP, nous devons configurer AWS API Gateway à l’aide de notre fonction (créée ci-dessus) en tant que système principal de l’API.
Dans AWS Management Console, sélectionnez API Gateway dans les services AWS et cliquez sur le bouton Créer une API.
Si toutes les étapes ci-dessus sont exécutées correctement, un affichage semblable à ce qui suit apparaît :
L’étape suivante consiste à déployer cette API afin qu’elle soit prête à être utilisée.
L’API est maintenant prête à être utilisée. Vous pouvez trouver l’URL d’appel dans la zone bleue comme indiqué ci-dessous :
Notez cette URL, car vous devrez la saisir en tant qu’URL de webhook en temps réel.
C’est fait. Utilisez l’URL indiquée ci-dessus avec la mention « /{nodeJSfunctionName} » ajoutée en tant qu’URL de webhook dans la requête d’API POST /webhooks. Une fois que vous avez vérifié le comportement, l’URL du webhook fonctionne conformément aux
standards Acrobat Sign. Vous pouvez ensuite mettre à jour/ajouter la logique personnalisée selon vos besoins.
La configuration du webhook nécessite la définition de cinq éléments :
Une fois le webhook défini, cliquez sur Enregistrer. Le nouveau webhook commence à réagir pour déclencher immédiatement des événements.
Configurez l’URL du webhook pour répondre aux demandes de vérification et de notification de webhook conformément au protocole de vérification expliqué ci-dessus. ID client (ID d’application) qui est envoyé aux webhooks créés à partir de l’application web Acrobat Sign : UB7E5BXCXY.
Une URL de webhook est un serveur qui écoute les messages de notification HTTPS POST entrants qui sont déclenchés lorsque des événements se produisent.
Vous avez besoin de cette URL pour abonner votre webhook aux événements.
Vous trouverez ci-dessous la liste des événements qui peuvent déclencher un envoi vers l’URL du webhook, regroupés par objet.
Chaque événement dispose d’un modèle de la payload JSON qui peut être remise. Cliquez sur le nom de l’événement pour afficher les détails de la payload :
Les paramètres de notification vous permettent de personnaliser la payload JSON en fonction d’éléments spécifiques de l’événement.
Par exemple, dans un événement Participant à l’accord modifié, il se peut que vous ne souhaitiez que les Informations sur l’accord et les Informations sur les participants sans les Informations sur les documents, et réduire ainsi le volume total de l’URL du webhook.
Le protocole SSL bidirectionnel, souvent appelé SSL côté client ou TLS mutuel, est un mode de protocole SSL dans lequel le serveur et le client (navigateur web) présentent tous deux des certificats pour s’identifier.
Les administrateurs de compte peuvent configurer un certificat côté client dans la page Paramètres de sécurité.
Acrobat Sign vérifie les certificats SSL lors de la remise des payloads à l’URL du webhook. Les webhooks qui échouent à la vérification des certificats SSL ne remettent pas correctement la payload JSON.
Utilisez le protocole SSL bidirectionnel pour authentifier le client (Acrobat Sign) et le service d’écoute afin de vous assurer que seul Acrobat Sign peut accéder à l’URL du webhook.
Si le webhook a été créé par une application partenaire, il utilise un certificat client (le cas échéant) du compte de l’application partenaire pour s’identifier lors des rappels de webhook.
Vous trouverez ci-dessous les questions les plus courantes concernant le processus de vérification du serveur web et la vérification de la certification du client.
Lors de l’enregistrement d’un webhook, Acrobat Sign vérifie l’URL du serveur webhook.
Les clients ne peuvent pas enregistrer le webhook si la connexion à l’URL de rappel du webhook ne peut pas être établie à partir d’Acrobat Sign.
Non.
L’URL de rappel de webhook ne peut être que HTTPS sur le port 443.
Acrobat Sign bloque le trafic HTTPS sortant vers tous les autres ports.
Un bon moyen de vérifier le certificat du serveur consiste à utiliser DigiCert® SSL Installation Diagnostics Tool.
Saisissez uniquement le nom d’hôte (par exemple, www.digicert.com).
Les problèmes courants sont les suivants :
Solution : utilisez un certificat SSL émis par une autorité de certification publique pour le serveur de rappel de webhook.
Solution : installez les certificats intermédiaires sur le serveur de rappel de webhook.
Pour en savoir plus, consultez le site https://www.digicert.com/kb/ssl-certificate-installation.htm.
Pour configurer un protocole SSL bidirectionnel pour un webhook, nous demandons à l’administrateur de charger un fichier .p12 (ou .pfx) contenant la clé privée. Le fichier est stocké de manière sécurisée dans le compte client, et l’administrateur a la possibilité de le supprimer à tout moment.
Dans une configuration de webhook bidirectionnel, Acrobat Sign est l’appelant/le client et a besoin de la clé privée pour prouver que l’appel est effectué par Acrobat Sign pour le compte du client.
Vérifiez que le protocole SSL bidirectionnel est activé
Le protocole SSL bidirectionnel doit être activé sur le serveur de rappel de webhook.
À l’aide d’un navigateur web, connectez-vous à l’URL de rappel de webhook. Vous devez obtenir :
400 Bad Request No required SSL certificate sent
Cela signifie que le serveur attend du client qu’il envoie des certificats clients (c.-à-d. : le protocole SSL bidirectionnel est activé pour le serveur).
Si vous ne voyez pas le message ci-dessus, alors le protocole SSL bidirectionnel n’est pas activé.
Vous pouvez utiliser Postman et effectuer une requête POST vers l’URL de rappel de webhook. Vous devez obtenir un résultat similaire.
Les informations d’identification du client peuvent être un certificat auto-signé ou un certificat émis par une autorité de certification. Toutefois, il doit être conforme au minimum aux extensions X.509 v3 suivantes :
|
Extension X.509 v3 |
Valeur |
|---|---|
|
ExtendedKeyUsage |
clientAuth (OID: 1.3.6.1.5.5.7.3.2) |
|
KeyUsage |
digitalSignature |
Le certificat client doit être un fichier PKCS12 avec l’extension .p12 ou .pfx. Il doit inclure à la fois le certificat client (afin que le serveur puisse vérifier l’identité du client) et la clé privée du client (afin que le client puisse signer numériquement les messages pour que le serveur les vérifie pendant la négociation SSL).
Utilisez la commande openssl pour vérifier le fichier p12 (pfx) :
openssl pkcs12 -info -in outfile.p12
La phrase secrète de la clé privée doit être demandée. La sortie doit contenir à la fois des certificats et une clé privée chiffrée :
Bag Attributes
localKeyID: 9D BD 22 80 E7 B2 B7 58 9E AE C8 42 71 F0 39 E1 E7 2B 57 DB
subject=/C=US/ST=California/L=San Jose/O=Adobe Inc./CN=sp.adobesignpreview.com
issuer=/C=US/O=DigiCert Inc/CN=DigiCert TLS RSA SHA256 2020 CA1
-----BEGIN CERTIFICATE-----
MIIGwDCCBaigAwIBAgIQAhJSKDdyQZjlbYO5MJAYOTANBgkqhkiG9w0BAQsFADBP
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMSkwJwYDVQQDEyBE
...
JAKQLQ==
-----END CERTIFICATE-----
Bag Attributes: <No Attributes>
subject=/C=US/O=DigiCert Inc/CN=DigiCert TLS RSA SHA256 2020 CA1
issuer=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA
-----BEGIN CERTIFICATE-----
MIIEvjCCA6agAwIBAgIQBtjZBNVYQ0b2ii+nVCJ+xDANBgkqhkiG9w0BAQsFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
...
-----END CERTIFICATE-----
Bag Attributes
localKeyID: 9D BD 22 80 E7 B2 B7 58 9E AE C8 42 71 F0 39 E1 E7 2B 57 DB
Key Attributes: <No Attributes>
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQI7eNh2qlsLPkCAggA
...
FHE=
-----END ENCRYPTED PRIVATE KEY-----
Les certificats doivent inclure au minimum le certificat d’entité finale et les certificats intermédiaires. Idéalement, il doit inclure également le certificat d’autorité de certification racine.
Assurez-vous que le fichier .p12 ou .pfx est protégé par une phrase secrète.
Créez un certificat client auto-signé (facultatif)
Les certificats clients peuvent être émis par une autorité de certification ou auto-signés, selon vos besoins.
Pour générer un certificat client auto-signé, utilisez la commande openssl suivante :
openssl req -newkey rsa:4096 -keyform PEM -keyout ca.key -x509 -days 3650 -outform PEM -out ca.cer
Gardez les fichiers obtenus secrets, car il s’agit de vos certificats d’autorité de certification auto-signés.
Ensuite, générez le fichier client .p12 :
openssl genrsa -out client.key 2048
openssl req -new -key client.key -out client.req
openssl x509 -req -in client.req -CA ca.cer -CAkey ca.key -set_serial 101 -extensions client -days 365 -outform PEM -out client.cer
openssl pkcs12 -export -inkey client.key -in client.cer -out client.p12
rm client.key client.cer client.req
Une fois la configuration effectuée, envoyez une requête POST à l’URL de rappel de webhook.
Vous devez recevoir une réponse 200.
Pourquoi l’application Acrobat Sign refuse-t-elle mon fichier PFX même après que je l’ai vérifié avec Postman ?
Si vous avez suivi le processus de vérification de fichier pfx ci-dessus et qu’Acrobat Sign rejette toujours le fichier pfx, il est probable que le fichier ait été généré par un outil Microsoft pouvant produire un fichier PKCS12 non standard.
Dans ce cas, utilisez les commandes openssl ci-dessous pour extraire les certificats et la clé privée du fichier pfx, puis générez un fichier PKCS12 correctement formaté :
// Extract certificates and private key from pfx file openssl pkcs12 -info -in microsoftclientssl.pfx -passin pass:"" -out clientcert.crt -nokeys openssl pkcs12 -info -in microsoftclientssl.pfx -passin pass:"" -out clientcert.key -nodes -nocerts // Create new PKCS12 file openssl pkcs12 -export -inkey clientcert.key -in clientcert.crt -out clientcert.pfx
L’accès à la fonctionnalité Webhooks est activé par défaut pour les comptes de formule Entreprise.
Les administrateurs de groupe peuvent créer/contrôler les webhooks qui fonctionnent uniquement au sein de leur groupe.
L’accès à la page Webhooks se trouve dans le volet de gauche du menu Administrateur : Compte > Webhooks.
Lorsqu’un webhook est créé pour la première fois, il est défini sur le statut Actif.
La page Webhooks d’Acrobat Sign affiche les webhooks actifs par défaut.
Pour activer un webhook inactif :
Le webhook actif commence à envoyer des données à l’URL cible dès que l’événement suivant est déclenché.
Pour désactiver un webhook, vous devez effectuer les actions suivantes :
Les webhooks peuvent être modifiés et enregistrés à tout moment. Dès que vous enregistrez une nouvelle configuration, cette modification prend effet immédiatement.
Seuls Événements et Paramètres de notification peuvent être modifiés.
Si les paramètres Nom, Portée ou URL doivent être modifiés, vous devez créer un nouveau webhook.
Pour modifier les paramètres d’un webhook :
Vous pouvez supprimer un webhook à tout moment.
La suppression d’un webhook entraîne sa destruction du système. Il n’est donc pas possible de récupérer un webhook supprimé.
Les webhooks n’ont pas besoin d’être désactivés en premier lieu.
Pour supprimer un webhook :
Par exemple, si vous devez traiter, puis stocker des documents signés. Pour vous assurer que vous pouvez toujours répondre dans les dix secondes, vous devez toujours effectuer votre travail sur un thread distinct ou de manière asynchrone en utilisant une file d’attente.
1. Quelles données voulez-vous retourner dans la payload ?
2. Qui accédera à ces informations ?
3. Quels seront les décisions ou rapports générés ?
Bien qu’il soit parfaitement acceptable de sélectionner simplement l’option Document signé de l’accord lors de la création d’un webhook, vous pouvez envisager d’utiliser l’API Acrobat Sign pour récupérer les documents lorsqu’un événement déclencheur (tel que le statut de l’accord Terminé) est reçu.
La taille de la payload JSON est limitée à 10 Mo.
Si un événement génère une payload plus importante, un webhook est déclenché, mais les attributs de paramètres conditionnels, si la demande en contient, sont supprimés pour réduire la taille de la payload.
L’objet « ConditionalParametersTrimmed » est retourné dans la réponse lorsque cela se produit pour informer le client que les informations conditionalParameters ont été supprimées.
« conditionalParametersTrimmed » est un objet de type tableau contenant les informations sur les touches qui ont été supprimées.
La troncation est effectuée dans l’ordre suivant :
Les documents signés sont d’abord tronqués, suivis des informations sur les participants, des informations sur les documents et enfin des informations détaillées.
Cela peut se produire, par exemple, lors d’un événement de fin d’accord, s’il inclut également un document signé (codé en base 64) ou pour un accord comptant plusieurs champs de formulaire.
Les webhooks Acrobat Sign remettent des notifications qui s’appliquent à tous les participants d’un accord si un webhook est configuré pour cet utilisateur, son groupe ou son compte.
Les événements d’accord sont traités de telle sorte que si un webhook est configuré pour le participant applicable de cet événement, une notification est envoyée à l’URL de ce webhook. En d’autres termes, les webhooks sont déclenchés pour les événements dans tous les accords applicables, même ceux en dehors du groupe ou du compte dans lequel le webhook est configuré.
Les notifications sont envoyées uniquement pour les événements auxquels le participant est associé. Par exemple, l’expéditeur d’un accord reçoit presque toutes les notifications, alors que les destinataires n’en reçoivent qu’à partir du début de leur participation à l’accord, et uniquement pour les événements dans lesquels ils sont impliqués.
Les notifications du webhook suivent le modèle d’authentification et de visibilité actuel d’Acrobat Sign. Les utilisateurs n’ont donc accès à l’accord que lorsque leur participation à un accord commence.
L’expéditeur envoie un accord pour signature à trois signataires.
L’expéditeur envoie un accord : WebhookX se déclenche à la création de l’accord et à l’envoi de l’accord tandis que WebhookY se déclenche à l’envoi de l’accord.
Le Signataire1 signe : WebhookX se déclenche à l’événement « Participant à l’accord terminé » et à l’envoi de l’accord, WebhookY se déclenche à l’événement « Participant à l’accord terminé » et WebhookZ se déclenche à l’envoi de l’accord.
Le Signataire2 signe : WebhookX se déclenche à l’événement « Participant à l’accord terminé » et à l’envoi de l’accord, tandis que WebhookZ envoie une notification pour l’événement « Participant à l’accord terminé ».
Le Signataire3 signe : WebhookX se déclenche aux événements « Participant à l’accord terminé » et « Flux de l’accord terminé », WebhookY se déclenche à l’événement « Flux de l’accord terminé » et WebhookZ se déclenche à l’événement « Flux de l’accord terminé ».
Si l’URL cible du webhook ne fonctionne pas pour une raison quelconque, Acrobat Sign met en file d’attente le fichier JSON et tente à nouveau la transmission par cycles progressifs durant 72 heures.
Les événements non distribués sont conservés dans une file d’attente pour de nouvelles tentatives. Au cours des 72 heures à venir, les notifications sont remises dans l’ordre dans lequel elles se sont produites, autant que faire se peut.
La stratégie visant à retenter la remise des notifications consiste à doubler le temps entre les tentatives, depuis 1 minute jusqu’à 12 heures, soit 15 tentatives en l’espace de 72 heures.
Si le récepteur du webhook ne répond pas dans les 72 heures et qu’aucune notification n’a été remise au cours des sept derniers jours, le webhook est désactivé. Aucune notification n’est envoyée à cette URL tant que le webhook n’est pas réactivé.
Toutes les notifications adressées entre le moment où le webhook est désactivé et celui où il est réactivé sont perdues.
Accéder à votre compte