How to set multiple CCs for signers using BoldSign API?

The CC option is used to send a copy of the document to non-signers. The recipient added in CC will receive notifications when a signer performs any action on the document. The CC recipients can view and download the document, but they cannot sign it.

This article provides step-by-step guidance on how to set multiple CCs (Carbon Copies) for signers in documents using the BoldSign API.

Here are code examples you can use to set multiple CCs for signer:

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 'CC={
  "emailAddress": "DavidJames@gmail.com",
  "emailAddress": "JamesThomas@gmail.com",
  "emailAddress": "ClaraThomas@.gmail.com",
  "emailAddress": "DianaDavid@gmail.com"
}' \ 
  -F 'Signers={
  "name": "David",
  "emailAddress": "david@cubeflakes.com",
   "formFields": [
   {
     "id": "Sign",
     "fieldType": "Signature",
     "pageNumber": 1,
     "bounds": {
       "x": 50,
       "y": 100,
       "width": 100,
       "height": 60
     },
     "isRequired": true
   }
 ],
  "locale": "EN"
}' \
  -F 'Files={your file}' \
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: "signature",
                isRequired: true,
                type: FieldType.Signature,
                pageNumber: 1,
                bounds: new Rectangle(x: 100, y: 600, width: 125, height: 25))

var formFieldCollections = new List<FormField>()
{
    signatureField
};

var signer = new DocumentSigner(
    signerName: "David",
    signerEmail: "david@cubeflakes.com",
    formFields: formFieldCollections,
    locale: Locales.EN);

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

var sendForSign = new SendForSign()
{
    Signers = documentSigners,
    CC = new List<DocumentCC>()
    {
        new DocumentCC(emailAddress: "DavidJames@gmail.com"),
        new DocumentCC(emailAddress: "JamesThomas@gmail.com"),
        new DocumentCC(emailAddress: "ClaraThomas@.gmail.com"),
        new DocumentCC(emailAddress: "DianaDavid@gmail.com"),
    },
    Title = "Sample Document",
    Files = filesToUpload
};
var documentCreated = documentClient.SendDocument(sendForSign);
Console.WriteLine(documentCreated.DocumentId);

import requests
import json

url = "https://api.boldsign.com/v1/document/send"

signer_data = {
    "name": "hanky",
    "emailAddress": "hankyWhites@gmail.com",
    "signerType": "Signer",
    "formFields": [
    {
      "id": "Signature",
      "type": "FieldType.Signature",
      "pageNumber": 1,
      "bounds": {
        "x": 100,
        "y": 100,
        "width": 200,
        "height": 100
      },
      "isRequired": True,
     
    }
    ],
    "locale": "EN"
}

cc_recipients = {"emailAddress": "JamesThomas@gmail.com"}
cc_recipients = {"emailAddress": "ClaraThomas@.gmail.com"}
cc_recipients = {"emailAddress": "DavidJames@gmail.com"}
cc_recipients = {"emailAddress": "DianaDavid@gmail.com"}

payload = {
    'Signers': json.dumps(signer_data),
    'Title': "Sample Document",
    'CC': json.dumps(cc_recipients)
}

files = [
    ('Files', ('{Your file name}', open('{Your file path}', 'rb'), 'application/pdf'))
]

headers = {
    'accept': 'application/json',
    'X-API-KEY': '{Your API key}'
}

response = requests.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('Signers', '{\r\n  "name": "David",\r\n  "emailAddress": "david@cubeflakes.com",\r\n  "signerType": "Signer",\r\n  "signerRole": "Signer",\r\n  "formFields": [\r\n    {\r\n      "id": "Signature",\r\n    "Type": "FieldType.Signature", \r\n "pageNumber": 1,\r\n      "bounds": {\r\n        "x": 100,\r\n        "y": 100,\r\n        "width": 200,\r\n        "height": 100\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('CC', JSON.stringify({"emailAddress": "DavidJames@gmail.com"}));
data.append('CC', JSON.stringify({"emailAddress": "JamesThomas@gmail.com"}));
data.append('CC', JSON.stringify({"emailAddress": "ClaraThomas@.gmail.com"}));
data.append('CC', JSON.stringify({"emailAddress": "DianaDavid@gmail.com"}));

data.append('Title', "Sample Document");

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 examples, update CC with the email addresses of the CCs. After executing the above code, the document will be created, and notifications will be sent to the CC email addresses.