Resend DocuSign Emails

2019-01-09 15:29发布

Is there an API endpoint which allows me to retrigger emails to recipients? Sometimes users may not get or lose the DocuSign emails which contain their signing link. I'd like to be able to send those emails again on demand.

标签: docusignapi
4条回答
淡お忘
2楼-- · 2019-01-09 16:09

Here it is for SOAP without changing the recipients info:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.docusign.net/API/3.0">
   <soapenv:Header>
      <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
         <wsse:UsernameToken wsu:Id="UsernameToken-1" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
            <wsse:Username>[integratorKey]UserName</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</wsse:Password>
         </wsse:UsernameToken>
      </wsse:Security>
   </soapenv:Header>
   <soapenv:Body>
      <ns:CorrectAndResendEnvelope>
        <ns:Correction>
            <ns:EnvelopeID>1234</ns:EnvelopeID>
            <ns:RecipientCorrections>
               <ns:RecipientCorrection>
                  <ns:PreviousUserName>userName</ns:PreviousUserName>
                  <ns:PreviousEmail>user@email.com</ns:PreviousEmail>
                  <ns:PreviousRoutingOrder>1</ns:PreviousRoutingOrder>                  
                  <ns:Resend>true</ns:Resend>
               </ns:RecipientCorrection>
            </ns:RecipientCorrections>
        </ns:Correction>
      </ns:CorrectAndResendEnvelope>
   </soapenv:Body>
</soapenv:Envelope>
查看更多
三岁会撩人
3楼-- · 2019-01-09 16:13

You can use docusign's latest API using nuget package manager "DocuSign.eSign.Api".

I did it using C#:

//Very first prepare Recepients:

    Recipients recpnts = new Recipients
                {
                    //CurrentRoutingOrder = "1", // Optional.
                    Signers = new List<Signer>()
                {
                        new Signer
                        {
                            RecipientId = "1",
                            RoleName = "Prospect",
                            Email = "ert@gmail.com",
                            Name = "Shyam",
                        },
                    }
                };
// Call Envelopes API class which has UpdateRecepient Method

EnvelopesApi epi = new EnvelopesApi();

var envelopeId ="62501f05-4669-4452-ba14-c837a7696e04";

var accountId = GetAccountId();

// The following Line is responsible for Resend Envelopes.

 RecipientsUpdateSummary recSummary = epi.UpdateRecipients(accountId, envelopeId , recpnts);

// Get Status or Error Details.

var summary = recSummary.RecipientUpdateResults.ToList();

var errors = summary.Select(rs => rs.ErrorDetails).ToList();

// Method to get your Docusign Account Details and Authorize it.

private static string GetAccountId()
        {
            string username = "Account Email Address";
            string password = "Account Password;
            string integratorKey = "Your Account Integrator Key";

      // your account Integrator Key (found on Preferences -> API page)                                                                


            ApiClient apiClient = new ApiClient("https://demo.docusign.net/restapi");
            Configuration.Default.ApiClient = apiClient;

            // configure 'X-DocuSign-Authentication' header
            string authHeader = "{\"Username\":\"" + username + "\", \"Password\":\"" + password + "\", \"IntegratorKey\":\"" + integratorKey + "\"}";
            Configuration.Default.AddDefaultHeader("X-DocuSign-Authentication", authHeader);

            // we will retrieve this from the login API call
            string accountId = null;

            /////////////////////////////////////////////////////////////////
            // STEP 1: LOGIN API        
            /////////////////////////////////////////////////////////////////

            // login call is available in the authentication api 
            AuthenticationApi authApi = new AuthenticationApi();
            LoginInformation loginInfo = authApi.Login();

            accountId = loginInfo.LoginAccounts[0].AccountId;
            return accountId;
        }
查看更多
Root(大扎)
4楼-- · 2019-01-09 16:20

I'm not sure if a separate api call exists just to resend the envelope (notification), however you might be able to get away with it by using the Modify or Correct and Resend Recipient Info api call.

That call is normally used to correct information about your recipients- for instance, if you created an envelope with an incorrect email address or perhaps have the wrong name for someone you could use this call to modify the email address and resend the envelope. And when you make the call there is an optional query parameter called

?resend_envelope={true or false}

Try making this call but instead of altering any recipient information, simple append the URL parameter and that might resend the envelope.

Documentation

查看更多
老娘就宠你
5楼-- · 2019-01-09 16:30

You can use the "modify recipient(s)" request to trigger a re-send of the email notification.

PUT /accounts/{accountId}/envelopes/{envelopeId}/recipients?resend_envelope=true

Be sure to include the querystring parameter/value resend_envelope=true in the URL (as shown above).

For example, if a GET Recipients response shows that an Envelope contains the following recipients:

{
    "signers": [
        {
            "name": "Jane Doe",
            "email": "janesemail@outlook.com",
            "recipientId": "3",
            "recipientIdGuid": "13e30b8d-3dd6-48e8-ad12-15237611a463",
            "requireIdLookup": "false",
            "userId": "2c9e06eb-f2c5-4bef-957a-5a3dbd6edd25",
            "routingOrder": "1",
            "status": "sent"
        },
        {
            "name": "John Doe",
            "email": "johnsemail@outlook.com",
            "recipientId": "1",
            "recipientIdGuid": "c2273f0f-1430-484a-886c-45ce2fb5e8a8",
            "requireIdLookup": "false",
            "userId": "03c8a856-c0ae-41bf-943d-ac6e92db66a8",
            "routingOrder": "1",
            "note": "",
            "roleName": "Signer1",
            "status": "sent",
            "templateLocked": "false",
            "templateRequired": "false"
        }
    ],
    "agents": [],
    "editors": [],
    "intermediaries": [],
    "carbonCopies": [],
    "certifiedDeliveries": [],
    "inPersonSigners": [],
    "recipientCount": "2",
    "currentRoutingOrder": "1"
}

Then, I could trigger a re-send of the Signing Invitation Email to the incomplete recipient ("Jane Doe") by using the following request:

PUT https://{{env}}.docusign.net/restapi/{{version}}/accounts/{{acctId}}/envelopes/{{envelopeId}}/recipients?resend_envelope=true

{
  "signers": [
   {
      "recipientId": "3",
      "name": "Jane Doe",
      "email": "janesemail@outlook.com"
    }
  ]
}

Notice that I'm sending the same (original) values for name and email -- so it's not going to actually modify the recipient -- it'll just re-send the email to Jane, since I included ?resend_envelope=true in the URL.

API Documentation

查看更多
登录 后发表回答