How to verify the signer with Email OTP while making eSignature requests?

Authentication verifies a signer's identity, enhancing the security of the document signing process. BoldSign offers various authentication methods such as email OTP, SMS OTP, Identity Verification and access code authentication to ensure signers' identities.

  • AccessCode - A unique set of alphanumeric characters specified by the sender, which the recipient must use to access the document. The sender provides this secure code directly to the recipient.

  • EmailOTP - A one-time password generated by the system and sent to the recipient's email address. This password is required to access the document.

  • SMSOTP - A one-time password generated by the system and sent to the recipient's phone number via SMS. This password is required to access the document.

  • Identity Verification - Identity verification is a process used to confirm the signer's identity, which may involve submitting a passport or driver's license. This method offers the highest level of security by thoroughly validating the signer's identity.

Code snippet

The sample code snippets below demonstrates how to add EmailOTP authentication to the recipients when sending a document using a template.


curl -X 'POST' \ 'https://api.boldsign.com/v1/template/send?templateId=d6bad813-xxxx-xxxx-8c9e-e91a96c06392' \
     -H 'accept: application/json' \
     -H 'X-API-KEY: {Your API Key}' \
     -H 'Content-Type: application/json;odata.metadata=minimal;odata.streaming=true' \
     -d '{
       "title": "Sample document",
       "message": "Kindly review and sign this.",
       "roles": [
    {
      "roleIndex": 1,
      "signerName": "Richard",
      "signerEmail": "richardWhites@gmail.com",
      "authenticationType": "EmailOTP",
      "signerType": "Signer",
      "signerRole": "Manager",
      "locale": "EN"
    }
  ]
 }'

using BoldSign.Api;
using BoldSign.Model;
var apiClient = new ApiClient("https://api.boldsign.com", "{Your API Key}");
var templateClient = new TemplateClient(apiClient);

var templateRole = new Roles(
    roleSignerName:"Richard",
    authenticationType:AuthenticationType.EmailOTP,
    roleSignerEmailAddress:"richardWhites@gmail.com",
    roleSignerIndex:1,
    locale: Locales.EN);

var roles = new List<Roles>
{
    templateRole,
    
};

var sendForSignFromTemplate = new SendForSignFromTemplate()
{  
    
    TemplateId = "d6bad813-xxxx-xxxx-8c9e-e91a96c06392",
    Roles = roles,
  
};

var documentCreated =  templateClient.SendUsingTemplate(sendForSignFromTemplate);
Console.WriteLine(documentCreated.DocumentId);


import requests
import json

url = "https://api.boldsign.com/v1/template/send?templateId=d6bad813-xxxx-xxxx-8c9e-e91a96c06392"

payload = {
    "message": "Kindly review and sign this.",
    "roles": [
        {
            "roleIndex": 1,
            "signerName": "Richard",
            "signerEmail": "richardWhites@gmail.com",
            "authenticationType":"EmailOTP"
        }
    ]
}

headers = {
    'accept': 'application/json',
    'X-API-KEY': '{Your API Key}',
    'Content-Type': 'application/json;odata.metadata=minimal;odata.streaming=true'
}

response = requests.post(url, headers=headers, data=json.dumps(payload))

print(response.text)
onst axios = require('axios');

async function GetData(){
try{
 
const response = await axios.post(
    'https://api.boldsign.com/v1/template/send',
    {
        'roles': [
            {
                'roleIndex': 1,
                'signerName': 'Richard',
                'signerEmail': 'richardWhites@gmail.com',
                'authenticationType': 'EmailOTP'

          },
           
        ],
      
        title: "Simple document",
	     message: "Kindly review and sign this.",
    },
    {

        params: {
            'templateId': 'd6bad813-xxxx-xxxx-8c9e-e91a96c06392',
        },
        headers: {
            'accept': 'application/json',
            'X-API-KEY': '{Your API Key}',
            'Content-Type': 'application/json;odata.metadata=minimal;odata.streaming=true'
        }
    }

);
  console.log(JSON.stringify(response.data));
  return response;
  }
  catch (error) {
    console.error('Error:', error.message);
    throw error; 
}}
  GetData();

In the example above, we have added EmailOTP authentication to access the document. Replace templateId with the ID of the existing template to be used for sending the document, and update the SignerEmail and SignerName properties with the email and name of the signer. Once the code is executed, the document from the template will be sent for signature with email OTP authentication.