Trending Topics: Latest from our forums (January 2021)

Trending Topics

Here are some of the latest popular questions that the DocuSign developers community asked on Stack Overflow in the month of January 2021. You too can ask questions by using the tag docusignapi in Stack Overflow.

Thread: How can I use DocuSign with Laravel 6?

https://stackoverflow.com/questions/65558848

Summary: The developer is interested in making DocuSign eSignature REST API calls from Laravel using a wrapper written by Eric Tucker and provided on GitHub. They’re finding it difficult to follow the instructions and are asking for guidance.

Answer: At the time of writing, DocuSign does not have yet an official wrapper that PHP developers can use to make eSignature API calls with the SDK if they are using Laravel. We’re working on the new capabilities and should have them released in the coming weeks. Please check our developer blog for updates on this and other SDK and tools

Please also note that Eric Tucker's Laravel DocuSign project on GitHub is not an officially supported Laravel SDK for the DocuSign eSignature API, and if you choose to use it, we cannot guarantee it.

Thread: How do I make this call between the radio and the text for DocuSign

https://stackoverflow.com/questions/65634995

Summary: The developer is using Java and is trying to use the DocuSign eSignature REST API to create and send envelopes. Their requirement is to have a conditional label shown on the envelope when a user selects one of the radio buttons. The developer could not get this to work.

Answer: In order for the developer to get this scenario to work correctly, the properties of conditionalParentLabel and conditionalParentValue of the text tab that have to be populated with the label of the radio button and the value of the radio button that will be in charge of the conditional logic. The radio button itself does not have to have these fields populated. You can see this behavior in action if you try the MyHR sample app and select the Direct Deposit option. Here is a sample snippet of the textTabs element in the JSON for this scenario:

"textTabs": [ 
  { 
  "tabLabel": "Text",
  "conditionalParentLabel": "Radio Group1",
  "conditionalParentValue": "Yes",
  "isPrefilledTab": false,
  "fontSize": "size9",
  "underline": false,
  "italic": false,
  "fontColor": "black",
  "bold": false,
  "font": "lucidaconsole",
  "required": true,
  "locked": false,
  "concealValueOnDocument": false,
  "name": "",
  "shared": false,
  "requireAll": false,
  "requireInitialOnSharedChange": false,
  "value": "",
  "validationPattern": "",
  "validationMessage": "",
  "disableAutoSize": false,
  "maxLength": 4000,
  "width": 84,
  "height": 22,
  "mergeFieldXml": "",
  "recipientId": "64895961",
  "pageNumber": 1,
  "documentId": "1",
  "xPosition": 426,
  "yPosition": 116,
  "trackingId": "c275",
  "trackingid": "c275" 
  } 
],
"radioGroupTabs": [ 
  { 
    "tabLabel": "Radio Group2",
    "conditionalParentLabel": null,
    "conditionalParentValue": null,
    "isPrefilledTab": false,
    "fontSize": "size9",
    "underline": false,
    "italic": false,
    "fontColor": "black",
    "bold": false,
    "font": "lucidaconsole",
    "shared": false,
    "name": "",
    "tooltip": null,
    "recipientId": "1",
    "documentId": "1",
    "groupName": "Radio Group1",
    "width": 0,
    "height": 0,
    "radios": [ 
      { 
        "tabLabel": "Radio Group2",
        "conditionalParentLabel": null,
        "conditionalParentValue": null,
        "isPrefilledTab": false,
        "fontSize": "size9",
        "underline": false,
        "italic": false,
        "fontColor": "black",
        "bold": false,
        "font": "lucidaconsole",
        "shared": false,
        "required": true,
        "locked": false,
        "name": "",
        "selected": false,
        "value": "Yes",
        "tooltip": null,
        "recipientId": "1",
        "pageNumber": 1,
        "documentId": "1",
        "groupName": "Radio Group1",
        "xPosition": 342,
        "yPosition": 103,
        "width": 0,
        "height": 0,
        "trackingId": "c291",
        "trackingid": "c291" 
      },
      { 
        "tabLabel": "Radio Group2",
        "conditionalParentLabel": null,
        "conditionalParentValue": null,
        "isPrefilledTab": false,
        "fontSize": "size9",
        "underline": false,
        "italic": false,
        "fontColor": "black",
        "bold": false,
        "font": "lucidaconsole",
        "shared": false,
        "required": true,
        "locked": false,
        "name": "",
        "selected": false,
        "value": "No",
        "tooltip": null,
        "recipientId": "1",
        "pageNumber": 1,
        "documentId": "1",
        "groupName": "Radio Group1",
        "xPosition": 342,
        "yPosition": 123,
        "width": 0,
        "height": 0,
        "trackingId": "c292",
        "trackingid": "c292" 
      } 
    ]
  } 
]

Thread: DocuSign API: When populating template's PDF form fields by tag, why do Text tabs get duplicated in the upper-left corner of every document?

https://stackoverflow.com/questions/65671858/

Summary: The developer is using the Python SDK to make eSignature API calls. They are populating envelopes using a template and they noticed that they get a small additional empty tab at the top-left corner of each document in the envelope. They are trying to figure out how to remove this unneeded tab.

Answer: Tabs on documents inside envelopes are associated with a specific recipient for that envelope. When creating an envelope from a template, you need to specify recipients and tabs only if they are not yet defined by the template. When a placeholder recipient is defined in the template, it has a role, and the code creating the envelope needs to specify the information (name and email) for that templateRole object. The developer was originally confused about that and provided the tabs for the signer again separately from the template definitions. There was no need for specific tabs in the API call to create an envelope from the template because the recipient that they provided already had tabs associated with it. They just needed to provide the email and name of the recipient. This is the correct Python snippet to do that:

Recipients = Recipients (
    signers=[{
        "email":destination_email, 
        "name": signer_name, 
        "roleName" : "signer", 
        "recipientId": "1", 
        "routingOrder": "1"}])

Additional resources

Inbar Gazit
Author
Inbar Gazit
Sr. Manager, Developer Content
Published