Integrate In-Person Signing to Docs Using BoldSign API

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

How to Automatically Save Signed Contracts to HubSpot

How to Automatically Save Signed Contracts to HubSpot

Learn how signed HubSpot contracts are saved automatically, keeping documents on the right CRM record, improving visibility, and reducing manual uploads.

How to Create a Telegram QR Code Online for Free

How to Create a Telegram QR Code Online for Free

Create a Telegram QR code for your profile, group, channel, or bot. Generate customizable Telegram codes online instantly for free and share them easily.

Eliminate Approval Delays in Multi-Signer Workflows with Group Signers

Eliminate Approval Delays in Multi-Signer Workflows with Group Signers

Discover how BoldSign Group Signers help teams avoid approval delays by allowing any authorized member to securely sign documents via the API. Try now!

Sign up for your free trial today!

  • tick-icon
    30-day free trial
  • tick-icon
    No credit card required
  • tick-icon
    30-day free trial
  • tick-icon
    No credit card required
Sign up for BoldSign free trial