Reminder Schedule

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.

Manage Reminder Schedules

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.

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 ValidSign will send to your signer(s), with a maximum of 5 reminders.

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

POST /api/packages/{packageId}/reminders

{
    "startInDaysDelay": 1,
    "repetitionsCount": 5,
    "intervalInDays": 1
}
ReminderSchedule reminderScheduleToCreate = ReminderScheduleBuilder.forPackageWithId(packageId)
   .withDaysUntilFirstReminder(1)
   .withDaysBetweenReminders(1)
   .withNumberOfRepetitions(5)
   .build();   

eslClient.getReminderService().createReminderScheduleForPackage(reminderScheduleToCreate);
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 by making a PUT request to the base URL, using different parameters.

PUT /api/packages/{packageId}/reminders

{
    "startInDaysDelay": 2,
    "repetitionsCount": 5,
    "intervalInDays": 3
}
ReminderSchedule reminderScheduleToUpdate = ReminderScheduleBuilder.forPackageWithId(packageId)
   .withDaysUntilFirstReminder(2)
   .withDaysBetweenReminders(3)
   .withNumberOfRepetitions(5)
   .build();   

eslClient.getReminderService().updateReminderScheduleForPackage(reminderScheduleToUpdate);
ReminderSchedule reminderScheduleToUpdate = ReminderScheduleBuilder.ForPackageWithId(packageId)
   .WithDaysUntilFirstReminder(2)
   .WithDaysBetweenReminders(3)
   .WithNumberOfRepetitions(5)
   .Build();

eslClient.ReminderService.UpdateReminderScheduleForPackage(reminderScheduleToUpdate);
Retrieving a Reminder Schedule

You can also retrieve your ReminderSchedule object by calling on the ValidSign 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:

GET /api/packages/{packageId}/reminders
ReminderSchedule reminderSchedule = client.getReminderService().getReminderScheduleForPackage(packageId);

List reminders = reminderSchedule.getReminders();
for (Reminder reminder : reminders) {
   System.out.println(reminder.getSentDate());
}
ReminderSchedule createdReminderSchedule = eslClient.ReminderService.GetReminderScheduleForPackage(packageId);

List 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 ValidSign ReminderService.

DELETE /api/packages/{packageId}/reminders
eslClient.getReminderService().clearReminderScheduleForPackage(packageId);
eslClient.ReminderService.ClearReminderScheduleForPackage(packageId);