Docusign - editing email address - docusignapi

I am using Docusign and have an issue with an envelope that has been sent to multiple recipients. 3 have signed electronically but the 4th can not as we have sent it to an invalid email. I do not have the option to edit the email address when I resend. How can I fix this?

You can edit the emailaddress of the recipient by doing call to below endpoint
PUT https://{{env}}.docusign.net/restapi/{{version}}/accounts/{{acctId}}/envelopes/{{envelopeId}}/recipients?resend_envelope=true
{
"signers": [
{
"recipientId": "3",
"name": "Signer Name",
"email": "signercorrectemail#domain.com"
}
]
}
In above example name and email will be updated for recipientId - 3. And envelope will be resend to only recipientId 3 only. For details please refer to https://docs.docusign.com/esign/restapi/Envelopes/EnvelopeRecipients/update/

Amit K Bist's answer shows the Rest Api approach.
There is also an alternate option. You can use the Advanced Correct feature in Docusign Web console to edit the email address of a recipient.
You can correct the details of in process envelopes that you sent or are shared with you, including both the recipient and document information.
Web Console URL's:
https://www.docusign.net/
(Sandbox) https://demo.docusign.net/

Related

How To fill all the recipients /Signer and move the workflow to the second signer through API/Rest Web Service

I have a docusign template created with below signing order(1.Employee 2.Manager).[Ref below screen]
I am able to fill the form element and the send the draft envelope to the first signer i.e Employee through API using the POSTMAN.()
Problem Statement:-
1.As of now I have hard coded the manager name and email Id in Template but actually I wanted to fill this dynamically while creating the Envelope.
2.When I am sending the Envelope with the data from postman, It is creating a draft Envelope for the first signer i.e for employee but my requirement is that the first signer task (Entering the data and move the workflow to Manager ) should be perform from API.
Thanks For helping Us.
You can update your draft envelope by making an additional RESTful request:
PUT /restapi/v2.1/accounts/{{accountId}}/envelopes/{{envelope_id}}
If you want to fill in the fields of your employee recipient, just specify something like this in your request body:
{
"recipients": {
"signers": [
{
"name": "InsertDynamicNameHere",
"email": "emailGoesHere",
"recipientId": "2"
}
]
}
}

Confused on how to use accesscode

