Docusign: Use API to upload document and request signatures in a sequential flow - docusignapi

I've been looking at the API docs on Docusign (e.g. https://developers.docusign.com/esign-rest-api/guides/envelopes) but finding it pretty unclear.
I would like to:
Upload a document (e.g. pdf or docx)
Email signatory #1 that it needs to be signed
Know when they sign e.g. a webbook
Email the next signatory that it's their turn to sign it
I don't want to add all the people who need to sign it at once, but request them one by one (or multiple at each stage).
Can someone please point me in the right direction for doing this? Thanks

I'd recommend checking out DocuSign's Quickstart examples in your favorite language: https://developers.docusign.com/esign-rest-api/code-examples/quickstart-request-signature-email
To have signatories receive the envelope sequentially, you'll want to define a routing order for each recipient. DocuSign automatically moves through the routing order, so after signer 1 completes their portion, signer 2 will be notified.
To receive a notification to your webhook listener, you'll want to look in to DocuSign Connect: https://developers.docusign.com/esign-rest-api/guides/connect

Related

Recipient Delivery Failed -- Webhooks and Correcting/Resending via the API

I've been working on an integration that sends an envelope to 2 signers. I am trying to test and program for the case of 1 of the signers having a bad email address. I would need to:
Be notified of this (webhook?)
Update the email address for the signer
Update the email address in the custom fields as that's printed on the agreement
Resend the envelope
When I enable the delivery failure notification in Connect (this is set up at the account level, for now), I don't see where the failure is noted in the webhook response or for which signer the error is happening.
I've found multiple links via Google talking about "correct and resend" but I haven't been able to get anything definitive in terms of what steps need to be taken or a (PHP) code example. I've also found "resend" in the API reference but still no code examples.
I also haven't seen any code examples (PHP) of how I would update a signer's email address and how that would work via the API.
It'd also be good to know how to update custom field data for both signers so the email address in the contract is updated (it's listed separately as part of the custom form data).
And finally, how would I resend the envelope?
Thank you for your thoughts.
Per DocuSign support (customersupport#docusign.com):
Be notified of this (webhook?)
I have updated your account settings and now you should be able to see AutoResponded in your webhook messages when email invalid or unreachable.
(my comments: so it sounds like you have to ask to be able to see this stuff, it's not part of their standard webhook responses)
Update the email address for the signer
I also haven't seen any code examples of how I would update a signer and how that would work.
Unfortunately we don't have an example for recipient update but the logic is to get list of all recipients, pick the one need to be updated, and update.
You can use below to retrieve all recipients per envelope
https://developers.docusign.com/docs/esign-rest-api/reference/envelopes/enveloperecipients/list/
GET /restapi/v2.1/accounts/accountId/envelopes/envelopeId/recipients
Extract the one you need to update edit email and update using the below
https://developers.docusign.com/docs/esign-rest-api/reference/envelopes/enveloperecipients/update/
PUT /restapi/v2.1/accounts/accountId/envelopes/envelopeId/recipients
You can also see example code in C# how to do this in this thread https://github.com/docusign/docusign-csharp-client/issues/307
Update the email address in the custom fields as that's printed on the agreement
There is bug case created ( above link ) regarding this. At the moment you can not update signer custom fields case EC-2944.
Resend the envelope
You can resend the envelope during recipient update
https://developers.docusign.com/docs/esign-rest-api/reference/envelopes/enveloperecipients/update/
PUT /restapi/v2.1/accounts/accountId/envelopes/envelopeId/recipients
My commentary:
Since custom fields can't be updated, this whole use-case goes out the window. We can't have contracts with incorrect data on it, so my client will have to do these corrections by hand. Kind of a bummer.

Requesting a signature via email workflow

I'm a BA trying to understand DocuSign's eSignature feature (specifically, requesting a signature via email aka remote signing) as my company are soon to integrate. I'm really struggling to understand the end to end workflow. Is anybody able to A) shed light on this in layman's terms and/or B) point me toward documentation that better explains this than this documentation does? A step by step breakdown with no assumptions would be so helpful.
I'm particularly cloudy on how the "signing link" works; when/how it is generated and shared with the recipient and how they interact with it.
Thanks.
I suggest you look at these two:
If you are looking for non-developer document - https://www.docusign.com/products/electronic-signature/how-docusign-works
If you are looking to write code - https://developers.docusign.com/esign-rest-api/code-examples/code-example-request-a-signature-via-email
The idea is this: the signing is contained in something we call an envelope. An envelope represents a transaction. In that transaction you have people (recipients) and documents. You also need to specify how the recipients act on the documents with tabs (signing elements).
After you define all of this (which require you to specify among other things - email address(es) of the signers) you change the status to "sent" to actually send the envelope which means emails will be sent to remote signers.
At that point the DocuSign system automatically generates an email to any recipient that needs to sign that is in the first routing order (lowest number).
These emails will include a link.
That links does indeed expire eventually, but only to be replaced with a new link sent to the same email.
Clicking the link will launch the signing UI where the signer can complete the signing.
when all recipients completed acting on the envelope - the envelope is complete and a final signed/complete PDF is produced.

Is there a way to embed the DocuSign prepare or send envelope control panel in my webpage?

I am working on a DocuSign integration and want to allow the sender of the envelope to view the control panel to drag and drop signature tabs onto the document.
I already have a successful implementation that sends an embedded envelope to the signers. However, for this specific requirement, I do not know a) the X/Y coordinates of the signing tabs, or b) any anchor string for the signature tabs.
I have looked at the DocuSign api and I cannot see a way outside of java, which isn't really what im going for.
I am hoping to use this in an iframe, similar to how the embedded signing panel is done.
I believe the EnvelopeViews::CreateSenderView method is what you're looking for.
You can create a draft, then do the CreateSenderView call to request a url to a session of the DocuSign tagging screen. Since you're wanting to go straight to the tagger, you can leave the send=1 parameter as-is. If you wanted the URL to go to the Documents/Recipients screen instead of the tagger, you could change the url you recive from DocuSign to end with send=0 instead.
Do heed the Information Security warning on that API call: The Sender View URL will provide full access to the Web Console for whoever the authenticated user is. This is not a concern if you have one membership per user, but if you are using a shared membership everyone will have access to all envelopes on that membership.

