Docusign API Recipients Rate Limiting - node.js

I wanted to implement a modal where the envelope recipients would be listed with normal recipient data: name, email, status etc. This list would be displayed regardless of the envelope could be any status.
Every time, a user wanted to consult which recipients exist for a given envelope, he would click for example on an envelope icon and the recipients modal would open.
Ideally, it would call the GetRecipients endpoint of the eSignatureAPI to populate the modal on opening.
Is this behaviour considered polling?? As in my scenario, the information is fetched only on runtime and based on user action is it just bounded by 1000 hourly calls per account?
We don't intent to do automatic polling.
According to the Docusign documentation, this subject is not very clear and if it is a blocker for Go live.

Reading what you wrote I would say it's not polling.
But, an automated system cannot easily know your intentions, so the rule is a bit strict. If you make the same API call to get the details of the same envelope more than once in 15 min - we determine this is polling.
Just ensure that when you test your app for the go-live review, you check different envelopes and/or wait longer than 15 minutes before tests.

Related

Request limit violation update cannot show on client

I can see the below point in docusign documentation https://developers.docusign.com/docs/esign-rest-api/esign101/rules-and-limits/
2. Apps are limited to one GET status request per unique envelope per 15 minutes. If you exceed this limit, the request will not fail, but it will be flagged as a violation of rate limits, which can cause your app to fail review to go-live. To avoid exceeding this limit, design your app to poll at 20-minute intervals rather than 15 or, rather than polling for envelope status, your integration can subscribe to Connect to get status updates for the envelope.
My requirement is to poll the documents for each user using API:
GET https://demo.docusign.net/restapi/v2.1/accounts/<account_id>/envelopes?count=10&from_date=2021-10-21T04:38:51.0930000Z&include=recipients&order_by=last_modified&order=asc&folder_types=normal,inbox,sentitems,draft&start_position=0
and there documents using API:
GET https://demo.docusign.net/restapi/v2.1/accounts/<account_id>/envelopes/<envelope_id>/documents
and I have multiple user connection with same account Id, hitting these two APIs.
will it be flagged as rate limit violation? I have tried these GET api again and again but I can't see this violation status on my client? how can get update of this if in case it happens on my prod instance?
What is the goal of this API call?
GET https://demo.docusign.net/restapi/v2.1/accounts/<account_id>/envelopes?count=10&
from_date=2021-10-21T04:38:51.0930000Z&include=recipients&
order_by=last_modified&order=asc&
folder_types=normal,inbox,sentitems,draft&start_position=0
Is it to monitor incoming envelopes? If so you can use Recipient Connect to receive webhook notifications.
Otherwise, for a given DocuSign user, you can make the API call once every 15 minutes or less often.
You cannot make the call more often than once per 15 minutes per associated user. If your app uses a "system user" such as finance#your-company.com then you cannot call it more than once per 15 minutes since the results would not change.
And what is the goal of this API call?
GET https://demo.docusign.net/restapi/v2.1/accounts/<account_id>/
envelopes/<envelope_id>/documents
The documents in an envelope are generally not going to change.
More often, apps want to know when an envelope has completed, and then download the docs.
Update
The polling limits are:
per user
results must be expected to change
This means that you cannot poll after an envelope reaches a terminal state. IE only poll if the envelope is in the sent or delivered states.
And it is still not clear to me why an envelope's documents will change.
If you want to provide the current version of the envelope's documents to your application's user, give them a button to download the documents. Don't poll for them.
Finally remember the limit of 1,000 API calls per hour per account for your application. Your application will NOT be approved for additional API calls per hour with this type of polling activity.

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.

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

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

Returned document lacks signature

I'm performing a DocuSign integration with a FileMaker solution to send signature requests via email, and receive a copy of the signed document once completed. I'm using the Java SDK to email signature request, as well as a Javalin app process to listen for the completed signature event, as well as more Java to pull the document back into FileMaker.
When the completed document is sent to my listener and pulled in, the document lacks a signature and tab field. It essentially looks just like the pdf document before being sent.
I have a feeling there's a variable I can tweak in some object to allow the signature to appear after being signed. I've played with all the usual suspects (e.g., eventNotification.setIncludeDocumentFields("true")), but nothing seems to do the trick. Any hints?
Aside from looking through the code for every object I'm instantiating and trying different variations, it's hard to pinpoint the exact source of failure in this. Thanks for any leads!
Sounds like you're receiving notifications by either including the eventNotification object in your Envelopes::create call or are using Connect at the account level. Either way, that's great, that's exactly right.
You can request notifications at many different points along the processing route of the envelope. To receive signed documents, you'll want the notification when the envelope is completed. At that point all signer recipients have signed.
To receive the notification when the envelope is complete, either adjust your Envelope Send parameters (the eventNotification value) or the settings for Connect (via the Admin tool), whichever one you're using.

Resources