Send document using multiple templates

post/v1/template/mergeAndSend

Templates play a pivotal role in enhancing your document management workflow. Users can merge one or more templates into a single document. This merge template process takes an array of template IDs as input and performs a series of checks and operations to seamlessly merge the templates into a finalized document.

Code snippet

curl -X 'POST' \ 'https://api.boldsign.com/v1/template/mergeAndSend' \
     -H 'accept: application/json' \
     -H 'X-API-KEY: {your API key}' \
     -H 'Content-Type: application/json;odata.metadata=minimal;odata.streaming=true' \
     -d '{
       "templateIds": [
          "1a62a39c-xxxx-xxxx-xxxx-c0a09ee3fc82", "01c19aef-xxxx-xxxx-xxxx-7178ef2e1036"
        ],
       "title": "Invitation form",
       "message": "Kindly review and sign this.",
       "roles": [
    {
      "roleIndex": 50,
      "signerName": "Richard",
      "signerOrder": 1,
      "signerEmail": "richard@cubeflakes.com",
      "privateMessage": "Please check and sign the document.",
      "authenticationCode": "281028",
      "enableEmailOTP": false,
      "signerType": "Signer",
      "signerRole": "Manager",
     "formFields": [
    {
      "id": "SignField",
      "fieldType": "Signature",
      "pageNumber": 1,
      "bounds": {
        "x": 100,
        "y": 100,
        "width": 100,
        "height": 50
      },
      "isRequired": true
    }
  ],
      "locale": "EN"
    }
  ],
  "brandId": "8208b6d3-xxxx-xxxx-xxxx-1bbe41018107",
  "labels": [
    "Invitation"
  ],
  "disableEmails": false,
  "disableSMS": false,
  "hideDocumentId": true,
  "reminderSettings": {
    "enableAutoReminder": true,
    "reminderDays": 3,
    "reminderCount": 10
  },
  "cc": [
    {
      "emailAddress": "alexgayle@cubeflakes.com"
    }
  ],
  "expiryDays": 180,
  "expiryDateType": "Days",
  "expiryValue": 60,
  "disableExpiryAlert": true,
  "enablePrintAndSign": true,
  "enableReassign": true,
  "enableSigningOrder": true,
  "roleRemovalIndices": [1, 2],
  "downloadFileName": "Test-document-from-{sendername}",
  "useTextTags": false
  }'
var apiClient = new ApiClient("https://api.boldsign.com", "{your API key}");
var templateClient = new TemplateClient(apiClient);
var signatureField = new FormField(
  id: "sign_id",
  type: FieldType.Signature,
  pageNumber: 1,
  bounds: new Rectangle(x: 100, y: 100, width: 100, height: 50));

  var formFieldsCollections = new List<FormField>
  {
    signatureField,
  };

  var templateRole = new Roles(
    roleSignerName:"David",
    roleSignerEmailAddress:"david@cubeflakes.com",
    roleSignerIndex:3,
    formFields: formFieldsCollections,
    locale: Locales.EN);

  var roles = new List<Roles>
  {
    templateRole,
  };

  var mergeAndSendForSign = new MergeAndSendForSign ()
  {
    TemplateIds = new string[] { "01c19aef-xxxx-xxxx-xxxx-7178ef2e1036", "6a80bba9-xxxx-xxxx-xxxx-5d4dcd5cb08a" },
    Roles = roles,
    RoleRemovalIndices = new [] {1, 2},
    UseTextTags = false
  };

var documentCreated =  templateClient.MergeAndSend(mergeAndSendForSign);
import boldsign

configuration = boldsign.Configuration(api_key="YOUR_API_KEY")

with boldsign.ApiClient(configuration) as api_client:
    
    template_api = boldsign.TemplateApi(api_client)
    form_field = [
        boldsign.FormField(
            fieldType="Signature",
            pageNumber=1,
            bounds=boldsign.Rectangle(x=100, y=100, width=100, height=50)
        ),
    ]

    role = boldsign.Role(
        signerRole="NewRole",
        roleIndex=4,
        signerName="David",
        signerEmail="david@cubeflakes.com",
        formFields=form_field,
    )

    merge_and_send_for_sign_form = boldsign.MergeAndSendForSignForm(
        templateIds=["YOUR_TEMPLATE_ID", "YOUR_TEMPLATE_ID"],
        roles=[role],
        useTextTags=False
    )

    merge_and_send_response = template_api.merge_and_send(merge_and_send_for_sign_form)
