Docusign send documents to sign to our clients via our plateform - docusignapi

I studied the different authentication methods and i found that the JWT grant method is the best suited for our plateform. We need to send envelope to our clients which will subscribe to our website with any email from any domain. We purchase the plan : basic api plan, Site: NA3-EU1.
example 1:
our domain is for example : domain-a.com
sender : hello#domain-a.com
receiver : martin#gmail.com
example 2 :
sender: hello#domain-a.com
receiver:jean#domain-b.us
our goal is to be able to send automatically, when registering our client "martin#gmail.com" in our platform an email to sign documents. Once signed by martin#gmail.com ... we download the signed document.
Is the JWT grant flow is the best method for our case ? Please if possible provide an example.

You are correct. It sounds like you don't need to have individual users authenticate themselves, so JWT grant flow is the right way to go.
After reviewing this authentication guide on JWT, you should check out the language-specific code examples linked on that page.
Now, on to your use case... It looks to me like your clients will receive a very similar template. With Docusign, you can create a template of documents, roles, and tabs and send that template to each new client.
Here's an example that demonstrates how to create and send an envelope that contains a template. The template is set up to expect two recipients, one signer and one carbon copy. There is also a "note" tab assigned to the signer, which I've prepopulated with his physicalAddress
POST /envelopes
{
"status": "sent",
"templateId": "00df08bf-xxxx-xxxx-xxxx-ecaa2360c121",
"templateRoles": [
{
"email": "test#test.com",
"name": "Test User",
"roleName": "signer",
"routingOrder": "1",
"tabs": {
"note": [
{
"tabLabel": "physicalAddress",
"value": "221 Main St. San Francisco, CA"
}
]
}
},
{
"email": "test2#test.com",
"name": "Another user",
"roleName": "cc",
"routingOrder": "2"
}
]
}

Related

DocuSign API - Retrieve Envelope JSON for Envelope Sent via Admin Page

I'm using the Envelopes: create API in the sandbox to send signing requests successfully. I'm now working on one that involves DocuSign Templates and two template roles, so that each recipient should only complete their own fields for name, date and signature.
This is working fine when using the DocuSign Admin webpage to send these, but with my API request, the first recipient/role can fill in all fields for both recipients.
I'm obviously doing something wrong here and was wondering if I can somehow view/retrieve the JSON data for the envelopes that are not sent via the API but using the DocuSign admin webpage.
For example I'm after the following data so I can compare this to my request:
{
"accountId": "301424",
"emailSubject": "API Example - Populating Data in Templates",
"templateId": "44D9E888-3D86-4186-8EE9-7071BC87A0DA",
"templateRoles": [{
"email": "john.doe#email.com",
"name": "John Doe",
"roleName": "Customer",
"tabs": {
"textTabs": [{
"tabLabel": "CustomerAddress",
"value": "123 Main St. San Francisco, CA 94105"
},
{
"tabLabel": "CustomerSSN",
"value": "12-345-6789"
}]
}
}],
"status": "sent"
}
Is it possible, knowing the Envelope ID, to retrieve the JSON that was used to generate the Envelope/signing request?
You can see the requests that the DocuSign web tool made to create your envelope by using the API request logging feature. However, the web tool often uses multiple API calls to create an envelope. You can do the same, or coalesce the multiple calls into one.
If you ask a new question and supply the JSON that you're using, we may be able to spot your mistake directly.
For example, are you using two different email addresses for your two template roles in your test?
Do you have the tabs/fields set so they can only be modified by the specific recipient?
Are you creating the template programmatically or are you using the DocuSign web tool to create the template?

IN_PERSON_SIGNING_HOST_MUST_BE_VALID_USER

