如何更新已发送DocuSign信封的收件人信息及邮箱?
如何更新已发送DocuSign信封的收件人信息(含邮箱)
前置说明
仅当信封处于已发送但未完成签署状态时,才可更新收件人信息;若信封已完成签署,无法进行修改。
正确实现方案
你尝试的updateRecipients是正确的API方向,但问题大概率出在收件人对象构建或参数配置上。以下是标准实现步骤及代码示例:
1. 构建收件人更新对象
需创建Recipients实例,指定目标收件人的原recipientId、新邮箱(或其他需修改的信息),并明确操作类型为update。
2. 配置更新选项
通过UpdateRecipientsOptions设置是否重新发送信封给更新后的收件人,按需选择true或false。
3. 调用API执行更新
确保传递完整的账户ID、信封ID、收件人对象及配置选项。
完整代码示例
// 1. 构建待更新的收件人数据 Recipients recipients = new Recipients(); List<Signer> signers = new ArrayList<>(); Signer targetSigner = new Signer(); targetSigner.setRecipientId("1"); // 必须与原信封中该收件人的recipientId完全匹配 targetSigner.setEmail("new-user@example.com"); // 新邮箱地址 targetSigner.setName("Updated Recipient Name"); // 若需修改姓名可一并设置 targetSigner.setRecipientUpdateDetails(new RecipientUpdateDetails()); targetSigner.getRecipientUpdateDetails().setAction("update"); // 指定操作类型为更新 signers.add(targetSigner); recipients.setSigners(signers); // 2. 配置更新选项 UpdateRecipientsOptions updateOptions = new UpdateRecipientsOptions(); updateOptions.setResendEnvelope("true"); // 需通知新收件人则设为true,否则设为false // 3. 调用API完成更新 try { RecipientsUpdateSummary updateResult = envelopesApi.updateRecipients( docuSignAccountId, envId, recipients, updateOptions ); System.out.println("更新状态:" + updateResult.getStatus()); } catch (ApiException e) { System.err.println("更新失败详情:" + e.getResponseBody()); }
常见失败原因排查
- 收件人ID不匹配:必须使用原信封中收件人的
recipientId,不可随意设置新ID。 - 信封状态不符合要求:确认信封处于
sent或delivered状态,已完成签署的信封无法修改。 - 账号权限不足:确保你的API账号拥有修改信封收件人的权限(需在DocuSign控制台配置)。
- 参数格式错误:检查邮箱格式是否合规,姓名等字段是否符合DocuSign的输入要求。
内容的提问来源于stack exchange,提问作者surabhi chaurasia
相关产品推荐
相关产品推荐

