无法使用编辑器和签名者作为嵌入式收件人创建信封

时间:2016-10-25 15:10:53

标签: docusignapi

我将使用我的应用凭据创建一个文档,该文档应由编辑收件人编辑,并应由签名者收件人签​​名。虽然收件人编辑器具有docusign帐户,但是失败并出现以下错误。

 com.docusign.esign.client.ApiException: {
  "errorCode": "EDITOR_MUST_HAVE_ACCOUNT",
  "message": "The recipient Editor must be an existing DocuSign account member."
}

以下是我的代码 -

EnvelopeDefinition envDef = new EnvelopeDefinition();
envDef.setEmailSubject(referral.getEmailSubject());


//Envelope events - Sent, Delivered, Completed, Declined, or Voided
//Recipient events - Sent, Delivered, Completed, Declined, AuthenticationFailed, and AutoResponded

envDef.setDocuments(getDocuments());


Tabs tabs = new Tabs();
tabs.setTextTabs(getTextTabs(referral));

EventNotification eventNotification = new EventNotification();
eventNotification.setLoggingEnabled("true");
eventNotification.setUrl("https://staging.agentdesks.com/v1.0/postbox/docusign/crs/event");

List<EnvelopeEvent> events = new ArrayList<>();
EnvelopeEvent event1 = new EnvelopeEvent();
event1.setEnvelopeEventStatusCode("completed");
events.add(event1);


EnvelopeEvent event2 = new EnvelopeEvent();
event2.setEnvelopeEventStatusCode("declined");
events.add(event2);

EnvelopeEvent event3 = new EnvelopeEvent();
event3.setEnvelopeEventStatusCode("voided");
events.add(event3);
eventNotification.setEnvelopeEvents(events);


envDef.setEventNotification(eventNotification);

Recipients recipients = new Recipients();
Editor editor = new Editor();
editor.setName(referral.getSender().getFirstname());
editor.setRecipientId(String.valueOf(referral.getSender().getIdFromMysql()));
editor.setEmail(referral.getSenderEmail());
editor.setClientUserId(String.valueOf(referral.getSender().getIdFromMysql()));
editor.setRoutingOrder("1");
editor.setRoleName("editor 1");
editor.setRequireIdLookup("false");
editor.setEmbeddedRecipientStartURL("www.google.com");

recipients.setEditors(new ArrayList<>(Arrays.asList(editor)));

Signer signer = new Signer();
signer.setName(referral.getReceiver().getFirstname());
signer.setEmail(referral.getReceiver().getEmail());
signer.setRecipientId(String.valueOf(referral.getReceiver().getIdFromMysql()));
signer.setTabs(tabs);
signer.setClientUserId(String.valueOf(referral.getReceiver().getIdFromMysql()));
signer.setRoutingOrder("2");
signer.setRoleName("signer 2");
recipients.setSigners(new ArrayList<>(Arrays.asList(signer)));

envDef.setRecipients(recipients);
envDef.setStatus("sent");


EnvelopeSummary envelopeSummary =
           docusign.envelopeApi.createEnvelope(docusign.getAccountId(), envDef);

2 个答案:

答案 0 :(得分:2)

我在节点SDK中遇到了同样的错误。我认为这里的错误是有道理的。虽然错误信息应该不同。

clientUserId 是为嵌入式收件人指定的,其中身份验证不由DocuSign处理,因此接收者可能不是DocuSign用户 - Docs。 而编辑类型的收件人要求使用DocuSign帐户。因此,即使您能够发送 clientUserId 并获得嵌入式viewUrl作为响应,它也会转到DocuSign登录页面,然后是信封编辑器http://prntscr.com/cyvg96

或者,我可能错了,这只是一个DocuSign错误。只是我的想法。

答案 1 :(得分:1)

Vaibhav是对的,这不是一个错误。虽然错误本身并不明确,但它是正确的;嵌入式签名者本身就是一个非帐户的DocuSign用户,但对编辑器的要求是它们被计算在内。