I'm trying to figure out how to use the access code for a signer. In the api there is the accesscode field and a addaccesscodetoemail field. If I want the signer to see the accesscode in the email, do I just set that value to the accesscode and then set addaccesscodetoemail = true?
Yes, If you want the signer to see the accesscode in the email, then you just set that value to the accesscode and then set addaccesscodetoemail = true and signer will see the accesscode in the email itself. But it is not a good practice as it defeats the purpose of using the accesscode. Ideally, you should set accesscode via API and then communicate accesscode to the signer via another channel (not by sending the accesscode in an envelope notification email).
DocuSign's Access code authentication is similar to sms authentication except that for access code it's up to the sender to determine how to actually get the code over to the recipient.
They can send their own SMS outside of DocuSign platform with the code, they can send their own custom email, call the person, etc - but the bottom line is that DocuSign will not include the code in the system generated email.
To configure an access code for a recipient you have to set it on the specific type of recipient, in this case signer for example:
"recipients":
{
"signers": [
{
"email": "test_1#email.com",
"name": "Name 1",
"accessCode": "1234",
...

DocusignAPI : How can I download the internal document out of envelope without the envelope_id automatic stamp?

I have DocuSign documents (.pdf extension documents that were signed by docusign). I'm trying to find a programmatic solution via DocuSign API how can I remove the "DocuSign Envelope ID: {GUID}" automatic stamp that exists on every top of page in the documents.
Is there such a solution inside DocuSign API? and if yes, how can it be done?
If not, what are the alternatives?
Thanks a lot.
For new envelopes, you can set the envelopeIdStamping property in your createEnvelope request so that the stamp is not included. The stamp cannot be removed on completed envelopes.
{
"envelopeIdStamping" : "false",
"status": "sent",
"emailSubject": "Example of one recipient, type signer",
"documents": [],
"recipients": {}
}
Note that envelopeIdStamping is driven based on Account and Admin settings.
See this answer for more information.
See this page for other options.

How do I set the ttl on a docusign envelope URL?

I've been working on a docusign API for embedded signing, it's working great, yay. We have a version of events where we send a second docusign link via email to a second signer, and that works awesome..... within 5 minutes of sending it. I can't find a parameter to send with the API call to set the length of time it's valid to the 72 hours the business wants. What is the parameter I can change in the API call, or better yet a configuration for the account to set it appropriately?
As the other answers say, the embedded signing TTL is fixed at 5 minutes. Here's how to handle your scenario:
Provide your signers with a URL to your application. The URL will need to include enough state so your app, when it receives URL, can determine who is the signer, what is the envelope id, whether the 72 hours has expired, etc.
Or the URL could be a ref id in your database. The your database record would hold all of the relevant information about the envelope and signer.
When the signer uses the URL, your app will be called. Your app will then look up and check the info. If all is ok, your app requests an embedded signing URL from DocuSign and then re-directs the signer to that URL. The signer then signs.
Note the "checking" issue I mention above. It is vital that you protect against people either accidentally or purposefully spoofing your system. Eg, don't use just a database record ID since someone could try random record IDs or increment a good one by one. Instead, require the URL to include both the record ID and some information on the record that can't be guessed.
Or use a random GUID as the URL's parameter and then search for it in your database.
In any case, the key is to request the embedded signing URL just before you redirect the signer to it.
For embedded signing, as mentioned here, URL tokens are only valid for 5 minutes.
It all lies in how you configure each signer : embedded vs remote. And the main toggle to do this is the ClientUserId property : As explained here, A non-null ClientUserId implies that user is Embedded. Hence, to set up your co-signer for remote signing, you will need to specify a ClientUserId = "".
You can set the notification property in your Envelope:Create api call to set the TTL for an evelope.
The TTL for an embedded signing is 5 minutes.
You can only generate recipient signing links for envelopes that are in sent status. Also note that signing links expire after 300 seconds (5 mins) and are one-time use only, meaning you need to generate a new signing token each time the recipient wants to access the envelope.
Here is a sample Request, that has an embedded and remote recipient with envelope expiration set to 72 hours.
{
"status": "sent",
"notification": {
"expirations": {
"expireAfter": 3, //Envelope Expires after 3 days (72 hours).
"expireEnabled": true
},
"useAccountDefaults": false
},
"recipients": {
"signers": [
{
"email": "signer#foo.com",
"name": "signer one",
"recipientId": 1,
"clientUserId": 1234 //This is the embedded recipient. Does not receive an email.
},
{
"email": "cosigner#foo.com",
"name": "Co Signer",
"recipientId": 2 //This is the remote recipeint. Receives an email.
}
]
},
"emailSubject": "Envelope with an embedded recipient and remote recipient",
"documents": [
{
"documentId": "1",
"name": "Agreement",
"fileExtension": "pdf",
"documentBase64": "[Document base64 bytes go here]"
}
]
}

Suppress emails to embedded signers (captive recipients) or at least add text to the unwanted emails?

I generate an envelope for the customer to sign as a embedded (captive recipient) so they do not receive an email, instead I redirect them to the new envelope from my app, the intention is that they come back, in a seamless experience.
However what's happening is when they visit the URL, Docusign sends them an unwanted email. So for example if their name is Josh, they will receive an email from Docusign, with
Subject: "Josh viewed Please sign contract X"
Body: Title: "Josh viewed Please sign contract X"
Body: Description: At (time) Josh opened and viewed your documents, Contract X.pdf
This is not a good customer experience. Josh receives a lame email talking about him in the 3rd person. The link in the email requires the customer to register with Docusign which is just a hassle for them, it adds no value whatsoever. They can view the contract within my web-app.
Preferred question
How can I suppress as many emails as possible from Docusign to the customer, using the API? I've examined the API docs but didn't find anything there about suppressing emails for embedded stuff.
Apparently it can be done via the classic preferences. But I always prefer to override these things in code. Is it possible to suppress the emails with options in the API?
Alternative question
I tried adding the following options to the create envelope request, to at least embed an explanation for the customer, to say what the unwanted Docusign emails are about. But only text subject2 appeared. But not in a good way.
I got am email with the subject: "Josh viewed Test subject2"
No custom body appeared un the unwanted email.
recipientEmailNotification: {
emailBody: 'Test body',
emailSubject: 'Test subject'
},
emailBody: 'Test body2',
emailSubject: 'Test subject 2',
EDIT:
Thanks CodingDawg, you've cleared things up for me quite a bit.
You've got a good point there, I may have confusing emails, because my admin email address is the same email address as my first recipient (I realize now it's a bad idea for testing, I'll use a different email address)
EDIT 2
I see now there are email settings in admin preferences, and also in user preferences. Good to know!
I think you are getting confused between Sender and Recipient emails.
After an envelope is sent to an embedded recipient the recipient does not get any emails immediately.
After the Sending App generates a signing link and redirects to the recipient , Sender(not recipient) gets an email saying the "Recipient viewed envelope"
The "Recipient Viewed envelope" email can be suppressed in the senders account preferences. See info for NDSE here , CDSE here
After the Embedded Recipient signs the envelope, the recipient will receive an "Envelope is completed" email
The "Envelope completed" email can be prevented from sending to the recipient by selecting the "Suppress emails to Embedded Signers" checkbox in the sender's account preferences. Please note that this is an Account wide setting and cannot be done at per envelope level. More info here
recipientEmailNotification
The recipientEmailNotification property that you have specified in your request is invalid. Here is a sample json for CreateEnvelope api to set email body/subject at recipient level.
In the following example,
"recipient one" will receive an email with subject "This is recipient one subject".
"recipient two" will receive an email with subject "Email Subject to all recipients"
JSON
{
"status": "sent",
"emailSubject": "Email Subject to all recipients",
"emailBlurb": "Email body to all recipients",
"recipients": {
"signers": [
{
"recipientId": 1,
"email": "recipient1#foobar.com",
"name": "recipient one",
"emailNotification": {
"emailSubject": "This is recipient one subject",
"emailBody": "This is recipient one email body"
}
},
{
"recipientId": 2,
"email": "recipient2#foobar.com",
"name": "recipient two"
}
]
},
"documents": [
{
"documentId": 1,
"fileExtension": "txt",
"name": "Test Document",
"documentBase64": "VGVzdCBEb2N1bWVudA=="
}
],
"emailBody": "envelope level email Body"
}

Resources