The BoldSign mobile app is now available. Visitthis link for more details and give it a try!

The BoldSign mobile app is now available. Visitthis link for more details and give it a try!

Request Demo

Features

Explore the BoldSign features that make eSigning easier.

How To Send Document Out For E-Signature With Identity Verification Via API

How To Send Document Out For E-Signature With Identity Verification Via API

Identity verification is paramount in today’s digital document workflows, offering a crucial layer of security. With BoldSign, it’s seamlessly integrated as one of the signer authentication options. By requiring signers to authenticate their identity before accessing documents, this process enhances security and reliability. It ensures that only authorized individuals gain access, mitigating the risk of unauthorized use and safeguarding sensitive information. In an age where data privacy and security are top priorities, identity verification via BoldSign API provides peace of mind for businesses and individuals alike.

Read more on ID verification

Identity verification frequency

Certainly! Here are additional details on the options for customizing the frequency of identity verification for signers accessing documents:

  1. Every Access: With this option, signers are required to undergo identity authentication each time they access the document, regardless of whether they’ve previously completed their signature. This ensures a high level of security by verifying the signer’s identity for every interaction with the document.
  2. Until Signed: Identity authentication is necessary until the signer completes their signature. Once the signature is finalized, the signer will no longer need to undergo identity authentication for subsequent accesses to the document. This option strikes a balance between security and user convenience, ensuring that signers only need to verify their identity until the signing process is complete.
  3. Once per Document: Signers authenticate their identity only once, even if they access the document multiple times. Once their identity is verified initially, they can freely access and interact with the document without the need for further identity authentication. This option maximizes user convenience while still maintaining a baseline level of security for document access.

By offering these customizable options for identity verification frequency, organizations can tailor their document workflows to suit their specific security requirements and user experience preferences. Whether prioritizing stringent security measures or optimizing for user convenience, BoldSign provides flexibility to meet diverse needs.

Code snippets

In this exploration, we’ll delve into various programming languages to illustrate the process of sending documents with identity verification via API.

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 'Files=@{Your file name);type=application/pdf' \
  -F 'Title={Title}' \
  -F 'Signers={
  "name": "Test",
  "emailAddress": "alexgayle@cubeflakes.com",
  "authenticationType": "IdVerification",
  "deliveryMode": "Email",
  "identityVerificationSettings": {
    "type": "EveryAccess",
    "maximumRetryCount": 10,
    "requireLiveCapture": true,
    "requireMatchingSelfie": true,
    "nameMatcher": "Strict"
  },
  "signerType": "Signer",
  "allowFieldConfiguration": true,
  "formFields": [
    {
      "id": "signature1",
      "name": "signature1",
      "fieldType": "Signature",
      "pageNumber": 1,
      "bounds": {
        "x": 160,
        "y": 150,
        "width": 51,
        "height": 21
      },
      "isRequired": true
    }
  ]
}'
 

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
{
    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()
{
    signatureField
};
            var idSettings = new IdentityVerificationSettings
            {

              Type = Model.IdVerification.IdVerificationType.EveryAccess,
              MaximumRetryCount = 10,
              RequireLiveCapture = true,
              RequireMatchingSelfie = true,
              NameMatcher = Model.IdVerification.NameVariation.Strict,

            };

            var signer = new DocumentSigner(
              signerName: "Signer Name",
              signerType: SignerType.Signer,
              signerEmail: "starvritsabuhungi@syncfusion.com",
              authenticationType: AuthenticationType.IdVerification,
              identityVerificationSettings: idSettings,
              formFields: formFieldCollections,
              locale: Locales.EN);

            var documentSigners = new List()
{
    signer
};

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

 

Python

    
import requests # type: ignore
import json

url = "https://api.boldsign.com/v1/document/send"

signer_data = {
    "name": "Test",
    "emailAddress": "alexgayle@cubeflakes.com",
    "signerType": "Signer",
         "authenticationType": "IdVerification",
        "identityVerificationSettings": {
          "type": "EveryAccess",
          "maximumRetryCount": 10,
          "requireLiveCapture": True,
          "requireMatchingSelfie": True,
          "nameMatcher": "Strict"
        },      

    "formFields": [
        {
            "id": "signature1",
            "name": "signature1",
            "fieldType": "Signature",
            "pageNumber": 1,
            "bounds": {
                "x": 50,
                "y": 50,
                "width": 200,
                "height": 25
            },
            "isRequired": True
        }
    ],
    "locale": "EN"
}

payload = {
    'Signers': json.dumps(signer_data),
    'Title': 'Title',
}

files=[
  ('Files',('file',open('{Your file path}','rb'),'application/pdf'))
]

headers = {
  'accept': 'application/json',
  'X-API-KEY': '{Your API Key}'
}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)

 

