DocuSign Node.js SDK:如何替换已发送未签署信封中的文档
已发送DocuSign信封的文档修正操作及Node.js SDK实现
能否修正已发送信封的文档?
已发送的信封仅在未被任何签署人完成签署的前提下允许替换文档。如果已有签署人完成了签署流程,就无法再修改信封内的文档内容。
使用docusign-esign Node.js SDK实现文档替换
前置条件
- 确保信封状态为
sent且未完成签署(可通过接口查询信封详情确认) - 已初始化并配置好DocuSign ApiClient(包含认证信息)
步骤及代码示例
- 验证信封状态:先查询信封详情,确认满足替换条件
- 构造替换请求:准备新PDF文档(转Base64格式),指定要替换的原文档ID(单文档信封默认ID为1)
- 执行替换操作:调用对应接口完成文档替换
const docusign = require('docusign-esign'); async function replaceEnvelopeDocument(envelopeId, accountId, newPdfBuffer, apiClient) { const envelopesApi = new docusign.EnvelopesApi(apiClient); // 检查信封是否符合替换要求 const envelope = await envelopesApi.getEnvelope(accountId, envelopeId); if (envelope.status !== 'sent' || envelope.completedDateTime) { throw new Error('仅未完成签署的已发送信封支持文档替换'); } // 组装文档参数 const documents = [ { documentId: '1', // 对应原信封中的文档ID,需根据实际情况调整 name: '修正版合同.pdf', documentBase64: newPdfBuffer.toString('base64') } ]; const updateOpts = new docusign.EnvelopesApi.UpdateDocumentsOptions(); updateOpts.replaceContents = 'true'; // 启用内容替换模式 // 发送替换请求 await envelopesApi.updateDocuments(accountId, envelopeId, { documents }, updateOpts); console.log('文档替换完成'); }
注意事项
- 替换文档后,原有的签署标签(签名框、日期字段等)会自动匹配到新文档的相同坐标位置,若新文档布局有较大变动,需重新调整标签位置
- 文档替换完成后,DocuSign会自动向所有签署人发送更新通知
内容的提问来源于stack exchange,提问作者swarup sahu
相关产品推荐
相关产品推荐

