Exemple #1
0
        public ActionResult SendSignatureRequest()
        {
            string ds_signer1_name  = WebhookLibrary.GetFakeName();
            string ds_signer1_email = WebhookLibrary.GetFakeEmail(ds_signer1_name);
            string ds_cc1_name      = WebhookLibrary.GetFakeName();
            string ds_cc1_email     = WebhookLibrary.GetFakeEmail(ds_cc1_name);
            string webhook_url      = Request.Url.GetLeftPart(UriPartial.Authority) + "/api/Webhook";

            if (WebhookLibrary.AccountId == null)
            {
                return(Content("[\"ok\" => false, \"html\" => \"<h3>Problem</h3><p>Couldn't login to DocuSign: \"]"));
            }

            // The envelope request includes a signer-recipient and their tabs object,
            // and an eventNotification object which sets the parameters for
            // webhook notifications to us from the DocuSign platform
            List <EnvelopeEvent> envelope_events = new List <EnvelopeEvent>();

            EnvelopeEvent envelope_event1 = new EnvelopeEvent();

            envelope_event1.EnvelopeEventStatusCode = "sent";
            envelope_events.Add(envelope_event1);
            EnvelopeEvent envelope_event3 = new EnvelopeEvent();

            envelope_event3.EnvelopeEventStatusCode = "completed";
            envelope_events.Add(envelope_event3);
            EnvelopeEvent envelope_event4 = new EnvelopeEvent();

            envelope_event4.EnvelopeEventStatusCode = "declined";
            envelope_events.Add(envelope_event4);
            EnvelopeEvent envelope_event5 = new EnvelopeEvent();

            envelope_event5.EnvelopeEventStatusCode = "voided";
            envelope_events.Add(envelope_event5);

            List <RecipientEvent> recipient_events = new List <RecipientEvent>();
            RecipientEvent        recipient_event2 = new RecipientEvent();

            recipient_event2.RecipientEventStatusCode = "Delivered";
            recipient_events.Add(recipient_event2);
            RecipientEvent recipient_event3 = new RecipientEvent();

            recipient_event3.RecipientEventStatusCode = "Completed";
            recipient_events.Add(recipient_event3);
            RecipientEvent recipient_event4 = new RecipientEvent();

            recipient_event4.RecipientEventStatusCode = "Declined";
            recipient_events.Add(recipient_event4);

            EventNotification event_notification = new EventNotification();

            event_notification.Url                               = webhook_url;
            event_notification.LoggingEnabled                    = "true";
            event_notification.RequireAcknowledgment             = "true";
            event_notification.UseSoapInterface                  = "false";
            event_notification.IncludeCertificateWithSoap        = "false";
            event_notification.SignMessageWithX509Cert           = "false";
            event_notification.IncludeDocuments                  = "true";
            event_notification.IncludeEnvelopeVoidReason         = "true";
            event_notification.IncludeTimeZone                   = "true";
            event_notification.IncludeSenderAccountAsCustomField = "false";
            event_notification.IncludeDocumentFields             = "true";
            event_notification.IncludeCertificateOfCompletion    = "false";
            event_notification.EnvelopeEvents                    = envelope_events;
            event_notification.RecipientEvents                   = recipient_events;

            Document document = new Document();

            document.DocumentId = "1";
            document.Name       = "NDA.pdf";

            //string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"Documents\NDA.pdf");
            Byte[] bytes = System.IO.File.ReadAllBytes(Server.MapPath("~/Documents/NDA.pdf"));
            document.DocumentBase64 = Convert.ToBase64String(bytes);

            SignHere sign_here_tab = new SignHere();

            sign_here_tab.AnchorString  = "signer1sig";
            sign_here_tab.AnchorXOffset = "0";
            sign_here_tab.AnchorYOffset = "0";
            sign_here_tab.AnchorUnits   = "mms";
            sign_here_tab.RecipientId   = "1";
            sign_here_tab.Name          = "Please sign here";
            sign_here_tab.Optional      = "false";
            sign_here_tab.ScaleValue    = 1;
            sign_here_tab.TabLabel      = "signer1sig";

            FullName full_name_tab = new FullName();

            full_name_tab.AnchorString  = "signer1name";
            full_name_tab.AnchorYOffset = "-6";
            full_name_tab.FontSize      = "Size12";
            full_name_tab.RecipientId   = "1";
            full_name_tab.TabLabel      = "Full Name";
            full_name_tab.Name          = "Full Name";

            DocuSign.eSign.Model.Text text_tab = new DocuSign.eSign.Model.Text();
            text_tab.AnchorString  = "signer1company";
            text_tab.AnchorYOffset = "-8";
            text_tab.FontSize      = "Size12";
            text_tab.RecipientId   = "1";
            text_tab.TabLabel      = "Company";
            text_tab.Name          = "Company";
            text_tab.Required      = "false";

            DateSigned date_signed_tab = new DateSigned();

            date_signed_tab.AnchorString  = "signer1date";
            date_signed_tab.AnchorYOffset = "-6";
            date_signed_tab.FontSize      = "Size12";
            date_signed_tab.RecipientId   = "1";
            date_signed_tab.Name          = "Date Signed";
            date_signed_tab.TabLabel      = "Company";

            DocuSign.eSign.Model.Tabs tabs = new DocuSign.eSign.Model.Tabs();
            tabs.SignHereTabs = new List <SignHere>();
            tabs.SignHereTabs.Add(sign_here_tab);
            tabs.FullNameTabs = new List <FullName>();
            tabs.FullNameTabs.Add(full_name_tab);
            tabs.TextTabs = new List <Text>();
            tabs.TextTabs.Add(text_tab);
            tabs.DateSignedTabs = new List <DateSigned>();
            tabs.DateSignedTabs.Add(date_signed_tab);

            Signer signer = new Signer();

            signer.Email        = ds_signer1_email;
            signer.Name         = ds_signer1_name;
            signer.RecipientId  = "1";
            signer.RoutingOrder = "1";
            signer.Tabs         = tabs;

            Signer signer2 = new Signer();

            signer2.Email        = "*****@*****.**";
            signer2.Name         = "Mario Beko";
            signer2.RecipientId  = "3";
            signer2.RoutingOrder = "1";

            CarbonCopy carbon_copy = new CarbonCopy();

            carbon_copy.Email        = ds_cc1_email;
            carbon_copy.Name         = ds_cc1_name;
            carbon_copy.RecipientId  = "2";
            carbon_copy.RoutingOrder = "2";

            Recipients recipients = new Recipients();

            recipients.Signers = new List <Signer>();
            recipients.Signers.Add(signer);
            recipients.Signers.Add(signer2);
            recipients.CarbonCopies = new List <CarbonCopy>();
            recipients.CarbonCopies.Add(carbon_copy);

            EnvelopeDefinition envelope_definition = new EnvelopeDefinition();

            envelope_definition.EmailSubject = "Please sign the " + "NDA.pdf" + " document.URL:" + webhook_url;
            envelope_definition.Documents    = new List <Document>();
            envelope_definition.Documents.Add(document);
            envelope_definition.Recipients        = recipients;
            envelope_definition.EventNotification = event_notification;
            envelope_definition.Status            = "sent";

            EnvelopesApi envelopesApi = new EnvelopesApi(WebhookLibrary.Configuration);

            EnvelopeSummary envelope_summary = envelopesApi.CreateEnvelope(WebhookLibrary.AccountId, envelope_definition, null);

            if (envelope_summary == null || envelope_summary.EnvelopeId == null)
            {
                return(Content("[\"ok\" => false, html => \"<h3>Problem</h3>\" \"<p>Error calling DocuSign</p>\"]"));
            }

            string envelope_id = envelope_summary.EnvelopeId;

            // Create instructions for reading the email
            string html = "<h2>Signature request sent!</h2>" +
                          "<p>Envelope ID: " + envelope_id + "</p>" +
                          "<h2>Next steps</h2>" +
                          "<h3>1. Open the Webhook Event Viewer</h3>" +
                          "<p><a href='" + Request.Url.GetLeftPart(UriPartial.Authority) + "/Webhook010/status?envelope_id=" + envelope_id + "'" +
                          "  class='btn btn-primary' role='button' target='_blank' style='margin-right:1.5em;'>" +
                          "View Events</a> (A new tab/window will be used.)</p>" +
                          "<h3>2. Respond to the Signature Request</h3>";

            string email_access = WebhookLibrary.GetFakeEmailAccess(ds_signer1_email);

            if (email_access != null)
            {
                // A temp account was used for the email
                html += "<p>Respond to the request via your mobile phone by using the QR code: </p>" +
                        "<p>" + WebhookLibrary.GetFakeEmailAccessQRCode(email_access) + "</p>" +
                        "<p> or via <a target='_blank' href='" + email_access + "'>your web browser.</a></p>";
            }
            else
            {
                // A regular email account was used
                html += "<p>Respond to the request via your mobile phone or other mail tool.</p>" +
                        "<p>The email was sent to " + ds_signer1_name + " &lt;" + ds_signer1_email + "&gt;</p>";
            }

            //return Content("['ok'  => true,'envelope_id' => "+envelope_id+",'html' => "+ html+",'js' => [['disable_button' => 'sendbtn']]]");  // js is an array of items
            return(Content(html));
        }