Node js

    
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');
let data = new FormData();

const signerData = {
  name: 'Name',
  emailAddress: 'alexgayle@cubeflakes.com,
signerType: 'Signer',
  signerRole: 'Signer',
  authenticationType: 'IdVerification',
  "identityVerificationSettings": {
    "type": "EveryAccess",
    "maximumRetryCount": 10,
    "requireLiveCapture": true,
    "requireMatchingSelfie": true,
    "nameMatcher": "Strict"
  },

  formFields: [
    {
      id: 'signature',
      name: 'signature',
      fieldType: 'Signature',
      pageNumber: 1,
      bounds: {
        x: 160,
        y: 100,
        width: 100,
        height: 100
      },
      isRequired: true
    }
  ],
 locale: 'EN'
};

data.append('Signers', JSON.stringify(signerData));
data.append('Files', fs.createReadStream('{Your file path}'));
data.append('Title', '{title}');

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);
  });
 

PHP

    
<?php
require_once "vendor/autoload.php";
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Request;
use \GuzzleHttp\Psr7\Utils;

$client=new GuzzleHttp\Client(['verify'=> false, ]);
$headers = [
  'accept' => 'application/json',
  'X-API-KEY' => '{Your API Key}'
];
$options = [
  'multipart' => [      
    [
      'name' => 'Signers',
      'contents' => '{
        "name": "Test",
        "emailAddress": "alexgayle@cubeflakes.com",
        "signerType": "Signer",
        "authenticationType": "IdVerification",
        "identityVerificationSettings": {
          "type": "EveryAccess",
          "maximumRetryCount": 10,
          "requireLiveCapture": true,
          "requireMatchingSelfie": true,
          "nameMatcher": "Strict"
        },      
        "formFields": [
           {
                "id": "signature1",
                "name": "signature1",
                "fieldType": "Signature",
                "pageNumber": 1,
                "bounds": {
                  "x": 50,
                  "y": 50,
                  "width": 61,
                  "height": 21
                   },
      "isRequired": true
    }
  ],
  "locale": "EN"
}'
    ],
    [

      'name' => 'Files',
      'contents' => Utils::tryFopen('{File path}, 'r'),
 'filename' => 'File name',
      'headers'  => [
        'Content-Type' => 'application/pdf'
      ]
    ],
    [
      'name' => 'Title',
      'contents' => 'Title'
    ]
]];
$request = new Request('POST', 'https://api.boldsign.com/v1/document/send', $headers);
$res = $client->sendAsync($request, $options)->wait();
echo $res->getBody();
 

Conclusion

In conclusion, integrating identity verification into document workflows using the BoldSign API adds an extra layer of security to your documents. By requiring signers to verify their identity before accessing documents, organizations can ensure the integrity of the signing process. Try it out today for secure document signing from your clients.

By utilizing the step-by-step instructions and integrating the provided code samples, you can integrate document sending features directly into your applications. Start your 30-day trial today to experience firsthand how BoldSign simplifies and economizes your document sending workflows. We value your feedback, so please don’t hesitate to share your thoughts in the comments section below. If you have any inquiries or seek further details about our services, please  schedule a demo or reach out to our support team via our dedicated support portal.

Picture of Gopinath Kannusamy

Gopinath Kannusamy

Gopinath is a passionate software developer with 2 years of experience at BoldSign. He is an avid writer and enjoys sharing his insights on technology and development. In his free time, he enjoys exploring new technologies and learning new things.

Share this blog

Picture of Gopinath Kannusamy

Gopinath Kannusamy

Gopinath is a passionate software developer with 2 years of experience at BoldSign. He is an avid writer and enjoys sharing his insights on technology and development. In his free time, he enjoys exploring new technologies and learning new things.

Subscribe RSS feed

Leave a Reply

Your email address will not be published. Required fields are marked *