Articles in this section
Category / Section

Is it possible to change the signing order when using templates via API?

Published:
5 mins read

When creating a template, you can add multiple signers and set a signing order. However, if you need to adjust the signing order when using the template, you can do so by setting the EnableSigningOrder property to true and adjusting the signerOrder property for each recipient. Please note that you do not need to change the roleIndex when adjusting the signing order in the template while sending it.

Below are code snippets demonstrating how to modify the signing order when using templates via the BoldSign API:

cURL

curl -X 'POST' \
  'https://api.boldsign.com/v1/template/send?templateId=b8085b47-xxxx-47f8-xxxx-cb0acfe2d916' \
  -H 'accept: application/json' \
  -H 'X-API-KEY: {your API key}' \
  -H 'Content-Type: application/json' \
  -d '{
   "title": "Invitation form",
    "message": "Kindly review and sign this.",
    "enableSigningOrder": true,
    "roles": [
      {
        "roleIndex": 1,
        "signerName": "David",
        "signerEmail": "david@cubeflakes.com",
        "signerOrder": 2,
        "signerType": "Signer",
        "deliveryMode": "Email",
        "signerRole": "Landlord"
      },
      {
        "roleIndex": 2,
        "signerName": "Emma",
        "signerEmail": "emma@cubeflakes.com",
        "signerOrder": 1,
        "signerType": "Signer",
        "deliveryMode": "Email",
        "signerRole": "Tenant"
      }
    ]
  }'

.NET

var apiClient = new ApiClient("https://api.boldsign.com", "Your API Key");
            var templateClient = new TemplateClient(apiClient);

            var role1 = new Roles(
                roleSignerName: "Mark Tenant",
                roleSignerEmailAddress: "mark@cubeflakes.com",
                roleSignerIndex: 1,
                signerOrder: 2,
                locale: Locales.EN
            );

            var role2 = new Roles(
                roleSignerName: "Alex Admin",
                roleSignerEmailAddress: "alex@cubeflakes.com",
                roleSignerIndex: 2,
                signerOrder: 1,
                locale: Locales.EN
            );

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

            var sendForSignFromTemplate = new SendForSignFromTemplate()
            {
                TemplateId = "5f29bb2b-b9d8-7420-8a94-5d1372106fab",
                Roles = roles,
                EnableSigningOrder = true, 
            };

            try
            {
                var documentCreated = templateClient.SendUsingTemplate(sendForSignFromTemplate);
                Console.WriteLine("Document Sent! Document ID: " + documentCreated.DocumentId);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }
        }
    }
}

Python

import boldsign

configuration = boldsign.Configuration(api_key="Your API Key")

with boldsign.ApiClient(configuration) as api_client:
    template_api = boldsign.TemplateApi(api_client)

    roles = [
        boldsign.Role(
            role_index=1,
            signer_name="richard",
            signer_email="richard@cubeflakes.com",
            signer_order=1,
            signer_type="Signer",
            role="Admin"
        ),
        boldsign.Role(
            role_index=2,
            signer_name="emma",
            signer_email="emma@cubeflakes.com",
            signer_order=2,
            signer_type="Signer",
            role="Tenant"
        )
    ]

    send_for_sign_from_template = boldsign.SendForSignFromTemplateForm(
        
        roles=roles,
         enable_signing_order=True
    )

    send_using_template_response = template_api.send_using_template(
        template_id="6f29bb2b-b8d8-4420-8a54-5d1332106fab",
        send_for_sign_from_template_form=send_for_sign_from_template
    )

    print(send_using_template_response) 

Node.js

const { TemplateApi, FormField, Rectangle, Role, SendForSignFromTemplateForm } = require ("@boldsign/node-sdk");

const templateApi = new TemplateApi();
templateApi.setApiKey("Your API Key");

const role1 = new Role();
role1.roleIndex = 1;  
role1.signerName = "Richard";  
role1.signerEmail = "richard@cubeflakes.com"; 
role1.signerType = Role.SignerTypeEnum.Signer;
role1.signerOrder = 2;  

const role2 = new Role();  
role2.roleIndex = 2;  
role2.signerName = "Alex";
role2.signerEmail = "alex@cubeflakes.com";
role2.signerType = Role.SignerTypeEnum.Signer;
role2.signerOrder = 1;  

const templateId = "6f26bb2b-b6d8-4320-8a94-5d1382106fab";
const sendForSignFromTemplate = new SendForSignFromTemplateForm();
sendForSignFromTemplate.roles = [role1, role2];  
sendForSignFromTemplate.enableSigningOrder = true;  

templateApi.sendUsingTemplate(templateId, sendForSignFromTemplate)
  .then(response => console.log("Success:", response))
  .catch(error => console.log("Error:", error.response?.data || error));
  

In the above code examples, ensure that the EnableSigningOrder property is set to true and adjust the signerOrder property based on your preference.
Once the code is executed, the document will be created, and an email will be sent to the first signer. After the first signer completes the process, the next signer will receive an email based on the specified signing order.

Was this article useful?
Like
Dislike
Help us improve this page
Please provide feedback or comments
Access denied
Access denied