--- title: "Delivering Signed Documents" slug: "delivering-signed-documents" updated: 2026-11-05T19:41:27Z published: 2026-11-05T19:41:27Z canonical: "docs.onespan.com/delivering-signed-documents" --- > ## 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. # Delivering Signed Documents [Java SDK](/v1/docs/delivering-signed-documents#java-sdk) [.NET SDK](/v1/docs/delivering-signed-documents#net-sdk) [REST API](/v1/docs/delivering-signed-documents#rest-api) [APEX SDK](/v1/docs/delivering-signed-documents#apex-sdk) ## Java SDK To download the full code sample see our [Code Share](https://github.com/eSignLive/esl.sdk.java/blob/master/sdk/src/main/java/com/silanis/esl/sdk/examples/DeliverSignedDocumentsByEmailExample.java) site. Once a transaction has been completed, you can automatically deliver the signed documents to your signers. The following code will do this: ```java // Create a new document package with a specified name DocumentPackage superDuperPackage = newPackageNamed(getPackageName())    // Add a signer with email, first name, and last name, and set to deliver signed documents by email    .withSigner(newSignerWithEmail("john.smith@example.com")        .withFirstName("John")        .withLastName("Smith")        .deliverSignedDocumentsByEmail())    // Add a document with a name, input stream, and signature details    .withDocument(newDocumentWithName("First Document")        .fromStream(documentInputStream1, DocumentType.PDF)        .withSignature(signatureFor("john.smith@example.com")            .onPage(0)            .atPosition(100, 100)))    // Build the document package    .build(); ``` ### Results Once you've sent your package for signing and the transaction, each of your signers will receive an emails with a link to the signed documents. Documents are normally included in the signing complete email as an attached zip file. If you would like to have these documents delivered as individual files, contact our [Support Team](https://www.onespan.com/support). ## .NET SDK To download the full code sample see our [Code Share](https://github.com/eSignLive/esl.sdk.net/blob/master/sdk/SDK.Examples/src/DeliverSignedDocumentsByEmailExample.cs) site. Once a transaction has been completed, you can automatically deliver the signed documents to your signers. The following code will do this: ```csharp // Create a new document package with a specified name and description DocumentPackage package = PackageBuilder.NewPackageNamed(PackageName)    .DescribedAs("This is a new package")    // Add a signer with email, first name, last name, and set to deliver signed documents by email    .WithSigner(SignerBuilder.NewSignerWithEmail(email1)        .WithFirstName("John")        .WithLastName("Smith")        .DeliverSignedDocumentsByEmail())    // Add a document with a name, input stream, and signature details    .WithDocument(DocumentBuilder.NewDocumentNamed("My Document")        .FromStream(fileStream1, DocumentType.PDF)        .WithSignature(SignatureBuilder.SignatureFor(email1)            .OnPage(0)            .AtPosition(100, 100)))    // Build the document package    .Build(); ``` ### Results Once you've sent your package for signing and the transaction, each of your signers will receive an emails with a link to the signed documents. Documents are normally included in the signing complete email as an attached zip file. If you would like to have these documents delivered as individual files, contact our [Support Team](https://www.onespan.com/support). ## REST API To download the full code sample see our [Code Share](https://community.onespan.com/documentation/onespan-sign/codeshare/deliver-signed-documents-email-rest-api/) site. Once a transaction has been completed, you can automatically deliver the signed documents to your signers. The following code will do this: #### HTTP Request ```http POST /api/packages/{packageId}/roles ``` #### HTTP Headers ```http Accept: application/json   Content-Type: application/json   Authorization: Basic api_key ``` #### Request Payload ```json {  "id": "Signer5",  "reassign": true,  "type": "SIGNER",  "signers": [    {      "email": "mail32@example.com",      "firstName": "John",      "lastName": "Smith",      "id": "Signer5",      "delivery": {        "email": true,        "download": true,        "provider": true      }    }  ],  "name": "Signer5" } ``` For a complete description of each field, see the Request Payload table below. #### Response Payload ```json {  "id": "Signer5",  "data": null,  "specialTypes": [],  "emailMessage": null,  "attachmentRequirements": [],  "locked": false,  "reassign": true,  "index": 0,  "signers": [    {      "group": null,      "language": "en",      "signature": null,      "id": "Signer5",      "delivery": {        "provider": true,        "email": true,        "download": true      },      "auth": {        "scheme": "NONE",        "challenges": []      },      "knowledgeBasedAuthentication": null,      "data": null,      "title": "",      "company": "",      "email": "mail32@example.com",      "firstName": "John",      "lastName": "Smith",      "external": null,      "updated": "2017-11-16T16:53:01Z",      "phone": "",      "professionalIdentityFields": [],      "userCustomFields": [],      "address": null,      "created": "2017-11-16T16:53:01Z",      "name": "",      "specialTypes": []    }  ],  "name": "Signer5",  "type": "SIGNER" } ``` ### Results Once you've sent your package for signing and the transaction, each of your signers will receive an emails with a link to the signed documents. Documents are normally included in the signing complete email as an attached zip file. If you would like to have these documents delivered as individual files, contact our [Support Team](https://www.onespan.com/support). ### Request Payload Table | Property | Type | Editable | Required | Default | Sample Values | | --- | --- | --- | --- | --- | --- | | id | string | Yes | No | n/a | Signer5 | | reassign | boolean | Yes | No | false | true / false | | name | string | Yes | No | n/a | Signer5 | | id | string | Yes | No | n/a | Signer5 | | type | string | Yes | No | SIGNER | SIGNER / SENDER | | signers | | | | | | | email | string | Yes | No | n/a | mail32@example.com | | firstName | string | Yes | No | n/a | John | | lastName | string | Yes | No | n/a | Smith | | id | string | Yes | No | n/a | Signer5 | | delivery | | | | | | | email | boolean | Yes | No | false | true / false | | download | boolean | Yes | No | false | true / false | | provider | boolean | Yes | No | false | true / false | ## APEX SDK To download the full code sample see our [Code Share](https://community.onespan.com/documentation/onespan-sign/codeshare/deliver-signed-documents-by-email-example-apex-sdk/) site. Once a transaction has been completed, you can automatically deliver the signed documents to your signers. The following code will do this: ```plaintext // Create a new role object ESignLiveAPIObjects.Role role = new ESignLiveAPIObjects.Role(); // Create a new signer object ESignLiveAPIObjects.Signer signer = new ESignLiveAPIObjects.Signer(); signer.firstName = 'firstName'; signer.lastName = 'lastName'; signer.email = 'signer@example.com'; signer.name = 'signer1'; signer.id = 'signer1'; // Set delivery options for the signer signer.delivery = new ESignLiveAPIObjects.Delivery(true, true, true); // Boolean download, Boolean email, Boolean provider // Assign the signer to the role role.signers = new List{signer}; role.id = 'signer1'; ``` ### Results Once you've sent your package for signing, each of your signers will receive an email with a link to the signed documents. Documents are normally included in the signing complete email as an attached zip file. If you would like to have these documents delivered as individual files, contact our [Support Team](https://www.onespan.com/support).