我将使用我的应用凭据创建一个文档,该文档应由编辑收件人编辑,并应由签名者收件人签名。虽然收件人编辑器具有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);
答案 0 :(得分:2)
我在节点SDK中遇到了同样的错误。我认为这里的错误是有道理的。虽然错误信息应该不同。
clientUserId 是为嵌入式收件人指定的,其中身份验证不由DocuSign处理,因此接收者可能不是DocuSign用户 - Docs。 而编辑类型的收件人要求使用DocuSign帐户。因此,即使您能够发送 clientUserId 并获得嵌入式viewUrl作为响应,它也会转到DocuSign登录页面,然后是信封编辑器http://prntscr.com/cyvg96。
或者,我可能错了,这只是一个DocuSign错误。只是我的想法。
答案 1 :(得分:1)
Vaibhav是对的,这不是一个错误。虽然错误本身并不明确,但它是正确的;嵌入式签名者本身就是一个非帐户的DocuSign用户,但对编辑器的要求是它们被计算在内。