Is it possible to change the signing order when using templates via API?
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.