Search code examples
docusignapidocusignconnect

Error: Connect listener cannot reside on internal DocuSign site


Currently I am able to send from a template with an envelope with EventNotifications like so:

            var envelopeDefinition = new EnvelopeDefinition();
            envelopeDefinition.Status = "sent";
            envelopeDefinition.TemplateId = templateId;
            envelopeDefinition.TemplateRoles = templateRoles;
            envelopeDefinition.EventNotification = new EventNotification
            {
                RequireAcknowledgment = "true",
                IncludeTimeZone = "true",
                Url = "https://localhost:44357/Agreements/UpdateStatus",
                RecipientEvents = new List<RecipientEvent>
                {
                    new RecipientEvent(RecipientEventStatusCode: "Sent"),
                    new RecipientEvent(RecipientEventStatusCode: "Delivered"),
                    new RecipientEvent(RecipientEventStatusCode: "Completed"),
                    new RecipientEvent(RecipientEventStatusCode: "Declined"),
                    new RecipientEvent(RecipientEventStatusCode: "AuthenticationFailed"),
                    new RecipientEvent(RecipientEventStatusCode: "AutoResponded")
                },
                EnvelopeEvents = new List<EnvelopeEvent>
                {
                    new EnvelopeEvent("Voided")
                }
            };

However when I try to do something similar with Bulk Send I get the error in the title:

            var signer1 = new TemplateRole();
            signer1.Email = "[email protected]";
            signer1.Name = "Multi Bulk Recipient::signer";
            signer1.RoleName = "signer";
            signer1.Tabs = new Tabs
            {
                TextTabs = new List<Text>
                        {
                            new Text
                            {
                                TabLabel = "RetailerName",
                                Value = "Please Sign Here"  
                            }
                        }
            };

            var env = new EnvelopeDefinition();
            env.TemplateId = templateId;
            env.TemplateRoles = new List<TemplateRole> { signer1 };
            env.Status = "sent";
            env.EventNotification = new EventNotification
            {
                RequireAcknowledgment = "true",
                IncludeTimeZone = "true",
                Url = "https://localhost:44357/Agreements/UpdateStatus",
                RecipientEvents = new List<RecipientEvent>
                {
                    new RecipientEvent(RecipientEventStatusCode: "Sent"),
                    new RecipientEvent(RecipientEventStatusCode: "Delivered"),
                    new RecipientEvent(RecipientEventStatusCode: "Completed"),
                    new RecipientEvent(RecipientEventStatusCode: "Declined"),
                    new RecipientEvent(RecipientEventStatusCode: "AuthenticationFailed"),
                    new RecipientEvent(RecipientEventStatusCode: "AutoResponded")
                },
                EnvelopeEvents = new List<EnvelopeEvent>
                {
                    new EnvelopeEvent("Voided")
                }
            };
            var result = await envelopesApi.CreateEnvelopeAsync(_docuSignSettings.AccountId, env);

Method to bulk send from template:

var bulkEnvelopesApi = new BulkEnvelopesApi(config);

var sendingList = MakeBulkSendList(retailersInfo);
var createBulkListResult = await bulkEnvelopesApi.CreateBulkSendListAsync(_docuSignSettings.AccountId, sendingList);

var envelopeId = await MakeBulkEnvelope(config, vm.TemplateId, createBulkListResult.ListId);

var bulkRequestResult = await bulkEnvelopesApi.CreateBulkSendRequestAsync(_docuSignSettings.AccountId, createBulkListResult.ListId, new BulkSendRequest { EnvelopeOrTemplateId = envelopeId });

var bulkStatus = await bulkEnvelopesApi.GetBulkSendBatchStatusAsync(_docuSignSettings.AccountId, bulkRequestResult.BatchId);

Btw I am able to bulk send if I dont include EventNotifications.

Pic of error from GetBulkSendBatchStatusAsync:
https://i.sstatic.net/dnL6x.png

Do I need a different URL(Connect webhook) for Bulk Send?

Thanks for reading!


Solution

  • You can't use localhost as a webhook destination URL since the URL is looked up by the SAAS service (DocuSign). To DocuSign, localhost means its own server.

    Your webhook listener (your server) needs to be available on the public internet. Check out this blog post.