I can populate a text field with a date (ex. 12/31/2016) using the REST API. I want to set it so that if a user makes any changes to the text field they must use the same date format.
I've read about setting a validationPattern and validationMessage, but when I put <validationPattern>mm/dd/yyyy</validationPattern> it was more of a literal validation where the field had to be "mm/dd/yyyy".
Is there documentation on how to set the validationPattern with the REST API?
Also, I originally had it so that I set the mask value = date for the text field, but when I tried to populate the field using the REST API it was empty. And I believe I was submitting the correct format (1/1/2016).
As the manual states,
Javascript RegEx object is used for regular expression validation.
So you need to enter a regular expression. The mm/dd/yyy should be presented to your users as instructions, it isn't the regexp.
If you want mm/dd/yyyy try this one from StackOverflow:
^((0?[1-9]|1[012])[- \/.](0?[1-9]|[12][0-9]|3[01])[- \/.](19|20)?[0-9]{2})*$
Try it online
Note: I escaped the literal / by using \/ I don't know offhand if you should escape the regex when entering it via the API or via the browser. I suggest that you test by using the web browser access to DocuSign, then switch to the API.
Related
In the api you can select multiple fields with something like this:
Text text = new Text();
text.setTabLabel("\\*_broker");
This will apply settings to all textfields that have names that end with "_broker".
But i want to select ALL text fields in the entire document and "\\*" does not seem to work.
Can anyone tell me how to select all fields from the API, or even better point me to the documentation for the setTabLabel matching format.
I've look all over and it seems alot of the old documentation links no longer work.
Thanks.
You can assign assign all transformed form fields to the first recipient by making them the default recipient (set defaultRecipient to true).
In order to make all of those form fields Collaborative, I believe you'll need to make extra API calls:
First, create the envelope as a draft (status = created instead of sent).
Then make a call to get the list of all the tabs (EnvelopeRecipients::List with include_tabs=true)
Finally, Use the tabLabels (or IDs) in an Envelopes::Update call to add the "shared": "true" parameter to each of them, and update the status to sent to actually send it.
How do we compose a get url to get an envelope or envelopes that contain a given custom field. I tried to compose a get url as one shown below but not getting the desired results (i tried to follow the documentation here -> https://developers.docusign.com/esign-rest-api/reference/Envelopes/Envelopes/listStatusChanges but I think i am not passing the custom field to the query string correctly
https://demo.docusign.net/restapi/v2.1/accounts/ACCOUNT_ID_NUMBER/envelopes?from_date=2019-12-05&folder_types=sentitems&status=completed&custom_field=[SignerEmail=john.doe#email.com]
You're using the right API call. Try it without the square brackets and encode the value.
Eg
... &custom_field=SignerEmail%3Djohn.doe%40email.com
The above is untested. If it doesn't work, we'll dig into it further
Important: are you trying to find envelopes that have a custm_envelop_field (metadata) that you created and you named "SignerEmail"?? If so, the the above is the way to go.
If you're looking for envelopes where a signing recipient's email is john#doe.com, try the general search as Inbar suggests. If it doesn't work, you may need another tactic.
Suggest you read here:
https://developers.docusign.com/esign-rest-api/guides/concepts/envelopes/search
the parameter is called search_text and would search everything including custom fields. There's no need to separately specify custom fields.
Something like this:
https://demo.docusign.net/restapi/v2.1/accounts/ACCOUNT_ID_NUMBER/envelopes?search_text=[SignerEmail=john.doe#email.com]
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.
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.
I am sending \s1\ perfectly fine to Docusign however \d1\ requests the signer to enter a date manually. This is obviously open to abuse on legal contracts.
Is there another tag i can use that prints the date of signing so the signer does not have to enter a date?
THank you
Are you using the Anchor Tagging feature since I see you referencing strings like \s1\ and \d1\? Or are you are using the DfS (DocuSign for Salesforce) integration and setting those strings through there?
The bottom line is that yes, it is definitely possible (and easy) to add a date tag that automatically populates based on the date your recipients are signing the document, so that they can not set whatever date they want. You just need to make sure you are using the Date Signed DocuSign tab instead of a regular date tab.
This is what it looks like in the DocuSign tagger:
If you do not have access to the tagging screen then you'll need to ask your DocuSign Admin.