On behalf of
In BoldSign, you can perform several operations on behalf of another user. For this, you should add that user as your sender identity, and that user should approve your request. Once this is done, you can perform the actions like sending documents, downloading the audit log, revoking, reminding, changing the access code, etc. The documents you sent on behalf of another user will be displayed under the Behalf Documents
section in the BoldSign application.
For more information, please refer to the Sender Identities article.
Asynchronous processing
Learn more about asynchronous processing in the following section:
Document Asynchronous processingDocument not found
Learn more about document not found in the following section:
Document not foundSend document on-behalf
post /v1/document/send
You can send documents to the signer on behalf of another user. When you send a document on behalf of another person, you will need to provide their email address in the onBehalfOf
property. This API supports both multipart/form-data
and application/json
content types.
Code snippet using multipart/form-data
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 'DisableExpiryAlert=false' \ -F 'ReminderSettings.ReminderDays=3' \ -F 'BrandId=' \ -F 'ReminderSettings.ReminderCount=5' \ -F 'EnableReassign=true' \ -F 'Message=Please sign this.' \ -F 'Signers={ "name": "David", "emailAddress": "david@cubeflakes.com", "formFields": [ { "fieldType": "Signature", "pageNumber": 1, "bounds": { "x": 100, "y": 100, "width": 100, "height": 50 }, "isRequired": true } ] }' \ -F 'ExpiryDays=10' \ -F 'EnablePrintAndSign=false' \ -F 'AutoDetectFields=false' \ -F 'OnBehalfOf=luthercooper@cubeflakes.com' \ -F 'EnableSigningOrder=false' \ -F 'UseTextTags=false' \ -F 'SendLinkValidTill=' \ -F 'Files=@agreement.pdf;type=application/pdf' \ -F 'Title=Agreement' \ -F 'HideDocumentId=false' \ -F 'EnableEmbeddedSigning=false' \ -F 'ExpiryDateType=Days' \ -F 'ReminderSettings.EnableAutoReminder=false' \ -F 'ExpiryValue=60' \ -F 'DisableEmails=false' \ -F 'DisableSMS=false'
var apiClient = new ApiClient("https://api.boldsign.com", "{your API key}"); var documentClient = new DocumentClient(apiClient); var documentFilePath = new DocumentFilePath { ContentType = "application/pdf", FilePath = "agreement.pdf", }; 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", HideDocumentId = false, Signers = documentSigners, Files = filesToUpload, OnBehalfOf = "luthercooper@cubeflakes.com" }; var documentCreated = documentClient.SendDocument(sendForSign);
import boldsign configuration = boldsign.Configuration( api_key = "YOUR_API_KEY" ) with boldsign.ApiClient(configuration) as api_client: document_api = boldsign.DocumentApi(api_client) form_field = [ boldsign.FormField( fieldType="Signature", pageNumber=1, bounds=boldsign.Rectangle( x=50, y=50, width=200, height=25 ) ) ] document_signer = boldsign.DocumentSigner( name="David", emailAddress="david@cubeflakes.com", signerOrder=1, signerType="Signer", formFields=form_field, locale="EN" ) send_for_sign = boldsign.SendForSign( document_title = "SDK Document Test case", description="Testing document from SDK integration test case", files=["YOUR_FILE_PATH"], disableExpiryAlert=False, reminderSettings=boldsign.ReminderSettings( reminderDays=3, reminderCount=5, enableAutoReminder=False ), enableReassign=True, message='Please sign this.', signers=[document_signer], expiryDays=10, enablePrintAndSign=False, AutoDetectFields=False, onBehalfOf="luthercooper@cubeflakes.com", enableSigningOrder=False, useTextTags=False, title="Agreement", hideDocumentId=False, enableEmbeddedSigning=False, expiryDateType='Days', expiryDate=60, disableEmails=False, disableSMS=False, ) send_document_response = document_api.send_document(send_for_sign)
const axios = require('axios'); const FormData = require('form-data'); const fs = require('fs'); const form = new FormData(); form.append('DisableExpiryAlert', 'false'); form.append('ReminderSettings.ReminderDays', '3'); form.append('BrandId', ''); form.append('ReminderSettings.ReminderCount', '5'); form.append('EnableReassign', 'true'); form.append('Message', 'Please sign this.'); form.append('Signers', '{\n "name": "David",\n "emailAddress": "david@cubeflakes.com",\n "formFields": [\n {\n "fieldType": "Signature",\n "pageNumber": 1,\n "bounds": {\n "x": 100,\n "y": 100,\n "width": 100,\n "height": 50\n },\n "isRequired": true\n }\n ]\n}'); form.append('ExpiryDays', '10'); form.append('EnablePrintAndSign', 'false'); form.append('AutoDetectFields', 'false'); form.append('OnBehalfOf', 'luthercooper@cubeflakes.com'); form.append('EnableSigningOrder', 'false'); form.append('UseTextTags', 'false'); form.append('SendLinkValidTill', ''); form.append('Files', fs.readFileSync('agreement.pdf;type=application/pdf'), 'agreement.pdf;type=application/pdf'); form.append('Title', 'Agreement'); form.append('HideDocumentId', 'false'); form.append('EnableEmbeddedSigning', 'false'); form.append('ExpiryDateType', 'Days'); form.append('ReminderSettings.EnableAutoReminder', 'false'); form.append('ExpiryValue', '60'); form.append('DisableEmails', 'false'); form.append('DisableSMS', 'false'); const response = await axios.post( 'https://api.boldsign.com/v1/document/send', form, { headers: { ...form.getHeaders(), 'accept': 'application/json', 'X-API-KEY': '{your API key}', 'Content-Type': 'multipart/form-data' } } );
Code snippet using application/json
curl -X 'POST' \ 'https://api.boldsign.com/v1/document/send' \ -H 'accept: application/json' \ -H 'X-API-KEY: {your API key}' \ -H 'Content-Type: application/json' \ -d '{ "DisableExpiryAlert": false, "ReminderSettings": { "ReminderDays": 5, "ReminderCount": 3, "EnableAutoReminder": true }, "BrandId": "", "EnableReassign": true, "Message": "", "Signers": [ { "name": "Alex", "emailAddress": "alexgayle@boldsign.dev", "signerType": "Signer", "formFields": [ { "id": "string", "name": "string", "fieldType": "Signature", "pageNumber": 1, "bounds": { "x": 50, "y": 50, "width": 125, "height": 25 }, "isRequired": true } ], "locale": "EN" } ], "ExpiryDays": 30, "EnablePrintAndSign": false, "AutoDetectFields": false, "OnBehalfOf": "luthercooper@cubeflakes.com", "EnableSigningOrder": false, "UseTextTags": false, "SendLinkValidTill": "", "Files": [ "data:application/pdf;base64,JVBERi0xLjcKJcfs..." ], "Title": "Sampledocument", "HideDocumentId": false, "EnableEmbeddedSigning": false, "ExpiryDateType": "Days", "ExpiryValue": 60, "DisableEmails": false, "DisableSMS": false }'
import requests import json url = "https://api.boldsign.com/v1/document/send" signer_data = { "name": "David", "emailAddress": "david@boldsign.dev", "signerType": "Signer", "formFields": [ { "id": "string", "name": "string", "fieldType": "Signature", "pageNumber": 1, "bounds": { "x": 50, "y": 50, "width": 200, "height": 25 }, "isRequired": True } ], "locale": "EN" } payload = { 'DisableExpiryAlert': 'false', 'ReminderSettings.ReminderDays': '3', 'BrandId': '', 'ReminderSettings.ReminderCount': '5', 'EnableReassign': 'true', 'Message': 'Please sign this.', 'Signers': [signer_data], 'Title': 'Agreement', 'Files': [ 'data:application/pdf;base64,JVBERi0xLjcKJcfs...' ], 'ExpiryDays': '10', 'EnablePrintAndSign': 'false', 'AutoDetectFields': 'false', 'OnBehalfOf': 'luthercooper@cubeflakes.com', 'EnableSigningOrder': 'false', 'UseTextTags': 'false', 'SendLinkValidTill': '', 'HideDocumentId': 'false', 'EnableEmbeddedSigning': 'false', 'ExpiryDateType': 'Days', 'ReminderSettings.EnableAutoReminder': 'false', 'ExpiryValue': '60', 'DisableEmails': 'false', 'DisableSMS': 'false' } headers = { 'Content-Type': 'application/json', 'accept': 'application/json', 'X-API-KEY': '{your API key}' } response = requests.post(url, headers=headers, json=payload) print(response.text)
const axios = require('axios'); const fs = require('fs'); // Create the payload object const payload = { DisableExpiryAlert: false, ReminderSettings: { ReminderDays: 3, ReminderCount: 5, EnableAutoReminder: false }, BrandId: '', EnableReassign: true, Message: 'Please sign this.', Signers: [ { name: 'David', emailAddress: 'david@boldsign.dev', formFields: [ { fieldType: 'Signature', pageNumber: 1, bounds: { x: 100, y: 100, width: 100, height: 50 }, isRequired: true } ] } ], ExpiryDays: 10, EnablePrintAndSign: false, AutoDetectFields: false, OnBehalfOf: 'luthercooper@cubeflakes.com', EnableSigningOrder: false, UseTextTags: false, SendLinkValidTill: '', Files: [ 'data:application/pdf;base64,JVBERi0xLjcKJcfs...' ], Title: 'Agreement', HideDocumentId: false, EnableEmbeddedSigning: false, ExpiryDateType: 'Days', ExpiryValue: 60, DisableEmails: false, DisableSMS: false }; const response = await axios.post( 'https://api.boldsign.com/v1/document/send', payload, { headers: { 'Content-Type': 'application/json', 'accept': 'application/json', 'X-API-KEY': '{your API key}' } } ); console.log(response.data);
<?php require_once "vendor/autoload.php"; use GuzzleHttp\Client; use GuzzleHttp\Psr7\Request; $client = new Client(); $headers = [ 'accept' => 'application/json', 'Content-Type' => 'application/json', 'X-API-KEY' => '{your API key}' ]; $payload = [ "DisableExpiryAlert" => false, "ReminderSettings" => [ "ReminderDays" => 5, "ReminderCount" => 3, "EnableAutoReminder" => true ], "BrandId" => '', "EnableReassign" => true, "Message" => '', "Signers" => [ [ "name" => "Sample document", "emailAddress" => "alexgayle@cubeflakes.com", "signerType" => "Signer", "formFields" => [ [ "id" => "string", "name" => "string", "fieldType" => "Signature", "pageNumber" => 1, "bounds" => [ "x" => 50, "y" => 50, "width" => 125, "height" => 25 ], "isRequired" => true ] ], "locale" => "EN" ] ], "ExpiryDays" => 30, "EnablePrintAndSign" => false, "AutoDetectFields" => false, "OnBehalfOf" => 'luthercooper@cubeflakes.com', "EnableSigningOrder" => false, "UseTextTags" => false, "SendLinkValidTill" => '', "Files" => [ 'data:application/pdf;base64,JVBERi0xLjcKJcfs...' ], "Title" => 'Sample document', "HideDocumentId" => false, "EnableEmbeddedSigning" => false, "ExpiryDateType" => 'Days', "ExpiryValue" => 60, "DisableEmails" => false, "DisableSMS" => false ]; $options = [ 'body' => json_encode($payload) ]; $request = new Request('POST', 'https://api.boldsign.com/v1/document/send', $headers); $res = $client->sendAsync($request, $options)->wait(); echo $res->getBody();
Request body
filesarray | The files to be uploaded for sending signature request. .pdf, .png, .jpg, and .docx are supported file formats. The preferred file format is .pdf. You can upload up to 25 files. Each document may have a maximum of 1000 pages and must be no larger than 25 MB in size. The base64 format is data:application/{{fileType}};base64,{{content}} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
titlestring | This is the title of the document that will be displayed in the BoldSign user interface as well as in the signature request email. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
messagestring | A message for all the recipients. You can include the instructions that the signer should know before signing the document. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
signersarray | Details of the signers. One or more signers can be specified.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ccarray | Mail ID of the CC recipients. One or more CC recipients can be specified.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enableSigningOrderboolean | Enables or disables the signing order. When enabled, signers must sign the document in the specified order and cannot sign in parallel. The default value is false. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiryDaysinteger | The number of days after which the document expires. The default value is 60 days. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ReminderSettings.EnableAutoReminderboolean | Enables or disables the auto-reminder. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ReminderSettings.ReminderDaysinteger | The number of days between each automatic reminder. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ReminderSettings.ReminderCountinteger | The number of times the auto-reminder should be sent. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
disableEmailsboolean | Disables the sending of document related emails to all the recipients. The default value is false . | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
disableSMSboolean | Disables the sending of document related SMS to all the recipients. The default value is false . | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
brandIdstring | You can customize the logo, colors, and other elements of the signature request emails and document signing pages to match your company branding. The ID of the existing brand can be obtained from the branding API and from the web app. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
hideDocumentIdboolean | Decides whether the document ID should be hidden or not. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
labelsarray | Labels (tags) are added to the document to categorize and filter the documents. One or more labels can be added. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fileUrlsarray | The URL of the files to be uploaded for sending signature request. .pdf, .png, .jpg, and .docx are supported file formats. The preferred file format is .pdf. You can upload up to 25 files. Each document may have a maximum of 1000 pages and must be no larger than 25 MB in size. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sendLinkValidTillstring | Configures the expiration for the generated URL. A maximum of 180 days can be assigned. The string should be in date-time format. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
useTextTagsBoolean | When enabled, it will convert all the tags defined in the document to BoldSign form fields. The default value is false . | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
textTagDefinitionsarray | This can be used for long text tag handling.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enablePrintAndSignboolean | Allows the signer to reassign the signature request to another person. The default value is true . | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
disableExpiryAlertarray | Disables the alert, which was shown one day before the expiry of the document. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
formGroupsarray | Manages the rules and configuration of grouped form fields.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
documentInfoarray | Options to customize the information, like the title and description of the document for a particular signer.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
onBehalfOfstring | Mail ID of the user to send the document on behalf of them. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enableAuditTrailLocalizationboolean | Enable localization for audit trail based on the signer's language. If null is provided, the value will be inherited from the Business Profile settings. Only one additional language can be specified in the signer's languages besides English. |
Example response
201 Created
{ "documentId": "8f59295d-xxxx-xxxx-xxxx-e7dc88cfff2c" }