在您的创建信封 API 请求中使用“复合模板”结构将允许您使用来自 DocuSign 模板的文档和在运行时通过 API 请求指定的文档的组合来创建信封,并为您提供对收件人的相当动态的控制。有关在创建信封 API 请求中使用复合模板的更多信息,请在 API 指南(REST 或 SOAP)中搜索“复合”。
当您在创建信封请求中使用复合模板时,您的请求中的每个单独的复合模板对象都必须提供完整信封所需的信息(即,至少 1 个收件人和 1 个文档……或定义文档和/或收件人)。然后,DocuSign 基本上将来自您的所有复合模板对象的所有收件人和文档信息组合在请求中以形成信封。对于下面的示例 JSON 请求,生成的信封包含:
- 3 个收件人(通过 API 请求动态填充:1-Abby、2-Bob、3-Charlie)
- 3 个文档(第一个通过 API 请求指定,第二个通过 API 请求指定,第三个通过 DocuSign 模板指定)
发布https://demo.docusign.net/restapi/v2/accounts/YOUR_ACCOUNT_NUMBER/envelopes
X-DocuSign-Authentication: {"Username":"YOUR_USER_NAME","Password":"YOUR_PASSWORD","IntegratorKey":"YOUR_INTEGRATOR_KEY"}
Content-Type: multipart/form-data; boundary=MY_BOUNDARY
Accept: application/json
--MY_BOUNDARY
Content-Type: application/json
Content-Disposition: form-data
{
"status" : "sent",
"emailSubject" : "Test Envelope",
"compositeTemplates": [
{
"inlineTemplates": [
{
"sequence" : 1,
"recipients": {
"signers" : [{
"email": "abbysEmailAddr@outlook.com",
"name": "Abby Abbott",
"recipientId": "1"
}, {
"email": "bobsEmailAddr@outlook.com",
"name": "Bob Burns",
"recipientId": "2",
"routingOrder":"2"
},
{
"email": "charliesEmailAddr@outlook.com",
"name": "Charlie Carlson",
"recipientId": "3",
"routingOrder":"3"
}]
}
}],
"document": {
"documentId": 1,
"name": "Customer Agreement",
"fileExtension": "pdf"
}
},
{
"inlineTemplates": [
{
"sequence" : 2,
"recipients": {
"signers" : [{
"email": "abbysEmailAddr@outlook.com",
"name": "Abby Abbott",
"recipientId": "1"
}]
}
}],
"document": {
"documentId": 2,
"name": "Test File",
"fileExtension": "pdf"
}
},
{
"serverTemplates": [
{
"sequence" : 1,
"templateId": "YOUR_TEMPLATE_ID"
}],
"inlineTemplates": [
{
"sequence" : 2,
"recipients": {
"signers" : [{
"email": "abbysEmailAddr@outlook.com",
"name": "Abby Abbott",
"recipientId": "1",
"roleName": "Customer",
"routingOrder":"1"
}
]
}
}]
}
]}
--MY_BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="CustomerAgreement.pdf"; documentid="1"
**pdf bytes removed for brevity**
--MY_BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="TestFile.pdf"; documentid="2"
**pdf bytes removed for brevity**
--MY_BOUNDARY--
使用复合模板有点棘手(并且没有很好的文档记录),因此可能需要一些试验和错误才能让事情完全按照您的要求工作 - 但希望这个示例能够阐明如何使用复合模板创建一个来自通过 API 请求动态指定的 DocuSign 模板和文档组合的信封。