Send document with in-person signing using API
In-person signing is a crucial feature employed by organizations to enhance the credibility and validity of signatures, promoting a higher level of trust and accountability in the signing process. BoldSign offers a streamlined approach to sending documents with in-person signing capabilities using its API. The designated in-person host can be set using the hostEmail parameter.
It is important to note that only individuals within your organization can act as hosts for in-person signing sessions. To ensure clarity and privacy, the email address of the in-person host should be distinct from that of the recipients.
Example codes that can be used to send documents with in-person signing.
Code snippet
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": 1,
"height": 1
},
"isRequired": true
}
],
"locale": "EN"
}' \
-F 'Files={your file}' \
-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": "Hanky",
"emailAddress": "[email protected]",
"signerType": "InPersonSigner",
"hostEmail": "[email protected]",
"formFields": [
{
"id": "string",
"name": "string",
"fieldType": "Signature",
"pageNumber": 1,
"bounds": {
"x": 50,
"y": 50,
"width": 1,
"height": 1
},
"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": "Hanky",\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": 1,\r\n "height": 1\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);
});
- In the example, upload the document using the
Filesfield and fill in other required fields likeTitleandSigners. - To enable In-Person signing, set the signerType as
InPersonSigner,and provide the hostEmail with the email ID of a user from the same organization. - Ensure that the host's email is not the same as any recipient's email for the document.
- Fill in the other fields as needed.
- All the other fields can be filled as per the requirement.
- Upon executing the provided code snippet with valid values, the document with In-person signing settings will be successfully sent.
This process ensures that your documents can be signed in-person by designated hosts within your organization, maintaining the highest levels of authenticity and accountability.