<?php require_once "vendor/autoload.php";

$config = new BoldSign\Configuration();
$config->setApiKey('YOUR_API_KEY');

$template_api = new BoldSign\Api\TemplateApi($config);
$form_fields = new BoldSign\Model\FormField();
$form_fields->setFieldType('Signature');
$form_fields->setPageNumber(1);
$bounds = new BoldSign\Model\Rectangle([100, 100, 100, 50]);
$form_fields->setBounds($bounds);

$role = new BoldSign\Model\Role();
$role->setRoleIndex(4);
$role->setSignerName('David');
$role->setSignerEmail('david@cubeflakes.com');
$role->setSignerRole('NewRole');
$role->setFormFields([$form_fields]);

$merge_and_send_for_sign_form = new \BoldSign\Model\MergeAndSendForSignForm();
$merge_and_send_for_sign_form->setTemplateIds(['YOUR_TEMPLATE_ID', 'YOUR_TEMPLATE_ID']);
$merge_and_send_for_sign_form->setRoles([$role]);
$merge_and_send_for_sign_form->setUseTextTags(false);

$merge_and_send_response = $template_api->mergeAndSend($merge_and_send_for_sign_form);
ApiClient client = Configuration.getDefaultApiClient();  
client.setApiKey("YOUR_API_KEY");
			
TemplateApi templateApi = new TemplateApi(client);
FormField signatureField = new FormField();
signatureField.setFieldType(FormField.FieldTypeEnum.SIGNATURE);
signatureField.setPageNumber(1);
Rectangle bounds = new Rectangle();
bounds.setX(50f);
bounds.setY(100f);
bounds.setWidth(100f);
bounds.setHeight(60f);
signatureField.setBounds(bounds);

Role role = new Role();
role.setRoleIndex(50);
role.setSignerName("David");
role.setSignerEmail("david@cubeflakes.com");
role.setSignerRole("HR");
role.setFormFields(Arrays.asList(signatureField));

MergeAndSendForSignForm mergeAndSendForSignForm = new MergeAndSendForSignForm();
mergeAndSendForSignForm.setTemplateIds(Arrays.asList("YOUR_TEMPLATE_ID", "YOUR_TEMPLATE_ID"));
mergeAndSendForSignForm.setRoles(Arrays.asList(role));

templateApi.mergeAndSend(mergeAndSendForSignForm);
import { TemplateApi,FormField, MergeAndSendForSignForm, Rectangle, Role } from "boldsign";

const templateApi = new TemplateApi();
templateApi.setApiKey("YOUR_API_KEY");

const bounds = new Rectangle();
bounds.x = 100;
bounds.y = 50;
bounds.width = 100;
bounds.height = 100;

const formField = new FormField();
formField.fieldType = FormField.FieldTypeEnum.Signature;
formField.pageNumber = 1;
formField.bounds = bounds;

const role = new Role();
role.roleIndex = 1;
role.signerName = "David";
role.signerEmail = "david@cubeflakes.com";
role.signerType =  Role.SignerTypeEnum.Signer;
role.signerRole = "Manager";
role.formFields = [formField];

const mergeAndSendForsign = new MergeAndSendForSignForm();
mergeAndSendForsign.roles = [role];
mergeAndSendForsign.templateIds =  ["YOUR_TEMPLATE_ID", "YOUR_TEMPLATE_ID"];

const multipleTemplateResponse = templateApi.mergeAndSend(mergeAndSendForsign);

Request body

templateIdsarrayThis is the templateIds of the existing templates to be used for sending the document. One or more values can be specified.
titlestringThis is the title of the document that will be displayed in the BoldSign user interface as well as in the signature request email.
messagestringA message for all the recipients. You can include the instructions that the signer should know before signing the document.

rolesarray

A role is simply a placeholder for a real person. For example, if we have a purchase order that will always be signed by two people, one from the company and one from the customer, we can create a template with two roles, Customer and Representative.

roleIndexintegerRequired

The row index value of the role. The role index should be in linear increments for each role (1, 2, 3, and so on). The index value must be between 1 and 50.

Example:

When merging templates, the role index follows a linear progression. In the first template, the role index starts naturally. In the second template, the role index begins from the next value after the sum of the roles used in the first template. For the third template, the role index starts from the next value after the sum of the roles used in the first and second templates, and so on.

