While calling the create envilope API we are getting the error
{
"errorCode": "ACCOUNT_MISSING_ENTITLEMENT_CREATE_EMBEDDEDRECIPIENTSTARTURL",
"message": "The sender does not have required entitlement and is not allowed to set EmbeddedRecipientStartURL for the user"
}
Request url
/v2/accounts/8017620c-2355-481c-a7b2-50b645d40a52/envelopes
Request body (envelope)
{
"documents": [
{
"documentId": "1864177648",
"name": "powerpoint press.pptx",
"fileExtension": "pptx",
"matchBoxes": [],
"documentFields": [],
"documentBase64": ""
}
],
"recipients": {
"signers": [
{
"excludedDocuments": [],
"name": "Mehraj",
"email": "mehraj#mydomain.com",
"signingGroupUsers": [],
"recipientId": "cbd343d7-a735-4846-8138-243ec7b31348",
"socialAuthentications": [],
"clientUserId": "0e670c86-aa1a-4149-9ce6-9c27dd76d3b0",
"embeddedRecipientStartURL": "SIGN_AT_DOCUSIGN",
"customFields": [],
"routingOrder": "1",
"recipientAttachments": []
}
],
"agents": [],
"editors": [],
"intermediaries": [],
"carbonCopies": [],
"certifiedDeliveries": [],
"inPersonSigners": []
},
"eventNotification": {
"url": "https://mysite.mydomain.com/root/api/docusign/webhook/eventnotification",
"loggingEnabled": "true",
"requireAcknowledgment": "true",
"envelopeEvents": [
{
"envelopeEventStatusCode": "sent"
},
{
"envelopeEventStatusCode": "delivered"
},
{
"envelopeEventStatusCode": "completed"
},
{
"envelopeEventStatusCode": "declined"
},
{
"envelopeEventStatusCode": "voided"
}
],
"recipientEvents": [
{
"recipientEventStatusCode": "Sent"
},
{
"recipientEventStatusCode": "Completed"
},
{
"recipientEventStatusCode": "Declined"
},
{
"recipientEventStatusCode": "AuthenticationFailed"
},
{
"recipientEventStatusCode": "AutoResponded"
}
],
"useSoapInterface": "false",
"includeCertificateWithSoap": "false",
"signMessageWithX509Cert": "false",
"includeDocuments": "false",
"includeEnvelopeVoidReason": "true",
"includeTimeZone": "true",
"includeSenderAccountAsCustomField": "true",
"includeDocumentFields": "true",
"includeCertificateOfCompletion": "false"
},
"templateRoles": [],
"compositeTemplates": [],
"status": "created",
"emailSubject": "powerpoint press",
"recipientsLock": "true"
}
** I have removed the documentBase64 contennts to make the post shorter **
In demo environment everything works fine, but in the production environment we are getting the specified error.
Setting the embedded start URL is a paid add-on feature. Your production account probably didn't include this feature.
Need to see your envelope before I can give you a complete answer but this page will likely shed light on what you maybe missing:
https://developers.docusign.com/docs/esign-soap-api/reference/sending-group/rules-for-createandsendenvelope-and-createenvelope/
Let me know if this helps.
Related
I'm getting an error when finishing a DocuSign Ceremony using EU Advanced Signature with Templates. The odd thing is that it was working before and still working for ceremonies that have an embedded PDF.
When finishing a ceremony the following error is popping up:
The envelope history shows more details:
It mentions the userEmail, so I've double-checked the JSON and everything seems to be fine, after all, I didn't get any error when creating the envelope.
Here's the JSON using a Template that is failing:
{
"status": "sent",
"eventNotification": {
"recipientEvents": [
{
"recipientEventStatusCode": "delivered"
},
{
"recipientEventStatusCode": "completed"
},
{
"recipientEventStatusCode": "sent"
},
{
"recipientEventStatusCode": "declined"
}
],
"envelopeEvents": [
{
"envelopeEventStatusCode": "delivered"
},
{
"envelopeEventStatusCode": "completed"
},
{
"envelopeEventStatusCode": "sent"
},
{
"envelopeEventStatusCode": "declined"
}
]
},
"emailSubject": "Contract",
"compositeTemplates": [
{
"serverTemplates": [
{
"templateId": "TEMPLATE_ID",
"sequence": "1"
}
],
"inlineTemplates": [
{
"sequence": "1",
"recipients": {
"signers": [
{
"routingOrder": "2",
"roleName": "Signer 2",
"recipientSignatureProviders": [
{
"signatureProviderOptions": {
"sms": "+00999555585"
},
"signatureProviderName": "UniversalSignaturePen_OpenTrust_Hash_TSP"
}
],
"recipientId": "2",
"name": "Axel Foley",
"emailNotification": {
"supportedLanguage": "en",
"emailSubject": "CUSTOM_MESSAGE",
"emailBody": "CUSTOM_MESSAGE"
},
"email": " axel.foley#email.com"
},
{
"routingOrder": "2",
"roleName": "Signer 3",
"recipientSignatureProviders": [
{
"signatureProviderOptions": {
"sms": "+00123456789"
},
"signatureProviderName": "UniversalSignaturePen_OpenTrust_Hash_TSP"
}
],
"recipientId": "3",
"name": "Alex Murphy",
"emailNotification": {
"supportedLanguage": "en",
"emailSubject": "CUSTOM_MESSAGE",
"emailBody": "CUSTOM_MESSAGE"
},
"email": "alex.murphy#email.com"
}
],
"inPersonSigners": [
{
"signerName": "Leeroy Jenkins",
"signerEmail": "leeroy.jenkins#email.com",
"routingOrder": "1",
"roleName": "Signer 1",
"recipientSignatureProviders": [
{
"signatureProviderOptions": {
"sms": "+00666888777"
},
"signatureProviderName": "UniversalSignaturePen_OpenTrust_Hash_TSP"
}
],
"recipientId": "1",
"hostName": "Lightning McQueen",
"hostEmail": "lightning.mcqueen#email.com",
"emailNotification": {
"supportedLanguage": "en",
"emailSubject": "CUSTOM_MESSAGE",
"emailBody": "CUSTOM_MESSAGE"
},
"clientUserId": "SFDC_CLIENT_USER_ID"
}
]
},
"customFields": {
"textCustomFields": [
{
"value": "SFDC_ID",
"show": "false",
"required": "false",
"name": "##SFContract"
}
]
}
}
]
}
]
}
And here's the JSON with an embedded PDF that works fine:
{
"status": "sent",
"recipients": {
"inPersonSigners": [
{
"tabs": {
"signHereTabs": [
{
"anchorYOffset": "0",
"anchorXOffset": "0",
"anchorUnits": "inches",
"anchorString": "\\s1\\",
"anchorIgnoreIfNotPresent": "false"
}
]
},
"signerName": "Vincent Vega",
"signerEmail": "vicent.vega#email.com",
"routingOrder": "1",
"roleName": "Signer 1",
"recipientSignatureProviders": [
{
"signatureProviderOptions": {
"sms": "+00789456123"
},
"signatureProviderName": "UniversalSignaturePen_OpenTrust_Hash_TSP"
}
],
"recipientId": "1",
"hostName": "Lightning McQueen",
"hostEmail": "lightning.mcqueen#email.com",
"emailNotification": {
"supportedLanguage": "en",
"emailSubject": "CUSTOM_MESSAGE",
"emailBody": "CUSTOM_MESSAGE"
},
"clientUserId": "SFDC_CLIENT_USER_ID"
}
]
},
"eventNotification": {
"recipientEvents": [
{
"recipientEventStatusCode": "delivered"
},
{
"recipientEventStatusCode": "completed"
},
{
"recipientEventStatusCode": "sent"
},
{
"recipientEventStatusCode": "declined"
}
],
"envelopeEvents": [
{
"envelopeEventStatusCode": "delivered"
},
{
"envelopeEventStatusCode": "completed"
},
{
"envelopeEventStatusCode": "sent"
},
{
"envelopeEventStatusCode": "declined"
}
]
},
"documents": [
{
"name": "Form.pdf",
"fileExtension": "pdf",
"documentId": "1",
"documentBase64": "BASE64_PDF"
}
],
"customFields": {
"textCustomFields": [
{
"value": "SFDC_ID",
"show": "false",
"required": "false",
"name": "##SFAccount"
}
]
}
}
Am I missing something? Have anyone ever seen this error before?
It's worth to mention that I'm getting the error right in the first signature (InPerson).
Kind regards
It turned out that is a known issue of DocuSign.
There is a known issue during an in-person signing session when the signer clicks on Finished, he should get the following popup
If you don’t set any email, it will fail with the CONSTRAINT_VALIDATION_ERROR
The workaround is to specify an email.
I'm trying to create an envelope with an EventNotification, so that I don't have to poll for the status once every 15 minutes.
Making a request to create an envelope without notifications works fine, so it's definitely something to do with the eventNotification part of the request.
Here is the full request:
{
"emailSubject": "Test Sending Envelope 2",
"eventNotification": {
"envelopeEvents": [
{ "envelopeEventStatusCode": "sent" },
{ "envelopeEventStatusCode": "delivered" },
{ "envelopeEventStatusCode": "completed" },
{ "envelopeEventStatusCode": "declined" },
{ "envelopeEventStatusCode": "voided" }
],
"includeCertificateOfCompletion": "true",
"includeCertificateWithSoap": "false",
"includeDocumentFields": "true",
"includeDocuments": true,
"includeEnvelopeVoidReason": "true",
"includeSenderAccountAsCustomField": "true",
"includeTimeZone": "true",
"loggingEnabled": "true",
"recipientEvents": [
{ "includeDocuments": "Sent" },
{ "includeDocuments": "Delivered" },
{ "includeDocuments": "Completed" },
{ "includeDocuments": "Declined" },
{ "includeDocuments": "AuthenticationFailed" },
{ "includeDocuments": "AutoResponded" }
],
"requireAcknowledgment": "true",
"signMessageWithX509Cert": "false",
"url": "https://arealurl/api/DocuSign-NotificationWebHook",
"useSoapInterface": "false"
},
"status": "sent",
"templateId": "template-guid-4b95-guid-template",
"templateRoles": [
{
"email": "someone#somewhere.com",
"name": "Someone Somewhere",
"roleName": "Something"
}
]
}
And the error that comes back is:
Error calling CreateEnvelope: {
"errorCode": "INVALID_REQUEST_PARAMETER",
"message": "The request contained at least one invalid parameter. Boolean value expected for parameter: includeDocuments"
}.
I have tried with the includeDocuments value being omitted, with it set to a string "true", and also with the boolean true as shown above.
The recipientEvents property is incorrect. Change includeDocuments to recipientEventStatusCode
"recipientEvents": [
{ "recipientEventStatusCode": "Sent" },
{ "recipientEventStatusCode": "Delivered" },
{ "recipientEventStatusCode": "Completed" },
{ "recipientEventStatusCode": "Declined" },
{ "recipientEventStatusCode": "AuthenticationFailed" },
{ "recipientEventStatusCode": "AutoResponded" }
],
We have a soap URL which receives webhooks from docusign as per configured status. It was sending webhooks but all of sudden it stopped receiving it. I have enablelogging turned is set to true and checked in admin connect tab and nothing in logs or failure as well. We used to get logs there before. We have a demo account.
Nothing has been changed in our code. Can anyone please suggest what could have cause this issue and how to resolve it
Regards,
Dishant
following request data sent to docusign restapi
{
"documents": [
{
"documentBase64": "<Base64BytesHere>",
"documentId": "1",
"fileExtension": "pdf",
"name": "00098O01.pdf"
}
],
"emailSubject": "Test",
"eventNotification": {
"envelopeEvents": [
{
"envelopeEventStatusCode": "Sent",
"includeDocuments": "false"
},
{
"envelopeEventStatusCode": "completed",
"includeDocuments": "true"
}
],
"includeTimeZone": "true",
"loggingEnabled": "true",
"recipientEvents": [
{
"includeDocuments": "false",
"recipientEventStatusCode": "Sent"
},
{
"includeDocuments": "false",
"recipientEventStatusCode": "Delivered"
}
],
"soapNameSpace": "xxxxx",
"url": "xxxx",
"useSoapInterface": "true"
},
"recipients": {
"signers": [
{
"email": "dishant.arora#caseflowacumen.com",
"name": "Dishant Arora",
"recipientId": "1",
"tabs": {
"signHereTabs": [
{
"documentId": "1",
"pageNumber": "1",
"tabLabel": "Sign Here",
"xPosition": "100",
"yPosition": "500"
}
]
}
}
]
},
"status": "sent"
}
This is thru the Docusign api. Here is the envelope definition:
{
"eventNotification": {
"requireAcknowledgment": "true",
"envelopeEvents": [
{
"envelopeEventStatusCode": "Delivered"
},
{
"envelopeEventStatusCode": "Completed"
},
{
"envelopeEventStatusCode": "Declined"
},
{
"envelopeEventStatusCode": "Voided"
},
{
"envelopeEventStatusCode": "Sent"
}
],
"useSoapInterface": "false",
"includeCertificateWithSoap": "false",
"signMessageWithX509Cert": "false",
"includeDocuments": "false",
"includeEnvelopeVoidReason": "false",
"includeTimeZone": "true",
"includeSenderAccountAsCustomField": "true",
"includeDocumentFields": "true",
"includeCertificateOfCompletion": "false"
},
"compositeTemplates": [
{
"serverTemplates": [
{
"sequence": "1",
"templateId": "c110d14a-3690-4ed1-921d-a7bef9524ed6"
}
],
"inlineTemplates": [
{
"sequence": "2",
"recipients": {
"signers": [
{
"name": "Kathy Lori",
"email": "kathylori#xxx.com",
"recipientId": "1",
"accessCode": "12345",
"customFields": [],
"routingOrder": "1",
"note": "",
"roleName": "##Buyer1"
}
],
"certifiedDeliveries": []
},
"customFields": {
"textCustomFields": [
{
"name": "EnvelopeInfo",
"value": "my data"
}
]
}
}
],
"document": {
"documentId": "1",
"name": "c:\three of the test.docx",
"fileExtension": ".docx",
"documentFields": [],
"documentBase64": [bytearray]
}
}
],
"status": "sent",
"emailSubject": "This is the new subject"
}
The subject still shows as "Please DocuSign: sign this". I would have thought setting the subject would have addressed this, but I must be missing something.
You have most likely configured per recipient email subject in your server template. In such a case the emailSubject that is specified at the root level of the postEnvelope request is ignored.
You can confirm that by making a getTemplates call using your server template Id. It will look something like below. Look specifically for recipients.signers.emailNotification property. I have removed some of the properties for simplicity.
{
"envelopeTemplateDefinition": {
"templateId": "xxxxxxxx-xxxx-xxxx-xxxx-e672c4efd436",
},
"documents": [ ],
"emailSubject": "This is the subject on the server template.",
"emailBlurb": "",
"recipients": {
"signers": [
{
"tabs": {},
"roleName": "RoleOne",
"emailNotification": {
"emailSubject": "Please DocuSign: sign this",
"emailBody": "",
"supportedLanguage": "en"
},
}
]
}
}
To override the per recipient email subject specified in the server template, specify the emailNotification property in the inlineTemplate.
{
"compositeTemplates": [
{
"serverTemplates": [
{
"sequence": "1",
"templateId": "c110d14a-3690-4ed1-921d-a7bef9524ed6"
}
],
"inlineTemplates": [
{
"sequence": "2",
"recipients": {
"signers": [
{
"name": "Kathy Lori",
"email": "kathylori#xxx.com",
"recipientId": "1",
"accessCode": "12345"
"routingOrder": "1",
"roleName": "##Buyer1",
"emailNotification": {
"emailSubject": "This is email subject to Buyer1",
"emailBody": "",
"supportedLanguage": "en"
},
}
],
}
}
],
"document": { }
}
],
"status": "sent",
}
Right now when creating an envelope, I am unable to designate any other Company Users as signers.
Is there a way to create an envelope via the API and make one of the Signers the an Company user?
This is the signers enclosed in the inline template
"recipients":{
"signers":[
{
"name":"MoCkVotEr testpass",
"email":"kevin+2#joinmosaic.com",
"accessCode":null,
"roleName":"Recipient",
"clientUserId":"a499e405-1385-46fe-9742-b338c2a5d3b2",
"recipientId":"1",
"tabs":{
"textTabs":[
{
"tabLabel":"\\*loanAgreementId",
"value":"3",
"tabId":null
},
{
"tabLabel":"\\*borrowerName",
"value":"MoCkVotEr testpass",
"tabId":null
},
{
"tabLabel":"\\*accountHolderName",
"value":"Account Holder",
"tabId":null
},
{
"tabLabel":"\\*accountNumber",
"value":"11111111111111111",
"tabId":null
},
{
"tabLabel":"\\*routingNumber",
"value":"111111111",
"tabId":null
},
{
"tabLabel":"\\*bankName",
"value":"asdf",
"tabId":null
}
],
"checkboxTabs":[
{
"tabLabel":"\\*isCheckingAccount",
"selected":true,
"tabId":null
},
{
"tabLabel":"\\*isSavingsAccount",
"selected":false,
"tabId":null
}
],
"titleTabs":[
]
},
"routingOrder":null
},
{
"name":"Kevin",
"email":"kevin#joinmosaic.com",
"accessCode":null,
"roleName":"Mosaic",
"clientUserId":"MosaicSignator",
"userId":"3103274b-89ac-4f0c-8f4a-c92a9d2f3749",
"status":"created",
"recipientId":"2",
"tabs":{
"textTabs":[
],
"checkboxTabs":[
],
"titleTabs":[
]
},
"routingOrder":null
}
]
}
This is the result when requesting recipients from the envelope
{
"signers": [
{
"name": "Kevin",
"email": "kevin#joinmosaic.com",
"recipientId": "2",
"recipientIdGuid": "818293ec-ba4a-4adf-941d-3119740e62eb",
"requireIdLookup": "false",
"userId": "**3da53563-5c29-488f-8527-aa5913b004c0**",
"clientUserId": "MosaicSignator",
"routingOrder": "3",
"note": "",
"roleName": "Mosaic",
"status": "created",
"templateLocked": "false",
"templateRequired": "false"
},
{
"name": "MoCkVotEr testpass",
"email": "kevin+2#joinmosaic.com",
"recipientId": "1",
"recipientIdGuid": "ebb98be0-b1bd-446d-ac79-b7b38b63199c",
"requireIdLookup": "false",
"userId": "12f73115-5cb2-4a51-84b3-640a89915b61",
"clientUserId": "a499e405-1385-46fe-9742-b338c2a5d3b2",
"routingOrder": "1",
"note": "",
"roleName": "Recipient",
"status": "sent",
"templateLocked": "false",
"templateRequired": "false"
}
],
"agents": [],
"editors": [],
"intermediaries": [],
"carbonCopies": [],
"certifiedDeliveries": [],
"inPersonSigners": [],
"recipientCount": "3",
"currentRoutingOrder": "1"
}
This is my user from the /account/{}/users api call
{
"userName": "Kevin xxxxx",
"userId": "**3103274b-89ac-4f0c-8f4a-c92a9d2f3749**",
"userType": "CompanyUser",
"userStatus": "Active",
"uri": "/users/3103274b-89ac-4f0c-8f4a-c92a9d2f3749"
}
As you can see the two UserIds do not match. However when going through the GUIConsole They do match.
The DocuSign system will only recognize recipients and match them to their existing DS accounts if all their info is the same as the account user. This definitely includes their email, name, and userId, but might contain other aspects too such as a clientUserId (if you are using Embedded functionality).
To figure out what is different with these users you can make the Get Envelope Recipient Status API call, which will return the above info (plus more) for each recipient. You can then go through and make sure all the IDs, emails, etc. are what you expect.
Check out this API Walkthrough for making the call:
http://iodocs.docusign.com/APIWalkthrough/getEnvelopeRecipientStatus