0
votes

Is it possible to call the DocuSign API with the "docusign-client"-library in order to get status information about all envelopes with all of their recipients/signers in one request?

When we call the "EnvelopesApi.ListStatusAsync" method of the docusign client library we just retrieve an array of envelopes but without the status information of their signees.

public async Task<EnvelopesInformation> GetListStatus(EnvelopeIdsRequest envelopeIds, ListStatusOptions opt) {
   return await Request(async api => await api.ListStatusAsync(settings.AccountId, envelopeIds, opt));
}

It seems that this information have to be determine in second request by calling "EnvelopesApi.ListRecipientsAsync" method for every envelope.

Maybe someone have an idea or know how to call the API properly.

Are there any options we have to consider by calling the API or do we need to configure something in the DocuSign dashboard?

Thanks!

Remarks: In our environment we can't use webhooks. So we have to poll the DocuSign API.

2

2 Answers

0
votes

No, it's not possible and maybe we should understand your statement about "we can't use webhooks".

My guess is that you have firewall or some private network and you can't have calls from outside into these servers. That's not a reason not to use webhooks. There's a simple solution to this involving an intermediary cloud account that gets your webhooks and a queue mechanism for you to check for messages.

Here is a blog post by Larry that can help if you are willing to consider webhooks.

0
votes

Yes, you're right. The main reason why we can't use webhooks is because the applicationn is behind a firewall and our customer do not want to make any changes on that.

Also I know the possibility of using DouSign with services like Azure or AWS to get notification about their bus-messaging system but this is something we do not want to implement yet. Maybe in the future.

We found out that we can use the "EnvelopesApi.ListStatusChangesAsync" method to get all of the status information we're interested in.

            var options = new ListStatusChangesOptions {
                envelopeIds = ids,
                include = "recipients"
            };
            var result = await client.ListStatusChangesAsync(options);