Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The Callback E-Sign Integration is for customers who want to use Quik! Forms directly with DocuSign without having to play a part in calling the DocuSign APIs to kick off the signing process. This methodology was specifically designed for customers using http://SalesForce.com and similar systems where it is difficult or impossible to intercept a POST from the form in order to call the DocuSign APIs. 

While this method will start the e-signing process, customers will still need to call the DocuSign APIs for other functions (e.g. to check for status, to download the final signed document, etc.). The assumption in this model is that the customer has an existing account with DocuSign and sets up an OAuthToken (see next section on setting up the OAuthToken) with a Docusign OAuth token with Quik! to call the Docusign API on behalf of the customer. An OAuthToken can be established via web service or manually by request. This This integration method is optimal for retail or individual customers, or enterprise-level customers who need a streamlined method to start the envelope process (e.g. SalesForce users).

Process Flow 

...

How To Use the Callback Method

You must set up the following components to use the Callback method (NOTE: All web service URLs seen in this documentation are the most recent versions)

...

  1. Web site: https://qcc.quikforms.com/QFE/ESignSetup.aspx
    1. Log in and go to ESignSetup page.
    2. Under Docusign box, provide Docusign's username and password, the Docusign environment associated to the account, and a CustomerUserID (alias for the token. This is provided later in the QFE configuration as the AuthUserID property of the ESignTypeDocusign object. We take that alias and find the associated token)
    3. Click on Generate
    4. The new token and any other existing tokens are displayed in the grid below 
  2. REST API: https://websvcs.quikforms.com/rest/ESignature/docusign/oauthtokens (POST)
    1. Send over a JSON like the following: {
      "DocusignUsername": "string",
      "DocusignPassword": "string",
      "SignEnviromentID": 0,
      "CustomerUserID": "string"
      }
    2. An interactive Swagger page can be found at: https://websvcs.quikforms.com/rest/ESignature/swagger/ui/index#!/Docusign/Docusign_CreateOAuth2Token
    3. The request must be authenticated via token
  1. Create a Docusign OAuth token within the Quik! App.

    1. Detailed steps: Docusign Authentication (Create OAuth Tokens)

  2. Configure an Execute HTML request containing Docusign token and environment details for the ESignType.

  3. Set up a URL on your application or server to receive the DocuSign EnvelopeID.

  4. In the Quik! Forms Engine assign your Callback URL to the SignCallBackURL property within the

...

  1. ESignType object.

Detailed Method Steps

Here are the basic setup steps for this method:

  1. Use the following settings in the Quik! Forms Engine:

    1. Configure an Execute HTML request and configure the ESignType for Docusign:

      1. Code Block
        {
            "HostFormOnQuik": true,
            "QuikFormID": "12",
            "PrintEditablePDF": true,
            "FormFields": [
                {
                    "FieldName": "1own.FName",
                    "FieldValue": "John"
                },
                {
                    "FieldName": "1own.LName",
                    "FieldValue": "Doe"
                },
                {
                    "FieldName": "1own.H.Email",
                    "FieldValue": "JohnDoe@test.com"
                }
            ],
            "ESignType": {
                "Type": "docusign",
                "AuthUserID": "<YourAuthUserID>",
                "SignCallBackURL":

...

      1.  "<YourCallbackURL>",
                "SignEnvironmentID": 2
            }
        }
      2. ESignType Details:

        1. Set the SignEnvironmentID. This value can be obtained by calling the GET /docusign/oauthtokens endpoint listed on this page: Swagger: REST ESignature API

        2. Set the SignCallBackURL, which is a customer-defined URL for the Quik! Form to post the EnvelopeID to so customer's system knows the transaction is complete

...

        1. .

...

          1. *NOTE: If the SignCallBackURL is set then the SignURL value, even if set by you, will automatically be set by the Quik! Forms Engine to this URL:  https://websvcs.quikforms.com/rest/

...

          1. esignature/docusign/sign 

...

        1. In the AuthUserID property, enter the Connection Name of the desired token. You can find this value in

...

        1. the Quik! App under DocuSign Properties, where it matches the name you assigned to your DocuSign connection.

      1. For more Docusign properties, visit: DocuSign Properties

    1. Optional Configuration: Configuring the Submit Button

      1. You can set SignSubmitCombined to TRUE to make the e-sign SEND button event first invoke the Submit event and Submit URL before starting the signature process. The Submit validation for required fields will also be triggered but a failed validation will not stop the signature process using the default Submit

...

      1. JavaScript.

      2. Alternatively the customer can set the SignSendJavascript property to override the default

...

      1. JavaScriptassociated to the e-sign SEND button in order to use the customer's own

