You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DocuSign Node.js SDK:如何替换已发送未签署信封中的文档

已发送DocuSign信封的文档修正操作及Node.js SDK实现

能否修正已发送信封的文档?

已发送的信封仅在未被任何签署人完成签署的前提下允许替换文档。如果已有签署人完成了签署流程,就无法再修改信封内的文档内容。

使用docusign-esign Node.js SDK实现文档替换

前置条件

  • 确保信封状态为sent且未完成签署(可通过接口查询信封详情确认)
  • 已初始化并配置好DocuSign ApiClient(包含认证信息)

步骤及代码示例

  1. 验证信封状态:先查询信封详情,确认满足替换条件
  2. 构造替换请求:准备新PDF文档(转Base64格式),指定要替换的原文档ID(单文档信封默认ID为1)
  3. 执行替换操作:调用对应接口完成文档替换
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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 12:03:22