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": "hankyWhites@cubeflakes.com", "signerType": "InPersonSigner", "hostEmail":"richards@cuberflakes.com.com", "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: "hankyWhites@cubeflakes.com", hostEmail:"richards@cuberflakes.com", 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": "hankyWhites@cubeflakes.com", "signerType": "InPersonSigner", "hostEmail": "richards@cuberflakes.com", "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": "richards@cuberflakes.com",\r\n "emailAddress": "hankyWhites@cubeflakes.com",\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
Files
field and fill in other required fields likeTitle
andSigners
. - 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.