---
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<ESignLiveAPIObjects.Signer> { 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.
