3

I'm trying to create a recipient with an advanced signature. It means that the recipient must receive an OTP by SMS in order to sign. It's different from the access authentification, which required an authentification to see the document.

Here is the description given by the official DocuSign about this feature : Official documentation

I know that DocuSign has the feature, it is activated on my account and I can use it in the web HMI. But I can't find how to use it with the API... I tried different fields of the class Signer but without success. I can't find documentation on the internet either.

Does anyone have an idea ? A documentation ? Or directly the name of the field I need to set ? Anything would be great ! I'm using the REST API in Java.

Thanks a lot,

CodingDawn > Thanks for your help but your response does not match with my need. You speak about the "DocuSign Express" signing and I speak about the "DocuSign EU Advanced" signing. This image is from the web HMI of DocuSign for creating an envelope. You can clearly see that these two signings are not the same. For example, the "Docusign Express" signing does not require a phone number.

But thanks, you gave me more tracks to search.

Marine
  • 99
  • 11
  • Welcome to StackOverflow! Please check the best answers to your questions. And up-vote answers that you find useful, including answers to questions from other people. Thanks! – Larry K Apr 23 '17 at 07:30

2 Answers2

4

First determine the signature provider your signers will use from the following list. The list is being added to reasonably often. We will be publishing the new and updated list on docs.docusign.com in the future.

Updated: Standards Based Signatures API docs are now available.

Current signature provider options

Electronic Signatures Electronic signatures that do not use digital certificates. These are the default type of signatures from DocuSign

  • API signatureProviderName: UniversalSignaturePen_ImageOnly
  • Required options: none

Express Signature DocuSign-generated generic, “on-the-fly” digital signatures that includes a certificate.

  • API signatureProviderName: UniversalSignaturePen_Default
  • Required options: none

EU Advanced Signature DocuSign-generated, eIDAS AES compliant signatures. More information.

  • API signatureProviderName: UniversalSignaturePen_OpenTrust_Hash_TSP
  • Required options: SMS or oneTimePassword

ItAgile QES Signatures using Itagile EU Qualified Certificates More information

  • API signatureProviderName: UniversalSignaturePen_ItAgile_TSP
  • Required options: none

Include the recipientSignatureProviders parameter in your Envelopes: create call

The parameter takes an array of recipientSignatureProvider objects. It is documented on the Envelopes: create page in the definitions section.

Also include at least the options listed above.

Options

  • oneTimePassword Description: Access code that a recipient needs to enter while using EU Advanced signature provider.

  • signerRole Description: Role or capacity of the recipient (Example: Manager, Approver, etc)

  • sms Description: Phone number where recipient should receive an access code. Access code will be needed by recipient while using EU Advanced. Note that this has to be a string starting with + and country code followed by full mobile phone number without any spaces or special characters. Examples: +14155551234, +97235551234, +33505551234

recipientSignatureProviders examples

Signer Recipient with DS Express signature provider

{          
    "signers": [{
        "routingOrder": 1,
        "name": "Darryl Sanders",
        "email": "darryl@example.com",
        "deliveryMethod": "email",
        "recipientId": "69693724",
        "signingGroupId": "",
        "recipientSignatureProviders": [{
            "signatureProviderName": "universalsignaturepen_default"
        }]
    }]
}

One Recipient with eSignature pen and one with DS Express

{
    "signers": [{
        "routingOrder": 1,
        "name": "Doris Sunshine",
        "email": "doris@foobar.com",
        "deliveryMethod": "email",
        "recipientId": "68539752",
        "signingGroupId": "",
        "recipientSignatureProviders": [{
            "signatureProviderName": "universalsignaturepen_imageonly"
        }]
    },
    {
        "routingOrder": 2,
        "name": "Sam Tolliver",
        "email": "sam@me.com",
        "deliveryMethod": "email",
        "recipientId": "39578164",
        "signingGroupId": "",
        "recipientSignatureProviders": [{
            "signatureProviderName": "universalsignaturepen_default"
        }]
    }]
}

EUAdvanced recipient with SMS and one with Access Code

{
    "signers": [{
        "routingOrder": 1,
        "name": "Sue Collins",
        "email": "sue@example.com",
        "deliveryMethod": "email",
        "recipientId": "39977897",
        "signingGroupId": "",
        "recipientSignatureProviders": [{
            "signatureProviderName": "universalsignaturepen_opentrust_hash_tsp",
            "signatureProviderOptions": {
                "oneTimePassword": "12345678"
            }
        }]
    },
    {
        "routingOrder": 2,
        "name": "Yan",
        "email": "jim@me.com",
        "deliveryMethod": "email",
        "recipientId": "89536038",
        "signingGroupId": "",
        "recipientSignatureProviders": [{
            "signatureProviderName": "universalsignaturepen_opentrust_hash_tsp",
            "signatureProviderOptions": {
                "sms": "+1 330-310-3330"
            }
        }]
    }]
}
Larry K
  • 47,808
  • 15
  • 87
  • 140
  • Thanks a lot ! I just have one more question. The documentation you link is extremely fragmentary. For example, there is no explanation about what a "RecipientSignatureProvider" represents, there is juste the name of the fields. Or, other example, I can't find any mention of "universalsignaturepen_opentrust_hash_tsp" in the entire documentation or directly into the code. Do you have another website or documentation where I could find these informations ? For example, how can I parameterize the validity duration of a SMS code ? – Marine May 18 '17 at 09:52
  • We are still in the process of updating our documentation. My answer should give you enough information. Use my answer to create your envelope create call. If it doesn't work, submit it as a new question to stack overflow and we'll help you out. Re parameterize the validity duration of a SMS code. The validity duration is fixed at this time. Is that an issue? If so, why? – Larry K May 18 '17 at 19:43
  • Indeed, it works perfectly. Again, thanks a lot. Parameterizing the validity duration was a request, I will see how important it is for our needs. – Marine May 19 '17 at 07:39
1

You will have to set the requireSignerCertificate property

Here is an example of the PostEnvelope request

POST /v2/accounts/{accountId}/envelopes

{
  "status": "sent",
  "emailSubject": "Advanced Electronic Signature",
  "emailBlurb": "Advanced Electronic Signature",
  "recipients": {
    "signers": [
      {
        "recipientId": 1,
        "email": "AdvancedElectronicSignature@acme.com",
        "name": "Signer Name",
        "requireSignerCertificate": "docusign_express",
        "requireIdLookup": true,
        "idCheckConfigurationName": "SMS Auth $",
        "smsAuthentication": {
          "senderProvidedNumbers": [
            "555-555-5555"
          ]
        },
        "tabs": {
          "signHereTabs": [
            {
              "documentId": 1,
              "pageNumber": 1,
              "xPosition": 100,
              "yPosition": 100
            }
          ]
        }
      }
    ]
  },
  "documents": [
    {
      "documentId": 1,
      "fileExtension": "pdf",
      "name": "BlankDoc.pdf",
      "documentBase64": : "Specify document bytes here"
    }
  ]
}
Praveen Reddy
  • 7,295
  • 2
  • 21
  • 43
  • Hi ! As I said, you speak about "Express signing" when i speak about "Advanced signing". They are not the same thing. Do you have a clue for the "advanced signing" ? Thanks ! – Marine Apr 25 '17 at 15:21