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

能否通过DocuSign UI发送信封后在自有应用中签署合同?

DocuSign嵌入式签署需求实现问题解答

核心问题

Recipient View API(用于生成嵌入自有网站的签署链接)要求收件人必须配置clientUserId——这个字段是DocuSign识别“嵌入式收件人”的唯一标识。当前通过DocuSign UI发送信封时,默认不会给收件人添加该字段,因此无法调用API生成所需链接。

可行解决方案

需求完全可以实现,关键是给目标收件人补充clientUserId字段,具体有两种路径:

路径1:创建信封时直接添加clientUserId

  • 如果能调整信封创建流程:
    • 改用DocuSign API创建信封,在构造signer对象时明确传入clientUserId(值建议用你方系统的用户唯一ID,确保同一信封内不重复);
    • 若坚持用DocuSign UI,可通过模板配置或自定义字段的方式,给目标收件人预设clientUserId(部分DocuSign账户支持该配置)。

路径2:给已发送信封的收件人补加clientUserId

如果信封已经通过UI发出,可调用DocuSign的更新收件人API补加字段,步骤如下:

  1. 调用现有getRecipient接口获取目标收件人的recipientId;
  2. 调用新增的更新接口,给该收件人添加clientUserId;
  3. 完成更新后,再调用createRecipientView接口即可生成嵌入链接。

更新收件人的示例代码:

export const updateRecipientClientUserId = async (envelopeId: string, recipientId: string, clientUserId: string) => {
  try {
    const response = await fetch(
      `${process.env.DOCUSIGN_BASE_URI}accounts/${process.env.DOCUSIGN_API_ACCOUNT_ID}/envelopes/${envelopeId}/recipients`,
      {
        method: "PUT",
        headers: config().headers,
        body: JSON.stringify({
          signers: [{
            recipientId: recipientId,
            clientUserId: clientUserId
          }]
        })
      }
    );
    return await response.json();
  } catch (error) {
    console.error("Error updating recipient clientUserId:", error);
    throw error;
  }
};

当前代码调整点

调用createRecipientView时,需确保传入的clientUserId与收件人实际配置的完全一致,否则API会返回错误。

内容的提问来源于stack exchange,提问作者Ry2254

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 04:35:24