signerNamestringName of the signer. This name will appear on all the emails, notifications, and audit files.
signerOrderintegerSigning order of the signer. This is applicable when the signing order option is enabled.
signerEmailstringMail ID of the signer. This ID will appear on all the emails, notifications, and audit files.
hostEmailstringMail ID of the host. It is applicable when the signerType is set to InPersonSigner.
privateMessagestringDisplays a message to the specified signer when he proceeds to sign the document. You can include the instructions that the signer should know before signing the document.
authenticationTypestringThis is used to allow authentication for a specific signer. We have three types of authentication. They are AccessCode, EmailOTP, SMSOTP and IdVerification. The default value is None.
authenticationCodestringThe authentication access code that the signer must enter to access the document. This should be shared with the signer.
enableEmailOTPbooleanEnables the email OTP authentication. when this feature is enabled, the signer must enter the OTP received via email, to access the document.

phoneNumberobject

When you set the authentication type to SMSOTP or select the delivery mode as SMS or EmailAndSMS, you can provide the phone number with the country code.

countryCodestringThis property represents the country code associated with the phone number.
numberstringThis property represents the actual phone number.

identityVerificationSettingsobject

Settings for identity verification when IdVerification authentication type is enabled for the signer.

typestringCustomize the frequency of identity verification for signers accessing documents.
  • EveryAccess: Signers must undergo identity verification each time they access the document, even after completing their signature.
  • UntilSignCompleted: Identity verification is required until the signer completes their signature. After which, they will not need to undergo identity verification again.
  • OncePerDocument: Signers authenticate their identity only once, even if accessing the document multiple times.
maximumRetryCountintegerSpecify the maximum number of verification attempts allowed for signers. Exceeding this limit restricts access to the document. Senders have the option to reset failed signers for additional attempts and manually review failed document uploads for approval or rejection. Maximum number of retries is 10.
requireLiveCapturebooleanMandate signers to capture a live image of their identification document using their device camera. This verifies the document's authenticity and originality, preventing the use of photos or photocopies.
requireMatchingSelfiebooleanUses advanced machine learning algorithms to ensure facial recognition accuracy, preventing the use of stolen identity documents by comparing the photo on the ID and the selfie image.
nameMatcherstringDefine the tolerance level for matching the signer's name with the name on the uploaded identification document. Options include:
  • Strict: Minimal variations are permitted, adhering to strict matching rules.
  • Moderate: Moderate matching rules allow for variations in the middle, prefix, and suffix parts of the name.
  • Lenient: Relaxed matching rules accommodate minor spelling mistakes for increased flexibility.
holdForPrefillbooleanEnable this option to hold the signer from signing the document, giving you the opportunity to prefill the signer's details. Once the prefill is completed, the signer can proceed with the signing process. The maximum hold time is 30 seconds; if you exceed this time limit, the signer will be redirected to the signing page.

authenticationRetryCountNullable int

Specifies the maximum number of allowed authentication attempts for the signer during the signing process. This applies to the following authentication methods:

  • AccessCode
  • EmailOTP
  • SMSOTP

The retry count must be an integer between 1 and 10. If this property is not specified, the default value is 3 or the value configured in the business profile. This property is optional.

deliveryModestringThis property allows you to specify the desired delivery mode for sending notifications. We have three types of delivery modes. They are Email , SMS and EmailAndSMS. The default value is Email.
signerTypeSignerTypeType of the signer. The values are Signer, Reviewer, and InPersonSigner.
signerRolestringThe role of the signer, which was specified while creating the template.
allowFieldConfigurationbooleanThis option enables the signer to add fields at their end while signing the document. If this option is set to false, the signer cannot add fields, and they must complete the assigned ones. By default, it is set to false.

formFieldsarray

List of form fields associated with the signer.

idstringThe id of the form field. ID must start with a letter or an underscore and can only contain letters, digits, and underscores.
namestringName of the form field.

typestring

Type of the form field. The available values are Signature, Initial, CheckBox, TextBox, Label, DateSigned, Image, Attachment, EditableDate, Hyperlink, Formula and Dropdown. The Formula field is only available in the beta version.

Note : To add Email, Name, Title, and Company fields via API, use TextBox fields with the validation type set to Regex .

pageNumberintegerPage number in the document in which the form field has to be placed. The page number must be greater than zero.

