Post Recipient View Without Their Credentials - docusignapi

I'm trying to receive the Recipient Url for embedded signing within our application.
I won't have the user's credentials, and all my API calls are going through as a Ds administrator account.
When I execute the following I get an error message:
{
"errorCode": "ACCOUNT_NOT_AUTHORIZED_FOR_ENVELOPE",
"message": "This account is not authorized to access the requested envelope."
}
If I execute this against envelopes that are assigned to me it works fine but not other users. I should also point out we are not currently making use of clientUserId when creating recipients. Only a small portion will need embedded signing.
It was my understanding an administrative account would be able to retrieve the url needed to begin the embeded signing process. Is this not correct?
Also under what circumstances would email and userName not be the same? Aren't usernames always email addresses?
Request :
POST https://demo.docusign.net/restapi/v2/accounts/244043/envelopes/41d02a5f-13f8-4fb5-897d-142e1c653645/views/recipient
X-DocuSign-Authentication: <DocuSignCredentials><Username>blah</Username><Password>blah2</Password><IntegratorKey>blah3</IntegratorKey></DocuSignCredentials>
Content-Type: application/json
{
"returnUrl": "http://www.[somedomain].com",
"email" : "someguy#gmail.com",
"userName" : "someguy#gmail.com",
"authenticationMethod" : "email"
}
EDIT:
Additionally if I try the following for my request :
{
"returnUrl": "http://www.[mydomain].com",
"userId" : "xxxxx-xxx-xxxx-xxx-xxxxxxxxxx",
"authenticationMethod" : "email"
}
I receive :
{
errorCode: "INVALID_USERID"
message: "Invalid UserId. UserId specified in request does not match authenticated user."
}

In addition to the issues in Luis Scott's answer, you're missing one of the required parameters for the Recipient View method --
clientUserId A sender created value that shows [that] the recipient is embedded (captive). Maximum of 100 characters.
Create a value for the clientUserId and include it for the signer when you create the transaction (when you send the signing request).
Then include it when you want the Recipient View. It's a security measure to ensure that it is ok for your web app to authenticate the signer.
Only include the clientUserId for signers where you can authenticate them yourself and you plan to offer them the embedded signing view.

1) Please ensure the user being used for the API calls has the "Account-Wide Rights" setting enabled under preferences -> users -> permissions.
2) The Username field should be the recipients full name that was provided during envelope creation. So it would be "Some Guy" IMO using your sample above.

Related

DocuSign ID Check with Embedded signing for documents sent via JAVA SDK

I'm trying to achieve ID Check on embedded signing through an envelope sent via Docusign Java SDK. I am able to make it work through remote signing however, I get the following error on embedded signing.
{
"errorCode": "INVALID_REQUEST_PARAMETER",
"message": "The request contained at least one invalid parameter. The value of AuthenticationMethod is invalid."
}
I'm fully aware of another post on the same topic posted in 2013 (DocuSign ID Check with Embedded signing). The difference here is that I'm not using any document templates but sending the documents in the envelope itself. Based on the comments a bug was logged with bug id 30830 but I can't say whether this was resolved.
Also, I have already added the settings that I know that are required for ID Check.
signer.setRequireIdLookup("true");
recipientViewRequest.setAuthenticationMethod("ID Check $");
Can anyone advise on what I'm missing ?
It's a little hard to tell from your question but from what I gather you might be setting the properties on the wrong request. As you know when creating a remote signing request you can do it through just one API request - Envelopes: create.
For embedded signing you still first create an envelope (with an embedded recipient) but then you need to generate the signing URL by calling EnvelopeViews: createRecipient.
When setting the ID Check authentication for your recipient you still need to assign this in the first request (ie the create envelope call) so that recipient is configured like so:
"recipients": {
"signers": [
{
"idCheckConfigurationName": "ID Check $",
"requireIdLookup": "true",
...
}
]
}
THEN, in the request body of the second call you need to set the authenticationMethod with the same value and provide the other required params to identify the signer.
Please confirm you are following this flow and if so and still stumped then post the actual JSON that you are sending for your requests and we should be able to determine from there.

Docusign use replyEmailAddressOverride to send signed docs to a different recipient

My company is trying to avoid having many Docusign logins for the group (group X) using Docusign. We were wondering about using one login to do the create, but override the email settings to have it go to members of group X without them having to have Docusign credentials. I was wondering if that would be possible with the replyEmailAddressOverride.
You can do so by using the "Send On Behalf Of" feature where you specify an email address in the authentication header in order to "assign" each transaction to a specific person with the same and unique credentials.
{
"Username": "",//Email of Group X credentials
"Password": "", // Password of Group X credentials
"IntegratorKey": "",// Integrator Key of Group X credentials
"SendOnBehalfOf": "" // Email of the specific person to be assigned the DocuSign transaction
}
If I understand your question correctly, I am not sure that using the replyEmailAddressOverride feature will accommodate what you need.
From the official documentation, this email will be used when the user decided to "reply" to the email sent from DocuSign.
Example in C# below :
EmailSettings settings = new EmailSettings
{
ReplyEmailAddressOverride = "otherUserThanTheSende#fakeemail.com",
ReplyEmailNameOverride = "Other User"
};
envelope.EmailSettings = settings;
If you configure the above email settings, when the signer receives the DocuSign email inviting him to initiate the signing ceremony, if he/she decides to reply to this email, the original DocuSign sender email will not be used but instead the email you have configured will be used.
Example, my "Frederic "account was used to create a transaction so the sender appears as "Frederic" in the DocuSign email. However, when I decide to reply, it doesn't go back to "Frederic" but instead to the user I have configured in the envelope :
But if I understand correctly, you want to send a transaction from a specific sender and this email override setting doesn't affect the transaction sender but the transaction reply.
If you want to use replyEmailAddressOverride and replyEmailNameOverride as present in DS Docs then when an email goes to the signer from DocuSign and if they want to revert to that email then it will go the email which is mentioned in replyEmailAddressOverride property

