Maintaining a consistent brand identity across all customer interactions is essential for businesses. When sending electronic signature requests, ensuring that your brand is prominently displayed in your documents can significantly influence how recipients perceive your business. BoldSign offers a robust branding feature that allows you to personalize the appearance of your eSignature requests via API.
Why branding matters
Imagine receiving an email asking for your signature on an important document. Wouldn’t it be reassuring to see the logo and colors of the sender in the email? Branding not only enhances trust, it reflects your company’s professionalism. With BoldSign’s branding feature, you can customize the appearance of signature request emails, including elements like logos, background colors, and button colors.
Moreover, BoldSign allows you to create multiple brands within the same account, making it easier to manage branding for different products, departments, or even clients.
Getting started with branding
1. Create a brand
Before applying branding to your documents, you need to create a brand in BoldSign. This can be done either through the web app or programmatically via the API.
Create a brand in the web app
If you prefer to create a brand directly in the BoldSign web app, just navigate to the branding section and follow the steps to upload your logo, choose your color scheme, and customize the email template. For a detailed walkthrough, refer to how to send a document with your brand identity.
Create a brand via API
For those who favor automation, you can create a brand using BoldSign’s API. The API allows you to set up your brand’s visual identity by specifying parameters such as logo, primary color, and more. For more details, check out the Branding section of the API documentation.
Once your brand is created, BoldSign will generate a unique brand ID that you’ll use to associate the brand with specific documents.
2. Apply branding to your documents
Now that you’ve created your brand, it’s time to put it to work. The brand ID generated in the previous step is the key to applying your branding to any document you send for signature.
Let’s say you’ve created a brand for your company, “CubeFlakes,” with a distinct blue and white color scheme and your company logo. You want every document you send for signature to include this branding. When sending a document via API, specify the BrandId to reflect this branding.
Here’s how you can do it with different programming languages:
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 'BrandId= {Your brand ID}' \
-F 'Message=' \
-F 'Signers={
"name": "Hanky",
"emailAddress": "[email protected]",
"signerType": "Signer",
"formFields": [
{
"id": "signature1",
"fieldType": "Signature",
"pageNumber": 1,
"bounds": {
"x": 50,
"y": 50,
"width": 200,
"height": 25
},
"isRequired": true
}
],
"locale": "EN"
}' \
-F 'Files=@{your file}' \
-F 'Title={Title of the document}' \
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: "signature1",
isRequired: true,
type: FieldType.Signature,
pageNumber: 1,
bounds: new Rectangle(x: 100, y: 100, width: 200, height: 25));
var formFieldCollections = new List<FormField>()
{
signatureField
};
var signer = new DocumentSigner(
signerName: "Hanky",
signerType: SignerType.Signer,
signerEmail: "[email protected]",
formFields: formFieldCollections,
locale: Locales.EN);
var documentSigners = new List<DocumentSigner>()
{
signer
};
var sendForSign = new SendForSign()
{
Title = "{Title of the document}",
BrandId = "{Your brand ID}",
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": "Signer",
"formFields": [
{
"id": " signature1",
"fieldType": "Signature",
"pageNumber": 1,
"bounds": {
"x": 50,
"y": 50,
"width": 200,
"height": 25
},
"isRequired": True
}
],
"locale": "EN"
}
payload = {
'BrandId': '{Your Brand Id}',
'Message': '',
'Signers': json.dumps(signer_data),
'Title': '{Title of the document}'
}
files = [
('Files', (
'{Your File name}',
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();
const brandId = '{Your Brand Id}';
const signerDetails = {
name: "Hanky Whites",
emailAddress: "[email protected]",
signerType: "Signer",
formFields: [
{
id: "signature1",
name: "Signature",
fieldType: "Signature",
pageNumber: 1,
bounds: {
x: 50,
y: 50,
width: 200,
height: 25
},
isRequired: true
}
],
locale: "EN"
};
const filePath = '{Your File Path}';
const documentTitle = '{Your Document Title}';
// Append data to FormData object
data.append('BrandId', brandId);
data.append('Message', 'Please sign this document.');
data.append('Signers', JSON.stringify(signerDetails));
data.append('Files', fs.createReadStream(filePath));
data.append('Title', documentTitle);
let config = {
method: 'post',
maxBodyLength: Infinity,
url: 'https://api.boldsign.com/v1/document/send',
headers: {
'accept': 'application/json',
'X-API-KEY': '{Your API Key}', // Replace with your API key
...data.getHeaders()
},
data : data
};
// Send the request
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.error('Error sending document:', error);
});
<?php
require_once "vendor/autoload.php";
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Request;
use GuzzleHttp\Psr7\MultipartStream;
use GuzzleHttp\Psr7;
$client = new Client([
'verify' => false
]);
$headers = [
'accept' => 'application/json',
'X-API-KEY' => '{Your API Key}'
];
$url = "https://api.boldsign.com/v1/document/send";
$signer_data = [
"name" => "hanky",
"emailAddress" => "[email protected]",
"signerType" => "Signer",
"formFields" => [
[
"id" => "signature1",
"fieldType" => "Signature",
"pageNumber" => 1,
"bounds" => [
"x" => 50,
"y" => 50,
"width" => 200,
"height" => 25
],
"isRequired" => true
]
],
"locale" => "EN"
];
$payload = [
'Title' => '{Title of the document}',
'BrandId' => '{Your Brand Id}',
'Signers' => json_encode($signer_data),
];
// File path
$file_path = '{Your file path}';
// Prepare multipart form data
$multipart = [];
foreach ($payload as $name => $content) {
$multipart[] = [
'name' => $name,
'contents' => $content
];
}
$multipart[] = [
'name' => 'Files',
'contents' => fopen($file_path, 'r'),
'filename' => basename($file_path)
];
$request = new Request('POST', $url, $headers, new MultipartStream($multipart));
$response = $client->send($request);
echo $response->getBody();
?>
After running any of the previous code examples, the document sent for signature will carry your branding. The recipient will see your brand’s logo in the email and on the signing page, reinforcing your brand’s presence.

Conclusion
Customizing your eSignature requests with your brand identity via API is a simple yet effective way to maintain consistency and build trust with your customers. Whether you manage a single brand or multiple, our API gives you the tools you need to make your brand stand out.
By following the steps in this article, you can easily integrate branding into your eSignature workflow, ensuring that every document you send aligns with your company’s image. For more information, check out BoldSign’s detailed API documentation.
Start your 30-day BoldSign free trial now to take advantage of a powerful, easy-to-use eSignature platform. Please leave a comment below; your thoughts are much appreciated. 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.
