How to Configure Recipient Notifications

When sending a document using the BoldSign API, you can control the notifications that recipients receive through the recipientNotificationSettings property for each signer. This article provides guidance on how to customize recipient notifications by updating the recipientNotificationSettings property in your API requests. If this property is not provided, the default notification settings configured in your business profile will apply.

Following are the notifications available in recipientNotificationSettings.

SignatureRequestIndicates whether the recipient or CC should be notified when a document is sent.
DeclinedIndicates whether the recipient or CC should be notified when a document is declined.
RevokedIndicates whether the recipient or CC should be notified when a document is revoked.
SignedIndicates whether the recipient or CC should be notified when a document is signed by other recipient.
CompletedIndicates whether the recipient or CC should be notified when the document is completed.
ExpiredIndicates whether the recipient or CC should be notified when a document expires.
ReassignedIndicates whether the recipient or CC should be notified when the document is reassigned.
DeletedIndicates whether the recipient or CC should be notified when a document is deleted.
RemindersIndicates whether the recipient should receive reminders for pending signature requests.
EditRecipientIndicates whether the recipient should be notified when there is a change in the recipient.
curl -X 'POST' \
  'https://api.boldsign.com/v1/document/send' \
  -H 'accept: application/json' \
  -H 'X-API-KEY: {your API key}' \
  -H 'Content-Type: application/json' \
  -d '{
    "Signers": [
        {
            "name": "Alex",
            "emailAddress": "[email protected]",
            "signerType": "Signer",
            "formFields": [
                {
                    "id": "string",
                    "name": "string",
                    "fieldType": "Signature",
                    "pageNumber": 1,
                    "bounds": {
                        "x": 50,
                        "y": 50,
                        "width": 125,
                        "height": 25
                    },
                    "isRequired": true
                }
            ],
            "recipientNotificationSettings": {
                    "signatureRequest": true,
                    "declined": true,
      	            "revoked": true,
      	            "signed": true,
      	            "completed": true,
      	            "expired": true,
      	            "reassigned": true,
                    "deleted": true,
                    "reminders": true,
                    "editRecipient": true
            }
        }
    ],
    "Files": [
        "data:application/pdf;base64,JVBERi0xLjcKJcfs..."
    ],
    "Title": "Sampledocument",
  }'
var apiClient = new ApiClient("https://api.boldsign.com", "{your API key}");
var documentClient = new DocumentClient(apiClient);

var documentFilePath = new DocumentFilePath
{
    ContentType = "application/pdf",
    FilePath = "agreement.pdf",
};

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

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

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

var signer = new DocumentSigner(
  signerName: "David",
  signerType: SignerType.Signer,
  signerEmail: "[email protected]",
  formFields: formFieldCollections);

signer.RecipientNotificationSettings = new RecipientNotificationSettings()
{
    SignatureRequest = true,
    Declined = true,
    Revoked = true,
    Signed= true,
    Completed= true,
    Expired = true,
    Reassigned = true,
    Deleted = true,
    Reminders = true,
    EditRecipient = true
};

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

var sendForSign = new SendForSign()
{
    Title = "Agreement",
    Signers = documentSigners,
    Files = filesToUpload,
};
var documentCreated = documentClient.SendDocument(sendForSign);
import boldsign

configuration = boldsign.Configuration(host = "https://api.boldsign.com", 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 = "[email protected]",
                signerOrder = 1,
                signerType = "Signer",
                authenticationType = "AccessCode",
                authenticationCode = "123456",
                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",
                recipientNotificationSettings = boldsign.RecipientNotificationSettings(
                    viewed = True,
                    completed = True,
                    declined = True,
                    expired = True,
                    reassigned = True,
                    reminders = True,
                    revoked = True,
                    sent = True,
                    signed = True
                )
            ),
        ]
    )
    
    document_created = document_api.send_document(send_for_sign)
<?php require_once "vendor/autoload.php";

use BoldSign\Configuration;
use BoldSign\Api\DocumentApi;
use BoldSign\Model\{FormField, Rectangle, DocumentSigner, SendForSign, DocumentInfo, FileInfo, DocumentCC, RecipientNotificationSettings};

$config = new Configuration();
$config->setHost("https://api.boldsign.com");
$config->setApiKey('YOUR_API_KEY');

$document_api = new DocumentApi($config);

$form_field = new FormField();
$form_field->setName('Sign');
$form_field->setFieldType('Signature');
$form_field->setPageNumber(1);
$form_field->setFont('Helvetica');
$form_field->setIsRequired(true);
$bounds = new Rectangle([50, 50, 100, 150]);
$form_field->setBounds($bounds);

$document_signer = new DocumentSigner();
$document_signer->setName('Hanky');
$document_signer->setEmailAddress('[email protected]');
$document_signer->setSignerOrder(1);
$document_signer->setSignerType('Signer');
$document_signer->setAuthenticationType('AccessCode');
$document_signer->setAuthenticationCode('123456');
$document_signer->setFormFields([$form_field]);
$document_signer->setPrivateMessage('This is private message for signer');

