Send document on behalf of others

BoldSign enables performing actions on behalf of another user, enhancing document management. This feature enables users to dispatch documents on behalf of other individuals.

To make use of this feature, it's necessary to obtain approval from an individual to use their email address to send documents on their behalf.

Follow the steps below to send document on behalf of other individual:

Create sender identity

Create a sender identity by using the name and email address of the individual to send documents on their behalf.

Here are example codes you can use to create a sender identity

Code snippet

curl -X 'POST' \
  'https://api.boldsign.com/v1/senderIdentities/create' \
  -H 'accept: */*' \
  -H 'X-API-KEY: {your API key}' \
  -H 'Content-Type: application/json;' \
  -d '{
  "name": "Sender identity",
  "email": "senderidentity@email.com"
}'

var apiClient = new ApiClient("https://api.boldsign.com", "{your API key}");
var senderIdentityClient = new SenderIdentityClient(apiClient);
var senderIdentityRequest = new SenderIdentityRequest("Sender identity", "senderidentity@email.com",null);
var senderIdentityCreated = senderIdentityClient.CreateSenderIdentity(senderIdentityRequest);
import requests

url = "https://api.boldsign.com/v1/senderIdentities/create"

payload = "{\r\n  \"name\": \"Sender identity\",\r\n  \"email\": \"senderidentity232@email.com\"\r\n}"
headers = {
  'accept': '*/*',
  'X-API-KEY': '{Your API key}',
  'Content-Type': 'application/json;'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
const axios = require('axios');
let data = '{\r\n  "name": "Sender identity",\r\n  "email": "senderidentity@email.com"\r\n}';

let config = {
  method: 'post',
  url: 'https://api.boldsign.com/v1/senderIdentities/create',
  headers: { 
    'accept': '*/*', 
    'X-API-KEY': '{your API key}', 
    'Content-Type': 'application/json;'
  },
  data : data
};

axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});

In the above example, replace the name and email with the name and email of the individual that you want to send the documents on their behalf. Then, provide the notificationSettings to customize how sender identity should recieve email notification for the documents sent on behalf of them. For example, if viewed is set to true, an email will be automatically sent to the sender identity email address when the document is viewed by the signers.

After executing the above request, an approval email will be sent to the mentioned email address. Using the link within this email, the sender can assess the request and provide authorization for you to send documents using their email address. Once the sender grants approval, the requesting user gains the ability to send documents on behalf of the approving user.

Send document on behalf of others

Now, users can send documents on behalf of another user by including the sender's identity email address in the OnBehalfOf property.

Here are example codes you can use to do this:

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 'OnBehalfOf=' \
     -F 'Message=' \
     -F 'Signers={
        "name": "Hanky",
        "emailAddress": "hankyWhites@cubeflakes.com",
        "signerType": "Signer",
        "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.Signer,
  signerEmail: "david@cubeflakes.com",
  formFields: formFieldCollections,
  locale: Locales.EN);

var documentSigners = new List<DocumentSigner>()
{
    signer
};

var sendForSign = new SendForSign()
{
   Message = "please sign this",
   Title = "Agreement",
   OnBehalfOf = "",
   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": "Signer",
    "formFields": [
        {
            "id": "string",
            "name": "string",
            "fieldType": "Signature",
            "pageNumber": 1,
            "bounds": {
                "x": 50,
                "y": 50,
                "width": 1,
                "height": 1
            },
            "isRequired": True
        }
    ],
    "locale": "EN"
}

payload = {
    'OnBehalfOf': '',
    '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('OnBehalfOf', '');
data.append('Message', '');
data.append('Signers', '{\r\n        "name": "Hanky",\r\n        "emailAddress": "hankyWhites@cubeflakes.com",\r\n        "signerType": "Signer",\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 above example, replace the OnBehalfOf with the email address of sender identity.

After executing the above code, the document will be created, and an email will be sent to the signer. The sender's identity email address will be used as the sender's address in the email. Subsequently, the signer will see the sender identity email address as the sender of the email and the document, rather than your own email address.