boundsRectangle

Position and size values of the form field to be placed.

xfloatX-coordinate value to place the form field.
yfloatY-coordinate value to place the form field.
widthfloatWidth of the form field. The width must be greater than zero.
heightfloatHeight of the form field. The default line height is 15.0 .
isRequiredbooleanDecides whether this form field is required to be filled or not.
tabIndexNullable intAssign tab index to control the flow of field focus while using TAB key navigation. Default to null, which denotes it will follow regular flow. The accepted range starts from -1 to a valid integer.
labelstringThe label used to represent the value for a radio button. Also, can be used to prefill a radio button.
valuestringValue to be displayed on the label form field.
fontSizefloatSize of the font.
fontstringFont family. The values are Courier, Helvetica, TimesNewRoman and NotoSans. The default font family is Helvetica.
fontHexColorstringColor of the font. The value should be hex color code. Example - #035efc.
isBoldFontbooleanDecides whether the font should be in bold or not.
isItalicFontbooleanDecides whether the font should be in italic or not.
isUnderLineFontbooleanDecides whether the font should be underlined or not.
lineHeightintegerHeight of a line in the text. The default line height is 15.0 .
characterLimitintegerLimits the number of characters in the text. The character limit value must be greater than zero.
groupNamestringThe group name of the form field. This field is required when the type is set to RadioButton.
placeHolderstringA hint text is to be displayed on the text form field by default.
validationTypeValidationTypeType of validation for the textbox form field. The values are Only Numbers, Regex, Currency, Email, and None.. The default validation type is None .
validationCustomRegexstringValue for regex validation. This is applicable when the validationType is set to Regex.
validationCustomRegexMessagestringDescription for regex validation. This message is displayed when the signer enters an invalid regex format value in the textbox form field.
dateFormatstringFormat of the date to be displayed on the date signed form field. The default value is MM/dd/yyyy. When null is provided, the value is inherited from the business profile settings of your account. Accepted formats are
  • MM/dd/yyyy (02/08/2024)
  • dd/MM/yyyy (08/02/2024)
  • dd-MMM-yyyy (08-Feb-2024)
  • MMM-dd-yyyy (Feb-08-2024)
  • MMM dd, yyyy (Feb 08, 2024)
  • dd MMM, yyyy (08 Feb, 2024)
  • yyyy, MMM dd (2024, Feb 08)
  • yyyy/MM/dd (2024/02/08)
  • dd-MM-yyyy (08-02-2024)
  • MM-dd-yyyy (02-08-2024)
  • yyyy-MM-dd (2024-02-08)
timeFormatstringFormat of the time to be displayed on the date signed form field. When null is provided, the value is inherited from the business profile settings of your account. Accepted formats are
  • hh:mm tt (12:30 PM)
  • h:mm tt (2:45 PM)
  • HH:mm (14:30)
  • H:mm (9:15)
  • hh:mm:ss tt (12:30:15 PM)
  • h:mm:ss tt (2:45:30 PM)
  • HH:mm:ss (14:30:10)
  • H:mm:ss (9:15:40)
  • None (Disabled, no time will be displayed)

imageInfoobject

Options to customize the image form field.

titlestringTitle of the image form field.
descriptionstringDescription of the image form field.
allowedFileExtensionsstringControls the image formats that can be uploaded to the image form field. The values are .jpg or .jpeg, .svg, .png, and .bmp.

attachmentInfoobject

Options to customize the attachment form field.

titlestringTitle of the attachment form field.
descriptionstringDescription of the attachment form field.
allowedFileTypesstringControls the file formats that can be uploaded to the attachment form field. The values are PDF, Document, and Image.

editableDateFieldSettingsobject

Options to customize the editable date form field.

dateFormatstring

BoldSign API supports a variety of date-time formats, including:

  • MM/dd/yyyy
  • dd/MM/yyyy
  • dd-MMM-yyyy
  • MMM-dd-yyyy
  • MMM dd,yyyy
  • dd MMM,yyyy
  • yyyy,MMM dd
  • yyyy/MM/dd
  • dd-MM-yyyy
  • MM-dd-yyyy
  • yyyy-MM-dd

Format of the date to be displayed on the date signed form field. The default value is MM/dd/yyyy.

minDatestring

The minimum date that can be selected. The string should be in date-time format. The default ISO standard YYYY-MM-DDTHH:MM:SSZ.

