---
title: "Configuring Transaction Reminders"
slug: "configuring-transaction-reminders"
updated: 2025-07-28T11:40:43Z
published: 2025-07-28T11:40:43Z
canonical: "docs.onespan.com/configuring-transaction-reminders"
---

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

# Configuring Transaction Reminders

[Java SDK](/v1/docs/configuring-transaction-reminders#java-sdk) [.NET SDK](/v1/docs/configuring-transaction-reminders#net-sdk) [REST API](/v1/docs/configuring-transaction-reminders#rest-api) [APEX SDK](/v1/docs/configuring-transaction-reminders#apex-sdk)

## Java SDK

To download the full code sample see our [Code Share](https://community.onespan.com/documentation/onespan-sign/codeshare/reminder-schedule-java-sdk/) site.

By setting a reminder schedule, a sender can choose when and how often to notify a signer about a pending signature, in addition to the initial notification sent the moment the transaction is sent for signing. In other words, assuming the transaction is not yet completed, a customizable number of notifications can be sent with a specified interval between each to remind your signer that a signature is required.

Reminder emails are sent using a cron job, which is triggered every hour at xx:30. This means that if a reminder is scheduled to be sent at 7:26, it will be sent as part of the cron job at 7:30.

### Creating a Reminder Schedule

To create a ReminderSchedule object you will need to pass your packageId object as a parameter to the ReminderScheduleBuilder, along with the settings that suit your requirements.

As you need a packageId to set your reminder schedule, you will need to do this AFTER you have created the transaction, but BEFORE you send it. So if you’re using the createAndSendPackage() method to send your packages, you’ll need to split it up.

Note the following:

- withDaysUntilFirstReminder(): This method allows you to wait a certain amount of days before sending the first reminder. This will not affect the initial notification sent the moment your transaction is sent for signing.
- withDaysBetweenReminders(): This method sets the frequency of your reminders.
- withNumberOfRepetitions() : This method sets the number of reminders OneSpan Sign will send to your signer(s), with a maximum of 5 reminders.

Once you have built your ReminderSchedule object, use the OneSpan Sign ReminderService to create your reminder schedule. The following code will do this:

```java
 ReminderSchedule reminderScheduleToCreate = ReminderScheduleBuilder.forPackageWithId(packageId)   .withDaysUntilFirstReminder(1)   .withDaysBetweenReminders(1)   .withNumberOfRepetitions(5)   .build();   eslClient.getReminderService().createReminderScheduleForPackage(reminderScheduleToCreate);
```

### Updating a Reminder Schedule

Once you’ve sent your transaction for signing, you can update your reminder schedule. To do this, create a new ReminderSchedule object using different parameters and then once again use the OneSpan Sign ReminderService to update your reminder schedule. The following code will do this:

eslClient.getReminderService().updateReminderScheduleForPackage(reminderScheduleToUpdate);

### Retrieving a Reminder Schedule

You can also retrieve your ReminderSchedule object by calling on the OneSpan Sign ReminderService. By doing this, you will also get all the reminders that have been sent to your signers, in a list format. The following code will do this:

```java
 ReminderSchedule reminderSchedule = client.getReminderService().getReminderScheduleForPackage(packageId);   List<Reminder> reminders = reminderSchedule.getReminders();   for (Reminder reminder : reminders) {   System.out.println(reminder.getSentDate());   }
```

### Deleting a Reminder Schedule

To delete your reminder schedule, you once again use the OneSpan Sign ReminderService. The following code will do this:

```java
 eslClient.getReminderService().clearReminderScheduleForPackage(packageId);
```

### Results

Here is an example of what you can expect to see once you have run your code.

This is an example of a reminder email that will be sent to your signers:

![](https://cdn.document360.io/038f59a7-abd0-4c14-9de7-3434d28b49fd/Images/Documentation/reminder_2.png)

This is an example of what the reminders list looks like:

![](https://cdn.document360.io/038f59a7-abd0-4c14-9de7-3434d28b49fd/Images/Documentation/reminder_java_1-1.png)

## .NET SDK

To download the full code sample see our [Code Share](https://community.onespan.com/documentation/onespan-sign/codeshare/reminder-schedule-net-sdk/) site.

By setting a reminder schedule, a sender can choose when and how often to notify a signer about a pending signature, in addition to the initial notification sent the moment the transaction is sent for signing. In other words, assuming the transaction is not yet completed, a customizable number of notifications can be sent with a specified interval between each to remind your signer that a signature is required.

Reminder emails are sent using a cron job, which is triggered every hour at xx:30. This means that if a reminder is scheduled to be sent at 7:26, it will be sent as part of the cron job at 7:30.

### Creating a Reminder Schedule

To create a ReminderSchedule object you will need to pass your packageId object as a parameter to the ReminderScheduleBuilder, along with the settings that suit your requirements.

As you need a packageId to set your reminder schedule, you will need to do this AFTER you have created the transaction, but BEFORE you send it. So if you’re using the createAndSendPackage() method to send your packages, you’ll need to split it up.

Note the following:

- withDaysUntilFirstReminder(): This method allows you to wait a certain amount of days before sending the first reminder. This will not affect the initial notification sent the moment your transaction is sent for signing.
- withDaysBetweenReminders(): This method sets the frequency of your reminders.
- withNumberOfRepetitions() : This method sets the number of reminders OneSpan Sign will send to your signer(s), with a maximum of 5 reminders.

Once you have built your ReminderSchedule object, use the OneSpan Sign ReminderService to create your reminder schedule. The following code will do this:

```csharp
 ReminderSchedule reminderScheduleToCreate = ReminderScheduleBuilder.ForPackageWithId(packageId)   .WithDaysUntilFirstReminder(1)   .WithDaysBetweenReminders(1)   .WithNumberOfRepetitions(5)   .Build();   eslClient.ReminderService.CreateReminderScheduleForPackage(reminderScheduleToCreate);
```

### Updating a Reminder Schedule

Once you’ve sent your transaction for signing, you can update your reminder schedule. To do this, create a new ReminderSchedule object using different parameters and then once again use the OneSpan Sign ReminderService to update your reminder schedule. The following code will do this:

```csharp
 eslClient.ReminderService.UpdateReminderScheduleForPackage(reminderScheduleToUpdate);
```

### Retrieving a Reminder Schedule

You can also retrieve your ReminderSchedule object by calling on the OneSpan Sign ReminderService. By doing this, you will also get all the reminders that have been sent to your signers, in a list format. The following code will do this:

```csharp
 ReminderSchedule createdReminderSchedule = eslClient.ReminderService.GetReminderScheduleForPackage(packageId);   List<Reminder> reminders = createdReminderSchedule.Reminders;   foreach (Reminder reminder in reminders)   {   Debug.WriteLine(reminder.SentDate);   }
```

### Deleting a Reminder Schedule

To delete your reminder schedule, you once again use the OneSpan Sign ReminderService. The following code will do this:

```csharp
 eslClient.ReminderService.ClearReminderScheduleForPackage(packageId);
```

### Results

Here is an example of what you can expect to see once you have run your code.

This is an example of a reminder email that will be sent to your signers:

![](https://cdn.document360.io/038f59a7-abd0-4c14-9de7-3434d28b49fd/Images/Documentation/reminder_2.png)

This is an example of what the reminders list looks like:

![](https://cdn.document360.io/038f59a7-abd0-4c14-9de7-3434d28b49fd/Images/Documentation/reminder_csharp_1.png)

## REST API

To download the full code sample see our [Code Share](https://community.onespan.com/documentation/onespan-sign/codeshare/reminder-schedules-rest-api/) site.

By setting a reminder schedule, a sender can choose when and how often to notify a signer about a pending signature, in addition to the initial notification sent the moment the transaction is sent for signing. In other words, assuming the transaction is not yet completed, a customizable number of notifications can be sent with a specified interval between each to remind your signer that a signature is required.

Reminder emails are sent using a cron job, which is triggered every hour at xx:30. This means that if a reminder is scheduled to be sent at 7:26, it will be sent as part of the cron job at 7:30.

You can create a reminder schedule by making the following request:

#### HTTP Request

```http
POST /api/packages/{packageId}/reminders
```

#### HTTP Headers

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

#### Request Payload

```json
 {
	"startInDaysDelay": 1,
	"repetitionsCount": 5,
	"intervalInDays": 1,
	"packageId": "{packageId}"
}
```

For a complete description of each field, see the Request Payload table below.

#### Response Payload

```json
 {
	"startInDaysDelay": 1,
	"repetitionsCount": 5,
	"intervalInDays": 1,
	"reminders": [],
	"packageId": "{packageId}"
}
```

To create a ReminderSchedule object you will need to pass your packageId object as a parameter to the ReminderScheduleBuilder, along with the settings that suit your requirements.

Note the following:

- startInDaysDelay: This object allows you to wait a certain amount of days before sending the first reminder. This will not affect the initial notification sent the moment you sent your transaction for signing.
- intervalInDays: This object sets the frequency of your reminders.
- repetitionsCount: This object sets the number of reminders OneSpan Sign will send to your signer(s), with a maximum of 5 reminders.

To set a reminder schedule, your package must be in DRAFT.

### Updating a Reminder Schedule

Once you’ve sent your transaction for signing, you can update your reminder schedule by making a PUT request to the base URL, using different parameters.

#### HTTP Request

```http
PUT /api/packages/{packageId}/reminders
```

#### HTTP Headers

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

#### Request Payload

```json
 {
	"startInDaysDelay": 2,
	"repetitionsCount": 5,
	"intervalInDays": 3,
	"packageId": "{packageId}"
}
```

#### Response Payload

```json
 {
	"startInDaysDelay": 2,
	"repetitionsCount": 5,
	"intervalInDays": 3,
	"reminders": [],
	"packageId": "{packageId}"
}
```

### Retrieving a Reminder Schedule

You can retrieve your reminder schedule by making a GET request to the base URL. By doing this, you will also get all the reminders that have been sent to your signer(s).

#### HTTP Request

```http
GET /api/packages/{packageId}/reminders
```

#### HTTP Headers

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

#### Response Payload

```json
{
	"packageId": "ebfcf18f-7bbc-4ff6-a5db-6352dbbfa9f6",
	"startInDaysDelay": 2,
	"repetitionsCount": 5,
	"intervalInDays": 2,
	"reminders": [{
		"sentDate": "2016-02-26T00:30:02Z",
		"date": "2016-02-25T16:53:13Z"
	}, {
		"sentDate": "2016-02-27T00:30:03Z",
		"date": "2016-02-26T16:53:13Z"
	}, {
		"sentDate": "2016-02-28T00:30:01Z",
		"date": "2016-02-27T16:53:13Z"
	}, {
		"sentDate": "2016-02-29T00:30:02Z",
		"date": "2016-02-28T16:53:13Z"
	}, {
		"sentDate": null,
		"date": "2016-02-29T16:53:13Z"
	}, {
		"sentDate": null,
		"date": "2016-03-01T16:53:13Z"
	}]
}
```

### Deleting a Reminder Schedule

To delete your reminder schedule, make a DELETE request:

#### HTTP Request

```http
DELETE /api/packages/{packageId}/reminders
```

#### HTTP Headers

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

### Results

Here is an example of what you can expect to see once you have run your code.

This is an example of a reminder email that will be sent to your signers:

![](https://cdn.document360.io/038f59a7-abd0-4c14-9de7-3434d28b49fd/Images/Documentation/reminder_2.png)

### Request Payload Table

| Property | Type | Editable | Required | Default | Sample Values |
| --- | --- | --- | --- | --- | --- |
| startInDaysDelay | integer | Yes | No | n/a | 1 / 2 / 3 ... |
| repetitionsCount | integer | Yes | No | n/a | 1 / 2 / 3 ... |
| intervalInDays | integer | Yes | No | n/a | 1 / 2 / 3 ... |
| packageId | string | Yes | No | n/a | 0ab0_b0jzotEqdXx9NJ-pzhJJ1c= |

## APEX SDK

To download the full code sample see our [Code Share](https://community.onespan.com/documentation/onespan-sign/codeshare/reminder-schedule-apex-sdk/) site.

By setting a reminder schedule, a sender can choose when and how often to notify a signer about a pending signature, in addition to the initial notification sent the moment the transaction is sent for signing. In other words, assuming the transaction is not yet completed, a customizable number of notifications can be sent with a specified interval between each to remind your signer that a signature is required.

Reminder emails are sent using a cron job, which is triggered every hour at xx:30. This means that if a reminder is scheduled to be sent at 7:26, it will be sent as part of the cron job at 7:30.

The following function will allow you to add a Reminder Schedule to an existing transaction.

```plaintext
 public void createReminderScheduleForPackage(String packageId,Integer startInDaysDelay,Integer repetitionsCount,Integer intervalInDays)
```

As you need a packageId to set your reminder schedule, you will need to do this AFTER you have created the transaction, but BEFORE you send it.

Note the following:

- **startInDaysDelay**: This parameter allows you to wait a certain amount of days before sending the first reminder. This will not affect the initial notification sent the moment your transaction is sent for signing.
- **intervalInDays**: This parameter sets the frequency of your reminders.
- **repetitionsCount**: This parameter sets the number of reminders OneSpan Sign will send to your signer(s), with a maximum of 5 reminders.

### Updating a Reminder Schedule

Once you’ve sent your transaction for signing, you can update your reminder schedule. The following code will do this:

```plaintext
 public void updateReminderScheduleForPackage(String packageId,Integer startInDaysDelay,Integer repetitionsCount,Integer intervalInDays)
```

### Retrieving a Reminder Schedule

You can also retrieve your ReminderSchedule . By doing this, you will also get all the reminders that have been sent to your signers, in a list format. The following code will do this:

```plaintext
 public TestReminders.ReminderSchedule getReminderScheduleForPackage(String packageId)
```

By doing this, you will also get all the reminders that have been sent to your signers, in a list format.

```plaintext
 TestReminders.ReminderSchedule reminderSchedule = getReminderScheduleForPackage(packageId);   List reminders = reminderSchedule.reminders;   for(TestReminders.Reminder reminder: reminders){   System.Debug('set date: ' + reminder.date_x + '; sent date: ' + reminder.sentDate);   }
```

### Deleting a Reminder Schedule

To delete your reminder schedule, use the following code:

```plaintext
 public void clearReminderScheduleForPackage(String packageId)
```

### Results

You can execute this function in Execute Anonymous Window from Developer Console and type in:

```plaintext
 new TestReminders().testReminders();
```

Here is an example of what you can expect to see once you have run your code.

This is an example of a reminder email that will be sent to your signers:

![](https://cdn.document360.io/038f59a7-abd0-4c14-9de7-3434d28b49fd/Images/Documentation/apex-guides-reminders1.png)

This is an example of what the reminders list looks like:

![](https://cdn.document360.io/038f59a7-abd0-4c14-9de7-3434d28b49fd/Images/Documentation/apex-guides-reminders.png)
