--- title: "Données de transaction personnalisées" slug: "custom-transaction-data" updated: 2025-03-02T08:06:21Z published: 2025-03-02T08:06:21Z canonical: "docs.onespan.com/custom-transaction-data" --- > ## 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. # Données de transaction personnalisées [SDK Java](/v1/docs/fr/custom-transaction-data#sdk-java) [.NET SDK](/v1/docs/fr/custom-transaction-data#net-sdk) [API REST](/v1/docs/fr/custom-transaction-data#api-rest) [APEX SDK](/v1/docs/fr/custom-transaction-data#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/package-attributes-java-sdk/). Les attributs de document sont des données personnalisées liées à un document dans une transaction, ou à toutes les données dans une transaction. Ces données ne sont pas interprétées par OneSpan Sign. En tant que tels, les utilisateurs de ces données sont libres de stocker et d'interpréter les données qu'ils souhaitent. Les données personnalisées peuvent également être appliquées au niveau de la transaction. Pour obtenir plus d'informations, consultez [Attributs du document](/v1/docs/fr/custom-document-data). Le code suivant vous montre comment modifier votre objet DocumentPackage pour ajouter des attributs de paquet. ```java DocumentPackage superDuperPackage1 = newPackageNamed("Policy " + new SimpleDateFormat("HH:mm:ss").format(new Date()))    .describedAs("This is a package created using the e-SignLive SDK")    .expiresAt(new Date())    .withEmailMessage("This message should be delivered to all signers")    .withSigner(newSignerWithEmail("signer1@xyz.com")        .withCustomId("Client1")        .withFirstName("John")        .withLastName("Smith")        .withTitle("Managing Director")        .withCompany("Acme Inc."))    .withDocument(newDocumentWithName("First Document")        .fromStream(new java.io.FileInputStream(DOCUMENT_PATH), DocumentType.PDF)        .withSignature(signatureFor("signer1@xyz.com")            .onPage(0)            .withField(FieldBuilder.checkBox()                .onPage(0)                .atPosition(400, 200)                .withValue("x"))            .atPosition(100, 100)))    .withAttributes(newDocumentPackageAttributes()        .withAttribute("First Name", "Bill")        .withAttribute("Last Name", "Johnson")        .withAttribute("Signing Order", "1")        .build())    .build(); ``` ### Récupération de vos attributs Les attributs sont définis au niveau de la transaction. Pour récupérer vos attributs, vous devez d'abord récupérer votre transaction. Puis, avec votre DocumentPackage utilisez les getAttributes() et getContents() pour récupérer vos attributs. Les attributs vous seront rendus sous forme de carte. ```java DocumentPackage retrievedPackage = eslClient.getPackage(packageId); Map attributes = retrievedPackage.getAttributes().getContents(); for (Map.Entry entry : attributes.entrySet()) {    System.out.println(entry.getKey() + ": " + entry.getValue()); } ``` ### Résultats Voici un exemple de ce que vous pouvez vous attendre à voir une fois que vous aurez exécuté votre code. ![3](https://cdn.document360.io/038f59a7-abd0-4c14-9de7-3434d28b49fd/Images/Documentation/3-300x70(1).png?sv=2026-02-06&spr=https&st=2026-11-13T10%3A25%3A14Z&se=2026-11-13T11%3A25%3A14Z&sr=c&sp=r&sig=7X56NtY%2FJzyXevPcApXkjCxIs4hVb1okJFyH8%2FsGdM0%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/package-attributes-net-sdk/). Les attributs de document sont des données personnalisées liées à un document dans une transaction, ou à toutes les données dans une transaction. Ces données ne sont pas interprétées par OneSpan Sign. En tant que tels, les utilisateurs de ces données sont libres de stocker et d'interpréter les données qu'ils souhaitent. Les données personnalisées peuvent également être appliquées au niveau de la transaction. Pour obtenir plus d'informations, consultez [Attributs du document](/v1/docs/fr/custom-document-data). Le code suivant vous montre comment modifier votre objet DocumentPackage pour ajouter des attributs de paquet. ```csharp DocumentPackage superDuperPackage = PackageBuilder    .NewPackageNamed("Policy " + DateTime.Now)    .DescribedAs("This is a package created using the e-SignLive SDK")    .ExpiresOn(DateTime.Now.AddMonths(1))    .WithEmailMessage("This message should be delivered to all signers")    .WithSigner(SignerBuilder        .NewSignerWithEmail("john.smith@example.com")        .WithCustomId("Client1")        .WithFirstName("John")        .WithLastName("Smith")        .WithTitle("Managing Director")        .WithCompany("Acme Inc."))    .WithDocument(DocumentBuilder        .NewDocumentNamed("First Document")        .FromFile(@"C:/Users/hhaidary/Desktop/pdf/doc1.pdf")        .WithSignature(SignatureBuilder            .SignatureFor("john.smith@example.com")            .OnPage(0)            .WithField(FieldBuilder                .CheckBox()                .OnPage(0)                .AtPosition(400, 200)                .WithValue("x"))            .AtPosition(100, 100)))    .WithAttributes(new DocumentPackageAttributesBuilder()        .WithAttribute("First Name", "Bill")        .WithAttribute("Last Name", "Johnson")        .WithAttribute("Signing Order", "1")        .Build())    .Build(); ``` ### Récupération de vos attributs Les attributs sont définis au niveau de la transaction. Pour récupérer vos attributs, vous devez d'abord récupérer votre transaction. Puis, avec votre DocumentPackage utilisez les getAttributes() et getContents() pour récupérer vos attributs. Les attributs vous seront rendus sous forme de carte. ```csharp DocumentPackage retrievedPackage = eslClient.GetPackage(packageId); IDictionary < string, Object > attributes = retrievedPackage.Attributes.Contents; foreach(KeyValuePair < string, Object > entry in attributes) { Debug.WriteLine(entry.Key + ": " + entry.Value); } ``` ### Résultats Voici un exemple de ce que vous pouvez vous attendre à voir une fois que vous aurez exécuté votre code. ![3](https://cdn.document360.io/038f59a7-abd0-4c14-9de7-3434d28b49fd/Images/Documentation/custom_data(1).png?sv=2026-02-06&spr=https&st=2026-11-13T10%3A25%3A14Z&se=2026-11-13T11%3A25%3A14Z&sr=c&sp=r&sig=7X56NtY%2FJzyXevPcApXkjCxIs4hVb1okJFyH8%2FsGdM0%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/package-attributes-rest-api/). Les attributs de document sont des données personnalisées liées à un document dans une transaction, ou à toutes les données dans une transaction. Ces données ne sont pas interprétées par OneSpan Sign. En tant que tels, les utilisateurs de ces données sont libres de stocker et d'interpréter les données qu'ils souhaitent. Les données personnalisées peuvent également être appliquées au niveau de la transaction. Pour obtenir plus d'informations, consultez [Attributs du document](/v1/docs/fr/custom-document-data). Le code suivant vous montre comment modifier votre objet DocumentPackage pour ajouter des attributs de paquet. #### 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" { "documents": [{ "approvals": [{ "id": "ExampleSignatureId", "role": "Signer1", "fields": [{ "page": 0, "top": 200, "subtype": "LABEL", "height": 50, "left": 100, "width": 200, "id": "myLabelField", "type": "INPUT", "value": "Example label field value" }, { "page": 0, "top": 100, "subtype": "FULLNAME", "height": 50, "left": 100, "width": 200, "type": "SIGNATURE", "name": "ExampleSignatureId" }], "name": "" }], "id": "sample-contract", "name": "Test Document" }], "status": "DRAFT", "type": "PACKAGE", "roles": [{ "id": "Signer1", "type": "SIGNER", "signers": [{ "email": "signer@example.com", "firstName": "John", "lastName": "Smith", "id": "Signer1" }], "name": "Signer1" }], "name": "Example Package", "data": { "First Name": "Bill", "Last Name": "Johnson", "Signing Order": "1" } }-- -- --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=" }   ``` Les attributs sont définis au niveau du paquet. Par conséquent, vous devrez obtenir votre paquet JSON afin de récupérer les attributs de votre paquet. ### Résultats Voici un exemple de ce que vous pouvez vous attendre à voir une fois que vous aurez exécuté votre code. ![3](https://cdn.document360.io/038f59a7-abd0-4c14-9de7-3434d28b49fd/Images/Documentation/custom_data(2).png?sv=2026-02-06&spr=https&st=2026-11-13T10%3A25%3A14Z&se=2026-11-13T11%3A25%3A14Z&sr=c&sp=r&sig=7X56NtY%2FJzyXevPcApXkjCxIs4hVb1okJFyH8%2FsGdM0%3D) ### Tableau des données utiles de la demande | Propriété | Type | Modifiable | Requis | Par défaut | Valeur(s) de l'exemple | | --- | --- | --- | --- | --- | --- | | statut | chaîne de caractères | Oui | Non | ÉBAUCHE | ÉBAUCHE / ENVOYÉ / COMPLÉTÉ / ARCHIVÉ / DÉCLINÉ / REFUSÉ / EXPIRÉ | | 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. | Exemple d'attributs de document | | documents | | | | | | | nom | chaîne de caractères | Oui | Non | s.o. | exemple de document | | id | chaîne de caractères | Oui | Non | s.o. | exemple-contrat | | 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 | | id | chaîne de caractères | Oui | Non | s.o. | ExampleSignatureId | | rôles | | | | | | | id | chaîne de caractères | Oui | Non | s.o. | Client1 | | nom | chaîne de caractères | Oui | Non | s.o. | Client1 | | type | chaîne de caractères | Oui | Non | SIGNER | SIGNATAIRE / EXPÉDITEUR | | signataires | | | | | | | courriel | chaîne de caractères | Oui | Oui | s.o. | courriel.préparateur@exemple.com | | Prénom | chaîne de caractères | Oui | Oui | s.o. | John | | Nom de famille | chaîne de caractères | Oui | Oui | s.o. | Smith | | 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. | Client1 | | 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 | | données | | | | | | | Prénom | chaîne de caractères | Oui | Non | s.o. | Bill | | Nom de famille | chaîne de caractères | Oui | Non | s.o. | Johnson | | Ordre de signature | chaîne de caractères | Oui | Non | s.o. | 1 | ## 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/package-attributes-apex-sdk/). Les attributs de document sont des données personnalisées liées à un document dans une transaction, ou à toutes les données dans une transaction. Ces données ne sont pas interprétées par OneSpan Sign. En tant que tels, les utilisateurs de ces données sont libres de stocker et d'interpréter les données qu'ils souhaitent. La première étape consiste à créer un paquet Si vous avez besoin d'une comparaison avec la procédure de création d'objets de base, ou si c'est la première fois que vous créez une transaction, consultez la rubrique [](https://developer.esignlive.com/guides/quick-start/creating-and-sending-a-package-net/)[Création et envoi d'une transaction](/v1/docs/fr/creating-and-sending-a-transaction). Une fois que vous avez récupéré l'ID de votre paquet, utilisez la fonction encapsulée suivante pour passer l'ID du paquet et les attributs d'un mappage comme paramètres. ```plaintext  public void addAttributes(String packageId, Map attributes)   ``` ### Récupération de vos attributs Utilisez le code suivant pour récupérer vos attributs au niveau d'un paquet. Ces attributs sont transmis sous forme de carte, à l'aide de la fonction PackageID. ```plaintext public Map getAttributes(String packageId)   ``` ### Résultats Voici un exemple de ce que vous pouvez vous attendre à voir une fois que vous aurez exécuté votre code. ![Capture](https://cdn.document360.io/038f59a7-abd0-4c14-9de7-3434d28b49fd/Images/Documentation/package-attributes-1(1).png?sv=2026-02-06&spr=https&st=2026-11-13T10%3A25%3A14Z&se=2026-11-13T11%3A25%3A14Z&sr=c&sp=r&sig=7X56NtY%2FJzyXevPcApXkjCxIs4hVb1okJFyH8%2FsGdM0%3D)