I followed this guide:
https://developers.docusign.com/docs/esign-rest-api/how-to/bulk-send-envelopes/
For Step 4. I removed the Documents property and used a TemplateId instead and got the following error:
Error calling CreateEnvelope: {"errorCode":"INVALID_REQUEST_PARAMETER", "message":"The request contained at least one invalid parameter. 'recipients' may not be specified when template Id is set. use templateRoles'."}
The issue is CreateBulkSendList(Bulk Envelopes API) doesnt allow for TemplateRoles(Step 3. from the guide)
Not sure how to proceed, in fewer words:
Id like to Bulk send an envelope using Template Roles
I could write a loop and have it send 1 by 1 instead of Bulk but id rather not.
Thanks for reading!
So the issue is that roles are used in multiple ways with templates and bulk send. If you have a template that uses "placeholder" recipients, meaning that they only have a role, but not a specific email/name assigned to them, then you will first have to create an envelope with these following the guide on how to create an envelope from a template (which requires the use of templateRoles object instead of recipients object). Then you use this envelope and continue from step 5 if this how-to.
Related
We have a service integration with docusign. The envelope is created, in Draft mode, with API key A. Key A is already live in production.
We have a custom script that applies a template to the already created envelope and populates some mail notifications (custom) using API key B. Key B is a non-live key.
Each invocation, omitting the call for retrieving the base URL, the custom script (Key B) makes four calls for a particular envelope:
Apply template : POST
Get recipients : GET
Update recipients : PUT
Delete recipients : DELETE
At the end of this operation the updated envelope would still be in Draft mode.
Now, we make around 7 - 8 invocations of the custom script, each time for a different envelope, which gives us around 28 API calls and then try a key review. But every time it fails.
We're pretty sure that we are not crossing the hourly API call limit. Key B is not used elsewhere as well. Also, there're no repetitive GET requests to the same envelope endpoint.
The calls are made using standard java libraries. No SDK.
Is the sequence of calls made not a valid one?
Is there something we're missing here? We're sure that the key being used in script and the key we're trying to promote are the same.
Any help is appreciated.
In general, specific questions about the DocuSign Go-Live process should go to go-live#docusign.com. There is more information about the process here - https://developers.docusign.com/esign-rest-api/guides/go-live
Using the DocuSign C# SDK and when trying to submit an envelope, I get the following error:
{
"errorCode": "ENVELOPE_HAS_DUPLICATE_RECIPIENTS",
"message": "The specified envelope has duplicate recipients."
}
I know this is coming directly from the DocuSign REST API (since the C# SDK just wraps that message back). According to this QA in the DocuSign forum, duplicate recipients (name, email and recipient type) can exist in the same envelope as long as they have a different routing number. In my case I made sure the routing numbers are different. However I get the above error message back.
So my question is, if DocuSign API allows for duplicate recipients as long as there is a different routing order, why am I getting this message back?
I was getting the same error message when using templates that had been set up for user input and no regards to API use. I found that they'd re-used the field tags both in the data fields as well as when defining recipients, CC's, etc. When I made these all unique names it cleared up this error.
Perhaps you are using the same recipientId for many singers.
recipientId of a signer must be unique.
I want to know if this is possible: I would like to have a custom text field on an envelope that I set and if the envelope fails for some reason, like there are missing tabs or email address is bad, I want to be able to look at the exception and see the custom field that I set. Would this info be in the raw data? It is as important to us to know which envelopes failed as to know why they failed. I saved the custom field in a database before sending out the envelope. When it fails, I can look up that custom field and discover which envelope didn't make it and to take some action, like correcting and resending.
If the envelope is created incorrectly (i.e: specifying a conditional parent tab which does not exist, syntax error, etc), then you will know at the time you attempt to create the envelope w/the API. The reason will be included in an error code the API returns
If an envelope was sent to an email address which does not exist/bounces, that information can be discovered using the DS API to see a recipient/envelope status of 'autoresponded', or if you are using DS Connect you can receive a push notification.
Is there additional rationale why you want to use a custom field? Per the above, I do not believe it is necessary or applicable.
With the RestSharp api, I was able to get the Request body. The Request body has a collection of Parameters, and one of those items is the RequestBody.
I want to make sure I am on the right track as I have been having some problems getting started with the API. I am looking to maintain a list of product application PDFs as templates on docusign. When a customer comes to our site and wants a particular product they need to fill out an application form. All the data would be collected on our site. I would then want to:
Create an envolope with the customer (and potentially other parties) that need to sign the document
Fill in the form fields from data collected on our site
Send the envelope out for signature and monitor the progress.
So in doing this I am trying to build this up a piece at a time and first task is to make sure that I can provide form data to docusign. I create a template with the docusign web user interface and all of the form fields seem to be preserved. However when I try and retrieve the template with API
https://demo.docusign.net/restapi/v2/accounts/xxxx/templates/yyyy
I see a very short response with an envelopeTemplateDefinition showing the correct name for the template but no documents object and no custom fields object. I have also tried this by creating an envelope with the document (in draft) but with similar results.
My apologies in advance for this newbie question.
I've repro'd the issue you describe -- i.e., the Response I get from a GET Template request contains only very limited information and is thereby not consistent with the expected Response as documented on pages 194-196 of the DocuSign REST API guide (http://www.docusign.com/sites/default/files/REST_API_Guide_v2.pdf). Not sure if this is a bug with the GET Template operation or with the Documentation -- someone at DocuSign will need to confirm (#Ergin).
In light of this limitation with the GET Template operation, you can alternatively retrieve the recipient information (including tabs) and document information about a Template by using the GET Envelope Recipients and GET Envelope Documents operations -- just specify the TEMPLATE Id in place of the Envelope Id, as shown here:
GET https://{{env}}.docusign.net/restapi/{{version}}/accounts/{{acctId}}/envelopes/{templateId}/documents
GET https://{{env}}.docusign.net/restapi/{{version}}/accounts/{{acctId}}/envelopes/{templateId}/recipients?include_tabs=true
Looks like we can delete recipient in the REST API but is there a method in the SOAP API that will allow deleting recipients?
Currently we are calling CreateEnvelopeFromTemplatesAndForms() from the SOAP API to create the draft envelope. The template may have multiple recipients and some of them may be optional. Before we can send the envelope by setting ActivateEnvelope to true or calling SendEnvelope(), seems like all the recipients' info (i.e. name, email, etc) must be filled in, otherwise the call will throw an error "...email address is invalid...". So we would like to delete the optional recipients when they are not needed.
Can we somehow define an InlineTemplate for the CreateEnvelopeFromTemplatesAndForms() call to delete recipients?
We also looked at CorrectAndResendEnvelope(), seems like we can edit recipient info but not delete.
Thanks in advance!
No, there is no SOAP equivalent for deleting recipients. This is one of the reasons why DocuSign's REST API is encouraged over the SOAP API, and this feature gap is growing with every monthly release.
Three workarounds I can think of:
Use a recipient type like Editor or Agent to edit the recipient info after envelope has been sent.
Instead of deleting optional recipients, only add them later in the process if needed.
Use REST to delete your optional recipients.
For #1, there are recipient types like Editor, Agent, or Manage Recipients which allow you to edit the recipient info of recipients that are later in the routingOrder.
For #2, instead of adding your recipients at the beginning, only add the required recipients then at a later time if it's decided that optional ones are needed, add them through a Recipient Correction/Addition.
For #3, the nice thing is that you can intermix the APIs, and make some calls in SOAP and others in REST. The only thing you'd have to do is write code to send a REST request and parse the response.