Prove who signed, with signer identity verification
BoldSign checks each signer’s passport, driver’s license, or national ID, and can match it to a biometric selfie, before the document opens. Each signature then carries proof of identity in the audit trail.
Works in: the web app and the API, on any computer, tablet, or phone.
Verify your identity to sign this document
Verify your identityHow does signer identity verification work?
BoldSign has the signer photograph a government ID and take a selfie, then matches the two before the document opens.
You turn it on per signer
In the recipient settings, turn on Authentication and choose Identity Verification.
The signer opens the request
The signer selects Review and sign in the email, from any device with a browser.
The signer captures their ID and a selfie
The signer photographs the front of their ID, and a selfie if you require one, or switches to their phone by QR code.
The signer is verified
Once the ID matches the signer, the document opens for them to review and sign.
Every check is recorded in the audit trail
The certificate of completion logs who verified, through which provider, the session ID, and the time, next to each later action on the document.
Why choose BoldSign for signer ID verification
BoldSign proves who signed, not just who opened the emailed link.
-
Stops impersonation before access
A forwarded signing link is not enough. The document stays locked until the person matches their ID and selfie.
-
Holds up when a signature is disputed
If a signer denies signing, you can show a matched ID and selfie.
-
Checks for several signers on one request
Two people signing the same loan can both verify, each with their own ID.
-
A failed check does not cancel the document
You review the uploaded ID and approve it, or reset their attempts so they can try again.
What can you control in ID verification settings?
BoldSign sets ID verification separately for each signer, so one person verifies with an ID while another signs from email. Each setting applies only to the document you are sending.
-
Choose who verifies and how often
Turn ID verification on for each signer or reviewer who needs it, then pick how often they prove who they are.
The BoldSign Prepare document for signing screen, with Identity Verification chosen under Authentication for the first recipient. -
Selfie and name match
Selfie check and live capture are on by default, and name matching is set to Strict.
The BoldSign ID Verification dialog with Require selfie check and Require live document capture switched on and the name matcher set to Strict. -
Attempts and reports
Set how many tries each signer gets before the document locks, from 1 to 10.
The BoldSign ID Verification dialog with the number of verification attempts set to 3. -
Allowed IDs and countries
Accept only the document types you trust, and limit issuing countries in your business profile.
The BoldSign identity verification settings with Passport and Driver’s License allowed, National ID Card off (invite only), and allowed countries set to all countries.
How are documents signed with ID verification kept secure?
BoldSign encrypts every signed document twice with AES-256. Its security controls are independently audited for SOC 2 Type 2, and each standard is listed in your account’s Compliance page, shown below.
Compliance
BoldSign meets global security and compliance standards to protect your documents and data. Manage the settings below to align with your organization’s requirements.
Data Residency
Active (US - Global)Your documents and signer data are securely stored in your selected region to meet data sovereignty and local regulatory requirements.
HIPAA Compliance
EnabledEnable HIPAA mode to protect PHI using administrative, technical, and physical safeguards aligned with HIPAA regulations.
PCI DSS
CompliantPayments are securely processed through Stripe, a PCI DSS Level 1-certified provider, ensuring the safe handling and encryption of all payment data.
CCPA & CPRA
CompliantEnsures compliance with California privacy laws, giving residents transparency and control over their personal data, including rights to access, delete, and opt out.
SOC 2 Type II
CompliantBoldSign has successfully completed a SOC 2 Type II audit, validating our controls for security, availability, confidentiality, and data integrity.
UETA & ESIGN
CompliantBoldSign ensures that all e-signatures are legally binding and compliant with the U.S. ESIGN Act and the Uniform Electronic Transactions Act (UETA).
eIDAS (SES)
CompliantBoldSign complies with the EU eIDAS Regulation (910/2014) and supports Simple Electronic Signatures (SES) by default.
eIDAS (QES)
EnabledEnable Qualified Electronic Signatures (QES) for contracts requiring the highest legal assurance under eIDAS.
Security and procurement documents for eSignature
IT and procurement teams can read BoldSign’s security policy, data processing agreement, and subprocessor list online. They can also request the SOC 2 Type 2 report.
- Sign-in
Single sign-on and user provisioning
Works with Microsoft Entra ID.
See features by plan - Audit report
SOC 2 Type 2 report
Available on request from BoldSign.
Request the SOC 2 report - Data protection
Data processing agreement
Includes the EU Standard Contractual Clauses and the UK Addendum by reference.
Read the data processing agreement - Data protection
Subprocessor list
Every third party BoldSign uses to process data.
See the subprocessor list - Service
Service level agreement
Uptime, support response times, and service commitments.
Find it in the Legal Center
What does ID verification cost?
BoldSign charges $2 for each completed ID verification attempt, whether the check passes or fails, pay as you go, on top of the plan seat. Each retry and each re-verification also cost $2, so the frequency setting shapes your total.
| Scenario | Verifications | Cost |
|---|---|---|
| 3 signers on a loan agreement, each verified once | 3 | $6 |
| 1 signer set to verify on every access, who opens the document 3 times | 3 | $6 |
| 40 lease agreements a month, one tenant each, verified once | 40 | $80 |
Which digital signature tools include identity verification?
BoldSign and the four other tools here all offer digital signature identity verification against a government ID, each on a different plan. The BoldSign Business plan is $15 per user a month, against $30 for the Docusign eSignature Standard plan and $49 for the PandaDoc Business plan. Adobe and Dropbox Sign do not publish a price for theirs.
| Capability | BoldSign | Docusign | Adobe Acrobat Sign | PandaDoc | Dropbox Sign |
|---|---|---|---|---|---|
| Base plan that covers ID checks | Business plan$15 per user a month | eSignature Standard plan$30 per user a month, $360 billed yearly | Enterprise plan (ETLA)Not published | Business plan$49 per seat a month | API Premium planNot published |
| Price per ID check | $2 per verification attemptPass or fail, pay as you go | From $2.40 per attemptAdded to the plan | Not publishedPrepaid through Adobe sales | $2 per successful checkPrepaid packs of 10 or more | Not publishedThrough an account manager |
| ID checks for several signers on one request | Yes, set per recipient | Yes, set per recipient | Yes | Yes, set per recipient | No, ID checks go to one signer per request |
| After a signer’s last failed attempt | Document stays openYou review the ID, or reset their attempts | Signer can ask the sender for a new envelope | Agreement is cancelled by defaultA new agreement is needed | Not published | Not published |
Not published means the vendor’s own pricing and help pages do not state it.
Spotted something outdated? Tell us through the contact page.
Estimate your own eSignature cost
BoldSign has two calculators: one works out what BoldSign would cost your team, and the other estimates what switching would save.
- Calculator
BoldSign pricing calculator
Set your number of senders, monthly envelopes, and add-ons to see your monthly or yearly cost.
Estimate your cost - Calculator
eSignature ROI calculator
Compare what your current eSignature tool costs with what BoldSign would cost.
Estimate your savings
Limits and costs to know before you verify signer IDs with BoldSign
BoldSign ID verification checks a signer’s government ID and selfie. It does not run background or credit checks.
- $2 per completed attempt Charged on a pass or a fail. Each retry is charged again.
- $15 Business plan, per user a month Billed yearly. ID verification cannot be added to the Essential or Growth plans (pricing).
- 10 attempts at most Per signer, 3 by default. After the last one, the document locks for that signer.
- $30 Enterprise API plan, a month Needed for live documents through the API, with 40 envelopes included.
Before your first ID check
- BoldSign does not read ID details written in Arabic, Chinese, Cyrillic, Greek, Hebrew, Japanese, Korean, Tamil, or Thai script (identity verification settings).
- National ID cards are available by invitation only (supported documents).
- Trial plans include no ID verification credits.
Another way to verify signers in the US
For signers in the United States, BoldSign also offers knowledge-based authentication (KBA). Instead of photographing an ID, the signer answers security questions drawn from public records.
| Compare | ID verification | Knowledge-based authentication |
|---|---|---|
| The signer | Photographs a government ID | Enters identity details and answers security questions |
| Device | A computer or phone with a camera | Any device, no camera |
| Who can use it | Signers in the US and other supported countries | Signers in the US only |
Can you add identity verification through the API?
Yes, the BoldSign API runs an ID check when you set a signer’s authenticationType to IdVerification. Test it free in the sandbox before you send live documents.
These samples come from the developer guide How to send a document with identity verification using BoldSign API.
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",
"allowedDocumentTypes": [
"Passport",
"IDCard",
"DriverLicense"
]
},
"signerType": "Signer",
"allowFieldConfiguration": true,
"formFields": [
{
"id": "signature1",
"name": "signature1",
"fieldType": "Signature",
"pageNumber": 1,
"bounds": {
"x": 160,
"y": 150,
"width": 51,
"height": 21
},
"isRequired": true
}
]
}' 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: 100, y: 100, width: 100, height: 50));
var formFieldCollections = new List<FormField>()
{
signatureField
};
var idSettings = new IdentityVerificationSettings
{
Type = Model.IdVerification.IdVerificationType.EveryAccess,
MaximumRetryCount = 10,
RequireLiveCapture = true,
RequireMatchingSelfie = true,
NameMatcher = Model.IdVerification.NameVariation.Strict,
AllowedDocumentTypes = new List<Model.IdVerification.AllowedDocumentType>()
{
Model.IdVerification.AllowedDocumentType.Passport,
Model.IdVerification.AllowedDocumentType.IDCard,
Model.IdVerification.AllowedDocumentType.DriverLicense,
},
};
var signer = new DocumentSigner(
signerName: "Signer Name",
signerType: SignerType.Signer,
signerEmail: "alexgayle@cubeflakes.com",
authenticationType: AuthenticationType.IdVerification,
identityVerificationSettings: idSettings,
formFields: formFieldCollections,
locale: Locales.EN);
var documentSigners = new List<DocumentSigner>()
{
signer
};
var sendForSign = new SendForSign()
{
Title = "Agreement",
Signers = documentSigners,
Files = filesToUpload,
};
var documentCreated = documentClient.SendDocument(sendForSign);
Console.WriteLine(documentCreated.DocumentId); 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 = "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",
authenticationType = "IdVerification",
identityVerificationSettings = boldsign.IdentityVerificationSettings(
type = "EveryAccess",
maximumRetryCount = 10,
requireLiveCapture = True,
requireMatchingSelfie = True,
nameMatcher = "Strict"
)
)
],
)
document_created = document_api.send_document(send_for_sign) <?php require_once "vendor/autoload.php";
$config = new BoldSign\Configuration();
$config->setHost('https://api.boldsign.com');
$config->setApiKey('YOUR_API_KEY');
$documentApi = new BoldSign\Api\DocumentApi($config);
$idSettings = new BoldSign\Model\IdentityVerificationSettings();
$idSettings->setType('EveryAccess');
$idSettings->setMaximumRetryCount(10);
$idSettings->setRequireLiveCapture(true);
$idSettings->setRequireMatchingSelfie(true);
$idSettings->setNameMatcher('Strict');
$bounds = new BoldSign\Model\Rectangle();
$bounds->setX(100);
$bounds->setY(150);
$bounds->setWidth(200);
$bounds->setHeight(50);
$signatureFieldSettings = new BoldSign\Model\FormField();
$signatureFieldSettings->setFieldType('Signature');
$signatureFieldSettings->setId('signatureField1');
$signatureFieldSettings->setPageNumber(1);
$signatureFieldSettings->setBounds($bounds);
$signer = new BoldSign\Model\DocumentSigner();
$signer->setName('Signer Name');
$signer->setEmailAddress('signer@example.com');
$signer->setAuthenticationType('IdVerification');
$signer->setFormFields([$signatureFieldSettings]);
$signer->setIdentityVerificationSettings($idSettings);
$sendForSign = new BoldSign\Model\SendForSign();
$sendForSign->setTitle('Document Title');
$sendForSign->setFiles(['YOUR_FILE_PATH']);
$sendForSign->setSigners([$signer]);
$documentCreated = $documentApi->sendDocument($sendForSign); import java.io.File;
import java.util.Arrays;
import com.boldsign.ApiClient;
import com.boldsign.ApiException;
import com.boldsign.Configuration;
import com.boldsign.api.DocumentApi;
import com.boldsign.model.DocumentCreated;
import com.boldsign.model.DocumentSigner;
import com.boldsign.model.FormField;
import com.boldsign.model.IdentityVerificationSettings;
import com.boldsign.model.Rectangle;
import com.boldsign.model.SendForSign;
ApiClient client = Configuration.getDefaultApiClient();
client.setBasePath("https://api.boldsign.com");
client.setApiKey("YOUR_API_KEY");
DocumentApi documentApi = new DocumentApi(client);
IdentityVerificationSettings identityVerificationSettings = new IdentityVerificationSettings();
identityVerificationSettings.setType(IdentityVerificationSettings.TypeEnum.EVERY_ACCESS);
identityVerificationSettings.setMaximumRetryCount(10);
identityVerificationSettings.setRequireLiveCapture(true);
identityVerificationSettings.setRequireMatchingSelfie(true);
identityVerificationSettings.setNameMatcher(IdentityVerificationSettings.NameMatcherEnum.STRICT);
FormField formField = new FormField();
formField.setFieldType(FormField.FieldTypeEnum.SIGNATURE);
formField.setPageNumber(1);
formField.setId("Signature1");
Rectangle bounds = new Rectangle().x(100f).y(100f).width(100f).height(50f);
formField.setBounds(bounds);
DocumentSigner signer = new DocumentSigner();
signer.setName("David");
signer.setEmailAddress("david@cubeflakes.com");
signer.setFormFields(Arrays.asList(formField));
signer.setAuthenticationType(DocumentSigner.AuthenticationTypeEnum.ID_VERIFICATION);
signer.setIdentityVerificationSettings(identityVerificationSettings);
SendForSign sendForSign = new SendForSign();
sendForSign.setTitle("Document title");
sendForSign.setSigners(Arrays.asList(signer));
sendForSign.setFiles(Arrays.asList(new File("YOUR_FILE_PATH")));
DocumentCreated created = documentApi.sendDocument(sendForSign); import { DocumentApi, IdentityVerificationSettings, FormField, Rectangle, DocumentSigner, SendForSign } from "boldsign";
import * as fs from 'fs';
const documentApi = new DocumentApi("https://api.boldsign.com");
documentApi.setApiKey('YOUR_API_KEY');
const idSettings = new IdentityVerificationSettings();
idSettings.type = IdentityVerificationSettings.TypeEnum.EveryAccess;
idSettings.maximumRetryCount = 10;
idSettings.requireLiveCapture = true;
idSettings.requireMatchingSelfie = true;
idSettings.nameMatcher = IdentityVerificationSettings.NameMatcherEnum.Strict;
const signatureField = new FormField();
signatureField.id = 'signature';
signatureField.fieldType = FormField.FieldTypeEnum.Signature;
signatureField.pageNumber = 1;
signatureField.bounds = new Rectangle();
signatureField.bounds.x = 100;
signatureField.bounds.y = 100;
signatureField.bounds.width = 200;
signatureField.bounds.height = 50;
signatureField.isRequired = true;
const signer = new DocumentSigner();
signer.name = 'Name';
signer.emailAddress = 'alexgayle@cubeflakes.com';
signer.signerType = DocumentSigner.SignerTypeEnum.Signer;
signer.authenticationType = DocumentSigner.AuthenticationTypeEnum.IdVerification;
signer.identityVerificationSettings = idSettings;
signer.formFields = [signatureField];
const sendForSign = new SendForSign();
sendForSign.title = '{title}';
sendForSign.files = [fs.createReadStream("YOUR_FILE_PATH")];
sendForSign.signers = [signer];
documentApi.sendDocument(sendForSign); More guides on signer identity verification
- Guide
ID verification for rental applications
Confirm tenant identity before a lease is signed.
Read the guide - Guide
Identity verification for remote HR onboarding
Verify new hires who never visit the office.
Read the guide - Page
Signer authentication
Access codes and email or SMS codes.
See the page
Switching from another eSignature tool
Docusign templates import into BoldSign at no charge with BoldSign’s import tool, and BoldSign support helps teams make the switch.
- Guide
Import your Docusign templates
Step-by-step help for moving Docusign templates into BoldSign.
Read the import guide - Comparison
BoldSign compared with Docusign
Features and prices side by side, for teams moving from Docusign.
See the Docusign comparison - Comparison
BoldSign compared with Dropbox Sign
For teams moving from Dropbox Sign, formerly HelloSign.
See the Dropbox Sign comparison - Comparison
BoldSign compared with Adobe Acrobat Sign
For teams moving from Adobe Acrobat Sign.
See the Adobe comparison - Comparison
BoldSign compared with PandaDoc
For teams moving from PandaDoc.
See the PandaDoc comparison - Comparison
SignNow and other tools
Every eSignature tool BoldSign is compared with.
See all comparisons
Frequently asked questions
Which BoldSign plans include ID verification?
BoldSign ID verification is an add-on on the Business plan, $15 per user a month billed yearly. It is also on the Premium and Enterprise API plans. Each verification costs $2. It is not available on the free Essential plan or the Growth plan.
What happens if a signer fails verification?
A failed check does not cancel the document. BoldSign locks it for that signer after the number of failed attempts you set. You, as the sender, can then review the ID they uploaded and approve or reject it, or reset their attempts so they can try again.
Which ID documents can signers use?
BoldSign accepts passports and driver’s licenses, plus national ID cards once they are enabled for your account. Accepted documents vary by issuing country, and a passport is accepted from every supported country. See the list by country.
Do signers need a BoldSign account or app to verify?
No. BoldSign signers verify in their browser from the signing link, on a computer, tablet, or phone. Or they scan a QR code to continue on their phone, or get the link by SMS or email.
How is the signer’s ID data protected?
BoldSign runs each check through Stripe Identity and does not keep the signer’s identity information on its own servers; Stripe processes and stores it. Documents are encrypted with AES-256, and BoldSign holds a SOC 2 Type 2 report.
What other ways can I confirm who is signing?
BoldSign also offers access codes, one-time codes by email or SMS, and knowledge-based authentication (KBA) for signers in the United States. Compare them on the signer authentication page.
Verify your next signer before they sign
BoldSign turns on ID verification for each signer who needs it.
Last updated: October 15, 2026. Disclaimer: This page contains product comparisons based on publicly available information as of October 2026 and may change.