Example Format

minDate : 2024-01-01T00:00:00Z

The date-time should be passed in UTC timezone using Z (e.g., 2024-01-01T00:00:00Z).

If using a specific timezone, provide the UTC offset:

  • IST (UTC+5:30): 2024-01-01T00:00:00+05:30
  • PST (UTC-8:00): 2024-01-01T00:00:00-08:00

maxDatestring

The maximum date that can be selected. The string should be in date-time format. The default ISO 8601 standard YYYY-MM-DDTHH:MM:SSZ.

Example Format

maxDate : 2025-12-31T23:59:59Z

Pass the date-time in UTC timezone using Z (e.g., 2025-12-31T23:59:59Z).

For specific timezones, provide the UTC offset:

  • EST (UTC-5:00): 2025-12-31T23:59:59-05:00
  • CET (UTC+1:00): 2025-12-31T23:59:59+01:00
hyperLinkTextstringText to be displayed for the hyperlink.
dataSyncTagstringThe value that can be specified on two or more textbox form fields to sync them.
dropDownOptionsarrayThe values which have to be displayed on the dropdown form field. One or more values can be specified.
textAlignstringDetermines the horizontal alignment of text for the textbox and label form fields and can be set to Left, Center or Right. The default of alignment of text is Left.
textDirectionstringDetermines the text direction of text for the textbox and label form fields and can be set to LTR or RTL. The default text direction is LTR.
characterSpacingfloatDetermines the character spacing of text for the textbox and label form fields. It can be set as a floating-point value.

formulaFieldSettingsobject

Options to configure formula field.

formulaExpressionstringThis property is used to specify the formula as a string define the calculation or expression for the formula field.
decimalPrecisionintegerThis property is used to determines the decimal rounding precision for the computed result.

existingFormFieldsarray

List of existing form fields in the document.

indexintegerIndex of the existing form field.
idstringThe ID of the existing form field.
valuestringValue of the existing form field.
isReadOnlybooleanDecides whether this form field is readOnly or not.
languageintegerIndex of the language in which the document signing pages and emails for the signer should be rendered. The supported languages are 1-English, 2-Spanish, 3-German, 4-French, and 5-Romanian. Note that 'locale' should now be used instead of 'language' as it has replaced the deprecated term. The default language is 1-English .
localestringSpecify the language index for rendering document signing pages and emails for the signer, choosing from the supported locales such as EN-English, NO-Norwegian, FR-French, DE-German,ES-Spanish, BG-Bulgarian, CS-Czech, DA-Danish,IT-Italian, NL-Dutch, PL-Polish, PT-Portuguese,RO-Romanian, RU-Russian, and SV-Swedish. The default locale language is EN-English .

recipientNotificationSettingsobject

Control email notifications to recipients by configuring the properties within recipientNotificationSettings.

