Self Service Model

The Self Service model enables customers to fully customize their implementation with DocuSign. Some customers want to submit the PDF and XML data to DocuSign themselves through their own API calls. When this is the case the customer still needs Quik! to provide the final PDF and XML data to be sent, so Quik! must be part of the process. To facilitate this process while making it easier for a customer to implement our solution the QuikESignTransport.SelfService project was built and source code given to customers to use. Download this project on the Downloads page of this documentation.

Process Flow

QuikESignTransport.SelfService Project

This project has sample code for implementing the Self Service model. It is intended to guide customers to implement the Self Service model, and can be used as is or as a reference when building your own project to match your needs. It is a .NET WebAPI type project with a simple controller called SignController, which has one 'SelfService' HttpPost method that does the following:

  1. Reads the posted data as a raw JSON string. It is utterly important that this string is not manipulated for a successful transaction at Docusign. Download sample Self Service JSON data here.
  2. Generates a token at Quik! in order to consume the Quik! REST services and get necessary data. Note: The Customer's Quik! UserName and Password are taken from the Web.Config file. You will have to put the correct values (keys: QUIK_USERNAME and QUIK_PASSWORD).
  1. Makes a POST request to a Quik! rest service method in order to get the necessary information needed for generating an envelope at Docusign, including the PDFs of the generated forms plus sign-related data.
  2. Calls the EnvelopeCreator dll to generate the envleope, passing the Docusign's integrator key and API version. Since this is a sample project, the values are provided via web config keys (DocusignAPIVersion and DocusignIntegratorKey). The customer needs to pass these values accordingly.
  3. Returns the Docusign response after generating an envelope, This result should NOT be manipulated so that the Quik! Forms Engine can read the result and notify the response to the user.

    Expected format of DocuSign response:

    {

     "ErrorCode":  0,

     "Message": "string",

     "EnvelopeResponse": "string"

    }

Note: As of June 2018, the call to our endpoint (selfservicedata) will now return Null in the Authentication object. Customers will need to provide it somehow. For the sake of simplicity, this project is pulling the data from the web config file (OAuthToken at Docusign, Docusign environment, etc).

EnvelopeCreator Project

The QuikESignTransport.SelfService project uses the envelope creator dll as a reference to generate envelopes at DocuSign. This is a Quik! project delivered to customers that can be used as is or serve as a guide for communicating with DocuSign. It uses the REST services output to make a request to Docusign. The customer can omit this dll and build up their own project. This project is included in the same zip file with the QuikESignTransport.SelfService project found on the Downloads page of this documentation.

Note: DocusignIntegratorKey is used for creating tokens at Docusign. The EnvelopeCreator project uses it because it exposes a method for creating a token. If customers are not willing to create tokens via this project, then the integrator key is not needed for just signing (given that the customer already created a token elsewhere).

How does it work?

After hosting this sample project, or any similar one, into your server, set the URL in the SignURL property of the ESignTypeDocusign object. Below you can see the minimum code requirement

Sample Code
string domainPath = "https://your.domain.com";
ESignTypeDocusign docusign = new ESignTypeDocusign {
	SignURL = domainPath + "/sign/selfservice",
	SignEnvironmentID = ESignTypeDocusign.SignEnvironment.DocuSignDEMO
};
objQFE.SetESignType(docusign);

Note: "/sign/selfservice" is the controller's method route. If the sample project is used as is, then that value must be set.

For help regarding Quik! Forms and the Quik! API
Email: support@quikforms.com | Phone: (877) 456-QUIK