Exemple #2
0
        public ActionResult SendSignatureRequest()
        {
            string ds_signer1_name  = WebhookLibrary.GetFakeName();
            string ds_signer1_email = WebhookLibrary.GetFakeEmail(ds_signer1_name);
            string ds_cc1_name      = WebhookLibrary.GetFakeName();
            string ds_cc1_email     = WebhookLibrary.GetFakeEmail(ds_cc1_name);

            //string webhook_url = Request.Url.GetLeftPart(UriPartial.Authority) + "/api/Webhook";

            if (WebhookLibrary.AccountId == null)
            {
                return(Content("[\"ok\" => false, \"html\" => \"<h3>Problem</h3><p>Couldn't login to DocuSign: \"]"));
            }

            // The envelope request includes a signer-recipient and their tabs object,
            // and an eventNotification object which sets the parameters for
            // webhook notifications to us from the DocuSign platform
            //List<EnvelopeEvent> envelope_events = new List<EnvelopeEvent>();

            //EnvelopeEvent envelope_event1 = new EnvelopeEvent();
            //envelope_event1.EnvelopeEventStatusCode = "sent";
            //envelope_events.Add(envelope_event1);
            //EnvelopeEvent envelope_event2 = new EnvelopeEvent();
            //envelope_event2.EnvelopeEventStatusCode = "delivered";
            //envelope_events.Add(envelope_event2);
            //EnvelopeEvent envelope_event3 = new EnvelopeEvent();
            //envelope_event3.EnvelopeEventStatusCode = "completed";
            //envelope_events.Add(envelope_event3);
            //EnvelopeEvent envelope_event4 = new EnvelopeEvent();
            //envelope_event4.EnvelopeEventStatusCode = "declined";
            //envelope_events.Add(envelope_event4);
            //EnvelopeEvent envelope_event5 = new EnvelopeEvent();
            //envelope_event5.EnvelopeEventStatusCode = "voided";
            //envelope_events.Add(envelope_event5);

            //List<RecipientEvent> recipient_events = new List<RecipientEvent>();
            //RecipientEvent recipient_event1 = new RecipientEvent();
            //recipient_event1.RecipientEventStatusCode = "Sent";
            //recipient_events.Add(recipient_event1);
            //RecipientEvent recipient_event2 = new RecipientEvent();
            //recipient_event2.RecipientEventStatusCode = "Delivered";
            //recipient_events.Add(recipient_event2);
            //RecipientEvent recipient_event3 = new RecipientEvent();
            //recipient_event3.RecipientEventStatusCode = "Completed";
            //recipient_events.Add(recipient_event3);
            //RecipientEvent recipient_event4 = new RecipientEvent();
            //recipient_event4.RecipientEventStatusCode = "Declined";
            //recipient_events.Add(recipient_event4);
            //RecipientEvent recipient_event5 = new RecipientEvent();
            //recipient_event5.RecipientEventStatusCode = "AuthenticationFailed";
            //recipient_events.Add(recipient_event5);
            //RecipientEvent recipient_event6 = new RecipientEvent();
            //recipient_event6.RecipientEventStatusCode = "AutoResponded";
            //recipient_events.Add(recipient_event6);

            //EventNotification event_notification = new EventNotification();
            //event_notification.Url = webhook_url;
            //event_notification.LoggingEnabled = "true";
            //event_notification.RequireAcknowledgment ="true";
            //event_notification.UseSoapInterface= "false";
            //event_notification.IncludeCertificateWithSoap= "false";
            //event_notification.SignMessageWithX509Cert= "false";
            //event_notification.IncludeDocuments= "true";
            //event_notification.IncludeEnvelopeVoidReason= "true";
            //event_notification.IncludeTimeZone= "true";
            //event_notification.IncludeSenderAccountAsCustomField= "true";
            //event_notification.IncludeDocumentFields= "true";
            //event_notification.IncludeCertificateOfCompletion= "true";
            //event_notification.EnvelopeEvents = envelope_events;
            //event_notification.RecipientEvents = recipient_events;

            Document document1 = new Document();

            document1.DocumentId = "1";
            document1.Name       = "NDA.pdf";
            Byte[] bytes1 = System.IO.File.ReadAllBytes(Server.MapPath("~/Documents/NDA.pdf"));
            document1.DocumentBase64 = Convert.ToBase64String(bytes1);
            document1.FileExtension  = "pdf";

            Document document2 = new Document();

            document2.DocumentId = "2";
            document2.Name       = "House.pdf";
            Byte[] bytes2 = System.IO.File.ReadAllBytes(Server.MapPath("~/Documents/House.pdf"));
            document2.DocumentBase64 = Convert.ToBase64String(bytes2);
            document2.FileExtension  = "pdf";

            Document document3 = new Document();

            document3.DocumentId = "3";
            document3.Name       = "contractor_agreement.docx";
            Byte[] bytes3 = System.IO.File.ReadAllBytes(Server.MapPath("~/Documents/contractor_agreement.docx"));
            document3.DocumentBase64 = Convert.ToBase64String(bytes3);
            document3.FileExtension  = "docx";

            /*
             * The signing fields
             *
             * Invisible (white) Anchor field names for the NDA.pdf document:
             *   * signer1sig
             *   * signer1name
             *   * signer1company
             *   * signer1date
             *
             * Explicitly placed fields are used in the contractor_agreement
             * and on the house diagram
             *
             * Some anchor fields for document 3, the contractor_agreement.docx, use existing
             * content from the document:
             *   * "Client Signature"
             *   * "Client Name"
             *
             * NOTE: Anchor fields search ALL the documents in the envelope for
             * matches to the field's anchor text
             */

            //Anchored for doc 1
            SignHere sign_here_tab1 = new SignHere();

            sign_here_tab1.AnchorString  = "signer1sig";
            sign_here_tab1.AnchorXOffset = "0";
            sign_here_tab1.AnchorYOffset = "0";
            sign_here_tab1.AnchorUnits   = "mms";
            sign_here_tab1.RecipientId   = "1";
            sign_here_tab1.Name          = "Please sign here";
            sign_here_tab1.Optional      = "false";
            sign_here_tab1.ScaleValue    = 1;
            sign_here_tab1.TabLabel      = "signer1sig";

            // Explicit position for doc 2
            SignHere sign_here_tab2 = new SignHere();

            sign_here_tab2.PageNumber  = "1";
            sign_here_tab2.DocumentId  = "2";
            sign_here_tab2.RecipientId = "2";
            sign_here_tab2.XPosition   = "89";
            sign_here_tab2.YPosition   = "40";
            sign_here_tab2.Name        = "Please sign here";
            sign_here_tab2.Optional    = "false";
            sign_here_tab2.ScaleValue  = 1;
            sign_here_tab2.TabLabel    = "signer1_doc2";

            // Anchored for doc 3
            SignHere sign_here_tab3 = new SignHere();

            sign_here_tab3.AnchorString  = "Client Signature";
            sign_here_tab3.AnchorXOffset = "0";
            sign_here_tab3.AnchorYOffset = "-4";
            sign_here_tab3.AnchorUnits   = "mms";
            sign_here_tab3.RecipientId   = "1";
            sign_here_tab3.Name          = "Please sign here";
            sign_here_tab3.Optional      = "false";
            sign_here_tab3.ScaleValue    = 1;
            sign_here_tab3.TabLabel      = "doc3_client_sig";

            // Anchored for doc 1
            FullName full_name_tab = new FullName();

            full_name_tab.AnchorString  = "signer1name";
            full_name_tab.AnchorYOffset = "-6";
            full_name_tab.FontSize      = "Size12";
            full_name_tab.RecipientId   = "1";
            full_name_tab.TabLabel      = "Full Name";
            full_name_tab.Name          = "Full Name";

            // Anchored for doc 1
            DocuSign.eSign.Model.Text text_tab1 = new DocuSign.eSign.Model.Text();
            text_tab1.AnchorString  = "signer1company";
            text_tab1.AnchorYOffset = "-8";
            text_tab1.FontSize      = "Size12";
            text_tab1.RecipientId   = "1";       //Because the same tab label is
            text_tab1.TabLabel      = "Company"; //used, these fields will have duplicate data
            text_tab1.Name          = "Company"; //Note that the account's "Data Population Scope"
            text_tab1.Required      = "true";    //must be set to "Envelope" to enable this feature.

            // Anchored for doc 3
            DocuSign.eSign.Model.Text text_tab2 = new DocuSign.eSign.Model.Text();
            text_tab2.AnchorString  = "Client Name";
            text_tab2.AnchorYOffset = "-38";
            text_tab2.FontSize      = "Size12";
            text_tab2.RecipientId   = "1";
            text_tab2.TabLabel      = "Company";
            text_tab2.Name          = "Company";
            text_tab2.Required      = "true";

            // Anchored for doc 3
            DocuSign.eSign.Model.Text text_tab3 = new DocuSign.eSign.Model.Text();
            text_tab3.DocumentId  = "3";
            text_tab3.PageNumber  = "1";
            text_tab3.RecipientId = "1";
            text_tab3.XPosition   = "145";
            text_tab3.YPosition   = "195";
            text_tab3.FontSize    = "Size10";
            text_tab3.TabLabel    = "Company";
            text_tab3.Name        = "Company";
            text_tab3.Required    = "true";

            // Anchored for doc 1
            DateSigned date_signed_tab1 = new DateSigned();

            date_signed_tab1.AnchorString  = "signer1date";
            date_signed_tab1.AnchorYOffset = "-6";
            date_signed_tab1.FontSize      = "Size12";
            date_signed_tab1.RecipientId   = "1";
            date_signed_tab1.Name          = "Date Signed";
            date_signed_tab1.TabLabel      = "date_signed";

            // Explicit position for doc 2
            DateSigned date_signed_tab2 = new DateSigned();

            date_signed_tab2.DocumentId  = "2";
            date_signed_tab2.PageNumber  = "1";
            date_signed_tab2.RecipientId = "1";
            date_signed_tab2.XPosition   = "89";
            date_signed_tab2.YPosition   = "100";
            date_signed_tab2.FontSize    = "Size12";
            date_signed_tab2.RecipientId = "1";
            date_signed_tab2.Name        = "Date Signed";
            date_signed_tab2.TabLabel    = "doc3_date_signed";

            DocuSign.eSign.Model.Tabs tabs = new DocuSign.eSign.Model.Tabs();
            tabs.SignHereTabs = new List <SignHere>();
            tabs.SignHereTabs.Add(sign_here_tab1);
            tabs.SignHereTabs.Add(sign_here_tab2);
            tabs.SignHereTabs.Add(sign_here_tab3);

            tabs.FullNameTabs = new List <FullName>();
            tabs.FullNameTabs.Add(full_name_tab);

            tabs.TextTabs = new List <Text>();
            tabs.TextTabs.Add(text_tab1);
            tabs.TextTabs.Add(text_tab2);
            tabs.TextTabs.Add(text_tab3);

            tabs.DateSignedTabs = new List <DateSigned>();
            tabs.DateSignedTabs.Add(date_signed_tab1);
            tabs.DateSignedTabs.Add(date_signed_tab2);

            Signer signer = new Signer();

            signer.Email        = ds_signer1_email;
            signer.Name         = ds_signer1_name;
            signer.RecipientId  = "1";
            signer.RoutingOrder = "1";
            signer.Tabs         = tabs;

            CarbonCopy carbon_copy = new CarbonCopy();

            carbon_copy.Email        = ds_cc1_email;
            carbon_copy.Name         = ds_cc1_name;
            carbon_copy.RecipientId  = "2";
            carbon_copy.RoutingOrder = "2";

            Recipients recipients = new Recipients();

            recipients.Signers = new List <Signer>();
            recipients.Signers.Add(signer);
            recipients.CarbonCopies = new List <CarbonCopy>();
            recipients.CarbonCopies.Add(carbon_copy);

            EnvelopeDefinition envelope_definition = new EnvelopeDefinition();

            envelope_definition.EmailSubject = "Please sign the house documentation package";
            envelope_definition.Documents    = new List <Document>();
            envelope_definition.Documents.Add(document1);
            envelope_definition.Documents.Add(document2);
            envelope_definition.Documents.Add(document3);
            envelope_definition.Recipients = recipients;
            //envelope_definition.EventNotification = event_notification;
            envelope_definition.Status = "sent";

            EnvelopesApi envelopesApi = new EnvelopesApi(WebhookLibrary.Configuration);

            EnvelopeSummary envelope_summary = envelopesApi.CreateEnvelope(WebhookLibrary.AccountId, envelope_definition, null);

            if (envelope_summary == null || envelope_summary.EnvelopeId == null)
            {
                return(Content("[\"ok\" => false, html => \"<h3>Problem</h3>\" \"<p>Error calling DocuSign</p>\"]"));
            }

            string envelope_id = envelope_summary.EnvelopeId;

            // Create instructions for reading the email
            string html = "<h2>Signature request sent!</h2>" +
                          "<p>Envelope ID: " + envelope_id + "</p>" +
                          "<p>Signer: " + ds_signer1_name + "</p>" +
                          "<p>CC: " + ds_cc1_name + "</p>" +
                          "<h2>Next steps</h2>" +
                          "<h3>Respond to the Signature Request</h3>";

            string ds_signer1_email_access = WebhookLibrary.GetFakeEmailAccess(ds_signer1_email);

            if (ds_signer1_email_access != null)
            {
                // A temp account was used for the email
                html += "<p>Respond to the request via your mobile phone by using the QR code: </p>" +
                        "<p>" + WebhookLibrary.GetFakeEmailAccessQRCode(ds_signer1_email_access) + "</p>" +
                        "<p> or via <a target='_blank' href='" + ds_signer1_email_access + "'>your web browser.</a></p>";
            }
            else
            {
                // A regular email account was used
                html += "<p>Respond to the request via your mobile phone or other mail tool.</p>" +
                        "<p>The email was sent to " + ds_signer1_name + " &lt;" + ds_signer1_email + "&gt;</p>";
            }

            //return Content("['ok'  => true,'envelope_id' => "+envelope_id+",'html' => "+ html+",'js' => [['disable_button' => 'sendbtn']]]");  // js is an array of items
            return(Content(html));
        }