I am trying to send a document out for signature for in-person signing. I'm setting the recipients.inPersonSigners array with a signer when doing a POST to /envelopes. I am also sending this envelop on behalf of another user, the user I am sending to is not a DocuSign user but the user who's credentials I am using to make the REST call and the "on behalf of" user are both DocuSign users that I am able to login into DocuSign with. The response I get from DocuSign is "IN_PERSON_SIGNING_HOST_MUST_BE_VALID_USER - The In Person Signing Host must be a valid and active DocuSign user."
Yes you are getting correct error, the host for In-Person signing needs to have a valid and active DocuSign Account. HostName and HostEmail should be linked to a user who has a DocuSign account.
JSON will look like below:
"recipients": {
"inPersonSigners": [{
"routingOrder": 1,
"recipientId": "1",
"hostEmail": "validDSuseremail#email.com",
"hostName": "John Doe",
"signerName": "Signer Name"
}]
}

Actual signing flow is not what configured in template

We have a template has the following signing flow:
flow we want
Below is how we send the parameters:
{
"emailSubject": "Test company - Custom Rates Letter",
"emailBlurb": null,
"status": "sent",
"templateRoles": [
{
"roleName": "Paticipant B",
"name": "Paticipant B",
"email": "paticipantB#example.com"
},
{
"email": "paticipantA#example.com",
"name": "Paticipant A",
"roleName": "Paticipant A"
}
],
"templateId": "xxxxxxx-yyyy-zzzz-aaaaa-bbbbbbbbb"
}
However, the actual flow we get is not what we configured in the template. It's as followed:
flow we actually get
We want participant A to receive 3 copies: (1) the original unsigned contract (2) the contract signed only by participant B (3) the contract signed by all parties. However, participant A only receives (1) and is not able to receive (2) and (3).
I have tried many other parameters but all don't work. Could you give me some help on this? We want the actual flow to be the same as the flow configured in template. Thanks.
DocuSign does not support this type of workflow, i.e putting same roleName at different places. You need to have different roleName (eg, Participant A1, Participant A2 etc) in your Workflow, then pass same Recipient Name/Email for each roleName.
Or if you want to put same recipient multiple times in the workflow just for notification, then I would request you to consider using DocuSign Connect, once you receive an XML message from DocuSign on your subscribed event then send an email from your Email Server to the concerned person with the notification details.

Create Docusign envelope that uses social authentication using the REST API

I'd like to allow users/recipients to authenticate when signing using their facebook or google credentials. How do I create an envelop with Docusign's rest API to allow social authentication?
Specifically, how do I configure a signer recipient to authentication via Facebook? The documentation mentions the socialAuthentications field but specifies it as a boolean and describes it as a list: documentation
More specifically, which fields should I add to the following signer to require facebook authentication:
"Signers": [{
"email": "signer.name#company.com",
"name": "Mike Signer"
}]
To require that a Signer authenticate via Facebook, include the requireIdLookup attribute and idCheckConfigurationName as follows:
"signers": [
{
"routingOrder": "1",
"name": "John Doe",
"email": "jdoe#test.com",
"recipientId": "1",
"requireIdLookup": "true",
"idCheckConfigurationName": "Facebook"
}
]

How to map each DocuSign request to envelopeId

I am trying to implement a DocuSign API app to send documents to our clients for e-signature. In my application, I need to send one document to each client for e-signature. For example, an agreement doc where user will sign and agree to our terms and conditions.
So I will be sending the same document to each client and I assume I will be receiving a unique envelopeId for each individual request.
So how do you keep track of which envelopeId is associated with which user?
Can you send a custom tag in the request and receive it back in response to track it?
Most DocuSign users build a fully functional integration.
Integration such as Salesforce, CRM and other products that integrate DocuSign into their system track it either through an Envelope Custom Field (with their internal application record information) or they document the envelopeId responses and store them in their application.
Either way will work out just the same, it's all on how you want your integration to work.
Here is a quick sample call on how to create an envelope from a template with a text custom field
{
"emailSubject": "Just a test envelope",
"status": "sent",
"customFields": {
"textCustomFields": [
{
"name": "InternalToolNumber",
"required": true,
"show": false,
"value": 123456789
}
]
},
"templateId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"templateRoles": [
{
"email": "john.doe#emaildomain.com",
"name": "John Doe",
"roleName": "Signer 1"
}
]
}

Resources