signatureRequestbooleanIndicates whether the recipient should be notified when a document is sent.
declinedbooleanIndicates whether the recipient should be notified when a document is declined.
revokedbooleanIndicates whether the recipient should be notified when a document is revoked.
signedbooleanIndicates whether the recipient should be notified when a document is signed by other recipient.
completedbooleanIndicates whether the recipient should be notified when the document is completed.
expiredbooleanIndicates whether the recipient should be notified when a document expires.
reassignedbooleanIndicates whether the recipient should be notified when the document is reassigned.
deletedbooleanIndicates whether the recipient should be notified when a document is deleted.
remindersbooleanIndicates whether the recipient should receive reminders for pending signature requests.
editRecipientbooleanIndicates whether the recipient should be notified when there is a change in the recipient.
editDocumentbooleanIndicates whether the recipient should be notified when a document is edited.
enableQesNullable booleanWhen set to true, the signer will be allowed to sign the document with a qualified electronic signature (QES). It can only be assigned to a single signer. When there are multiple signers in a document, the signer order option should be enabled to ensure only the last person in the document is enabled with QES, and the last signer order also should not have multiple signers.
brandIdstringYou 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.
labelsarrayLabels (tags) are added to the documents to categorize and filter them. One or more labels can be added. Labels cannot contain whitespaces and must not exceed 255 characters.
disableEmailsbooleanDisables the sending of document related emails to all the recipients. The default value is false.
disableSMSbooleanDisables the sending of document related SMS to all the recipients. The default value is false.
hideDocumentIdbooleanDecides whether the document ID should be hidden or not.
reminderSettingsbooleanOptions to customize the auto reminder settings.
enableAutoReminderbooleanEnables or disables the auto reminder.
reminderDaysintegerThe number of days between each automatic reminder.
reminderCountintegerThe number of times the auto reminder should be sent.
ccarrayMail ID of the CC recipients. One or more CC recipients can be specified.
emailAddressstringMail ID of the CC recipients.
expiryDaysintegerThe number of days after which the document expires. The default value is 60 days.
enablePrintAndSignbooleanAllows the signer to print the document, sign, and upload it. The default value is false.
enableReassignbooleanAllows the signer to reassign the signature request to another person. The default value is true.
enableSigningOrderbooleanEnables or disables the signing order. If this option is enabled, then the signers can only sign the document in the specified order and cannot sign in parallel. The default value is false.
disableExpiryAlertbooleanDisables the alert, which was shown one day before the expiry of the document.
documentInfoarrayOptions to customize the information like title and description of the document for a particular signer.
languageintegerLanguage in which the document signing pages and emails for the signer should be rendered. The supported languages are 1-English, 2-Spanish, 3-German, 4-French, and 5-Romanian. Note that 'locale' should now be used instead of 'language' as it has replaced the deprecated term. The default language is 1-English .
titlestringTitle of the document.
DescriptionstringA message for the signer. You can include the instructions that the signer should know before signing the document.
localestringSpecify the language index for rendering document signing pages and emails for the signer, choosing from the supported locales such as EN-English, NO-Norwegian, FR-French, DE-German,ES-Spanish, BG-Bulgarian, CS-Czech, DA-Danish,IT-Italian, NL-Dutch, PL-Polish, PT-Portuguese,RO-Romanian, RU-Russian, and SV-Swedish. The default locale language is EN-English .
onBehalfOfstringThe email address of the user to create the templates on their behalf.
roleRemovalIndicesarrayRemoves the roles present in the template with their indices given in this property.
documentDownloadOptionenumThis option allows you to configure how the uploaded files, especially multiple files, should be downloaded: either as a single combined document or as separate documents. The values are Combined and Individually. The default value is Combined. If the value is null, the setting configured in the business profile settings will be considered.
metaDatadictionaryAdditional information about the document in the form of key-value pairs. Up to 50 key-value pairs can be added. The key is limited to 50 characters, and the value is limited to 500 characters.

recipientNotificationSettingsobject

Control email notifications to recipients or CC collectively by configuring properties within recipientNotificationSettings.

signatureRequestbooleanIndicates whether the recipient or CC should be notified when a document is sent.
declinedbooleanIndicates whether the recipient or CC should be notified when a document is declined.
revokedbooleanIndicates whether the recipient or CC should be notified when a document is revoked.
signedbooleanIndicates whether the recipient or CC should be notified when a document is signed by other recipient.
completedbooleanIndicates whether the recipient or CC should be notified when the document is completed.
expiredbooleanIndicates whether the recipient or CC should be notified when a document expires.
reassignedbooleanIndicates whether the recipient or CC should be notified when the document is reassigned.
deletedbooleanIndicates whether the recipient or CC should be notified when a document is deleted.
remindersbooleanIndicates whether the recipient should receive reminders for pending signature requests.
editRecipientbooleanIndicates whether the recipient should be notified when there is a change in the recipient.
editDocumentbooleanIndicates whether the recipient or CC should be notified when the document is edited.
viewedbooleanIndicates whether the CC should be notified when the document is viewed.
removeFormFieldsarrayThe removeFormFields property in API allows you to exclude specific form fields from a document before sending it. You provide a string array with the IDs of the existing form fields you want to remove. One or more values can be specified.
enableAuditTrailLocalizationbooleanEnable 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.

filesbase64

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.

For a single file with file name, the Base64 format should be: [{ "base64": "data:application/{{fileType}};base64,{{content}}", "fileName": "{{fileName}}" }].

For multiple files with file name, the format should be: [{ "base64": "data:application/{{fileType}};base64,{{content1}}", "fileName": "{{fileName}}" }, {...}].

fileUrlsarrayThe URL of the file must be publicly accessible. .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.

downloadFileNamestring

Defines the custom format for the file name of downloaded document files. You can combine your own file name elements with the following predefined dynamic variables:

  • title
  • documentId
  • signername
  • signername_last
  • signername_order#1
  • sendername
  • completeddate
  • status

