更新:通过eSign api生成带有eNotary签名,印章,DateSigned TABS的信封

问题描述

在我们组织的dmz Web应用程序中,我们代表Signer(我们的客户)生成信封并将其发送给公证人。并且我们正在沙箱环境中通过eSign API尝试在eNotary(InPersonSigner收件人)信封中使用Signature,Seal,DateSigned TABS。但是docusignapi不允许我们创建签名,印章,DateSigned TABS,但仅允许公证TAB。

我们如何通过eSign API将签名,印章,DateSigned TABS用于公证?

更新的代码将引发附加错误“ Notary_Signing_Host_Tabs_Not_Allowed”:

            string signerEmail = "signer@domain.com";
            string signerName = "Signer";

            string notaryEmail = "notary@domain.com";
            string notaryName = "Notary";

            // Step 1. Create the envelope deFinition
            EnvelopeDeFinition envelope = new EnvelopeDeFinition();

            envelope.EmailSubject = "Please sign this document";

            byte[] buffer = System.IO.File.ReadAllBytes("Execute_and_Notarize.pdf");
            Document doc1 = new Document();
            String doc1b64 = Convert.ToBase64String(buffer);
            doc1.DocumentBase64 = doc1b64;
            doc1.Name = "Notarize1_1page"; // can be different from actual file name
            doc1.FileExtension = "pdf";
            doc1.DocumentId = "1";

            // The order in the docs array determines the order in the envelope
            envelope.Documents = new List<Document> { doc1 };

            Notarize notarize1 = new Notarize
            {
                AnchorString = "/notary1/",AnchorUnits = "pixels",AnchorXOffset = "10",AnchorYOffset = "10",required = "true"
            };
            SignHere notarizesignhere1 = new SignHere
            {
                AnchorString = "/notarysigner1/",AnchorYOffset = "10"
            };
            SignHere notarizesignhere2 = new SignHere
            {
                AnchorString = "/notarysignerseal1/",IsSealSignTab = "true"
            };
            DateSigned notarizedatesigned1 = new DateSigned()
            {
                AnchorString = "/notarysigner1ds/",AnchorYOffset = "10"
            };

            Tabs notaryTabs = new Tabs
            {
                NotarizeTabs = new List<Notarize> { notarize1 },SignHereTabs = new List<SignHere> { notarizesignhere1,notarizesignhere2 },DateSignedTabs = new List<DateSigned> { notarizedatesigned1 }
            };

            NotaryHost notaryHost = new NotaryHost()
            {
                Email = notaryEmail,Name = notaryName,DeliveryMethod = "email",RecipientId = "2",Tabs = notaryTabs
            };

            // Create signHere fields (also kNown as tabs) on the documents,// We're using anchor (autoplace) positioning
            //
            // The DocuSign platform seaches throughout your envelope's
            // documents for matching anchor strings.
            SignHere signHere1 = new SignHere
            {
                AnchorString = "/signer1/",AnchorYOffset = "10"
            };
            DateSigned dateSigned1 = new DateSigned()
            {
                AnchorString = "/signer1ds/",AnchorYOffset = "10"
            };
            // Tabs are set per recipient / signer
            Tabs signer1Tabs = new Tabs
            {
                SignHereTabs = new List<SignHere> { signHere1 },DateSignedTabs = new List<DateSigned> { dateSigned1 }
            };

            // Create a signer recipient to sign the document,identified by name and email
            // We set the clientUserId to enable embedded signing for the recipient
            // We're setting the parameters via the object creation
            InPersonSigner inPersonSigner1 = new InPersonSigner()
            {
                Email = signerEmail,Name = signerName,RecipientId = "1",InPersonSigningType = "notary",Tabs = signer1Tabs
            };

            inPersonSigner1.NotaryHost = notaryHost;

            // Add the recipient to the envelope object
            Recipients recipients = new Recipients
            {
                InPersonSigners = new List<InPersonSigner> { inPersonSigner1 },};

            envelope.Recipients = recipients;

Image Attachment: errorCode - notary_signing_host_tabs_not_allowed

解决方法

您至少缺少一行:

inPersonSigner1.NotaryHost = notaryHost;

这是一个摘自my blog post的C#代码段:

// To complete this code snippet,you will need an Envelope and a Document object
var notarizeTab = new Notarize
{
    XPosition = "100",YPosition = "100"
};
var signHereTab = new SignHere
{
    XPosition = "200",YPosition = "200"
};
var notarizeTabs = new List<Notarize>();
notarizeTabs.Add(notarizeTab);
var signHereTabs = new List<SignHere>();
signHereTabs.Add(signHereTab);
var notaryHost = new NotaryHost
{
    Name = "Nadia Notary",Email = "nadianotary@domain.com",DeliveryMethod = "email",RecipientId = "2",Tabs = new Tabs { NotarizeTabs = notarizeTabs }
};
// InPersonSigner is used here even if the signer doesn't sign in person
var inPersonSigner = new InPersonSigner
{
    NotaryHost = notaryHost,Name = "Eddie End User",Email = "endusersigner@domain.com",RecipientId = "1",InPersonSigningType = "notary",Tabs = new Tabs { SignHereTabs = signHereTabs }
};
var inPersonSigners = new List<InPersonSigner>();
inPersonSigners.Add(inPersonSigner);
var recipients = new Recipients{ InPersonSigners = inPersonSigners };

您可以添加所需的任何标签,但是重要的是要了解公证人是不同的收件人,并且他们有自己的单独标签。