--- title: "Changing a Recipient" slug: "changing-a-recipient" updated: 2025-07-03T19:59:15Z published: 2025-07-03T19:59:15Z canonical: "docs.onespan.com/changing-a-recipient" --- > ## 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. # Changing a Recipient [Java SDK](/v1/docs/changing-a-recipient#java-sdk) [.NET SDK](/v1/docs/changing-a-recipient#net-sdk) [REST API](/v1/docs/changing-a-recipient#rest-api) [APEX SDK](/v1/docs/changing-a-recipient#apex-sdk) ## Java SDK To download the full code sample see our [Code Share](https://community.onespan.com/documentation/onespan-sign/codeshare/change-signer-java-sdk/) site. The Change Recipient feature enables a recipient to delegate their signature to another recipient. The delegating recipient must provide the email address and full name of the delegate. Optionally, the delegating recipient can also provide an email message for the delegate. Both recipients are notified of the recipient change, and are copied on the email message. If a recipient has delegated their signature, the transaction creator is also informed. The following code will do this: ```java DocumentPackage superDuperPackage = PackageBuilder.newPackageNamed("Change Signer Example")    .withSigner(        SignerBuilder.newSignerWithEmail("mail32@example.com")            .withFirstName("John")            .withLastName("Smith")            .canChangeSigner() // allow signer to be changed    )    .withDocument(        DocumentBuilder.newDocumentWithName("First Document")            .fromFile("C:/Users/hhaidary/Desktop/PDFs/doc1.pdf")            .withSignature(                SignatureBuilder.signatureFor("mail32@example.com")                    .onPage(0)                    .atPosition(500, 100)            )    )    .build(); ``` ### Results After running your code, transaction recipients will have the option of re-assigning their signing responsibilities to somebody else. ## .NET SDK To download the full code sample see our [Code Share](https://community.onespan.com/documentation/onespan-sign/codeshare/change-signer-net-sdk/) site. The Change Recipient feature enables a recipient to delegate their signature to another recipient. The delegating recipient must provide the email address and full name of the delegate. Optionally, the delegating recipient can also provide an email message for the delegate. Both recipients are notified of the recipient change, and are copied on the email message. If a recipient has delegated their signature, the transaction creator is also informed. The following code will do this: ```csharp DocumentPackage superDuperPackage = PackageBuilder.NewPackageNamed("Change Signer Example")    .WithSigner(        SignerBuilder.NewSignerWithEmail("mail32@example.com")            .WithFirstName("John")            .WithLastName("Smith")            .CanChangeSigner() // allow signer to be changed    )    .WithDocument(        DocumentBuilder.NewDocumentNamed("First Document")            .FromFile("C:/Users/hhaidary/Desktop/PDFs/doc1.pdf")            .WithSignature(                SignatureBuilder.SignatureFor("mail32@example.com")                    .OnPage(0)                    .AtPosition(500, 100)            )    )    .Build(); ``` ### Results After running your code, transaction recipients will have the option of re-assigning their signing responsibilities to somebody else. ## REST API To download the full code sample see our [Code Share](https://community.onespan.com/documentation/onespan-sign/codeshare/change-signer-rest-api/) site. The Change Recipient feature enables a recipient to delegate their signature to another recipient. The delegating recipient must provide the email address and full name of the delegate. Optionally, the delegating recipient can also provide an email message for the delegate. Both recipients are notified of the recipient change, and are copied on the email message. If a recipient has delegated their signature, the transaction creator is also informed. 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"    }  ],  "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": false,        "email": false,        "download": false      },      "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 After running your code, transaction recipients will have the option of re-assigning their signing responsibilities to somebody else. ### 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 | ## APEX SDK To download the full code sample see our [Code Share](https://community.onespan.com/documentation/onespan-sign/codeshare/change-signer-apex-sdk/) site. The Change Recipient feature enables a recipient to delegate their signature to another recipient. The delegating recipient must provide the email address and full name of the delegate. Optionally, the delegating recipient can also provide an email message for the delegate. Both recipients are notified of the recipient change, and are copied on the email message. If a recipient has delegated their signature, the transaction creator is also informed. The following code will do this: ```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.reassign = true; // allow change signer ``` ### Results After running your code, transaction recipients will have the option of re-assigning their signing responsibilities to somebody else.