Articles in this section
Category / Section

How to set automatic reminders for electronic signature requests through API?

Published:
7 mins read

BoldSign supports sending auto reminders to signers to complete the signing process. You can set up auto reminders when creating the document. This feature also enables you to specify the number of days between each reminder and the total number of reminders to be sent to signers until they complete the signing process.

When you send a document to signer, you can enable auto reminder in ReminderSettings object. When auto reminder (EnableAutoReminder) is enabled, you can choose how frequently the reminder should continue following the first reminder by adding days in the (ReminderDays) and set the number of reminders to be sent(ReminderCount). You can set up to 5 reminders.

Some key points to note

The user can only change these configurations while creating the document, which cannot be changed after the document has been sent. If a document you sent is expired, then the automatic reminders will not be send. The reminders will be sent automatically at specified intervals and a specified number of times until the document is signed. You have to send reminder at next day interval until the document is signed when a signer ignores the reminder.

Code snippet

cURL

curl -X 'POST' \ 'https://api.boldsign.com/v1/document/send' \
     -H 'accept: application/json' \
     -H 'X-API-KEY: {your API key}' \
     -H 'Content-Type: multipart/form-data' \
     -F 'ReminderSettings.EnableAutoReminder=true' \
     -F 'ReminderSettings.ReminderDays=4' \
     -F 'ReminderSettings.ReminderCount=3' \
     -F 'Signers={
        "name": "Hanky",
        "emailAddress": "hankyWhites@cubeflakes.com",
        "signerType": "Signer",
        "signerRole": "Signer",
        "formFields": [
           {
                "id": "signature",
                "name": "signature",
                "fieldType": "Signature",
                "pageNumber": 1,
                "bounds": {
                  "x": 100,
                  "y": 100,
                  "width": 125,
                  "height": 25
                   },
      "isRequired": true
    }
  ],
  "locale": "EN"
}' \
  -F 'Files=@{your file}' \
  -F 'Title={title}' \  

C#

var apiClient = new ApiClient("https://api.boldsign.com", "{Your API key}");
var documentClient = new DocumentClient(apiClient);

var documentFilePath = new DocumentFilePath
{
    ContentType = "application/pdf",
    FilePath = "{Your File path}"
};

var filesToUpload = new List<IDocumentFile>
{
    documentFilePath,
};

var signatureField = new FormField(
    id: "sign",
    isRequired: true,
    type: FieldType.Signature,
    pageNumber: 1,
    bounds: new Rectangle(x: 200, y: 200, width: 125, height: 25));

var formFieldCollections = new List<FormField>()
{
    signatureField
};

var signer = new DocumentSigner(
    signerName: "David",
    signerEmail: "david@cubeflakes.com",
    signerType: SignerType.Signer,
    formFields: formFieldCollections,
    locale: Locales.EN);

var documentSigners = new List<DocumentSigner>()
{
    signer
};

var sendForSign = new SendForSign()
{
    Signers = documentSigners,
    Title = "Agreement",
    ReminderSettings = new ReminderSettings()
    {
        EnableAutoReminder  = true,
        ReminderCount = 3,
        ReminderDays = 4
    },
    Files = filesToUpload
};
var documentCreated = documentClient.SendDocument(sendForSign);

Python

import boldsign

configuration = boldsign.Configuration(
    api_key = "YOUR_API_KEY"

with boldsign.ApiClient(configuration) as api_client:

    document_api = boldsign.DocumentApi(api_client)
    
    send_for_sign = boldsign.SendForSign(
          title="Document SDK API",
          document_title = "SDK Document Test case",
          description="Testing document from SDK integration test case", 
          files=["YOUR_FILE_PATH"],
          signers=[
                boldsign.DocumentSigner(
                      name="Hanky",
                      emailAddress="hankyWhites@cubeflakes.com",
                      signerOrder=1,
                      signerType="Signer",
                      formFields=[
                            boldsign.FormField(
                                  name="Sign",
                                  fieldType="Signature",
                                  font="Helvetica",
                                  pageNumber=1,
                                  isRequired=True,
                                  bounds=boldsign.Rectangle(x=50, y=50, width=100, height=150)
                            )
                    ],
                    privateMessage="This is private message for signer"
                )
            ],
            reminderSettings=boldsign.ReminderSettings(
                enableAutoReminder=True,
                reminderCount=3,
                reminderDays=4
            )
    )
    
    send_document_response = document_api.send_document(send_for_sign)

NodeJS

const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');
let data = new FormData();
data.append('Signers', '{\r\n        "name": "Hanky",\r\n        "emailAddress": "hankyWhites@cubeflakes.com",\r\n        "signerType": "Signer", \r\n        "signerRole": "Signer",\r\n        "formFields": [\r\n           {\r\n                "id": "signature",\r\n                "name": "signature",\r\n                "fieldType": "Signature",\r\n                "pageNumber": 1,\r\n                "bounds": {\r\n                  "x": 100,\r\n                  "y": 100,\r\n                  "width": 125,\r\n                  "height": 25\r\n                   },\r\n      "isRequired": true\r\n    }\r\n  ],\r\n  "locale": "EN"\r\n}');
data.append('Files', fs.createReadStream('{Your file path}'));
data.append('Title', 'Agreement');
data.append('ReminderSettings.EnableAutoReminder', 'true');
data.append('ReminderSettings.ReminderDays', '4');
data.append('ReminderSettings.ReminderCount', '3');

let config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: 'https://api.boldsign.com/v1/document/send',
  headers: { 
    'accept': 'application/json', 
    'X-API-KEY': '{Your API key}', 
    ...data.getHeaders()
  },
  data : data
};

axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});

In the example above, set the EnableAutoReminder field as true and configure the ReminderDays and ReminderCount properties value according to your requirements. Upon executing the provided code, a document will be generated with the auto reminders at specified intervals and a specified number of times until the document is signed.

Was this article useful?
Like
Dislike
Help us improve this page
Please provide feedback or comments
Access denied
Access denied