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<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 signer = new DocumentSigner(
    signerName: "David",
    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 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.