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"
}
]
Related
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"
}
]
}
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?
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"
}]
}
I'm using OAuth2 with OpenAM 13. I need my client application to be able to retrieve user information by means the OpenAM "User Information" endpoint.
However, I need to add / enhance the information provided to provide custom information in the user profile.
I was not able to see how to do this with the "User Information" endpoint.
However, with the "Token Information" endpoint it is very easy to add information (adding scopes that match the profile name automatically adds the information in the JSON response). I tried the same for the "User Information" endpoint but this didn't work.
In this other POST I have read that the "User Information" endpoint information can be enhanced by using a 'script'. However I was not able to find how to do it:
OpenAM - Use OAuth2 Access Token to get User Details?
Could someone help with this? I would really appreaciate it.
Thanks so much
In the default claims script you can add additional profile attributes by
extending the 'profile' key of the 'scopeClaimsMap' and create a mapping for the new claim in the 'claimAttributes' map.
As the claims script is using the IDRepo API of OpenAM you need to make sure the attributes are configured in the 'User Attributes' section of the configured user data store.
Example: Additional claim "employee_number" for the "profile" scope.
claimAttributes = [
"email": attributeRetriever.curry("mail"),
"address": { claim, identity, requested -> [ "formatted" : attributeRetriever("postaladdress", claim, identity, requested) ] },
"phone_number": attributeRetriever.curry("telephonenumber"),
"given_name": attributeRetriever.curry("givenname"),
"zoneinfo": attributeRetriever.curry("preferredtimezone"),
"family_name": attributeRetriever.curry("sn"),
"locale": attributeRetriever.curry("preferredlocale"),
"name": attributeRetriever.curry("cn"),
"employee_number": attributeRetriever.curry("employeeNumber")
]
scopeClaimsMap = [
"email": [ "email" ],
"address": [ "address" ],
"phone": [ "phone_number" ],
"profile": [ "given_name", "zoneinfo", "family_name", "locale", "name", "email", "employee_number" ]
]
The attribute 'employeeNumber' must be configured in the user data store config (which is there by default if you did not change anything)
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"
}
]
}