Docusign Retrieve Signing Console URL: senderHost & mergeField details

Sign at Docusign
As per the above thread, it is possible to retrieve Signing console URL for email recipients too by setting EmbeddedRecipientStartURL property to value "SIGN_AT_DOCUSIGN", As per the documentation(Sign at Docusign), below example has to be framed in order to open Docusign Signing console.
http://senderHost/[[mergeField1]]/beginSigningSession?[[mergeField2]]&[[mergeField3]]
Please explain what is senderHost & what should be filled in the mergeField properties accordingly? Let me know if you need any additional information related to this query.
BVS, I believe that's the opposite. If you provide EmbeddedRecipientStartURL field with SIGN_AT_DOCUSIGN, the signature will happen completely on DocuSign, and you don't have to provide any URL or merge fields.
If the value SIGN_AT_DOCUSIGN is used for this node, the recipient
will be directed to an embedded signing or viewing process directly at
DocuSign.
On the other hand, if you want to route the client through your own application BEFORE he or she goes to DocuSign, you could provide this kind of template URL with merge fields to better handle the request.
Information can be appended to the embeddedRecipientStartURL using
merge fields. The available merge fields items are: envelopeId,
recipientId, recipientName, recipientEmail, and customFields. The
customFields must be part of the recipient or envelope. The merge
fields are enclosed in double brackets.
By example: if you wanted to handle the request before the signer goes to DocuSign, you could send something like https://senderHost?envId=[[envelopeId]]&email=[[recipientEmail]]. Sender host is your host, so it can be anything on the internet (www.yoursite.com, by example).
Hope it helps!

scoping out docusign for a client

I just wanted to understand certain terms such as
1) what is a template in context of docusign
2) What is an envelope an when do we use it ?
3) What is embedding signature ?
Basically my client wants to populate a pdf contract form with certain data got from a form. Would liek to send the pdf form to get it signed by the client...
Although the form maybe same the data fields in it may change ..
so what approach should be taken
a) template or b) embedded ?
assuming a blank form needs ot be sent for signing how does that work ? does the form goto the client phsycially ? or do they come on your site to sign it ...
i am sorry if i am all over i just wanted to understand the process frolm a developers stand point.
I suggest you read up on the DocuSign Developer Center. In particular the Explore -> Features section has pages dedicated to Templates and Embedding (among other topics) that have much of this info.
what is a template in context of docusign
Templates help streamline the sending process by allowing you to - at design-time - save document(s), recipients (or placeholder roles for recipients), tab locations and types for those recipients, routing and workflow, and more. Then at real-time when you want to request a signature you simply match a recipient to a role on your template and they automatically inherit all that previously configured workflow. The data they enter into their fields will still be specific to them, but things like the location of the signature tabs you've placed for them will always be the same, any conditional or dynamic workflows will be the same, etc. Templates are very flexible and have many features and options so I suggest you read up on them both through the Features -> Templates page but also through the API docs.
An alternative to requesting a signature from a Template is to request a signature on a Document. This is a similar call except that you need to define the tab locations, recipients, routing, etc every time before sending. With a template you just define all of that stuff once, at design time.
What is an envelope an when do we use it?
Definition from Explore page overview: "An envelope is basically a "container" used to send documents to recipients. The envelope carries information about the sender and timestamps to indicate the progress of the delivery procedure. It can contain collections of Documents, Tabs and Recipients and is analogous to a physical envelope you would send through the mail".
An envelope can have as many documents as you want in it (I think there's a total size limitation but that it's set high) and can be addressed to 1 or more recipients (actually up to 1,000 if using Bulk Send feature). And once the last person is done signing the docs in the envelope a Certificate of Completion (CoC) PDF doc is automatically generated and placed inside the envelope as part of an audit trail for your review.
What is embedding signature ?
Embedding allows you Embed the signing workflow directly into your website or app or whatever you are building. The signing still takes place through a DocuSign endpoint but you can generate the unique signing URLs yourself and open in an iFrame or Webview. You can control the branding around the signing experience and you also have control over where the user is re-directed to after they sign. See the Features -> Embedding page.
Regarding your questions about form fields, yes DocuSign also supports that- you want to use Data Fields (called textFields in the API), see the Features -> Stick-eTabs page.
Lastly, in terms of what approach should be taken (Template or Embedded) - hopefully my first answer cleared this up but those are not mutually exclusive. You can create an envelope from a Template or from a Local Document(s), and you can either Embed the signing experience or have it remote (i.e. recipient receives an email to start signing). To make a recipient an Embedded one, you have to set their clientUserId property. See the links I've referenced.
DocuSign also has sample code in 6 different languages for 9 common API scenarios, including Embedding, Requesting a signature from a Template, on a Document, and more. See the API Walkthroughs:
http://iodocs.docusign.com/apiwalkthroughs
DocuSign has free code samples in 6 different languages

Resources