$recipient_notification_settings = new RecipientNotificationSettings();
$recipient_notification_settings ->setCompleted(true);
$recipient_notification_settings ->setDeclined(true);
$recipient_notification_settings ->setExpired(true);
$recipient_notification_settings ->setReassigned(true);
$recipient_notification_settings ->setReminders(true);
$recipient_notification_settings ->setRevoked(true);
$recipient_notification_settings ->setSigned(true);
$document_signer->setRecipientNotificationSettings($recipient_notification_settings);

$send_for_sign = new SendForSign();
$send_for_sign->setTitle('SDK Document Test case');
$send_for_sign->setSigners([$document_signer]);

$documentInfo = new DocumentInfo();
$documentInfo->setTitle('Document SDK API');
$documentInfo->setDescription('Testing document from SDK integration test case');
$send_for_sign->setDocumentInfo([$documentInfo]);

$files = new FileInfo();
$files = 'YOUR_FILE_PATH';
$send_for_sign->setFiles([$files]);

$document_created = $document_api->sendDocument($send_for_sign); 
ApiClient client = Configuration.getDefaultApiClient();
client.setBasePath("https://api.boldsign.com");
client.setApiKey("YOUR_API_KEY");        
				
DocumentApi documentApi = new DocumentApi(client);

FormField signatureField = new FormField();
signatureField.setName("Signature");
signatureField.setFieldType(FormField.FieldTypeEnum.SIGNATURE);
signatureField.setFont(FormField.FontEnum.HELVETICA);
signatureField.setPageNumber(1);
signatureField.setIsRequired(true);
Rectangle bounds = new Rectangle().x(100f).y(100f).width(100f).height(50f);
signatureField.setBounds(bounds);

DocumentSigner signer = new DocumentSigner();
signer.setName("Hanky");
signer.setEmailAddress("[email protected]");
signer.setSignerOrder(1);
signer.setSignerType(DocumentSigner.SignerTypeEnum.SIGNER);
signer.setFormFields(Arrays.asList(signatureField));
signer.setAuthenticationType(DocumentSigner.AuthenticationTypeEnum.ACCESS_CODE);
signer.setAuthenticationCode("123456");
signer.setPrivateMessage("This is private message for signer");

RecipientNotificationSettings recipientNotificationSettings = new RecipientNotificationSettings();
recipientNotificationSettings.setCompleted(true);
recipientNotificationSettings.setDeclined(true);
recipientNotificationSettings.setExpired(true);
recipientNotificationSettings.setReassigned(true);
recipientNotificationSettings.setReminders(true);
recipientNotificationSettings.setRevoked(true);
recipientNotificationSettings.setViewed(true);
recipientNotificationSettings.setSigned(true);
signer.setRecipientNotificationSettings(recipientNotificationSettings);

SendForSign sendForSign = new SendForSign();

File file = new File("YOUR_FILE_PATH");  
sendForSign.setFiles(Arrays.asList(file));   

sendForSign.setSigners(Arrays.asList(signer));
sendForSign.setTitle("Document SDK API");

DocumentCreated documentCreated = documentApi.sendDocument(sendForSign);
import { DocumentApi, DocumentSigner, DocumentInfo, FormField, Rectangle, SendForSign, DocumentCC, RecipientNotificationSettings } from "boldsign"; 
import * as fs from 'fs';

const documentApi = new DocumentApi("https://api.boldsign.com");
documentApi.setApiKey("YOUR_API_KEY");

const bounds = new Rectangle();
bounds.x = 100;
bounds.y = 50;
bounds.width = 100;
bounds.height = 100;

const formField = new FormField();
formField.name = "Sign";
formField.fieldType = FormField.FieldTypeEnum.Signature;
formField.font = FormField.FontEnum.Helvetica;
formField.pageNumber = 1;
formField.isRequired = true;
formField.bounds = bounds;

const documentSigner = new DocumentSigner();
documentSigner.name = "David";
documentSigner.emailAddress = "[email protected]";
documentSigner.signerOrder = 1;
documentSigner.signerType = DocumentSigner.SignerTypeEnum.Signer;
documentSigner.authenticationType = DocumentSigner.AuthenticationTypeEnum.AccessCode;
documentSigner.authenticationCode = "123456";
documentSigner.formFields = [formField];
documentSigner.privateMessage = "This is private message for signer";

const recipientNotificationSettings = new RecipientNotificationSettings();
recipientNotificationSettings.viewed = true;
recipientNotificationSettings.completed = true;
recipientNotificationSettings.declined = true;
recipientNotificationSettings.expired = true;
recipientNotificationSettings.reassigned = true;
recipientNotificationSettings.reminders = true;
recipientNotificationSettings.revoked = true;
recipientNotificationSettings.signed = true;
documentSigner.recipientNotificationSettings = recipientNotificationSettings;

const files = fs.createReadStream("YOUR_FILE_PATH");

const sendForSign = new SendForSign();

const documentInfo = new DocumentInfo();
documentInfo.title = "SDK Document Test case";
documentInfo.description = "Testing document from SDK integration test case";
sendForSign.documentInfo = [documentInfo];

sendForSign.title = "Document SDK API";
sendForSign.signers = [documentSigner];
sendForSign.files = [files];

const documentCreated = documentApi.sendDocument(sendForSign);

By customizing the recipientNotificationSettings, you can control the notification experience for each recipient according to your requirements.