--- title: "Configuration de la visibilité des documents" slug: "configuring-document-visibility" updated: 2025-02-27T05:52:46Z published: 2025-02-27T05:52:46Z canonical: "docs.onespan.com/configuring-document-visibility" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.onespan.com/llms.txt > Use this file to discover all available pages before exploring further. # Configuration de la visibilité des documents [SDK Java](/v1/docs/fr/configuring-document-visibility#sdk-java) [.NET SDK](/v1/docs/fr/configuring-document-visibility#net-sdk) [API REST](/v1/docs/fr/configuring-document-visibility#api-rest) [APEX SDK](/v1/docs/fr/configuring-document-visibility#apex-sdk) ## SDK Java Pour télécharger l'exemple complet de code, consultez notre site [Partage de code](https://community.onespan.com/documentation/onespan-sign/codeshare/set-document-visibility-java-sdk/). Vous pouvez également voir cette fonctionnalité dans notre [démonstration interactive.](https://secure.onespan.com/interactive-demo.html) 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 : ```java 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("mail31@example.com")        .withCustomId(SIGNER1_ID)        .withFirstName("John1")        .withLastName("Smith1"))    .withSigner(SignerBuilder.newSignerWithEmail("mail32@example.com")        .withCustomId(SIGNER2_ID)        .withFirstName("John2")        .withLastName("Smith2"))    .withDocument(DocumentBuilder.newDocumentWithName("Document1")        .withId(DOC1_ID)        .fromFile(DOC_FILE_PATH_1)        .withSignature(SignatureBuilder.signatureFor("mail31@example.com")            .onPage(0)            .atPosition(100, 100)))    .withDocument(DocumentBuilder.newDocumentWithName("Document2")        .withId(DOC2_ID)        .fromFile(DOC_FILE_PATH_2)        .withSignature(SignatureBuilder.signatureFor("mail32@example.com")            .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). ```java 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 : ```java 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 : ```java List signersForDocument1 = eslClient.getSigners(packageId, DOC1_ID); ``` De même, vous pouvez récupérer une liste de documents qu'un signataire peut consulter : ```java List 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 : ```java eslClient.configureDocumentVisibility(packageId, visibility); eslClient.sendPackage(packageId); ``` ### Résultats Chaque destinataire ne verra que le document qui lui a été attribué. ## .NET SDK Pour télécharger l'exemple complet de code, consultez notre site [Partage de code](https://community.onespan.com/documentation/onespan-sign/codeshare/set-document-visibility-net-sdk/). Vous pouvez également voir cette fonctionnalité dans notre [démonstration interactive.](https://secure.onespan.com/interactive-demo.html) 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 : ```csharp DocumentPackage superDuperPackage = PackageBuilder    .NewPackageNamed("DocumentVisibilityExample " + DateTime.Now)    .DescribedAs("This is a package created using the OneSpan Sign SDK")    .WithSigner(        SignerBuilder.NewSignerWithEmail("mail31@example.com")            .WithCustomId(SIGNER1_ID)            .WithFirstName("John1")            .WithLastName("Smith1")    )    .WithSigner(        SignerBuilder.NewSignerWithEmail("mail32@example.com")            .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("mail31@example.com")                    .OnPage(0)                    .AtPosition(100, 100)            )    )    .WithDocument(        DocumentBuilder.NewDocumentNamed("Document2")            .WithId(DOC2_ID)            .FromFile("C:/Users/hhaidary/Desktop/PDFs/cleaning_contract.pdf")            .WithSignature(                SignatureBuilder.SignatureFor("mail32@example.com")                    .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). ```csharp 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 : ```csharp 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 : ```csharp IList signersForDocument1 = eslClient.GetSigners(packageId, DOC1_ID); ``` De même, vous pouvez récupérer une liste de documents qu'un signataire peut consulter : ```csharp IList 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 : ```csharp eslClient.ConfigureDocumentVisibility(packageId, visibility); eslClient.SendPackage(packageId); ``` ### Résultats Chaque destinataire ne verra que le document qui lui a été attribué. ## API REST Pour télécharger l'exemple complet de code, consultez notre site [Partage de code](https://community.onespan.com/documentation/onespan-sign/codeshare/set-document-visibility-java-sdk/). Vous pouvez également voir cette fonctionnalité dans notre [démonstration interactive.](https://secure.onespan.com/interactive-demo.html) 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 ```http POST /api/packages ``` #### En-têtes HTTP ```http  Accept: application/json   Content-Type: multipart/form-data   Authorization: Basic api_key ``` #### Données utiles de la demande ```json ------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": "mail31@example.com",                      "firstName": "John1",                      "id": "Signer1",                      "lastName": "Smith1"                  }              ]          },          {              "id": "Signer2",              "index": 0,              "name": "Signer2",              "signers": [                  {                      "email": "mail32@example.com",                      "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 ```json {   "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 ```http Accept: application/json Content-Type: application/json Authorization: Basic api_key ``` ```json {    "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 : ```json {      "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. | courriel31@exemple.com | | 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 | ## APEX SDK Pour télécharger l'exemple complet de code, consultez notre site [](https://community.onespan.com/documentation/onespan-sign/codeshare/document-operations-example-java-sdk/)[Partage de code](https://community.onespan.com/documentation/onespan-sign/codeshare/set-document-visibility-apex-sdk/). Vous pouvez également voir cette fonctionnalité dans notre [démonstration interactive.](https://secure.onespan.com/interactive-demo.html) 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 : ```plaintext 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', 'signer1@example.com', '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', 'signer2@example.com', 'Applicant', 'ABC Company' ); role2.id = roleId2; role2.name = roleId2; pkg.roles = new List{ role1, role2 }; // Add roles // 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 documentBlobMap = new Map(); documentBlobMap.put(document1Name, sr.Body); documentBlobMap.put(document2Name, sr.Body); // Create Document Metadata ESignLiveAPIObjects.Document document1 = new ESignLiveAPIObjects.Document(); document1.name = document1Name; document1.id = document1Name; ESignLiveAPIObjects.Document document2 = new ESignLiveAPIObjects.Document(); document2.name = document2Name; document2.id = document2Name; pkg.documents = new List{ document1, document2 }; // Add documents // 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. ```plaintext // Configure document visibility 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 : ```plaintext public List getSigners(String packageId, String documentId) ``` De même, vous pouvez récupérer une liste de documents qu'un signataire peut consulter : ```plaintext public List 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 : ```plaintext  configureDocumentVisibility(packageId, documentVisibility);   sdk.setStatus(packageId , ESignLiveAPIObjects.PackageStatus.SENT); ``` ### Résultats Chaque destinataire ne verra que le document qui lui a été attribué.