Generate Forms - Quik! Forms Engine Services

Description

Instead of installing the QuikFormsEngine.dll to generate forms, you can use the REST web service version instead. The web service is essentially a wrapper for the QuikFormsEngine.dll enabling you to use the software remotely without installing the actual software or requiring the .NET Framework in your production environment. This is ideal for non-.NET users (e.g. Linux, Unix, MacOS, tablet OS, etc.). The most popular method below is Execute HTML, which is used to generate HTML forms.

Endpoint URL: https://websvcs.quikforms.com/rest/quikformsengine

Endpoint Documentation (Swagger - Production): https://websvcs.quikforms.com/rest/quikformsengine/swagger/ui/index#/QFE

Endpoint Documentation (Swagger - UAT): https://uatwebsvcs.quikforms.com/rest/quikformsengine/swagger/ui/index#/

 

A note on UNID values

The UNID value Quik! shows to customers is encoded (you will notice that it is encoded when you see either %2b or %2f in the value), then Quik! APIs will first decode it (where %2b results in + and %2f results in /) and then we decrypt it to get the UNID format like 893A4B6E-9DBD-4EB3-83EA-B2A723EF101E. When customers pass an encoded value in a query string like the Get Attachments endpoint below (like https://websvcs.quikforms.com/rest/quikformsengine/attachments?unid=yINpmhmAQ9a%2buIEBwcURm476DfkhVfxyJV%2fCfBN8fDl5sSHiUBagJsA%2bIFfUhmOY4), the .NET framework will decode it automatically and then we perform the decode again, resulting in an error. A workaround is to encode the value before building the url with the unid in it. In .NET you can do that by using HttpUtility.UrlEncode(unid). This transforms % into %25 so it comes as % again in the API.

Methods

Service

URL

TYPE

Service Description

Parameters

Service

URL

TYPE

Service Description

Parameters

Execute HTML

/qfe/execute/html

POST

Execute the Quik! Forms Engine for HTML form output

HTMLSettings (Object with properties to be set in the QuikFormsEngine)

Sample Request:

{ "HostFormOnQuik":true, "FormFields":[ { "FieldName":"1own.FName", "FieldValue":"Joe" }, { "FieldName":"1own.LName", "FieldValue":"Smith" } ], "QuikFormID":"12" }

Execute PDF

/qfe/execute/pdf

POST

Execute the Quik! Forms Engine for PDF form output

PDFSettings (Object with properties to be set in the QuikFormsEngine)

Sample Request:

{ "ForSign":true, "QuikFormID":"12", "PrintEditablePDF":false }


Note: the ExecutePDF method will output a signable PDF if and only if ForSign is true and PrintEditablePDF is false.

Get Attachments

/attachments

GET

Get all attachments associated with a UNID

unid : The UNID value of the transaction that you wish to retrieve attachments from

Upload Attachments

/attachments/upload

POST

Upload an attachment file to a specified UNID

unid : The UNID value of the transaction that you wish to upload attachments to

Name (string): Assign a name to the attachment that will be displayed in the Attachments panel of the Form Viewer. Given name string must end with the file extension that matches the file type of the original attachment. For example, if uploading a PDF attachment, the Name parameter must end in “.pdf”.

Path (string): Leave this parameter empty

Content : The base 64 string for the byte content of the attachment

DocSortOrder (int): See details below

BeforeForm (bool): If TRUE, all attachments are placed at the beginning of the package and displayed before forms when package is printed or shown in DocuSign. In this case, if multiple attachments are used, they are ordered in ascending order based on DocSortOrder value.

If FALSE, all attachments are placed in the middle or at the end of the package when printed or shown in DocuSign. Each form in a package has a “position” which is the order they were generated in. An attachment is placed in the order with the DocSortOrder value after the form in that position.

EXAMPLE
Customer generates Forms 1 and 2 together in a package, and they have positions 1 and 2 respectively. If Attachment A is uploaded with BeforeForm = FALSE and DocSortOrder = 1, then the Attachment is placed after Form 1 and before Form 2. If customer wants it shown after Form 2 then the DocSortOrder value must be 2 or greater.

If a customer wants more than one Attachment in the same position in a package, then they must upload every attachment with the same DocSortOrder value and they will be placed in ascending order by upload order.

Delete Attachments

/attachments/{id}/remove

DELETE

 

{id} (int): The Attachment ID to be deleted. This Attachment ID must be entered in the URL when calling this API

unid : The UNID value of the transaction that you wish to delete an attachment from

Print

/print

POST

Generate a PDF of the form from HTML

Use this method for generating a PDF of a form using data submitted in a Submit event. Documentation here

ETI.Domain.Classes.PDF.HTMLData {

EditablePDF (boolean, optional),

IncludeCoverPage (boolean, optional),

UNID (string, optional),

QFEVersion (string, optional),

CustomerID (integer, optional),

Fields (Array[ETI.Domain.Classes.PDF.FieldGroup], optional),

NativeESign (boolean, optional),

NativeESignatures(Array[ETI.Domain.Classes.PDF.NativeESignature], optional),

SignAllDocsCombined (boolean, optional),

SignMultipleDocs (boolean, optional),

CustomFields (ETI.Domain.Classes.PDF.CustomField, optional),

ForSign (boolean, optional)

}ETI.Domain.Classes.PDF.FieldGroup {

FormID (integer, optional),

FormInstance (integer, optional),

Order (integer, optional),

HTMLFields(Array[ETI.Domain.Classes.PDF.HTMLField], optional)

}ETI.Domain.Classes.PDF.NativeESignature {

FieldName (string, optional),

SignURL (string, optional),

Width (number, optional),

Height (number, optional),

GeoLocation (string, optional),

SignDate (string, optional),

NewSignature (boolean, optional)

}ETI.Domain.Classes.PDF.CustomField {

MetaData(Array[ETI.Domain.Classes.PDF.CustomFieldMetaData], optional),

Fields (Array[ETI.Domain.Classes.PDF.HTMLField], optional)

}ETI.Domain.Classes.PDF.HTMLField {

Name (string, optional),

Value (string, optional)

}ETI.Domain.Classes.PDF.CustomFieldMetaData {

Name (string, optional),

Left (number, optional),

Top (number, optional),

Width (number, optional),

Height (number, optional),

Page (integer, optional),

RelPage (integer, optional),

Value (string, optional),

FormID (string, optional)

}

FormLinks

INTERNAL QUIK! USE ONLY

Save

INTERNAL QUIK! USE ONLY

 

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