Awerber
Awerber

Reputation: 57

Resend Docusign envelope using C#

I'm trying to use code I found here to resend an envelope, but no luck. My code is in two parts. Here's the code on my ASPX page to call a method to resend the envelope:

    protected void btnResend_Click(object sender, EventArgs e)
    {
        Signer signer = new Signer();
        signer.Email = txtRecipeintEmail.Text;
        signer.Name = txtRecipientName.Text;

        Manager mgr = new Manager();
        mgr.ResendEnvelope(txtEnvelopeID.Text, signer);
    }

Here's the code in the Manager class:

    public void ResendEnvelope (string envelopeID, Signer signer)
    {
        // instantiation of recipients as per https://stackoverflow.com/questions/21565765/resend-docusign-emails
        Recipients recipients = new Recipients
        {
            Signers = new List<Signer>()
            {
                    new Signer
                    {
                        RecipientId = "1",
                        RoleName = "Prospect",
                        Email = signer.Email,
                        Name = signer.Name,
                    },
                }
        };

        string accountID = GetAccountID();
        EnvelopesApi api = new EnvelopesApi();
        EnvelopesApi.UpdateRecipientsOptions options = new EnvelopesApi.UpdateRecipientsOptions();
        options.resendEnvelope = "true";
        RecipientsUpdateSummary summary = api.UpdateRecipients(accountID, envelopeID, recipients, options);

        var responses = summary.RecipientUpdateResults.ToList<RecipientUpdateResponse>();
        var errors = responses.Select(rs => rs.ErrorDetails).ToList();
    }

My GetAccountID function works fine - I use it to send the envelope. The value in txtEnvelopeID.Text is set from the code used to send the initial email. I get the initial email.

Here's what I see in errors:

?errors[0].Message "The specified envelope corrections have duplicate recipients." ?errors[0].ErrorCode "CORRECTION_HAS_DUPLICATE_RECIPIENTS"

When I tried to set the third argument of UpdateRecipients to null, I got a different error. When I left recipients blank (api.UpdateRecipients(accountID, envelopeID, options: = options)), I got an error.

So, I'm out of new ideas to try. Can anyone help?

Upvotes: 2

Views: 1538

Answers (1)

Frederic
Frederic

Reputation: 2065

The issue you are encountering is that you are creating again a signer that already exists, except that you don't assign the same RecipientId, hence the duplicate error.

Instead of

RecipientId = "1"

You need to make sure you assign the original signer ID, see below :

Signers = new List<Signer>()
{
    new Signer
    {
        RecipientId = signer.RecipientId
    },
}

In order to re-send the DocuSign email to your recipients, you can use the UpdateRecipient() method as such (see my C# example below). This will re-trigger the signing email to be sent one more time to the transaction recipients you specify in the recipients parameter :

RecipientsUpdateSummary recipientsUpdateSummary = 
                envelopeApi.UpdateRecipients(
                    accountId, 
                    EnvelopeId, 
                    RecipientsToNotifyAgain, 
                    new EnvelopesApi.UpdateRecipientsOptions { resendEnvelope = "true" });

Here is what the official documentation states :

enter image description here

Upvotes: 2

Related Questions