Integrate In-Person Signing to Docs Using BoldSign API

integrate-in-person-signing
integrate-in-person-signing

Table of Contents

Sign Docs 3x Faster

Send, sign, and manage documents securely and efficiently.

Summarize the blog post with:

Electronic signatures have become a cornerstone of business transactions, offering efficiency, convenience, and security. However, there are instances where the traditional method of in-person signing holds significant weight, ensuring trust and authenticity in important documents. BoldSign provides a seamless API integration for adding in-person signers to your documents. Let’s see how you can leverage BoldSign’s API to incorporate in-person signing into your workflow.

In-Person Signing

In-person signing requires physically meeting with the signer to execute a document. This method adds an extra layer of assurance and credibility to the signature process, particularly in scenarios where the legality and authenticity of signatures are paramount.

Integrating In-Person Signing with the BoldSign API

BoldSign simplifies the process of incorporating in-person signatures into your electronic documents through its comprehensive API. By designating a host email address, you can seamlessly facilitate in-person signing sessions within your organization. Please note that the host facilitating the in-person signing session must be a registered user within your organization and the host’s email must be different from the signer’s email. This requirement reinforces security measures, ensuring that only authorized personnel oversee the signing process. 

For more detailed steps, you can refer to the official BoldSign documentation: Send document with in-person signing.

Example Code for Adding an In-Person Signer


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 'Message=' \
  -F 'Signers={
        "name": "Test",
        "emailAddress": "[email protected]",
        "signerType": "InPersonSigner",
        "deliveryMode": "Email",
        "formFields": [
          {
            "id": "signature1",
            "name": "signature1",
            "fieldType": "Signature",
            "pageNumber": 1,
            "bounds": { "x": 80, "y": 50, "width": 31, "height": 21 },
            "isRequired": true
          }
        ],
        "locale": "EN"
      }' \
  -F 'Files=@{FILE_PATH}' \
  -F 'Title=Title'
            

var apiClient = new ApiClient("https://api.boldsign.com", "{YOUR_API_KEY}");
var documentClient = new DocumentClient(apiClient);
var documentFilePath = new DocumentFilePath
{
    ContentType = "application/pdf",
    FilePath = "{FILE_PATH}", 
};
var filesToUpload = new List<IDocumentFile> 
{
    documentFilePath,
};
var signatureField = new FormField(
    id: "signature1",
    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: "Hank",
    signerType: SignerType.InPersonSigner,
    signerEmail: "[email protected]",
    hostEmail: "[email protected]",
    formFields: formFieldCollections,
    locale: Locales.EN);
var documentSigners = new List<DocumentSigner>
{
    signer
};
var sendForSign = new SendForSign
{
    Message = "please sign this",
    Title = "Agreement",
    Signers = documentSigners,
    Files = filesToUpload
};
var documentCreated = documentClient.SendDocument(sendForSign);
            

import boldsign
configuration = boldsign.Configuration(api_key="YOUR_API_KEY") 
with boldsign.ApiClient(configuration) as api_client: 
    document_api = boldsign.DocumentApi(api_client) 
    signatureField = boldsign.FormField( 
        fieldType="Signature", 
        pageNumber=1, 
        bounds=boldsign.Rectangle(x=100, y=100, width=100, height=50), 
        isRequired=True, 
    ) 
    signer = boldsign.DocumentSigner( 
        name="Hank", 
        emailAddress="[email protected]", 
        signerType="InPersonSigner", 
        hostEmail="[email protected]", 
        formFields=[signatureField], 
        locale="EN" 
    ) 
    send_for_sign = boldsign.SendForSign( 
        title="DOCUMENT_TITLE", 
        signers=[signer], 
        files=["FILE_PATH"], 
    ) 
    document_created = document_api.send_document(send_for_sign=send_for_sign)
            

import { DocumentApi, DocumentSigner, FormField, Rectangle, SendForSign } from 'boldsign';
import * as fs from 'fs';
async function main() {
  const data = new SendForSign();
  const config = new DocumentApi();
  config.setApiKey('YOUR_API_KEY');
  const bounds = new Rectangle();
  bounds.x = 50; bounds.y = 50; bounds.width = 100; bounds.height = 20;
  const signatureField = new FormField();
  signatureField.fieldType = FormField.FieldTypeEnum.Signature;
  signatureField.pageNumber = 1;
  signatureField.bounds = bounds;
  signatureField.isRequired = true;
  const signer = new DocumentSigner();
  signer.name = 'Hank';
  signer.emailAddress = '[email protected]';
  signer.signerType = DocumentSigner.SignerTypeEnum.InPersonSigner;
  signer.hostEmail = '[email protected]';
  signer.formFields = [signatureField];
  signer.locale = 'EN';
  data.title = 'DOCUMENT_TITLE';
  data.signers = [signer];
  data.files = [fs.createReadStream('FILE_PATH')];
  const response = await config.sendDocument(data);
}
main();
            

