DocuSign - 通过 API 在创建的信封上更改模板定义的收件人

DocuSign - changing the template-defined recipient on the created envelope via the API

有一个包含 5 个收件人和一个签名顺序的模板。模板中的一位收件人的角色是科学家,签名顺序为 4。所有收件人的姓名和电子邮件均由模板提供。对于科学家角色的收件人,“Albert Einstein”是姓名,“albert@mc2.com”是电子邮件。

为了创建和发送信封,客户端应用程序使用以下 JSON 负载对 ${base_path}/v2.1/accounts/${account_id}/envelopes 进行 API 调用:

{
   "status": "sent",
   "templateId": "...",
   "templateRoles": [
      {
         "email": "...",
         "name": "...",
         "roleName": "...."
      },
      {
         "email": "newton@fma.com",
         "name": "Isaac Newton",
         "roleName": "Scientist"
      }
   ]
}

预期:覆盖 - 来自 API 调用的科学家的 name/email 替换了创建信封上的模板定义的 name/email

观察到:合并 - 来自 API 呼叫的科学家作为新收件人添加到信封中,其签名顺序设置为 1。模板提供的科学家没有改变。

观察到的行为是故意的吗?

这是设计使然。 让我解释一下为什么。 模板中有两种类型的收件人:

  • 占位符
  • 固定

这是 either/or 的情况。您可以在模板中指定收件人,也可以将其保留为稍后指定的占位符。 你想要哪一个?

如果您希望修复它,但稍后又想覆盖,则需要另一个 API 调用。您需要更改收件人,实质上是设置一组新的收件人。您想删除阿尔伯特爱因斯坦并添加其他人(尽管您的代码似乎有相同的科学家,所以没有意义)。

尽管如此,我还是建议您考虑将复合模板模型用于这些类型的高级场景。