How to ask fopr the RecipientView

I want to get a specific recipient view from an enveloppe. Here is the data I have for the recipient from an API call:
[#<DocuSign_eSign::Signer:0x0055e9239b8388 #creation_reason="sender", #email="email#qsdqsd.com",
#is_bulk_recipient="false",
#name="fake name",
#note="",
#recipient_id="1",
#recipient_id_guid="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", #recipient_supplies_tabs="true", #require_id_lookup="false", #role_name="customer",
#routing_order="1",
#status="sent",
#user_id="XXXXXXXXX-XXX-XXXX-XXXXXXXXXXXXXXXXXX">]>
And here is my current request payload.
recipient_view_request={
"user_id": user_id_from_previous_request,
"userName": unrelated_name,
'email': unrelated_email,
"returnUrl": return_url,
"authenticationMethod": "email"
}
The link that is returned is for the wrong user, allowing to sign as this incorrect user. It ignore the user_id param. How do I make a request with the correct user ?
I don't see you setting clientuserid for the recipient, RecipientView can only be generated for embeddedrecipients. You need to set clientUserId for the recipient for whom you want to do embedded signing. You can find embedded signing examples at https://docs.docusign.com/esign/guide/usage/embedded_signing.html also you can check embedded signing example at https://www.docusign.com/developer-center/api-overview, check section [2] Create Envelope with an Embedded Recipient and [3] Create Recipient View (Embedded Signing)

C# Docusign API - Getting Remote Signing View URL

After running the console app, our users get an email with the signing link to Docusign making them remote signers.
What I want to be able to do is get those links from their emails.
I did some research and this is what each url is made of
https://demo.docusign.net/Member/EmailStart.aspx?
a=65d11cf7-d3b7-49a1-8000-6192b6227d71& <<< Unique Activity ID? Always different in all URLs
acct=a0e816ac-3919-475e-a826-34c2c33f90e7& <<< Some kind of role ID (stays same between envelopes and users of the same role, I have it
for my roles..just don't know how to get it programmatically
er=62378ec0-39ce-495e-84e4-e0e598fab3cc& <<<< envelopesApi.ListRecipients(.....) .Signers[n].RecipientIdGuid, able to get it
espei=30cec285-39cd-45a3-bb8e-7bd0560dcd80 <<<< ENVELOPE ID, able to get it
The first parameter is the main focus of my question - it is a total mistery what is it and how to get it
The second parameter looks like a role_id, but I don't know how to get it other than hard-coding values for each of my roles
The other two parameters aren't a concern.
Does anybody know how to get ahold of the first two parameters using the C# Docusign API?
Or even better, is there a way to get the recipients signing url links using the same API?
To obtain the signing URL you will have to set the recipient as an embedded recipient.
After the envelope is created, use the createRecipient:EnvelopeViews api to retrieve the Signing URL.
You have to set the recipient clientUserId parameter to mark a recipient as an embedded recipient.
Request
{
"userName": "name",
"email": "examble#email.com",
"clientUserId": "clientUserId",
"authenticationMethod": "email",
"returnUrl": "your app url"
}

Docusign Powerforms Embed Success Status

I'm working on a PHP application that has multiple products which require signing from a customer before going for the product.
I'm using powerforms link to embed them on my application (using iFrame).
They work fine. But the problem is I need to store the document signed status in my database.
The we can set a return URL in the Docusign Preferences Page. But that will be static and I won't have a clue of what product the user has selected.
References:
Powerform Docs
You can use DocuSign Connect to receive real-time notifications of envelope events (for example, Envelope Completed). At a high-level, it works like this:
You login to DocuSign web console (as Admin) and create a Custom Connect Configuration. As part of creating this configuration, you'll specify the endpoint (http address) that you want Connect to send notifications to, and which events you want to be notified of.
You build a "listener" -- i.e., the web page that will receive the HTTP POST messages from DocuSign Connect, and process those messages.
When an Envelope or Recipient event occurs (for which you've enabled notifications in your DocuSign Connect Configuration), Connect will almost immediately send an HTTP POST to your listener. This message contains XML with info about the Envelope, Recipients, Documents, Fields, etc. You'll develop your listener such that it parses the XML message to determine Envelope status, data field values, etc. and then can respond appropriately within the context of your application (i.e., in your scenario, your listener would use the XML message from Connect to determine envelope status and which product(s) the user selected).
See this guide (http://www.docusign.com/sites/default/files/DocuSign_Connect_Service_Guide.pdf) and this page in the DocuSign Dev Center (http://www.docusign.com/developer-center/explore/connect) for more detailed information on configuring/using DocuSign Connect.
UPDATE - Using Custom Fields to populate unique Identifier for Envelope
Depending on the nature of your use case, you might need to use an "envelope custom field" to populate a unique identifier for each Envelope in the "create/send envelope" request, so that your listener application has a way of identifying the envelope when it receives a Connect message. (An 'envelope custom field' is simply a custom piece of metadata on an envelope.) Simply set the customFields property in your Create Envelope request, and populate a single textCustomFields item with the unique identifier. For example:
{
"emailSubject": "Please sign this",
"emailBlurb": "Please sign...thanks!",
"customFields": {
"textCustomFields": [
{
"value": "1234567",
"required": "false",
"show": "true",
"name": "ProductId"
}
]
},
"status": "sent"
...
}
See the REST API Guide (http://www.docusign.com/sites/default/files/REST_API_Guide_v2.pdf) for more detailed info about using Custom Envelope Fields.

Resources