Exemple #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TemplateRole" /> class.
 /// </summary>
 /// <param name="AccessCode">If a value is provided, the recipient must enter the value as the access code to view and sign the envelope.   Maximum Length: 50 characters and it must conform to the account&#39;s access code format setting.  If blank, but the signer &#x60;accessCode&#x60; property is set in the envelope, then that value is used.  If blank and the signer &#x60;accessCode&#x60; property is not set, then the access code is not required..</param>
 /// <param name="ClientUserId">Specifies whether the recipient is embedded or remote.   If the &#x60;clientUserId&#x60; property is not null then the recipient is embedded. Note that if the &#x60;ClientUserId&#x60; property is set and either &#x60;SignerMustHaveAccount&#x60; or &#x60;SignerMustLoginToSign&#x60; property of the account settings is set to  **true**, an error is generated on sending.ng.   Maximum length: 100 characters. .</param>
 /// <param name="DefaultRecipient">When set to **true**, this recipient is the default recipient and any tabs generated by the transformPdfFields option are mapped to this recipient..</param>
 /// <param name="Email">Specifies the email associated with a role name..</param>
 /// <param name="EmailNotification">EmailNotification.</param>
 /// <param name="EmbeddedRecipientStartURL">Specifies a sender provided valid URL string for redirecting an embedded recipient. When using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender&#39;s system (the server responding to the URL) must request a recipient token to launch a signing session.   If set to &#x60;SIGN_AT_DOCUSIGN&#x60;, the recipient is directed to an embedded signing or viewing process directly at DocuSign. The signing or viewing action is initiated by the DocuSign system and the transaction activity and Certificate of Completion records will reflect this. In all other ways the process is identical to an embedded signing or viewing operation that is launched by any partner.  It is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient&#39;s identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets &#x60;EmbeddedRecipientStartURL&#x3D;SIGN_AT_DOCUSIGN&#x60;, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.  If the &#x60;clientUserId&#x60; property is NOT set, and the &#x60;embeddedRecipientStartURL&#x60; is set, DocuSign will ignore the redirect URL and launch the standard signing process for the email recipient. Information can be appended to the embedded recipient start URL using merge fields. The available merge fields items are: envelopeId, recipientId, recipientName, recipientEmail, and customFields. The &#x60;customFields&#x60; property must be set fort the recipient or envelope. The merge fields are enclosed in double brackets.   *Example*:   &#x60;http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&amp;[[mergeField3]]&#x60; .</param>
 /// <param name="InPersonSignerName">Specifies the full legal name of the signer in person signer template roles.  Maximum Length: 100 characters..</param>
 /// <param name="Name">Specifies the recipient&#39;s name..</param>
 /// <param name="RecipientSignatureProviders">.</param>
 /// <param name="RoleName">Optional element. Specifies the role name associated with the recipient.&lt;br/&gt;&lt;br/&gt;This is required when working with template recipients..</param>
 /// <param name="RoutingOrder">Specifies the routing order of the recipient in the envelope. .</param>
 /// <param name="SigningGroupId">When set to **true** and the feature is enabled in the sender&#39;s account, the signing recipient is required to draw signatures and initials at each signature/initial tab ( instead of adopting a signature/initial style or only drawing a signature/initial once)..</param>
 /// <param name="Tabs">Tabs.</param>
 public TemplateRole(string AccessCode = default(string), string ClientUserId = default(string), string DefaultRecipient = default(string), string Email = default(string), RecipientEmailNotification EmailNotification = default(RecipientEmailNotification), string EmbeddedRecipientStartURL = default(string), string InPersonSignerName = default(string), string Name = default(string), List <RecipientSignatureProvider> RecipientSignatureProviders = default(List <RecipientSignatureProvider>), string RoleName = default(string), string RoutingOrder = default(string), string SigningGroupId = default(string), Tabs Tabs = default(Tabs))
 {
     this.AccessCode                = AccessCode;
     this.ClientUserId              = ClientUserId;
     this.DefaultRecipient          = DefaultRecipient;
     this.Email                     = Email;
     this.EmailNotification         = EmailNotification;
     this.EmbeddedRecipientStartURL = EmbeddedRecipientStartURL;
     this.InPersonSignerName        = InPersonSignerName;
     this.Name = Name;
     this.RecipientSignatureProviders = RecipientSignatureProviders;
     this.RoleName       = RoleName;
     this.RoutingOrder   = RoutingOrder;
     this.SigningGroupId = SigningGroupId;
     this.Tabs           = Tabs;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="RecipientUpdateResponse" /> class.
 /// </summary>
 /// <param name="ErrorDetails">ErrorDetails.</param>
 /// <param name="RecipientId">Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document..</param>
 /// <param name="Tabs">Tabs.</param>
 public RecipientUpdateResponse(ErrorDetails ErrorDetails = default(ErrorDetails), string RecipientId = default(string), Tabs Tabs = default(Tabs))
 {
     this.ErrorDetails = ErrorDetails;
     this.RecipientId  = RecipientId;
     this.Tabs         = Tabs;
 }
Exemple #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Document" /> class.
 /// </summary>
 /// <param name="ApplyAnchorTabs">Reserved: TBD.</param>
 /// <param name="Display">Display.</param>
 /// <param name="DocumentBase64">The document&#39;s bytes. This field can be used to include a base64 version of the document bytes within an envelope definition instead of sending the document using a multi-part HTTP request. The maximum document size is smaller if this field is used due to the overhead of the base64 encoding..</param>
 /// <param name="DocumentFields">DocumentFields.</param>
 /// <param name="DocumentId">Specifies the document ID number that the tab is placed on. This must refer to an existing Document&#39;s ID attribute..</param>
 /// <param name="EncryptedWithKeyManager">When set to **true**, the document is been already encrypted by the sender for use with the DocuSign Key Manager Security Appliance.  .</param>
 /// <param name="FileExtension">The file extension type of the document. If the document is not a PDF it is converted to a PDF.  .</param>
 /// <param name="FileFormatHint">FileFormatHint.</param>
 /// <param name="HtmlDefinition">HtmlDefinition.</param>
 /// <param name="IncludeInDownload">IncludeInDownload.</param>
 /// <param name="MatchBoxes">Matchboxes define areas in a document for document matching when you are creating envelopes. They are only used when you upload and edit a template.   A matchbox consists of 5 elements:  * pageNumber - The document page number  on which the matchbox will appear.  * xPosition - The x position of the matchbox on a page.  * yPosition - The y position of the matchbox on a page. * width - The width of the matchbox.  * height - The height of the matchbox.  .</param>
 /// <param name="Name">Name.</param>
 /// <param name="Order">Order.</param>
 /// <param name="Pages">Pages.</param>
 /// <param name="Password">Password.</param>
 /// <param name="PdfFormFieldOption">PdfFormFieldOption.</param>
 /// <param name="RemoteUrl">The file id from the cloud storage service where the document is located. This information is returned using [ML:GET /folders] or [ML:/folders/{folderid}]. .</param>
 /// <param name="SignerMustAcknowledge">SignerMustAcknowledge.</param>
 /// <param name="SignerMustAcknowledgeUseAccountDefault">SignerMustAcknowledgeUseAccountDefault.</param>
 /// <param name="Tabs">Tabs.</param>
 /// <param name="TemplateLocked">When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients. .</param>
 /// <param name="TemplateRequired">When set to **true**, the sender may not remove the recipient. Used only when working with template recipients..</param>
 /// <param name="TransformPdfFields">When set to **true**, PDF form field data is transformed into document tab values when the PDF form field name matches the DocuSign custom tab tabLabel. The resulting PDF form data is also returned in the PDF meta data when requesting the document PDF. See the [ML:Transform PDF Fields] section for more information about how fields are transformed into DocuSign tabs. .</param>
 /// <param name="Uri">Uri.</param>
 public Document(string ApplyAnchorTabs = default(string), string Display = default(string), string DocumentBase64 = default(string), List <NameValue> DocumentFields = default(List <NameValue>), string DocumentId = default(string), string EncryptedWithKeyManager = default(string), string FileExtension = default(string), string FileFormatHint = default(string), DocumentHtmlDefinition HtmlDefinition = default(DocumentHtmlDefinition), string IncludeInDownload = default(string), List <MatchBox> MatchBoxes = default(List <MatchBox>), string Name = default(string), string Order = default(string), string Pages = default(string), string Password = default(string), string PdfFormFieldOption = default(string), string RemoteUrl = default(string), string SignerMustAcknowledge = default(string), bool?SignerMustAcknowledgeUseAccountDefault = default(bool?), Tabs Tabs = default(Tabs), string TemplateLocked = default(string), string TemplateRequired = default(string), string TransformPdfFields = default(string), string Uri = default(string))
 {
     this.ApplyAnchorTabs         = ApplyAnchorTabs;
     this.Display                 = Display;
     this.DocumentBase64          = DocumentBase64;
     this.DocumentFields          = DocumentFields;
     this.DocumentId              = DocumentId;
     this.EncryptedWithKeyManager = EncryptedWithKeyManager;
     this.FileExtension           = FileExtension;
     this.FileFormatHint          = FileFormatHint;
     this.HtmlDefinition          = HtmlDefinition;
     this.IncludeInDownload       = IncludeInDownload;
     this.MatchBoxes              = MatchBoxes;
     this.Name                  = Name;
     this.Order                 = Order;
     this.Pages                 = Pages;
     this.Password              = Password;
     this.PdfFormFieldOption    = PdfFormFieldOption;
     this.RemoteUrl             = RemoteUrl;
     this.SignerMustAcknowledge = SignerMustAcknowledge;
     this.SignerMustAcknowledgeUseAccountDefault = SignerMustAcknowledgeUseAccountDefault;
     this.Tabs               = Tabs;
     this.TemplateLocked     = TemplateLocked;
     this.TemplateRequired   = TemplateRequired;
     this.TransformPdfFields = TransformPdfFields;
     this.Uri = Uri;
 }