The #1 in signername_order#1 serves as a placeholder and should be replaced with an actual value, such as signername_order#3, to represent a 3rd signer's name.

The maximum file name length is 250 characters. If the generated name exceeds this limit, it will be truncated to fit within the limit. This property is optional; if not provided, the default format configured in the business profile will be used.

useTextTagsBooleanWhen 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.

definitionIdstringThe definition id of the text tag.
typeTypeThe type of the form field.
signerIndexintegerThe signer index of the form field.
isRequiredbooleanWhen disabled, the signer is not required to fill out the specific form field. The default value is true.
placeHolderstringThe placeholder of the form field.
tabIndexNullable intAssign tab index to control the flow of field focus while using TAB key navigation. Default to null, which denotes it will follow regular flow. The accepted range starts from -1 to a valid integer.
fieldIdstringThe field id of the form field.
fontobjectThe font of the form field.
nameFontFamilyFont family. The values are Courier, Helvetica, and TimesNewRoman.
colorstringColor of the font. The value should be hex color code. Example - #035efc.
sizefloatSize of the font.
styleFontStyleStyle of the font. The values are Regular, Bold, Italic, and Underline.
lineHeightintegerHeight of a line in the text.
validationobjectWhen we select the type as TextBox, the validation of the form field is required.
typestringThe validation type of the text box form field. The available values are None, NumbersOnly, EmailAddress, Currency, and CustomRegex. The default value is None.
regexstringThe custom regex of the text box form filed. When we set the ValidationType to CustomRegex, it will be required.

sizeobject

This can be used to specify the form field's height and width.

widthfloatThe width of the form field.
heightfloatThe height of the form field.
dateFormatstringFormat of the date to be displayed on the date signed form field. The default value is MM/dd/yyyy. When null is provided, the value is inherited from the business profile settings of your account. Accepted formats are MM/dd/yyyy (02/08/2024), dd/MM/yyyy (08/02/2024), dd-MMM-yyyy (08-Feb-2024), MMM-dd-yyyy (Feb-08-2024), MMM dd, yyyy (Feb 08, 2024), dd MMM, yyyy (08 Feb, 2024), yyyy, MMM dd (2024, Feb 08), yyyy/MM/dd (2024/02/08), dd-MM-yyyy (08-02-2024), MM-dd-yyyy (02-08-2024), yyyy-MM-dd (2024-02-08).
timeFormatstringFormat of the time to be displayed on the date signed form field. When null is provided, the value is inherited from the business profile settings of your account. Accepted formats are hh:mm tt (12:30 PM), h:mm tt (2:45 PM), HH:mm (14:30), H:mm (9:15), hh:mm:ss tt (12:30:15 PM), h:mm:ss tt (2:45:30 PM), HH:mm:ss (14:30:10), H:mm:ss (9:15:40), None (Disabled, no time will be displayed).
radioGroupNamestringThe form field's group name, which is required when we set the type as RadioButton.
valuestringThe value of the form field.
dropDownOptionsarrayThe options of the dropdown form field.

offSetobject

Specifies the offset positioning for the text tag, allowing adjustments to its location relative to the computed position. The computed value after value must remain within the page dimensions.

offSetXdoubleAdjusts the text tag's position horizontally (left or right).
offSetYdoubleAdjusts the text tag's position vertically (top or bottom).

  • formulaFieldSettingsobject
  • Options to configure formula field.
    formulaExpressionstringThis property is used to specify the formula as a string define the calculation or expression for the formula field.
    decimalPrecisionintegerThis property is used to determines the decimal rounding precision for the computed result.
label stringThe label used to represent the value for a radio button. Also, can be used to prefill a radio button.

Notes

  • When merging multiple templates without enabling a signing order, templates with the same role, email, and name are combined into a single role, and the signing document is then sent to that consolidated role.

  • When merging multiple templates with a signing order enabled, templates with the same role, email, name, and order are merged into a single role, and the signing document is sent accordingly.

  • When merging multiple templates and encountering fields with identical names and data types in both templates, if these fields are assigned to the same signer, updating the value of one of these fields using the existingFormFields property will automatically reflect the change in both corresponding fields.

Example response

200 Success

{
  "documentId": "755195d8-xxxx-xxxx-xxxx-88ff77d35419"
}