Send document from template
post/v1/template/sendTemplates are created in the same way as regular documents, but instead of associating signature fields with people, we simply associate fields with roles. For more information, please refer to the Create template article.
When you need to send the same contracts out for signature to different groups of people repeatedly, you can use templates to save time. This section demonstrates how to send a document for signature by using an existing template.
Code snippet
curl -X 'POST' \ 'https://api.boldsign.com/v1/template/send?templateId=b8085b47-63b3-47f8-8d5e-cb0acfe2d916' \ -H 'accept: application/json' \ -H 'X-API-KEY: {your API key}' \ -H 'Content-Type: application/json;odata.metadata=minimal;odata.streaming=true' \ -d '{ "files":[ "data:application/pdf;base64,JVBERi0xLjcKJcfs..." ], "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-7ee0-4a1a-b597-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], }`
var apiClient = new ApiClient("https://api.boldsign.com", "{your API key}"); var templateClient = new TemplateClient(apiClient); var documentFilePath= new DocumentFilePath { ContentType = "application/pdf", FilePath = "agreement.pdf", }; var filesToUpload = new List<IDocumentFile> { documentFilePath, }; 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 sendForSignFromTemplate = new SendForSignFromTemplate() { TemplateId = "01c19aef-2dad-476d-b801-7178ef2e1036", Roles = roles, RoleRemovalIndices = new [] {1, 2} }; var documentCreated = templateClient.SendUsingTemplate(sendForSignFromTemplate);
import boldsign configuration = boldsign.Configuration( api_key = "YOUR_API_KEY" ) with boldsign.ApiClient(configuration) as api_client: template_api = boldsign.TemplateApi(api_client) form_fields = [ boldsign.FormField( fieldType="Signature", pageNumber=1, bounds=boldsign.Rectangle( x=100, y=100, width=100, height=50 ) ), ] role = boldsign.Role( role_index=50, signer_name="Richard", signer_order=1, signer_email="richard@cubeflakes.com", private_message="Please check and sign the document.", authentication_code="281028", enableEmailOTP=False, signerType='Signer', signerRole='Manager', formFields=form_fields, locale="EN" ) template_id = "YOUR_TEMPLATE_ID" send_for_sign_from_template = boldsign.SendForSignFromTemplateForm( files=["YOUR_FILE_PATH"], title="Invitation form", message="Kindly review and sign this.", roles=[role], labels=["Invitation"], disableEmails=False, disableSMS=False, hideDocumentId=True, reminderSettings=boldsign.ReminderSettings( reminderDays=3, reminderCount=5, enableAutoReminder=False ), expiryDays=180, expiryDateType="Days", expiryValue=60, disableExpiryAlert=True, enablePrintAndSign=True, enableReassign=True, enableSigningOrder=True, roleRemovalIndices=[1,2] ) send_using_template_response = template_api.send_using_template(template_id, send_for_sign_from_template)
const axios = require("axios"); const fileStream = fs.createReadStream("/path/to/your/file"); const response = await axios.post( "https://api.boldsign.com/v1/template/send", { roles: [ { roleIndex: 3, signerName: "David", signerEmail: "david@cubeflakes.com", formFields: [ { fieldType: "Signature", pageNumber: 1, bounds: { x: 100, y: 100, width: 100, height: 50, }, backgroundHexColor: "string", }, ], }, ], roleRemovalIndices: [1, 2], }, { params: { templateId: "b67e6933-xxxx-xxxx-xxxx-a613cd83b5cd", }, headers: { accept: "application/json", "X-API-KEY": "{your API key}", "Content-Type": "application/json;odata.metadata=minimal;odata.streaming=true", }, } );
Query parameters
templateIdstringRequired | The ID of the existing template to be used for sending the document. |
Request body
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. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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,
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
labelsarray | Labels (tags) are added to the documents to categorize and filter them. One or more labels can be added. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 . | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
hideDocumentIdboolean | Decides whether the document ID should be hidden or not. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reminderSettingsboolean | Options to customize the auto-reminder settings.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ccarray | Mail ID of the CC recipients. One or more CC recipients can be specified.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiryDaysinteger | The number of days after which the document expires. The default value is 60 days. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enablePrintAndSignboolean | Allows the signer to print the document, sign, and upload it. The default value is false . | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enableReassignboolean | Allows the signer to reassign the signature request to another person. The default value is true . | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enableSigningOrderboolean | Enables 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 . | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
disableExpiryAlertboolean | Disables the alert, which was shown one day before the expiry of the document. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
documentInfoarray | Options to customize the information like title and description of the document for a particular signer.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
onBehalfOfstring | Mail ID of the user to send the document on behalf of them. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
roleRemovalIndicesarray | Removes the roles present in the template with their indices given in this property. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
documentDownloadOptionenum | This 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. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
formGroupsarray | Manages the rules and configuration of grouped form fields.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. The base64 format is data:application/{{fileType}};base64,{{content}} . | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
recipientNotificationSettingsobject | Control email notifications to recipients or CC collectively by configuring properties within
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
removeFormFieldsarray | The 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. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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
200 Success
{ "documentId": "755195d8-xxxx-xxxx-xxxx-88ff77d35419" }