--- title: "Bulk Signing for a Signer" slug: "bulk-signing-for-a-signer" updated: 2024-10-15T13:41:09Z published: 2024-10-15T13:41:09Z canonical: "docs.onespan.com/bulk-signing-for-a-signer" --- > ## 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. # Bulk Signing for a Signer [Java SDK](/v1/docs/bulk-signing-for-a-signer#java-sdk) [.NET SDK](/v1/docs/bulk-signing-for-a-signer#net-sdk) [REST API](/v1/docs/bulk-signing-for-a-signer#rest-api) [APEX SDK](/v1/docs/bulk-signing-for-a-signer#apex-sdk) ## Java SDK To download the full code sample see our [Code Share](https://community.onespan.com/documentation/onespan-sign/codeshare/bulk-sign-signer-java-sdk/) site. This feature allows you to automatically sign all documents in a transaction for a specified signer. This is done by passing that signer's ID, or by adding the signer's email as a parameter. The following code will do this: ```plaintext eslClient.signDocuments(packageId, "signerId"); ``` ### Results After running your code, if you login to OneSpan Sign and navigate to your transaction, you will see a check mark next to your signer, indicating that all signatures for that signer have been completed. ![](https://cdn.document360.io/038f59a7-abd0-4c14-9de7-3434d28b49fd/Images/Documentation/signers_allsigned.png?sv=2026-02-06&spr=https&st=2026-10-27T22%3A14%3A52Z&se=2026-10-27T23%3A14%3A52Z&sr=c&sp=r&sig=J%2Bp%2F4akU2bkx%2FnAXuAqi6nPQYAJc7CcUhRVgImEaWCs%3D) ## .NET SDK To download the full code sample see our [Code Share](https://community.onespan.com/documentation/onespan-sign/codeshare/bulk-sign-signer-net-sdk/) site. This feature allows you to automatically sign all documents in a transaction for a specified signer. This is done by passing that signer's ID, or by adding the signer's email as a parameter. The following code will do this: ```plaintext  eslClient.SignDocuments(packageId, "signerId");   ``` ### Results After running your code, if you login to OneSpan Sign and navigate to your transaction, you will see a check mark next to your signer, indicating that all signatures for that signer have been completed. ![](https://cdn.document360.io/038f59a7-abd0-4c14-9de7-3434d28b49fd/Images/Documentation/signers_allsigned.png?sv=2026-02-06&spr=https&st=2026-10-27T22%3A14%3A52Z&se=2026-10-27T23%3A14%3A52Z&sr=c&sp=r&sig=J%2Bp%2F4akU2bkx%2FnAXuAqi6nPQYAJc7CcUhRVgImEaWCs%3D) ## REST API To download the full code sample see our [Code Share](https://community.onespan.com/documentation/onespan-sign/codeshare/bulk-sign-signer-rest-api/) site. This feature allows you to automatically sign all documents in a transaction for a specified signer. After you have sent your package for signing, you will need to do the following: - [Create a signer authentication](/docs/bulk-signing-for-a-signer#Creating) - [Create a session token](/docs/bulk-signing-for-a-signer#Creating2) - [Create a JSON Payload with your document IDs](/docs/bulk-signing-for-a-signer#Creating3) - Sign all documents ### Creating a Signer Authentication The following code will do this: #### HTTP Request ```http POST /api/authenticationTokens/signer/multiUse ``` #### HTTP Headers ```http Accept: application/json   Content-Type: application/json   Authorization: Basic api_key ``` #### Request Payload ```json {  "packageId": "packageId",  "signerId": "signer1",  "sessionFields": {    "Bulk Signing on behalf of": "signer1"  },  "value": null } ``` For a complete description of each field, see the Request Payload table below. #### Response Payload ```json {  "packageId": "packageId",  "signerId": "signer1",  "sessionFields": {    "Bulk Signing on behalf of": "signer1"  },  "value": "ZDNmMDNiNGUtNGYxOC00YWZiLTkwMmUtNWE5YmIwZTRjZDg1" } ``` ### Creating a Session Token Once you have created a signer authentication token you will need to create session token using this authentication token. This session token will be used in the cookie header of the call to sign all documents. The following code will do this: #### HTTP Request ```http GET /auth?signerAuthenticationToken={signerAuthenticationToken} ``` #### HTTP Headers ```http Accept: application/json   Content-Type: application/json   Authorization: Basic api_key ``` ### Creating a JSON Payload with your document IDs Next, create a JSON payload containing the ids of the documents you want to sign. The following code will do this: ```json {  "documents": [    {      "id": "default-consent"    },    {      "id": "6489338764d20465"    }  ] } ``` ### Signing all documents Finally, you sign all the documents in your transaction on behalf of a signer. In this step, you will need to remove the Authorization header and add a Cookie header using the session token you created earlier. #### HTTP Request ```http POST /api/packages/{packageId}/documents/signed_documents ``` #### HTTP Headers ```http Accept: application/json   Content-Type: application/json   Cookie: ESIGNLIVE_SESSION_ID={sessionToken} ``` #### Request Payload ```json {  "documents": [    {      "id": "default-consent"    },    {      "id": "6489338764d20465"    }  ] } ``` ### Results After running your code, if you login to OneSpan Sign and navigate to your transaction, you will see a check mark next to your signer, indicating that all signatures for that signer have been completed. ![](https://cdn.document360.io/038f59a7-abd0-4c14-9de7-3434d28b49fd/Images/Documentation/signers_allsigned.png?sv=2026-02-06&spr=https&st=2026-10-27T22%3A14%3A52Z&se=2026-10-27T23%3A14%3A52Z&sr=c&sp=r&sig=J%2Bp%2F4akU2bkx%2FnAXuAqi6nPQYAJc7CcUhRVgImEaWCs%3D) ## APEX SDK To download the full code sample see our [Code Share](https://community.onespan.com/documentation/onespan-sign/codeshare/bulk-sign-signer-apex-sdk) site. This feature allows you to automatically sign all documents in a transaction for a specified signer. This is done by passing that signer's ID, or by adding the signer's email as a parameter. The following code will do this: ```plaintext public void signDocuments(String packageId, String signerId) ``` Finally, you can execute this function in Execute Anonymous Window from Developer Console and type in: ```plaintext new TestBulkSignForSigner().signDocuments('packageId'); ``` ### Results After running your code, if you login to OneSpan Sign and navigate to your transaction, you will see a check mark next to your signer, indicating that all signatures for that signer have been completed. ![](https://cdn.document360.io/038f59a7-abd0-4c14-9de7-3434d28b49fd/Images/Documentation/signers_allsigned.png?sv=2026-02-06&spr=https&st=2026-10-27T22%3A14%3A52Z&se=2026-10-27T23%3A14%3A52Z&sr=c&sp=r&sig=J%2Bp%2F4akU2bkx%2FnAXuAqi6nPQYAJc7CcUhRVgImEaWCs%3D)