• Blog

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.

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. This requirement reinforces security measures, ensuring that only authorized personnel oversee the signing process.

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": "Hanky",
        "emailAddress": "[email protected]",
        "signerType": "InPersonSigner",
        "hostEmail":"[email protected]",
        "formFields": [
           {
                "id": "string",
                "name": "string",
                "fieldType": "Signature",
                "pageNumber": 1,
                "bounds": {
                  "x": 50,
                  "y": 50,
                  "width": 100,
                  "height": 20
                   },
      "isRequired": true
    }
  ],
  "locale": "EN"
}' \
  -F 'Files=@{your 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 = "{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 signer = new DocumentSigner(
    signerName: "David",
    signerType: SignerType.InPersonSigner,
    signerEmail: "[email protected]",
    hostEmail: "[email protected]",
    formFields: formFieldCollections,
    locale: Locales.EN);
var documentSigners = new List
{
    signer
};
var sendForSign = new SendForSign
{
    Message = "please sign this",
    Title = "Agreement",
    Signers = documentSigners,
    Files = filesToUpload
};
var documentCreated = documentClient.SendDocument(sendForSign);
    

import requests
import json
url = "https://api.boldsign.com/v1/document/send"
signer_data = {
    "name": "Hank ",
    "emailAddress": "[email protected]",
    "signerType": "InPersonSigner",
    "hostEmail": "[email protected]",
    "formFields": [
        {
            "id": "string",
            "name": "string",
            "fieldType": "Signature",
            "pageNumber": 1,
            "bounds": {
                "x": 50,
                "y": 50,
                "width": 100,
                "height": 20
            },
            "isRequired": True
        }
    ],
    "locale": "EN"
}
payload = {
    'Message': '',
    'Signers': json.dumps(signer_data),
    'Title': '{title}'
}
files = [
    ('Files', (
        'doc-2.pdf',
        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)
    

const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');
let data = new FormData();
data.append('Message', '');
data.append('Signers', '{\r\n        "name": "Hank",\r\n        "hostEmail": "[email protected]",\r\n        "emailAddress": "[email protected]",\r\n        "signerType": "InPersonSigner",\r\n        "formFields": [\r\n           {\r\n                "id": "string",\r\n                "name": "string",\r\n                "fieldType": "Signature",\r\n                "pageNumber": 1,\r\n                "bounds": {\r\n                  "x": 50,\r\n                  "y": 50,\r\n                  "width": 100,\r\n                  "height": 20\r\n                   },\r\n      "isRequired": true\r\n    }\r\n  ],\r\n  "locale": "EN"\r\n}');
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
require_once "vendor/autoload.php";
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Request;
use \GuzzleHttp\Psr7\Utils;
$headers = [
 'accept' => 'application/json',
 'X-API-KEY' => 'Your API Key'
];
$options = [
 'multipart' => [
   [
     'name' => 'Signers',
     'contents' => '{
       "name": "Hank",
        "emailAddress": "[email protected]",
       "signerType": "InPersonSigner",
       "hostEmail": "[email protected]",
       "formFields": [
          {
               "id": "string",
               "name": "string",
               "fieldType": "Signature",
               "pageNumber": 1,
               "bounds": {
                 "x": 50,
                 "y": 50,
                 "width": 200,
                 "height": 60
                  },
     "isRequired": true
   }
 ],
 "locale": "EN"
}'
   ],
   [
     'name' => 'Title',
     'contents' => 'dcsd'
   ],
   [
      'name' => 'Files',
      'contents' => Utils::tryFopen('{Your File Path}, 'r'),
      'filename' => 'Your File Name’,
      'headers'  => [
        'Content-Type' => ''
      ]
    ]
]];
$request = new Request('POST', 'https://api.boldsign.com/v1/document/send', $headers);
$res = $client->sendAsync($request, $options)->wait();
echo $res->getBody();
    

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 ID Verification Protects Your Rental Applications from Fraud

How ID Verification Protects Your Rental Applications from Fraud

Add ID verification for rental applications to your eSignature flow—BoldSign verifies ID + selfie before signing and keeps a clear audit trail to minimize fraud risks.

Webinar Show Notes: What’s New in BoldSign

Webinar Show Notes: What’s New in BoldSign

Missed the BoldSign webinar? Explore new QES, AI‑assisted fields, WhatsApp notifications, and more—new features designed for faster, compliant eSigning.

ASP.NET Core JWT Authentication: Setup, Validation, and Best Practices

ASP.NET Core JWT Authentication: Setup, Validation, and Best Practices

TL;DR: JWT performs best when you avoid server sessions, minimize claims, and rely on cached key and metadata lookup. Prioritize strict validation and short-lived access tokens; implement refresh only for long-lived sessions. High-traffic APIs validate on every request, so these choices directly control latency and risk. JWT authentication in ASP.NET Core is a stateless, token-based […]

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