1

我正在使用 DocuSign REST API 从模板创建信封。我的代码适用于单个文档模板或具有多个文档的模板,其中只有一个文档具有选项卡。如果两个文档上都有标签,我会收到带有错误代码的 400 响应TAB_REFERS_TO_MISSING_DOCUMENT

我收到的回复是:

{
  "error": "invalid HTTP response",
  "message": {
    "errorCode": "TAB_REFERS_TO_MISSING_DOCUMENT",
    "message": "The DocumentId specified in the tab element does not refer to a document in this envelope. Tab refers to DocumentId 45159457 which is not present."
  },
  "status": 400,
  "url": "https://demo.docusign.net/restapi/v2/accounts/2826983/envelopes/"
}

我的要求如下:

{
  "status": "sent",
  "templateId": "bb283bfb-4049-431d-942a-9a485e4ebb41", 
  "emailSubject": "[[Signer UserName]], please sign this document",
  "documents": [
     {
       "documentId": "27069418",
       "documentBase64": "...",
       "name": "name.pdf"
     },
     {
       "documentId": "45159457",
       "documentBase64": "...",
       "name": "secondName.pdf"
     }
   ]
}

据我所见,人们在提交无效的 documentId 时会收到此请求,1但“丢失”的文档已明确附加。我错过了什么吗?


最终的有效 JSON 请求如下所示:

{
    "status": "sent",
    "emailSubject": "...",
    "compositeTemplates": [{
        "serverTemplates": [{
            "sequence": 2,
            "templateId": "..."
        }],
        "inlineTemplates": [{
            "sequence": 1,
            "documents": [{
                "documentId": "...",
                "name": "...",
                "documentBase64": "..."
            }, {
                "documentId": "...",
                "name": "...",
                "documentBase64": "..."
            }]
        }]
    }]
}
4

2 回答 2

2

您可以使用复合模板克服错误。inlineTemplate以较低的序列号 ( )指定新文档"sequence": "1"将确保inlineTemplate文档将替换服务器模板文档。

这是一个示例CreateEnvelope请求。

{
    "emailSubject": "[[Signer UserName]], please sign this document",
    "status": "sent",
    "compositeTemplates": [
        {
            "inlineTemplates": [
                {
                    "sequence": "1",
                    "documents": [
                        {
                            "documentId": "27069418",
                            "name": "name.pdf",
                            "documentBase64": ""
                        },
                        {
                            "documentId": "45159457",
                            "name": "secondName.pdf",
                            "documentBase64": ""
                        }
                    ]
                }
            ],
            "serverTemplates": [
                {
                    "sequence": "2",
                    "templateId": "bb283bfb-4049-431d-942a-9a485e4ebb41"
                }
            ]
        }
    ]
}
于 2017-06-13T21:28:20.610 回答
0

要替换模板中的文档,您必须在信封中使用复合模板说明:创建调用。

在您的用例中,您希望将模板组合在一起,然后在模板中现有文档的“前面”合成一个新文档。

“合成模板”就像将多片胶片合成在一起以产生最终打印

于 2017-06-14T08:11:10.100 回答