Using Docusign REST API to attach document to SignerAttachmentTab - docusignapi

We have defined a template that will be filled in and signed by our customers. In this template we have some fields that we pre-populate along with some documents that we will attach. The customer will fill in other fields and attach more documents. We are using the REST API to generate the sign request. We are able to generate the correct REST request to fill the tabs in the template, set the recipients and successfully send the signature request. All this works great. But now we're trying to get a document attached to the appropriate SignerAttachmentTab in the template and we cannot get REST to accept it.
We've tried using the Documents field but that doesn't work with templates it seems. We created a composite template and then defined a document for the document, server template for the template itself and an inline template to contain the tab data we want to populate. This keeps generating errors about the tab page number not being right. We've tried different values and we've looked over all the forum posts and documentation related to attaching documents to templates and none of them seem to work.
For the document we specify the file to upload, set the document ID and name. In the server template we specify the template ID. In the inline template we create a recipient, set their information, build up the envelope tabs with the data and then add a SignerAttachmentTab for the document. In this tab we set the document ID to match the document ID from the Document element. We set the tabLabel to the label used in the template itself. We've tried setting pagenumber but that doesn't change anything. All we want is for the document to be sent to the customer. When the open it they can double click the attachment field and view the document we're trying to send.
I'm trying to use the recipe explorer to get this to work using raw REST and it keeps failing with the TAB_PAGENUMBER_IS_NOT_IN_DOCUMENT error. It seems like the document is taking precedence over the template. Unfortunately I cannot change the order of the templates in the editor other than setting the sequence # on the server and inline templates. Here's the request that is generated using DocuSign's test system.
{
"compositeTemplates":[{
"document": {
"documentBase64":"<Base64BytesHere>",
"documentId":"2",
"name":"Test.pdf"
},
"inlineTemplates":[{
"recipients":{
"signers":[{
"email":"abc#def.org",
"name":"Person",
"recipientId":"1",
"roleName":"Sender 1",
"tabs":{
"signerAttachmentTabs":[{
"documentId":"2",
"tabLabel":"MyAttachment"
}],
"textTabs":[{
"tabLabel":"someText",
"value":"Value1" }
]}
}]},
"sequence":"2"
}],
"serverTemplates":[{
"sequence":"1",
"templateId":"guid}]
}],
"emailBlurb":"A message",
"emailSubject":"Test",
"status":"sent"
}
I've looked at the existing posts in the forums and either they don't work for my case or they aren't trying to actually attach the documents to the template but simply include them as a document in addition to the template.

Update
Re:
...associate [a] document to the tab so that the signer will be able to click the attachment field in the document and see the document
Yes, you can now do this by using Smart Sections with a documentHtmlDisplaySettings object in the Envelopes:create request. The collapsed (or collapsible) section can be displayed in different ways:
inline
collapsible
collapsed
continue_button
responsive_table
responsive_table_single_column
print_only
Live examples that you can try online
HTML source document
Word source document
Original answer
Re:
But now we're trying to get a document attached to the appropriate SignerAttachmentTab in the template and we cannot get REST to accept it.
You're trying to use the API to add a document to a SignerAttachmentTab?
This is not supported. Only signers themselves add documents to a SignerAttachmentTab. The API can't do it for them.
Is the issue that you want to make sure that a signer attaches (uploads) a document to the envelope as part of the signing ceremony? You can make the tab non-optional (required). But that won't check the contents of the attached file.
You could use a web hook / Connect to check the file(s) that were attached and, if the right files weren't attached, generate another enveloper for the signer.

I figured out what I was doing wrong. For a template without attachments I was using TemplateRole and EnvelopeTabs. But for attachments, trying to include any document would cause the document to override the template. So I switched to composite template with server and inline templates for the template and data. Trying to add documents in various combinations in the various areas where they are allowed generally caused the request to be sent but with no documents.
The final solution was to go back to the original TemplateRole approach but to create the envelope as a draft. After the draft envelope was created I could then add the document to the envelope. But unfortunately to send the envelope you then have to reattach the recipients. I'm looking to clean that up but otherwise it is working for me now.

Related

Can I use auto place anchor strings in DocuSign with Document Visibility on?

I have a working application where a generic document is defined in the DocuSign template with auto-place anchor strings. In creating the envelope I replace the generic document with a document generated by my application.
A new requirement is to have multiple documents in the template with document visibility turned on so as to control recipients only seeing certain documents.
I have successfully created envelopes replacing the multiple documents with my generated documents using composite templates.
The problem I'm having is with using auto-place anchors. I either receive a response from the API that anchors must be specifically placed on the document or when the recipient receives the document, the process repeatedly loops thru the anchors and never allows the recipient to finish the signing of the document.
The question is can I use auto-place anchors with document visibility?
The documents I am generating are the same as in the template, but now have been populated with customer information that may change the location of where a signature is needed
I suggest you try with multiple composite template, each with 1 document.
See my article for more template ideas.

DocuSign what are the special fields I can add to Word documents to use via the API

I am testing the Docusign API and I can send a document to sign and get it signed in the position I want using the SignHere data structure and setting the AnchorString.
I want to add a field for the signed date but what is the format and field name required. I can't see anywhere that tells me how to type these into a Word document.
I see you can create templates online using Docusign and put in these fields but I don't see how that will work for us. The document will be dynamically created by our document assembly system and then sent via the Docusign API so I need to build in the fields at that point when I add the signature anchor string.
So what is the Word document special field format and list of Docusign available fields please?
Also it would be good to know how to insert a field to ask the signer to enter some text. Any entry box.
Thanks for any help.
If you're using Salesforce to send out these documents, the DocuSign CLM product supports template codes in Word. See docs.
Otherwise, you can only specify locations of fields (tabs) in the Word doc. This is done via anchor strings also known as auto-place fields. Docs.
Placing the anchor strings in your Word doc is the first step. For the second step, I recommend that you create a DocuSign template by using the DocuSign web tool. Then, when you send the document via the API, you combine it with the template. Or better, you can insert the Word document into the template itself.
The advantage of this technique is that your business users, with the right instructions, can update the template by themselves.
An alternative is for the DocuSign API request to specify the document and the various fields (tabs) that should be included in the document for the signers.
Added
Two other options:
Create your source documents as HTML documents. You can include special tags to indicate different types of DocuSign fields. You can also indicate sections of documents that can be expanded/closed by the signer. HTML field documentation.
This is the best approach, IMHO.
Create your source documents as PDF Forms with form fields. DocuSign can then transform the PDF form fields into DocuSign form fields. There are limitations. Docs.

How to use Automated anchor tags feature on the Embedded Sending View

I have a question regarding the Embedded Sending View. Through our program, the user selects documents which are sent to the Embedded Sending View where the user then selects recipients and has the option to add fields on the documents. The documents can have automated anchor tags such as \s1\, \s2\, and so on. What we need is for the tabs, such as Sign Here or Initial, to be displayed in the add fields page of Embedded Sending, which is not happening. Templates are not an option at this time as the documents are defined by our users. I tested this in the DocuSign Console and it didn’t work there at all, no tabs came up automatically on the add fields page despite anchor tags existing on the page.
This is the document that I tested
This is a screenshot of the Embedded Sending View. There were two signature anchors in the document and two signers/recipients were created in the Embedded Sending View.
This is a screenshot of the Tagging View - The Sign Here tabs do not come in automatically.
This is a screenshot of the page to actually sign the document through the email is sent. There are no Sign Here tabs displayed.
Automated anchor tags rely on the number in the tag text matching a recipient ID in the signer's definition. In order for \s1\ and \s2\ to map to your recipients, they'll need to have recipient IDs 1 and 2.
Automated anchor tags do not work if the document is uploaded through the web console - only if the envelope is created through the API with the document and recipients defined.
The 'stock' automatic anchor tags only work through DocuSign for Salesforce. Upon closer inspection, it looks like DFS includes a set of tags in its API traffic to create an envelope.
To approximate this behavior, I created a custom anchor tag that did work. To create these tags yourself:
Navigate to Go to Admin > Document Custom Fields
Add Field
Name: Anchor Signature
Type: Sign Here (or Initial Here if desired)
Shared: Checked (makes tag available to all users on the account)
AutoPlace Text: \s{r}\
In practice, the {r} gets replaced with the recipient ID.
This tag definition:
Results in tags being placed in my example draft that I created through the API:

Docusign API, "Correct Document" or just change fields

Using the Docusign API, I am trying to change the fields that exist on a document. When I first create the document, I am able to change field values using "tabs." I get how to do that.
When I am trying to edit, or in Docusign's terms "correct," a document after it has been sent out, but before being signed, I am having trouble figuring out how to access those fields again to change the values.
I have tried using the API avenue described here ( PUT /v2/accounts/{accountId}/envelopes/{envelopeId}/documents/{documentId}/fields ), but even after successful calls, the values of the fields aren't changing, and I believe it is because I should be trying to access the tabs, as I did when first changing the tab values as I created the document, instead of targeting the fields, since the two seem to be different. Any thoughts? Thank you in advance for your answers.
To update Tab values you should use the putRecipientTabs api.
Once a signer completes the Signing process, the tab values cannot be updated.
Also not all Tab values can be updated. See this answer for more information.
The putEnvelopeDocumentFields api is for a different purpose. Document fields are different from Tabs. Document fields are an array of name-value custom data strings to be added to a document. Custom document field information is returned in the status, but otherwise is not used by DocuSign.
I figured it out.
The "fields" we are seeing on documents are "tabs," and they are children of the recipients.
The hierarchy goes envelope > recipients > tabs, which tabs we were trying to change. Not envelope > document > fields, which refers to something else--just familiarizing with the language of the api.
Here is a link to the reference for how to change "fields" aka "tabs", and that link includes sample requests.
One thing that helped me target my actual fields, since I kept on getting an error that the field didn't exist for the recipient, is to do a get request of all available tabs and use that response body as the request body for the update call (where we change the field values). Then you know the field information will be accurate, paring the body down to exactly the "fields" aka "tabs" you are interested in targeting.

Adding additional pages to envelope created from a template

Is it possible to add extra pages to the middle of the document on envelope created and ready to send from a set template.
Use case:
Using DocuSign UI, Template-Sample saved with 4 pages, signing tab at the end of 4th page
Using API on code, envelope is created with the Template-Sample
Add 1 or more pages (with data contents) after 3rd page on template
Send for signing.
Yes. While the envelope is in the Created status (draft), it is no problem to change the envelope's contents.
Changing a specific document within the envelope is only supported by changing the entire document. That's possible, but the easier way is to have a series of separate documents in the envelope, and then only insert the new document.
Eg, if you still want the signing page at the end of all the pages, you'd have three documents:
The front matter document
The document that you're changing on the fly
The final document, including the signature page
Doing this sort of document manipulation usually involves the use of composite templates. Please ask additional questions if you'd like more help.

Resources