如何通过DocuSign API实现两名签署人依次签署同一文档
解决方案
一、先确认模板配置
你的模板ec1fcf1e-7aeb-46d0-bbba-3fa6b99002a5中必须提前设置好第二个签署人的角色名称(比如signer2),同时要给该角色分配对应的签署、填写标签。
二、两种场景的处理方式
场景1:创建信封时直接包含两个签署人(推荐)
如果还未创建信封,或可以重新生成信封,只需在templateRoles数组中添加第二个签署人的信息,DocuSign会自动在第一个签署人完成后,将文档流转给第二个签署人。修改后的请求JSON示例如下:
{ "templateId": "ec1fcf1e-7aeb-46d0-bbba-3fa6b99002a5", "templateRoles": [ { "email": "prince.sebastiao@truewindglobal.com", "name": "Abhishek Hayaran", "roleName": "signer", "clientUserId": "10101", "tabs": { "textTabs": [ { "tabLabel": "DL_AuthorizedSellerValue", "value": "Abhishek" }, { "tabLabel": "DL_CompanyName", "value": "AbhiTestCmpy" }, { "tabLabel": "DL_Address", "value": "Kolar Bhopal" }, { "tabLabel": "DL_CityStateZip", "value": "Bhopal M.P." } ] } }, { "email": "second_signer@example.com", "name": "第二个签署人姓名", "roleName": "signer2", // 需与模板中设置的第二个签署人角色名完全一致 // 若第二个签署人也需在你的Web应用内签署,添加此参数;否则可省略 // "clientUserId": "10102" } ], "status": "sent" }
创建该信封后,第一个签署人完成签署时,DocuSign会自动向第二个签署人发送邮件通知;如果给第二个签署人设置了clientUserId,也可以调用{{baseUrl}}/v2.1/accounts/{{accountId}}/envelopes/{{envelopeId}}/views/recipient接口生成嵌入签署链接,在你的Web应用内引导其完成签署。
场景2:已创建仅含第一个签署人的信封,需追加第二个签署人
如果已经创建了只有第一个签署人的信封,且对方已完成签署,可通过以下步骤添加第二个签署人:
- 调用
PUT {{baseUrl}}/v2.1/accounts/{{accountId}}/envelopes/{{envelopeId}}接口,在请求体中添加第二个签署人信息:
{ "templateRoles": [ { "email": "second_signer@example.com", "name": "第二个签署人姓名", "roleName": "signer2", // 匹配模板中的角色名 "routingOrder": 2 // 设置为2,确保在第一个签署人之后处理 } ] }
- 调用完成后,更新信封状态为
sent,触发签署请求发送:
调用POST {{baseUrl}}/v2.1/accounts/{{accountId}}/envelopes/{{envelopeId}},请求体如下:
{ "status": "sent" }
之后同样可根据是否设置clientUserId,选择让第二个签署人通过邮件链接或Web应用内的嵌入链接完成签署。
关键注意事项
- 模板中必须存在对应第二个签署人的角色,且请求中的
roleName需与模板角色名完全匹配 routingOrder参数控制签署顺序,第一个签署人设为1,第二个设为2,DocuSign会严格按此顺序流转- 若需在Web应用内嵌入签署,必须给对应签署人设置
clientUserId,且该值需唯一标识用户
内容的提问来源于stack exchange,提问作者Abhishek Hayaran
相关产品推荐
相关产品推荐