ApiClient client = Configuration.getDefaultApiClient();
client.setApiKey("YOUR_API_KEY");
DocumentApi documentApi = new DocumentApi(client);
FormField signatureField = new FormField();
signatureField.setFieldType(FieldTypeEnum.SIGNATURE);
signatureField.setPageNumber(1);
Rectangle bounds = new Rectangle().x(50f).y(50f).width(100f).height(20f);
signatureField.setBounds(bounds);
signatureField.setIsRequired(true);
List<FormField> formFields = new ArrayList<FormField>();
formFields.add(signatureField);
DocumentSigner signer = new DocumentSigner();
signer.setName("Hank");
signer.setEmailAddress("[email protected]");
signer.setSignerType(DocumentSigner.SignerTypeEnum.IN_PERSON_SIGNER);
signer.setHostEmail("[email protected]");
signer.setFormFields(formFields);
signer.setLocale(DocumentSigner.LocaleEnum.EN);
List<DocumentSigner> signers = new ArrayList<DocumentSigner>();
signers.add(signer);
File file = new File("FILE_PATH");
List<File> files = new ArrayList<File>();
files.add(file);
SendForSign sendForSign = new SendForSign();
sendForSign.setTitle("DOCUMENT_TITLE");
sendForSign.setSigners(signers);
sendForSign.setFiles(files);
DocumentCreated documentCreated = documentApi.sendDocument(sendForSign);
            

<?php
require_once "vendor/autoload.php"; 
$config = new BoldSign\Configuration(); 
$config->setApiKey('YOUR_API_KEY'); 
$document_api = new BoldSign\Api\DocumentApi($config); 
$signatureField = new BoldSign\Model\FormField(); 
$signatureField->setFieldType('Signature'); 
$signatureField->setPageNumber(1); 
$signatureField->setBounds(new BoldSign\Model\Rectangle([50, 50, 100, 20])); 
$signatureField->setIsRequired(true); 
$signer = new BoldSign\Model\DocumentSigner(); 
$signer->setName("Hank"); 
$signer->setEmailAddress("[email protected]"); 
$signer->setSignerType("InPersonSigner"); 
$signer->setHostEmail("[email protected]"); 
$signer->setFormFields([$signatureField]); 
$signer->setLocale("EN"); 
$send_for_sign = new BoldSign\Model\SendForSign(); 
$send_for_sign->setTitle('DOCUMENT_TITLE'); 
$send_for_sign->setSigners([$signer]); 
$send_for_sign->setFiles(['FILE_PATH']); 
$documentCreated = $document_api->sendDocument($send_for_sign);
            

Conclusion

Incorporating in-person signing into your electronic documents can be necessary for certain kinds of  transactions, depending on your local regulations. With BoldSign’s API, integrating in-person signatures into your workflow becomes a streamlined process, ensuring compliance and reliability in your document management.

By following the outlined steps and leveraging the provided sample codes, you can incorporate in-person signing capabilities into your applications. Start your 30-day free trial now to see how BoldSign can make your document signing processes easy and affordable. Please feel free to leave a comment below; your thoughts are much appreciated. Please schedule a demo or contact our support team via our support portal if you have any questions or would like more information about our services.

Like what you see? Share with a friend.

Latest blog posts

Passkey Authentication: How It Works, Benefits, Limits, and Best Uses

Passkey Authentication: How It Works, Benefits, Limits, and Best Uses

Learn what passkey authentication is, how it works, where it beats passwords and OTPs, and when signer verification is still needed for document workflows.

Healthcare eSignature: How Healthcare Providers Collect Patient Consent Digitally 

Healthcare eSignature: How Healthcare Providers Collect Patient Consent Digitally 

Explore healthcare eSignature workflows that help providers collect patient consent digitally across intake, check-in, telehealth, and record management.

Webinar Show Notes: Verify Signers with Knowledge-Based Authentication in BoldSign

Webinar Show Notes: Verify Signers with Knowledge-Based Authentication in BoldSign

KBA authentication webinar recap: how signers verify with security questions, what happens when verification fails, and how KBA compares to ID Verification.

Sign up for your free trial today!

  • Yes
    30-day free trial
  • Yes
    No credit card required
  • Yes
    30-day free trial
  • Yes
    No credit card required
Sign up for a free BoldSign trial