Pour télécharger l'exemple complet de code, consultez notre site Partage de code. Vous pouvez également voir cette fonctionnalité dans notre démonstration interactive.
Au cours d'une Signer Experience par défaut, tous les destinataires peuvent visualiser tous les documents d'une transaction. Toutefois, vous pouvez configurer vos transactions de manière à ce que certains documents ne puissent être vus que par des destinataires spécifiques. Cela peut éviter aux destinataires d'avoir à traiter des documents qu'ils n'ont pas besoin de voir et garantir que les documents contenant des informations sensibles ne sont consultés que par les personnes auxquelles ils sont destinés.
Par défaut, l'ajout d'un destinataire à une transaction lui donne accès à tous les documents. Nous vous recommandons de définir la visibilité des documents après l'ajout de tous les documents et de tous les destinataires à la transaction. Si vous devez ajouter un destinataire après avoir défini la visibilité du document, veillez à vérifier la visibilité du document du destinataire que vous venez d'ajouter.
Définir la signature du document par le destinataire
Dans cet exemple, une transaction est configurée de telle sorte que le signataire1 ne doit signer que le document 1 et le signataire2 ne doit signer que le document 2, comme indiqué ci-dessous :
DocumentPackage superDuperPackage = PackageBuilder.newPackageNamed("DocumentVisibilityExample " + new SimpleDateFormat("HH:mm:ss").format(new Date())) .describedAs("This is a package created using the OneSpan Sign SDK") .withSigner(SignerBuilder.newSignerWithEmail("[email protected]") .withCustomId(SIGNER1_ID) .withFirstName("John1") .withLastName("Smith1")) .withSigner(SignerBuilder.newSignerWithEmail("[email protected]") .withCustomId(SIGNER2_ID) .withFirstName("John2") .withLastName("Smith2")) .withDocument(DocumentBuilder.newDocumentWithName("Document1") .withId(DOC1_ID) .fromFile(DOC_FILE_PATH_1) .withSignature(SignatureBuilder.signatureFor("[email protected]") .onPage(0) .atPosition(100, 100))) .withDocument(DocumentBuilder.newDocumentWithName("Document2") .withId(DOC2_ID) .fromFile(DOC_FILE_PATH_2) .withSignature(SignatureBuilder.signatureFor("[email protected]") .onPage(0) .atPosition(100, 100))) .build();
Définir la visibilité des documents par destinataire
Vous pouvez configurer chaque document de manière à ce que seul le signataire spécifié puisse voir ce document, ce qui permet de garantir que les documents contenant des informations de nature sensible ne sont consultés que par leurs destinataires.
Après avoir créé votre transaction, vous devrez créer l'objet DocumentVisibility et ajouter des configurations pour la visibilité de chaque document
Après avoir créé votre transaction, vous devrez créer votre objet DocumentVisibility à l'aide de OneSpan Sign DocumentVisibilityBuilder. Ensuite, vous ajoutez des configurations pour la visibilité de chaque document en utilisant les id personnalisés définis dans la section précédente. Par exemple, withId(DOC1_ID).
com.silanis.esl.sdk.DocumentVisibility visibility = DocumentVisibilityBuilder.newDocumentVisibility() .addConfiguration(DocumentVisibilityConfigurationBuilder.newDocumentVisibilityConfiguration(DOC1_ID) .withSignerIds(signerIdsList1)) .addConfiguration(DocumentVisibilityConfigurationBuilder.newDocumentVisibilityConfiguration(DOC2_ID) .withSignerIds(signerIdsList2)) .build();
Vous pouvez également configurer la visibilité des documents en fonction de signataires spécifiques :
com.silanis.esl.sdk.DocumentVisibility visibility = newDocumentVisibilityBasedOnSigner() .addConfiguration(newDocumentVisibilityConfigurationBasedOnSigner(SIGNER1_ID) .withDocumentIds(Arrays.asList(DOC1_ID))) .addConfiguration(newDocumentVisibilityConfigurationBasedOnSigner(SIGNER2_ID) .withDocumentIds(Arrays.asList(DOC2_ID))) .build();
Récupération d'une liste de signataires par document
Une fois que vous aurez défini ces configurations, vous pourrez alors récupérer la liste des signataires qui peuvent visualiser un document :
List<Signer> signersForDocument1 = eslClient.getSigners(packageId, DOC1_ID);
De même, vous pouvez récupérer une liste de documents qu'un signataire peut consulter :
List<Document> documentsForSigner1 = eslClient.getDocuments(packageId, SIGNER1_ID);
Définition de la visibilité et envoi de la transaction
Finalement, vous définissez la visibilité de vos documents et envoyez votre transaction à l'aide du client OneSpan Sign :
eslClient.configureDocumentVisibility(packageId, visibility); eslClient.sendPackage(packageId);
Résultats
Chaque destinataire ne verra que le document qui lui a été attribué.
Pour télécharger l'exemple complet de code, consultez notre site Partage de code. Vous pouvez également voir cette fonctionnalité dans notre démonstration interactive.
Au cours d'une Signer Experience par défaut, tous les destinataires peuvent visualiser tous les documents d'une transaction. Toutefois, vous pouvez configurer vos transactions de manière à ce que certains documents ne puissent être vus que par des destinataires spécifiques. Cela peut éviter aux destinataires d'avoir à traiter des documents qu'ils n'ont pas besoin de voir et garantir que les documents contenant des informations sensibles ne sont consultés que par les personnes auxquelles ils sont destinés.
Par défaut, l'ajout d'un destinataire à une transaction lui donne accès à tous les documents. Nous vous recommandons de définir la visibilité des documents après l'ajout de tous les documents et de tous les destinataires à la transaction. Si vous devez ajouter un destinataire après avoir défini la visibilité du document, veillez à vérifier la visibilité du document du destinataire que vous venez d'ajouter.
Définir la signature du document par le destinataire
Dans cet exemple, une transaction est configurée de telle sorte que le signataire1 ne doit signer que le document 1 et le signataire2 ne doit signer que le document 2, comme indiqué ci-dessous :
DocumentPackage superDuperPackage = PackageBuilder.NewPackageNamed("DocumentVisibilityExample " + DateTime.Now) .DescribedAs("This is a package created using the OneSpan Sign SDK") .WithSigner(SignerBuilder.NewSignerWithEmail("[email protected]") .WithCustomId(SIGNER1_ID) .WithFirstName("John1") .WithLastName("Smith1")) .WithSigner(SignerBuilder.NewSignerWithEmail("[email protected]") .WithCustomId(SIGNER2_ID) .WithFirstName("John2") .WithLastName("Smith2")) .WithDocument(DocumentBuilder.NewDocumentNamed("Document1") .WithId(DOC1_ID) .FromFile("C:/Users/hhaidary/Desktop/PDFs/sample_contract.pdf") .WithSignature(SignatureBuilder.SignatureFor("[email protected]") .OnPage(0) .AtPosition(100, 100))) .WithDocument(DocumentBuilder.NewDocumentNamed("Document2") .WithId(DOC2_ID) .FromFile("C:/Users/hhaidary/Desktop/PDFs/cleaning_contract.pdf") .WithSignature(SignatureBuilder.SignatureFor("[email protected]") .OnPage(0) .AtPosition(100, 100))) .Build();
Définir la visibilité des documents par destinataire
Vous pouvez configurer chaque document de manière à ce que seul le signataire spécifié puisse voir ce document, ce qui permet de garantir que les documents contenant des informations de nature sensible ne sont consultés que par leurs destinataires.
Après avoir créé votre transaction, vous devrez créer votre objet DocumentVisibility à l'aide de l'outil OneSpan Sign DocumentVisibilityBuilder. Vous devrez ensuite définir la visibilité de chaque document à l'aide des identifiants personnalisés définis dans la section précédente, withId(DOC1_ID).
Silanis.ESL.SDK.DocumentVisibility visibility = DocumentVisibilityBuilder.NewDocumentVisibility() .AddConfiguration(DocumentVisibilityConfigurationBuilder.NewDocumentVisibilityConfiguration(DOC1_ID) .WithSignerIds(signerIdsList1)) .AddConfiguration(DocumentVisibilityConfigurationBuilder.NewDocumentVisibilityConfiguration(DOC2_ID) .WithSignerIds(signerIdsList2)) .Build();
Vous pouvez également configurer la visibilité des documents en fonction de signataires spécifiques :
Silanis.ESL.SDK.DocumentVisibility visibility = DocumentVisibilityBuilder.newDocumentVisibilityBasedOnSigner() .AddConfiguration(DocumentVisibilityConfigurationBasedOnSignerBuilder.NewDocumentVisibilityConfigurationBasedOnSigner(SIGNER1_ID) .WithDocumentIds(new List{ DOC1_ID })) .AddConfiguration(DocumentVisibilityConfigurationBasedOnSignerBuilder.newDocumentVisibilityConfigurationBasedOnSigner(SIGNER2_ID) .WithDocumentIds(new List { DOC2_ID })) .Build();
Récupération d'une liste de signataires par document
Une fois que vous aurez défini ces configurations, vous pourrez alors récupérer la liste des signataires qui peuvent visualiser un document :
IList<Signer> signersForDocument1 = eslClient.GetSigners(packageId, DOC1_ID);
De même, vous pouvez récupérer une liste de documents qu'un signataire peut consulter :
IList<Document> documentsForSigner1 = eslClient.GetDocuments(packageId, SIGNER1_ID);
Définition de la visibilité et envoi de la transaction
Finalement, vous définissez la visibilité de vos documents et envoyez votre transaction à l'aide du client OneSpan Sign :
eslClient.ConfigureDocumentVisibility(packageId, visibility); eslClient.SendPackage(packageId);
Résultats
Chaque destinataire ne verra que le document qui lui a été attribué.
Pour télécharger l'exemple complet de code, consultez notre site Partage de code. Vous pouvez également voir cette fonctionnalité dans notre démonstration interactive.
Au cours d'une Signer Experience par défaut, tous les destinataires peuvent visualiser tous les documents d'une transaction. Toutefois, vous pouvez configurer vos transactions de manière à ce que certains documents ne puissent être vus que par des destinataires spécifiques. Cela peut éviter aux destinataires d'avoir à traiter des documents qu'ils n'ont pas besoin de voir et garantir que les documents contenant des informations sensibles ne sont consultés que par les personnes auxquelles ils sont destinés.
Par défaut, l'ajout d'un destinataire à une transaction lui donne accès à tous les documents. Nous vous recommandons de définir la visibilité des documents après l'ajout de tous les documents et de tous les destinataires à la transaction. Si vous devez ajouter un destinataire après avoir défini la visibilité du document, veillez à vérifier la visibilité du document du destinataire que vous venez d'ajouter.
Définir la signature du document par le destinataire
Dans cet exemple, une transaction est configurée de telle sorte que le signataire1 ne doit signer que le document 1 et le signataire2 ne doit signer que le document 2, comme indiqué ci-dessous :
Requête HTTP
POST /api/packages
En-têtes HTTP
Accept: application/json Content-Type: multipart/form-data Authorization: Basic api_key
Données utiles de la demande
------WebKitFormBoundary1bNO60n7FqP5WO4t Content-Disposition: form-data; name="file"; filename="testDocumentExtraction.pdf" Content-Type: application/pdf %PDF-1.5 %µµµµ 1 0 obj <>>> endobj.... ------WebKitFormBoundary1bNO60n7FqP5WO4t Content-Disposition: form-data; name="payload" { "autocomplete": true, "description": "This is a package created using the OneSpan Sign REST API", "documents": [ { "approvals": [ { "fields": [ { "extract": false, "height": 50, "left": 100, "page": 0, "subtype": "FULLNAME", "top": 100, "type": "SIGNATURE", "width": 200 } ], "role": "Signer1" } ], "extract": false, "id": "doc1", "index": 0, "name": "DocumentA" }, { "approvals": [ { "fields": [ { "extract": false, "height": 50, "left": 100, "page": 0, "subtype": "FULLNAME", "top": 100, "type": "SIGNATURE", "width": 200 } ], "role": "Signer2" } ], "extract": false, "fields": [], "id": "doc2", "index": 0, "name": "DocumentB", "pages": [] } ], "name": "DocumentVisibilityExample REST API", "roles": [ { "id": "Signer1", "index": 0, "name": "Signer1", "signers": [ { "email": "[email protected]", "firstName": "John1", "id": "Signer1", "lastName": "Smith1" } ] }, { "id": "Signer2", "index": 0, "name": "Signer2", "signers": [ { "email": "[email protected]", "firstName": "John2", "id": "Signer2", "lastName": "Smith2" } ] } ], "type": "PACKAGE", "visibility": "ACCOUNT" } ------WebKitFormBoundary1bNO60n7FqP5WO4t--
Pour une description complète de chaque champ, voir le tableau des données utiles de la demande ci-dessous.
Données utiles de la réponse
{ "id": "9sKhW-h-qS9m6Ho3zRv3n2a-rkI=" }
Définir la visibilité des documents par destinataire
Vous pouvez configurer chaque document de manière à ce que seul le signataire spécifié puisse voir ce document, ce qui permet de garantir que les documents contenant des informations de nature sensible ne sont consultés que par leurs destinataires.
Une fois que vous avez créé votre transaction, vous devrez faire un POST https://sandbox.esignlive.com/api/packages/{packageId}/documents/visibility
avec les données utiles JSON suivante :
En-têtes HTTP
Accept: application/json Content-Type: application/json Authorization: Basic api_key
{ "configurations": [ { "documentUid": "doc1", "roleUids": [ "Signer1" ] }, { "documentUid": "doc2", "roleUids": [ "Signer2" ] } ] }
Vous pouvez ajouter une configuration pour la visibilité de chaque document en utilisant les identifiants personnalisés définis à l'étape précédente (par exemple, « id » : « doc1 ») Une fois que vous avez configuré la visibilité de votre document, vous pouvez récupérer la visibilité de votre document comme tel :
GET https://sandbox.esignlive.com/api/packages/{packageId}/documents/visibility
Définition de la visibilité et envoi de la transaction
Finalement, vous définissez la visibilité de vos documents et envoyez votre transaction à l'aide du client OneSpan Sign :
{ "status": "SENT" }
Résultats
Chaque destinataire ne verra que le document qui lui a été attribué.
Tableau des données utiles de la demande
Propriété | Type | Modifiable | Requis | Par défaut | Exemples de valeurs |
---|---|---|---|---|---|
statut | chaîne de caractères | Oui | Non | ÉBAUCHE | ÉBAUCHE / ENVOYÉ / COMPLÉTÉ / ARCHIVÉ / DÉCLINÉ / REFUSÉ / EXPIRÉ |
ComplétionAuto | booléen | Oui | Non | vrai | vrai / faux |
type | chaîne de caractères | Oui | Non | PACKAGE | PAQUET / MODÈLE / MISE EN PAGE |
nom | chaîne de caractères | Oui | Oui | s.o. | DocumentVisibilityExample REST API |
description | chaîne de caractères | Oui | Oui | s.o. | Il s'agit d'un paquet créé à l'aide de l'API REST de OneSpan Sign |
supprimé | booléen | Oui | Non | faux | vrai / faux |
visibilité | chaîne de caractères | Oui | Non | COMPTE | COMPTE / EXPÉDITEUR |
documents | |||||
id | chaîne de caractères | Oui | Non | s.o. | doc1 |
nom | chaîne de caractères | Oui | Non | s.o. | Document1 |
index | entier | Oui | Non | 0 | 0 / 1 / 2 ... |
extrait | booléen | Oui | Non | faux | faux / vrai |
approbations | |||||
champs | |||||
sous-type | chaîne de caractères | Oui | Non | s.o. | NOM COMPLET / INITIALES / CAPTURE / CAPTURE_MOBILE / ÉTIQUETTE / CHAMP DE TEXTE / ZONE DE TEXTE / CASE / DATE / RADIO / LISTE |
type | chaîne de caractères | Oui | Non | s.o. | SIGNATURE / ENTRÉE |
extrait | booléen | Oui | Non | faux | vrai / faux |
hauteur | entier | Oui | Non | 50 | 50 / 100 / 150 ... |
gauche | entier | Oui | Non | 0 | 50 / 100 / 150 ... |
page | entier | Oui | Non | 0 | 0 / 1 / 2 ... |
haut | entier | Oui | Non | 0 | 50 / 100 / 150 ... |
largeur | entier | Oui | Non | 200 | 50 / 100 / 150 ... |
rôle | chaîne de caractères | Oui | Non | s.o. | Signataire1 |
rôles | |||||
id | chaîne de caractères | Oui | Non | s.o. | Signataire1 |
index | entier | Oui | Non | 0 | 0 / 1 / 2 ... |
nom | chaîne de caractères | Oui | Non | s.o. | Signataire1 |
type | chaîne de caractères | Oui | Non | SIGNER | SIGNATAIRE / EXPÉDITEUR |
signataires | |||||
courriel | chaîne de caractères | Oui | Oui | s.o. | [email protected] |
Prénom | chaîne de caractères | Oui | Oui | s.o. | John1 |
Nom de famille | chaîne de caractères | Oui | Oui | s.o. | Smith1 |
téléphone | chaîne de caractères | Oui | Non | s.o. | 514-555-8888 |
id | chaîne de caractères | Oui | Non | s.o. | Signataire1 |
entreprise | chaîne de caractères | Oui | Non | s.o. | Acme Inc. |
titre | chaîne de caractères | Oui | Non | s.o. | Directeur général |
Pour télécharger l'exemple complet de code, consultez notre site Partage de code. Vous pouvez également voir cette fonctionnalité dans notre démonstration interactive.
Au cours d'une Signer Experience par défaut, tous les destinataires peuvent visualiser tous les documents d'une transaction. Toutefois, vous pouvez configurer vos transactions de manière à ce que certains documents ne puissent être vus que par des destinataires spécifiques. Cela peut éviter aux destinataires d'avoir à traiter des documents qu'ils n'ont pas besoin de voir et garantir que les documents contenant des informations sensibles ne sont consultés que par les personnes auxquelles ils sont destinés.
Par défaut, l'ajout d'un destinataire à une transaction lui donne accès à tous les documents. Nous vous recommandons de définir la visibilité des documents après l'ajout de tous les documents et de tous les destinataires à la transaction. Si vous devez ajouter un destinataire après avoir défini la visibilité du document, veillez à vérifier la visibilité du document du destinataire que vous venez d'ajouter.
Définir la signature du document par le destinataire
Dans cet exemple, une transaction est configurée de telle sorte que le signataire1 ne doit signer que le document 1 et le signataire2 ne doit signer que le document 2, comme indiqué ci-dessous :
ESignLiveSDK sdk = new ESignLiveSDK(); //Create package ESignLiveAPIObjects.Package_x pkg = new ESignLiveAPIObjects.Package_x(); pkg.name = 'Test Document Visibility - ' + Datetime.now().format(); pkg.status = ESignLiveAPIObjects.PackageStatus.DRAFT; //Create Roles String roleId1 = 'Signer1'; ESignLiveAPIObjects.Role role1 = new ESignLiveAPIObjects.Role(); role1.signers = sdk.createRolesSigner('sigenr1_firstname', 'signer1_lastname', '[email protected]', 'CEO', 'ABC Bank'); role1.id = roleId1; role1.name = roleId1; String roleId2 = 'Signer2'; ESignLiveAPIObjects.Role role2 = new ESignLiveAPIObjects.Role(); role2.signers = sdk.createRolesSigner('sigenr2_firstname', 'signer2_lastname', '[email protected]', 'Applicant', 'ABC Company'); role2.id = roleId2; role2.name = roleId2; pkg.roles = new List<ESignLiveAPIObjects.Role>{role1,role2}; //add role //Prepare Documents Blob //use single document twice, just for test String document1Name = 'documentA'; String document2Name = 'documentB'; StaticResource sr = [SELECT Id, Body FROM StaticResource WHERE Name = 'testdoc1' LIMIT 1]; Map<String,Blob> documentBlobMap = new Map<String,Blob>(); documentBlobMap.put(document1Name, sr.Body); documentBlobMap.put(document2Name, sr.Body); //Create Document Metadata ESignLiveAPIObjects.Document document1 = new ESignLiveAPIObjects.Document(); documentA.name = documentAName; documentA.id = documentAName; ESignLiveAPIObjects.Document documentB = new ESignLiveAPIObjects.Document(); documentB.name = documentBName; documentB.id = documentBName; pkg.documents = new List<ESignLiveAPIObjects.Document>{document1,document2}; //add document //Send package One Step String packageId = sdk.createPackage(pkg,documentBlobMap); System.debug('PackageId: ' + packageId);
Définir la visibilité des documents par destinataire
Vous pouvez configurer chaque document de manière à ce que seul le signataire spécifié puisse voir ce document, ce qui permet de garantir que les documents contenant des informations de nature sensible ne sont consultés que par leurs destinataires.
Après avoir créé votre transaction, vous devrez créer votre objet DocumentVisibility et ajouter des configurations pour la visibilité de chacun en utilisant les ID de rôle définis dans la section précédente. Par exemple, role1.id = roleId1.
//configure documentVisibility DocumentVisibility documentVisibility = new DocumentVisibility() .addConfiguration(new DocumentVisibilityConfiguration('document1') .addRole('Signer1')) .addConfiguration(new DocumentVisibilityConfiguration('document2') .addRole('Signer2'));
Récupération d'une liste de signataires par document
Une fois que vous aurez défini ces configurations, vous pourrez alors récupérer la liste des signataires qui peuvent visualiser un document :
public List<ESignLiveAPIObjects.Role> getSigners(String packageId, String documentId)
De même, vous pouvez récupérer une liste de documents qu'un signataire peut consulter :
public List<ESignLiveAPIObjects.Document> getDocuments(String packageId, String roleId)
Définition de la visibilité et envoi de la transaction
Finalement, vous définissez la visibilité de vos documents et envoyez votre transaction à l'aide du client OneSpan Sign :
configureDocumentVisibility(packageId, documentVisibility); sdk.setStatus(packageId , ESignLiveAPIObjects.PackageStatus.SENT);
Résultats
Chaque destinataire ne verra que le document qui lui a été attribué.