---
title: "Creating Handover URLs"
slug: "creating-handover-urls"
updated: 2024-10-10T10:20:29Z
published: 2024-10-10T10:20:29Z
canonical: "docs.onespan.com/creating-handover-urls"
---

> ## 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.

# Creating Handover URLs

[Java SDK](/v1/docs/creating-handover-urls#java-sdk) [.NET SDK](/v1/docs/creating-handover-urls#net-sdk) [REST API](/v1/docs/creating-handover-urls#rest-api)

## Java SDK

A Handover URL is a redirect link pre-set in the transaction settings, which allows you to determine where the Signer Experience will be relocated after a recipient interacts with a transaction. The URL will be triggered differently in certain ways. The most common scenario is when a signer has completed signing. The Handover URL is displayed as an exit button on the global actions bar and on the tool bar.

Handover URLs can also be used as a web hook to send real-time messages to your endpoints about the triggered event. Once the signer hit the Handover URL link, additional parameters will be attached to the link, including “package”, “signer” and “status”.

For example, if you specified the Handover URL as:

```plaintext
https://yourdomain/oss/handover
```

After the recipient with signer ID of Signer1 has declined the transaction (ID of “T840KlFsIeC--LqGu9O9Enp9T6I”), information associated to this event will be passed by parameters, and the actual link the recipient will hit looks like this:

```plaintext
https://yourdomain/oss/handover?package=T840KlFsIeC--LqGu9O9Enp9T6I%3D&signer=Signer1&status=PACKAGE_DECLINE
```

Handover URLs can be defined at the following levels:

- Package
- Account
- Language

### By Package

To define a Handover URL at the package level there are three values you need to specify in the package settings:

- Handover Link Href: Defines the redirect URL to which the signer will be sent.
- Handover Link Text: The text that will appear on the handover button.
- Handover Link Title / Tooltip: The text that will appear when hovering over the handover button.

If you need a comparison to the basic object creation procedure, or if this is the first time creating a transaction, see [](https://developer.esignlive.com/guides/quick-start/creating-and-sending-a-package-net/)[Creating and Sending a Transaction](/v1/docs/creating-and-sending-a-transaction#net-sdk).

The following code shows you how to edit the settings block when creating a package.

```java
.withSettings(DocumentPackageSettingsBuilder.newDocumentPackageSettings()
			            .withHandOverLinkHref("https://www.google.com")
	          .withHandOverLinkText("Exit to site")
	    .withHandOverLinkTooltip("You will redirected to Google homepage")
              )
```

### By Account

As the Handover URL is a package setting, it is possible to set default Handover URL at the account level. If your work flow requires you to redirect the Signer Experience to a general completion page, or to your organization’s website, contact our [Support Team](https://www.onespan.com/support) and supply them with the following:

- Handover Link Href: Defines the redirect URL to which the signer will be sent.
- Handover Link Text: The text that will appear on the handover button.
- Handover Link Title / Tooltip: The text that will appear when hovering over the handover button.

Once this is done any new package that you create will have these default values.

### By Language

Different Handover URLs can be specified for different languages. For example, if you have a multilingual site and want to navigate the signer to different language versions according to the signer's language. To do this, you can contact our [Support Team](https://www.onespan.com/support) and have different Handover URLs configured on your account.

You can also customize Handover URLs using SDKs. The following code sample demonstrates how to leverage the AccountConfigService class to specify the Handover URL for each Java Locale.

```java
AccountConfigService accountConfigService = eslClient.getAccountConfigService();
				Handover handoverAfterCreating = accountConfigService.createHandoverUrl(HandoverBuilder
				.newHandover(java.util.Locale.ENGLISH)
				.withHref("https://www.google.com ")
				.withText("Exit to site ")
				.withTitle("You will redirected to Google homepage ")
				.build()
			);
```

#### Finding an existing language configuration

If you want to know if there’s any existing configurations defined for a language, use the following code:

```java
Handover handoverExisting = accountConfigService.getHandoverUrl(java.util.Locale.ENGLISH);
```

#### Updating an existing language configuration

To update an existing language configuration, use the .updateHandoverUrl() function:

```java
Handover  handoverAfterUpdating = accountConfigService.updateHandoverUrl(HandoverBuilder
				.newHandover(java.util.Locale.ENGLISH)
				.withTitle(“The updated tooltip”)   
				.build()
				);;
```

#### Deleting an existing language configuration

To delete a Handover URL setting use the following code:

```java
accountConfigService.deleteHandoverUrl(java.util.Locale.ENGLISH);
```

## .NET SDK

A Handover URL is a redirect link pre-set in the transaction settings, which allows you to determine where the Signer Experience will be relocated after a recipient interacts with a transaction. The URL will be triggered differently in certain ways. The most common scenario is when a signer has completed signing. The Handover URL is displayed as an exit button on the global actions bar and on the tool bar.

Handover URLs can also be used as a web hook to send real-time messages to your endpoints about the triggered event. Once the signer hit the Handover URL link, additional parameters will be attached to the link, including “package”, “signer” and “status”.

For example, if you specified the Handover URL as:

```plaintext
https://yourdomain/oss/handover
```

After the recipient with signer ID of Signer1 has declined the transaction (ID of “T840KlFsIeC--LqGu9O9Enp9T6I”), information associated to this event will be passed by parameters, and the actual link the recipient will hit looks like:

```plaintext
https://yourdomain/oss/handover?package=T840KlFsIeC--LqGu9O9Enp9T6I%3D&signer=Signer1&status=PACKAGE_DECLINE
```

Handover URLs can be defined at the following levels:

- Package
- Account
- Language

### By Package

To define a Handover URL at the package level there are three values you need to specify in the package settings:

- Handover Link Href: Defines the redirect URL to which the signer will be sent.
- Handover Link Text: The text that will appear on the handover button.
- Handover Link Title / Tooltip: The text that will appear when hovering over the handover button.

If you need a comparison to the basic object creation procedure, or if this is the first time creating a transaction, see [](https://developer.esignlive.com/guides/quick-start/creating-and-sending-a-package-net/)[Creating and Sending a Transaction](/v1/docs/creating-and-sending-a-transaction#net-sdk).

The following code shows you how to edit the settings block when creating a package.

```csharp
.withSettings(DocumentPackageSettingsBuilder.newDocumentPackageSettings()
				.withHandOverLinkHref("https://www.google.com")
				.withHandOverLinkText("Exit to site")
			.withHandOverLinkTooltip("You will redirected to Google homepage")
              )
```

### By Account

As the Handover URL is a package setting, it is possible to set default Handover URL at the account level. If your work flow requires you to redirect the Signer Experience to a general completion page, or to your organization’s website, contact our [Support Team](https://www.onespan.com/support) and supply them with the following:

- Handover Link Href: Defines the redirect URL to which the signer will be sent.
- Handover Link Text: The text that will appear on the handover button.
- Handover Link Title / Tooltip: The text that will appear when hovering over the handover button.

### By Language

Different Handover URLs can be specified for different languages. For example, if you have a multilingual site and want to navigate the signer to different language versions according to the signer's language. To do this, you can contact our [Support Team](https://www.onespan.com/support) and have different Handover URLs configured on your account.

You can also customize Handover URLs using SDKs. The following code sample demonstrates how to leverage the AccountConfigService class to specify the Handover URL for each Java Locale.

```csharp
AccountConfigService accountConfigService = eslClient.getAccountConfigService();
				Handover handoverAfterCreating = accountConfigService.createHandoverUrl(HandoverBuilder
				.newHandover(java.util.Locale.ENGLISH)
				.withHref("https://www.google.com ")
				.withText("Exit to site ")
				.withTitle("You will redirected to Google homepage ")
				.build()
			);
```

#### Finding an existing language configuration

If you want to know if there’s any existing configurations defined for a language, use the following code:

```csharp
Handover handoverExisting = accountConfigService.GetHandoverUrl(“en”);
```

#### Updating an existing language configuration

To update an existing language configuration, use the .updateHandoverUrl() function:

```csharp
Handover  handoverAfterUpdating = accountConfigService.updateHandoverUrl(HandoverBuilder
				.newHandover(java.util.Locale.ENGLISH)
				.withTitle(“The updated tooltip”)   
				.build()
			);
```

#### Deleting an existing language configuration

To delete a Handover URL setting use the following code:

```csharp
accountConfigService.deleteHandoverUrl(java.util.Locale.ENGLISH);
```

## REST API

A Handover URL is a redirect link pre-set in the transaction settings, which allows you to determine where the Signer Experience will be relocated after a recipient interacts with a transaction. The URL will be triggered differently in certain ways. The most common scenario is when a signer has completed signing. The Handover URL is displayed as an exit button on the global actions bar and on the tool bar.

Handover URLs can also be used as a web hook to send real-time messages to your endpoints about the triggered event. Once the signer hit the Handover URL link, additional parameters will be attached to the link, including “package”, “signer” and “status”.

For example, if you specified the Handover URL as:

```plaintext
https://yourdomain/oss/handover
```

After the recipient with signer ID of Signer1 has declined the transaction (ID of “T840KlFsIeC--LqGu9O9Enp9T6I”), information associated to this event will be passed by parameters, and the actual link the recipient will hit looks like:

```plaintext
https://yourdomain/oss/handover?package=T840KlFsIeC--LqGu9O9Enp9T6I%3D&signer=Signer1&status=PACKAGE_DECLINE
```

Handover URLs can be defined at the following levels:

- Package
- Account
- Language

### By Package

To define a Handover URL at the package level there are three values you need to specify in the package settings:

- Handover Link Href: Defines the redirect URL to which the signer will be sent.
- Handover Link Text: The text that will appear on the handover button.
- Handover Link Title / Tooltip: The text that will appear when hovering over the handover button.

If you need a comparison to the basic object creation procedure, or if this is the first time creating a transaction, see [](https://developer.esignlive.com/guides/quick-start/creating-and-sending-a-package-net/)[Creating and Sending a Transaction](/v1/docs/creating-and-sending-a-transaction#net-sdk).

These attributes are hosted in the package JSON at “settings” > “ceremony” > “handOver”. The following codegives you an idea how you can build the “settings” node and include the handover URL information when creating a package:

```json
{
				"status": "DRAFT",
				"settings": {
				"ceremony": {
				  "handOver": {
				        "title": "You will be redirected to Google homepage",
			        	"href": "http://www.google.com",
				        "text": "Exit to site"
				}
				    }
			},
			"type": "PACKAGE",
			"name": "Customized Signer Experience"
	}
```

### By Account

As the Handover URL is a package setting, it is possible to set default Handover URL at the account level. If your work flow requires you to redirect the Signer Experience to a general completion page, or to your organization’s website, contact our [Support Team](https://www.onespan.com/support) and supply them with the following:

- Handover Link Href: Defines the redirect URL to which the signer will be sent.
- Handover Link Text: The text that will appear on the handover button.
- Handover Link Title / Tooltip: The text that will appear when hovering over the handover button.

### By Language

Different Handover URLs can be specified for different languages. For example, if you have a multilingual site and want to navigate the signer to different language versions according to the signer's language. To do this, you can contact our [Support Team](https://www.onespan.com/support) and have different Handover URLs configured on your account.

You can also customize Handover URLs using REST APIs.

To create a Handover URL setting, use the following API.

#### HTTP Request

```http
POST /api/accountConfig/handoverUrl/{language_code}
```

#### HTTP Headers

```http
Accept: application/json 
Content-Type: application/json
Authorization: Basic api_key
```

#### Request Payload

```json
{
            "title": "You will be redirected to Google homepage",
            "href": "http://www.google.com",
            "text": "Exit to site"
              
```

#### Finding an existing language configuration

If you want to know if there’s any existing configurations defined for a language, use the following code:

**HTTP Request**

```http
GET /api/accountConfig/handoverUrl/{language_code}
```

**HTTP Headers**

```http
Accept: application/json 
Authorization: Basic api_key
```

**Response Payload**

```json
{
              "title": "You will be redirected to Google homepage",
              "href": "http://www.google.com",
            "text": "Exit to site"
}  
```

#### Updating an existing language configuration

Once you’ve created a setting, you can use the API below to update any partial attributes:

**HTTP Request**

```http
PUT /api/accountConfig/handoverUrl/{language_code}
```

**HTTP Headers**

```http
Accept: application/json
Content-Type: application/json
Authorization: Basic api_key
```

**Request Payload**

```json
{
   "title": "You will be redirected to Google homepage"
   }  
```

#### Deleting an existing language configuration

To delete a Handover URL setting use the following code:

**HTTP Request**

```http
DELETE /api/accountConfig/handoverUrl/{language_code}
```

**HTTP Headers**

```http
Authorization: Basic api_key
```
