--- title: "Gestion des pièces jointes des signataires" slug: "managing-signers-attachments" updated: 2025-04-21T14:03:47Z published: 2025-04-21T14:03:47Z canonical: "docs.onespan.com/managing-signers-attachments" --- > ## 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. # Gestion des pièces jointes des signataires [SDK Java](/v1/docs/fr/managing-signers-attachments#sdk-java) [.NET SDK](/v1/docs/fr/managing-signers-attachments#net-sdk) [API REST](/v1/docs/fr/managing-signers-attachments#api-rest) [APEX SDK](/v1/docs/fr/managing-signers-attachments#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/requesting-attachments-java-sdk/). OneSpan Sign offre la possibilité aux signataires de téléverser des pièces jointes pendant le processus de signature. Les expéditeurs peuvent examiner la pièce jointe fournie et marquer la transaction comme complète. Cette rubrique décrit comment un expéditeur peut demander au signataire de téléverser une pièce jointe à la transaction. ### Création d'une demande de pièce jointe Le code suivant décrit comment modifier votre bloc signataire pour demander un fichier joint. La méthode withDescription() vous permet de fournir au signataire une description du téléversement de fichier que vous demandez. La méthode isRequiredAttachment() définit que la pièce jointe est obligatoire. Aucun de ces éléments n'est obligatoire lors de la construction de votre objet AttachmentRequirement. ```java .withSigner(newSignerWithEmail("john.doe@gmail.com") .withFirstName("John") .withLastName("Doe") .withCustomId("Signer1") .withAttachmentRequirement(newAttachmentRequirementWithName("Driver's license") .withDescription("Please upload a copy of your driver’s license.") .isRequiredAttachment() .build())) ``` ### Statut des pièces jointes Vous pouvez souhaiter faire la requête du statut de chaque pièce jointe dans votre transaction. Le code suivant va parcourir en boucle chaque objet AttachmentRequirement et imprimera le nom, le statut et l'identifiant de chaque pièce jointe demandée pour le signataire spécifié. ```java DocumentPackage myPackage = client.getPackage(packageId); List signer1Attachments = myPackage.getSigner("john.doe@gmail.com").getAttachmentRequirements(); for(AttachmentRequirement attachment : signer1Attachments){      System.out.println(attachment.getName() + " " + attachment.getStatus() + " " + attachment.getId()); } ``` ### Téléchargement des pièces jointes Les pièces jointes peuvent être téléchargées des façons suivantes : - En tant que pièce jointe unique. Cela nécessite l'identifiant de la pièce jointe. - Dans un paquet qui comprend toutes les pièces jointes. - Dans un paquet qui comprend toutes les pièces jointes d'un signataire spécifié. Le code suivant permet d'effectuer ce qui suit : ```java //Download individual attachment DownloadedFile downloadedAttachment = client.getAttachmentRequirementService().downloadAttachmentFile(packageId, attachmentId); Files.saveTo(downloadedAttachment.getContents(), downloadedAttachment.getFilename()); //Download all attachments in package     DownloadedFile downloadedAllAttachmentsForPackage = client.getAttachmentRequirementService().downloadAllAttachmentFilesForPackage(packageId); Files.saveTo(downloadedAllAttachmentsForPackage.getContents(), "downloadedAllAttachmentsForPackage.zip"); //Download all attachments for signer in package         DownloadedFile downloadedAllAttachmentsForSigner1InPackage = client.getAttachmentRequirementService().downloadAllAttachmentFilesForSignerInPackage(myPackage, signer1); Files.saveTo(downloadedAllAttachmentsForSigner1InPackage.getContents(), "downloadedAllAttachmentsForSigner.zip"); ``` ### Examen des pièces jointes Après avoir examiné la pièce jointe, vous pouvez la refuser ou l'accepter. Si vous refusez la pièce jointe, vous pouvez également inclure un petit message expliquant pourquoi la pièce jointe a été refusée. Le code suivant permet d'effectuer ce qui suit : ```java client.getAttachmentRequirementService() .rejectAttachment(packageId, signer1, "Driver's license", "Expired driver's license"); ``` Il est important de noter que les transactions qui nécessitent des pièces jointes ne seront pas complétées automatiquement. L'expéditeur a ainsi la possibilité d'examiner la pièce jointe et de l'accepter ou de la refuser. Si toutes les pièces jointes requises ont été téléversées et approuvées, vous pouvez compléter le paquet en mettant à jour le statut de votre paquet à COMPLÉTÉ. Le code suivant permet d'effectuer ce qui suit : ```java DocumentPackage myPackage = client.getPackage(packageId); myPackage.setStatus(PackageStatus.COMPLETED); client.updatePackage(packageId, myPackage); ``` ### Résultats Une fois que vous aurez terminé cette procédure, les documents requis seront énumérés avec chaque destinataire. ![joindre](https://cdn.document360.io/038f59a7-abd0-4c14-9de7-3434d28b49fd/Images/Documentation/attachments%20required.png?sv=2026-02-06&spr=https&st=2026-10-30T22%3A21%3A55Z&se=2026-10-30T23%3A21%3A55Z&sr=c&sp=r&sig=gsirXUyCEl%2BHeF29QNxHBF6iGBk8JoAbvYvEyA7lkds%3D) ## .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/requesting-attachments-net-sdk/). OneSpan Sign offre la possibilité aux signataires de téléverser des pièces jointes pendant le processus de signature. Les expéditeurs peuvent examiner la pièce jointe fournie et marquer la transaction comme complète. Cette rubrique décrit comment un expéditeur peut demander au signataire de téléverser une pièce jointe à la transaction. ### Création d'une demande de pièce jointe Le code suivant décrit comment modifier votre bloc signataire pour demander un fichier joint. La méthode withDescription() vous permet de fournir au signataire une description du téléversement de fichier que vous demandez. La méthode isRequiredAttachment() définit que la pièce jointe est obligatoire. Aucun de ces éléments n'est obligatoire lors de la construction de votre objet AttachmentRequirement. ```csharp .WithSigner(SignerBuilder.NewSignerWithEmail("john.doe@gmail.com")    .WithFirstName("John")    .WithLastName("Doe")    .WithCustomId("Signer1")    .WithAttachmentRequirement(AttachmentRequirementBuilder.NewAttachmentRequirementWithName("Driver's license")        .WithDescription("Please upload a copy of your driver’s license.")        .IsRequiredAttachment()        .Build())) ``` ### Statut des pièces jointes Vous pouvez souhaiter faire la requête du statut de chaque pièce jointe dans votre transaction. Le code suivant va parcourir en boucle chaque objet AttachmentRequirement et imprimera le nom, le statut et l'identifiant de chaque pièce jointe demandée pour le signataire spécifié. ```csharp DocumentPackage myPackage = client.GetPackage(packageId); IList signer1Attachments = myPackage.GetSigner("john.doe@gmail.com").Attachments; foreach (AttachmentRequirement attachment in signer1Attachments) {     Debug.WriteLine(attachment.Name + " " + attachment.Status + " " + attachment.Id); } ``` ### Téléchargement des pièces jointes Les pièces jointes peuvent être téléchargées des façons suivantes : - En tant que pièce jointe unique. Cela nécessite l'identifiant de la pièce jointe. - Dans un paquet qui comprend toutes les pièces jointes. - Dans un paquet qui comprend toutes les pièces jointes d'un signataire spécifié. Le code suivant permet d'effectuer ce qui suit : ```csharp //Download individual attachment DownloadedFile downloadedAttachment = client.AttachmentRequirementService.DownloadAttachmentFile(packageId, attachmentId); System.IO.File.WriteAllBytes(downloadedAttachment.Filename, downloadedAttachment.Contents); //Download all attachments in package DownloadedFile downloadedAllAttachmentsForPackage = client.AttachmentRequirementService.DownloadAllAttachmentFilesForPackage(packageId); System.IO.File.WriteAllBytes("downloadedAllAttachmentsForPackage.zip", downloadedAllAttachmentsForPackage.Contents); //Download all attachments for signer in package DownloadedFile downloadedAllAttachmentsForSigner1InPackage = client.AttachmentRequirementService.DownloadAllAttachmentFilesForSignerInPackage(myPackage, signer1); System.IO.File.WriteAllBytes("downloadedAllAttachmentsForSigner.zip", downloadedAllAttachmentsForSigner1InPackage.Contents); ``` ### Examen des pièces jointes Après avoir examiné la pièce jointe, vous pouvez la refuser ou l'accepter. Si vous refusez la pièce jointe, vous pouvez également inclure un petit message expliquant pourquoi la pièce jointe a été refusée. Le code suivant permet d'effectuer ce qui suit : ```csharp client.AttachmentRequirementService .RejectAttachment(packageId, signer1, "Driver's license", "Expired driver's license"); ``` Il est important de noter que les transactions qui nécessitent des pièces jointes ne seront pas complétées automatiquement. L'expéditeur a ainsi la possibilité d'examiner la pièce jointe et de l'accepter ou de la refuser. Si toutes les pièces jointes requises ont été téléversées et approuvées, vous pouvez compléter le paquet en mettant à jour le statut de votre paquet à COMPLÉTÉ. Le code suivant permet d'effectuer ce qui suit : ```csharp DocumentPackage myPackage = eslClient.GetPackage(packageId); myPackage.Status = DocumentPackageStatus.COMPLETED; eslClient.UpdatePackage(packageId, myPackage); ``` ### Résultats Une fois que vous aurez terminé cette procédure, les documents requis seront énumérés avec chaque destinataire. ![joindre](https://cdn.document360.io/038f59a7-abd0-4c14-9de7-3434d28b49fd/Images/Documentation/attachments%20required(1).png?sv=2026-02-06&spr=https&st=2026-10-30T22%3A21%3A55Z&se=2026-10-30T23%3A21%3A55Z&sr=c&sp=r&sig=gsirXUyCEl%2BHeF29QNxHBF6iGBk8JoAbvYvEyA7lkds%3D) ## 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/requesting-attachments-rest-api/). OneSpan Sign offre la possibilité aux signataires de téléverser des pièces jointes pendant le processus de signature. Les expéditeurs peuvent examiner la pièce jointe fournie et marquer la transaction comme complète. Cette rubrique décrit comment un expéditeur peut demander au signataire de téléverser une pièce jointe à la transaction. ### Création d'une demande de pièce jointe Le code suivant décrit comment ajouter un destinataire avec une exigence de pièce jointe. #### Requête HTTP ```http POST /api/packages/{packageId}/roles ``` #### En-têtes HTTP ```http Accept: application/json Content-Type: application/json Authorization: Basic api_key ``` #### Données utiles de la demande ```json {  "id": "client",  "type": "SIGNER",  "index": 1,  "attachmentRequirements": [    {      "description": "Please upload a scanned copy of your driver's license.",      "required": true,      "id": "lD6p5QnWk905",      "status": "INCOMPLETE",      "comment": "",      "name": "Driver's license"    }  ],  "signers": [    {      "firstName": "John",      "lastName": "Smith",      "email": "john.smith@gmail.com"    }  ],  "name": "client" } ``` 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": "client",    "data": null,    "emailMessage": null,    "attachmentRequirements": [        {            "status": "INCOMPLETE",            "description": "Please upload a scanned copy of your driver's license.",            "required": true,            "id": "1JMGfs9xRDoD",            "comment": "",            "name": "Driver's license",            "data": null        }    ],    "locked": false,    "reassign": false,    "specialTypes": [],    "index": 1,    "type": "SIGNER",    "signers": [        {            "group": null,            "language": "en",            "signature": null,            "id": "fe666c24-c18d-4d93-bbb7-2b1a6ce8332e",            "auth": {                "scheme": "NONE",                "challenges": []            },            "data": null,            "title": "",            "external": null,            "updated": "2017-10-19T18:18:37Z",            "company": "",            "email": "john.smith@gmail.com",            "firstName": "John",            "lastName": "Smith",            "phone": "",            "professionalIdentityFields": [],            "userCustomFields": [],            "knowledgeBasedAuthentication": null,            "delivery": {                "provider": false,                "email": false,                "download": false            },            "address": null,            "created": "2017-10-19T18:18:37Z",            "name": "",            "specialTypes": []        }    ],    "name": "client" } ``` ### Téléchargement des pièces jointes Les pièces jointes peuvent être téléchargées des façons suivantes : - En tant que pièce jointe unique. Cela nécessite l'identifiant de la pièce jointe. - Dans un paquet qui comprend toutes les pièces jointes. - Dans un paquet qui comprend toutes les pièces jointes d'un signataire spécifié. Pour télécharger une pièce jointe individuelle, vous aurez besoin de l'identifiant du paquet et de la pièce jointe. Le code suivant permet d'effectuer ce qui suit : #### Requête HTTP ```http GET /api/packages/{packageId}/attachment/{attachmentId} ``` #### En-têtes HTTP ```http Accept: application/octet-stream Content-Type: application/octet-stream Authorization: Basic api_key ``` **Données utiles de la réponse** ```json [document.pdf] ``` Vous pouvez également télécharger toutes les pièces jointes sous forme de fichier compressé dans un paquet. Le code suivant permet d'effectuer ce qui suit : #### Requête HTTP ```http GET /api/packages/{packageId}/attachment/zip ``` #### En-têtes HTTP ```http Accept: application/zip Content-Type: application/zip Authorization: Basic api_key ``` **Données utiles de la réponse** ```json [document.zip] ``` Pour télécharger toutes les pièces jointes sous forme de fichier compressé pour un signataire particulier, vous ferez votre demande auprès de : #### Requête HTTP ```http GET /api/packages/{packageId}/attachment/zip/{roleId} ``` #### En-têtes HTTP ```http Accept: application/zip Content-Type: application/zip Authorization: Basic api_key ``` ```json [document.zip] ``` ### Examen des pièces jointes Après avoir examiné la pièce jointe, vous pouvez la refuser ou l'accepter. Si vous refusez la pièce jointe, vous pouvez également inclure un petit message expliquant pourquoi la pièce jointe a été refusée. Le code suivant permet d'effectuer ce qui suit : #### Requête HTTP ```http PUT /api/packages/{packageId}/roles/{roleId} ``` #### En-têtes HTTP ```http Accept: application/json Content-Type: application/json Authorization: Basic api_key ``` #### Données utiles de la demande ```json {  "attachmentRequirements": [    {      "id": "q66CYiDrxTU1",      "status": "REJECTED",      "comment": "Invalid copy."    }  ] } ``` Le` attachmentID` fait référence à l’ID de pièce jointe généré par OneSpan Sign, qui peut être récupéré en effectuant un appel GET à `/api/package/{packageID}{}.` Notez que s’il existe plusieurs rôles, ou si plusieurs pièces jointes sont associées à un rôle, vous devrez passer en revue chaque rôle et ses exigences de pièce jointe associées pour récupérer les ID de pièce jointe. Il est important de noter que les transactions qui nécessitent des pièces jointes ne seront pas complétées automatiquement. L'expéditeur a ainsi la possibilité d'examiner la pièce jointe et de l'accepter ou de la refuser. Si toutes les pièces jointes requises ont été téléversées et approuvées, vous pouvez compléter le paquet en mettant à jour le statut de votre paquet à COMPLÉTÉ. Le code suivant permet d'effectuer ce qui suit : #### Requête HTTP ```http PUT /api/packages/{packageId}/ ``` #### En-têtes HTTP ```http Accept: application/json Content-Type: application/json Authorization: Basic api_key ``` #### Données utiles de la demande ```json {    "status" : "COMPLETED" } ``` ### Résultats Une fois que vous aurez terminé cette procédure, les documents requis seront énumérés avec chaque destinataire. ![joindre](https://cdn.document360.io/038f59a7-abd0-4c14-9de7-3434d28b49fd/Images/Documentation/attachments%20required(2).png?sv=2026-02-06&spr=https&st=2026-10-30T22%3A21%3A55Z&se=2026-10-30T23%3A21%3A55Z&sr=c&sp=r&sig=gsirXUyCEl%2BHeF29QNxHBF6iGBk8JoAbvYvEyA7lkds%3D) **Tableau des propriétés JSON** | Propriété | Type | Modifiable | Requis | Par défaut | Exemples de valeurs | | --- | --- | --- | --- | --- | --- | | id | chaîne de caractères | Oui | Non | s.o. | client | | type | chaîne de caractères | Oui | Non | SIGNER | SIGNATAIRE / EXPÉDITEUR | | index | entier | Oui | Non | 0 | 0 / 1 / 2 ... | | nom | chaîne de caractères | Oui | Non | s.o. | client | | attachmentRequirements | | | | | | | description | chaîne de caractères | Oui | Non | s.o. | Veuillez télécharger une copie scannée de votre permis de conduire | | requis | booléen | Oui | Non | faux | faux / vrai | | id | chaîne de caractères | Oui | Non | s.o. | lD6p5QnWk905 | | statut | chaîne de caractères | Oui | Non | INCOMPLET | INCOMPLET / COMPLET / REJETÉ | | commentaire | chaîne de caractères | Oui | Non | s.o. | mauvais permis de conduire | | nom | chaîne de caractères | Oui | Non | s.o. | Permis de conduire | | signataires | | | | | | | Prénom | chaîne de caractères | Oui | Non | s.o. | John | | Nom de famille | chaîne de caractères | Oui | Non | s.o. | Smith | | courriel | chaîne de caractères | Oui | Non | s.o. | john.smith@gmail.com | ## APEX SDK Pour télécharger l'exemple complet de code, consultez notre site [Partage de code](https://community.onespan.com/documentation/onespan-sign/codeshare/requesting-attachments-apex-sdk/). OneSpan Sign offre la possibilité aux signataires de téléverser des pièces jointes pendant le processus de signature. Les expéditeurs peuvent examiner la pièce jointe fournie et marquer la transaction comme complète. Cette rubrique décrit comment un expéditeur peut demander au signataire de téléverser une pièce jointe à la transaction. ### Création d'une demande de pièce jointe Le code suivant décrit comment modifier votre bloc signataire pour demander un fichier joint. ```plaintext ESignLiveAPIObjects.Role role = new ESignLiveAPIObjects.Role(); ESignLiveAPIObjects.Signer signer = new ESignLiveAPIObjects.Signer(); signer.firstName = 'firstName'; signer.lastName = 'lastName'; signer.email = 'signer@example.com'; signer.name = 'signer1'; signer.id = 'signer1'; role.signers = new List{signer}; role.id = 'signer1'; role.attachmentRequirements = new ESignLiveAPIObjects.AttachmentRequirement(null, 'Please upload a copy of your driver\'s license.','attachment1','driver\'s license' ,true,null,null); ``` En outre, il y a deux fonctions encapsulées dans le partage de code : ```plaintext public ESignLiveAPIObjects.AttachmentRequirement createAttachmentRequirement(String id, String name, String description, Boolean isRequired) public ESignLiveAPIObjects.Role createRoleWithAttachmentRequest(String id, String firstName, String lastName, String email, List attachmentRequirements) ``` La méthode withDescription() vous permet de fournir au signataire une description du téléversement de fichier que vous demandez. La méthode isRequiredAttachment() définit que la pièce jointe est obligatoire. Aucun de ces éléments n'est obligatoire lors de la construction de votre objet AttachmentRequirement. La fonction createAttachmentRequirement() vous permet de fournir une description au signataire concernant le téléversement de fichier que vous demandez et si cette pièce jointe est requise. La fonction createRoleWithAttachmentRequest() fournit un moyen plus facile de créer un rôle avec une liste d'exigences d'attachement. ### Statut des pièces jointes Vous pouvez souhaiter faire la requête du statut de chaque pièce jointe dans votre transaction. Le code suivant va parcourir en boucle chaque objet AttachmentRequirement et imprimera le nom, le statut et l'identifiant de chaque pièce jointe demandée pour le signataire spécifié. ```plaintext ESignLiveSDK sdk = new ESignLiveSDK(); //retrieve attachments' status ESignLiveAPIObjects.Role retrievedRole1 = sdk.getRole(packageId,roleId); for(ESignLiveAPIObjects.AttachmentRequirement attachment: retrievedRole1.attachmentRequirements){     System.debug('Attachment: ' + attachment.id+ ' : ' + attachment.name + ' : ' + attachment.status);         } ``` L'extrait de code est encapsulé dans cette fonction : ```plaintext public void retrieveAttachmentsStatus(String packageId, String roleId) ``` ### Téléchargement des pièces jointes Les pièces jointes peuvent être téléchargées des façons suivantes : - En tant que pièce jointe unique. Cela nécessite l'identifiant de la pièce jointe. - Dans un paquet qui comprend toutes les pièces jointes. - Dans un paquet qui comprend toutes les pièces jointes d'un signataire spécifié. Le code suivant permet d'effectuer ce qui suit : ```plaintext //Download individual attachment Blob downloadAttachmentFile = downloadAttachmentFile('packageId','attachmentId'); //Download all attachments in package     Blob downloadAttachmentFilesForPackage = downloadAllAttachmentFilesForPackage('packageId'); //Download all attachments for signer in package         ESignLiveSDK sdk = new ESignLiveSDK(); String downloadAllAttachmentForSigner = sdk.downloadAllAttachmentFilesForSignerInPackage('packageId','roleId'); ``` ### Examen des pièces jointes Après avoir examiné la pièce jointe, vous pouvez la refuser ou l'accepter. Si vous refusez la pièce jointe, vous pouvez également inclure un petit message expliquant pourquoi la pièce jointe a été refusée. Le code suivant permet d'effectuer ce qui suit : ```plaintext public void acceptAttachment(String packageId, String roleId, String attachmentName) public void rejectAttachment(String packageId, String roleId, String attachmentName, String senderComment) ``` Il est important de noter que les transactions qui nécessitent des pièces jointes ne seront pas complétées automatiquement. L'expéditeur a ainsi la possibilité d'examiner la pièce jointe et de l'accepter ou de la refuser. Si toutes les pièces jointes requises ont été téléversées et approuvées, vous pouvez compléter le paquet en mettant à jour le statut de votre paquet à COMPLÉTÉ. Le code suivant permet d'effectuer ce qui suit : ```plaintext ESignLiveAPIObjects.Package_x pkg = sdk.getPackage(packageId); pkg.status = ESignLiveAPIObjects.PackageStatus.COMPLETED; sdk.updatePackage(pkg,packageId);   ``` ### Résultats Une fois que vous aurez terminé cette procédure, les documents requis seront énumérés avec chaque destinataire. ![joindre](https://cdn.document360.io/038f59a7-abd0-4c14-9de7-3434d28b49fd/Images/Documentation/attachments%20required(3).png?sv=2026-02-06&spr=https&st=2026-10-30T22%3A21%3A55Z&se=2026-10-30T23%3A21%3A55Z&sr=c&sp=r&sig=gsirXUyCEl%2BHeF29QNxHBF6iGBk8JoAbvYvEyA7lkds%3D)