...

      1. JavaScript.

  1. The user clicks the "Sign" button, which captures the envelope data needed for signing.

    1. The Sign button event displays the Quik! Form's e-sign popup screen.

    2. User enters relevant envelope data and clicks the SEND button.

    3. The SEND event posts the form data directly to Quik! (https://websvcs.quikforms.com/rest/

...

    1. esignature/docusign/sign )

  1. Quik! starts an envelope with DocuSign

    1. The customer must have previously set up an OAuthToken with Quik! and DocuSign (only once per CustomerID, CustomerUserID and Docusign environment

    2. Quik! uses the provided information to lookup the Customer's OAuthToken stored by Quik! and then calls the DocuSign REST web service to start the envelope

  2. DocuSign responds with the EnvelopeID

    1. The EnvelopeID is stored with the QFVUNID in the Quik! system for later retrieval by the customer via web service as a backup method for retrieving EnvelopeIDs.

  3. Quik! responds to user's Quik! Form (HTML window) with the EnvelopeID in JSON format.

  4. The user's Quik! Form posts the EnvelopeID to the Customer's SignCallBackURL in JSON format along with any status message returned by the signing process

    1. The HTML form's SEND event does a callback to the SignCallBackURL with the EnvelopeID.

    2. The customer's SignCallBackURL receives the EnvelopeID and should then respond in JSON format to the user's form with a status message

...

    1. . If customer has entered custom JavaScript using the ESignVendorSuccessJavaScript property, a JS command will run after a successful transaction.

  1. Customer independently downloads the envelope and documents from DocuSign

  2. The customer will be able to access/sign the form by logging into their DocuSign account.

...

Partners who offer Quik! to multiple customers will need to address how each of their customers will set up OAuth tokens on their Quik! accounts. The ideal solution is for the partner to build a user interface that asks the customer to enter their DocuSign credentials which you pass to our REST API to establish the token. Quik! does not store the customer credentials, just the token which never expires. This enables customers to change their DocuSign password without affecting their integration with Quik! and you don’t have to manage their credentials, per se. In your user interface you need to ask the user to identify their DocuSign environment (NA1, NA2, Demo, etc.). The most reliable way to determine the DocuSign environment is for the user to login to their DocuSign account and to look at the DocuSign URL after they log in – if the URL begins with “www” then NA1, if “NA2” then NA2, etc. Most DocuSign users are on NA2.

For an example of how Quik! has built a similar user experience, please see this page (you’ll be prompted to log in – then go to the ESign Setup page): https://qcc.quikforms.com/QFE/ESignSetup.aspx

...

REST ESignature API

Callback JSON Format 

When you build your web page to receive the EnvelopeID you'll need to respond to the form in JSON format. The format is as follows:"

Code Block
{
"StatusCode":

...

 0

...

 ,
"StatusMessage

...

:

...

 "200 (ok)",
"Message":

...

 "Your form has been submitted for signature. Each recipient will receive an email to begin the signature process. Check your email for signature updates."
}

The StatusCode of 0 tells the form that the event was successful, any other code is a failure. The status message can be anything you want to display to the user.

...

Hosted Callback Endpoint https://websvcs.quikforms.com/Docusignrest/CallbackEndPoint/CallBack.aspxESignature/callbackurl

Legacy Method

NOTE: SOAP are legacy web services originally developed for the Quik! APIs. At this time, they are deprecated and no longer in use. This guide is here for documentation purposes only. 

Enabling CallBack method in QuikFormsEngine SOAP web service 5500 version

Code Block

...

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <AuthenticationHeader xmlns="https://websvcs.quikforms.com/quikformsenginews/">
      <CustomerID>YOUR CUSTOMER ID</CustomerID>
      <UserName>YOUR USERNAME</UserName>
      <Password>YOUR PASSWORD</Password>
    </AuthenticationHeader>
  </soap:Header>
  <soap:Body>
    <Execute xmlns="https://websvcs.quikforms.com/quikformsenginews/">
		<QFESettings>
	        <HostFormOnQuik>true</HostFormOnQuik>
	        <QuikFormID>1</QuikFormID>
	        <ESignType xsi:type="ESignTypeDocusign">
	            <SignCallBackURL>https://google.com</SignCallBackURL>
	            <SignEnvironmentID>2</SignEnvironmentID>
	        </ESignType>
       </QFESettings>
    </Execute>
  </soap:Body>
</soap:Envelope>

Notes

  1. With xsi:type="ESignTypeDocusign" in ESignType tag you are telling the web service to use Docusign. All Docusign properties need to be configured within this tag

  2. SignCallBackURL tag tells the web service to enable the CallBack model.