OneSpan Sign Release 11.19: Optional Signature

Duo Liang,

Version 11.19 of OneSpan Sign has recently been deployed to the preview and sandbox environment where we added support for the “Optional Signature” feature, enhanced Single Sign-On (SSO) Authentication to support external recipients, added an email notification for the signer upload attachment event, and add a couple of bug fixes. You can find the deployment dates for all our environments on our Trust Center page.

In this blog, we’ll focus on the newly introduced Optional Signature feature and other minor changes.

What to Expect in Optional Signatures

Optional signatures are a major component in e-contracting. This feature is often used when a signer needs to sign to indicate approval or opting in. The absence of these signatures indicates a refusal of a term or service or an option in the contract.

For example, a form can have multiple sections that offer additional services to customers. However, the customer needs to sign these sections in order to subscribe to these optional/ value-added services. Alternatively, there could be a case where the signer is presented with only optional signatures. One such example would be a lease application where the main applicant needs to sign, but the co-applicant is not required to do so.

Optional Signature permits a signer to complete a transaction without signing all of their signatures inside the transaction's documents. Any signature type can be flagged as "optional" via the new user experience, the REST API, or the SDKs.

Use Optional Signatures in the Web Portal

In the design interface, a new option has been added to the Signature Field properties. You can simply click the Settings button and open a screen that allows the signature to be defined as optional. The image below demonstrates where this option can be found.

10-10-1

Note

  • You need to contact our support team in order to enable Optional Signature in the Web Portal.
  • This option will be unchecked by default.
  • When the “Is Optional” option is unchecked, the signature will be required.
  • Once a signature block is set as optional, it will have a dotted border to visually distinguish between required and optional signatures.
  • All details above are suitable for all types of signatures.

Optional Signature Use in REST API & SDK

REST method

With OneSpan Sign, programmatically creating an optional signature is very intuitive. You just need to set an approval level attribute as “optional” to tell OSS whether a signature is optional or not. Below is an example JSON that shows you how to create such an approval.

"approvals":[
            {
               "id":"Signature1",
               "role":"Role1",
               "optional": true,
               "fields":[
                  {
                     "page":0,
                     "top":100,
                     "subtype":"FULLNAME",
                     "height":50,
                     "left":100,
                     "width":200,
                     "type":"SIGNATURE"
                  }
               ]
            }
         ]

 

Java SDK

Similar to REST API, you just need to add a “makeOptional()” function whenever you create the signature. At the end of the day, this will be parsed to the above JSON.

.withSignature(SignatureBuilder.signatureFor(signer1Email)
	.onPage(0)
	.atPosition(200, 150)
	.makeOptional())				//optional signature

.Net SDK

.WithSignature(SignatureBuilder.SignatureFor("[email protected]")
	.OnPage(0)
	.AtPosition(550, 150)
	.MakeOptional())                                                                                    //optional signature

What’s Changed in the Signing Ceremony?

Within the signing ceremony, stickies will be displayed within the left margin of the page to point out Optional Signatures. The Optional Signature stickies will be displayed in a blue color and required signatures are represented in yellow. The optional signature boxes with dotted border and text “(Optional)” appended to the signature text makes them visually different from required signature boxes. This provides an easy way for users to distinguish between them.

10-10-2

Note:

  • Stickies and signature boxes of required and optional Signatures will become green and look the same once they’re signed.
  • The notification box displayed in top or bottom left hand corner of the page margin with the number of signatures on previous or subsequent pages of a document will take into account both required and optional signatures.

After all required signatures are signed, the signer can confirm a document even though not all optional signatures are signed. On the other hand, signers with only optional signatures are treated as reviewers. If they confirm a document without signing any optional signatures, there will be an extra approval added to the package JSON.

{
                    "id": "7477ad8f-bdef-4df1-a8fc-e9d3e66de73dTamper Seal",
                    "role": "6290ae61-3cad-477f-87f6-868fee154041",
                    "optional": true,
                    "accepted": "2018-07-30T19:05:29Z",
                    "signed": "2018-07-30T19:05:29Z",
                    "enforceCaptureSignature": false,
                    "data": null,
                    "fields": [],
                    "name": ""
}

This additional approval allows you to grab the completion date of this signer on this document and indicates that he/she didn’t sign for any optional signature.

Optional Signatures with Extraction Methods

Let’s use a demo example showing you how to integrate an Optional Signature into your workflow. In our case, we allow signers to choose whether to sign the additional service. Currently, Optional Signature is not supported in Document Extraction yet. Therefore, we will choose Position Extraction to locate all of our fields.

The form field names on the fields are shown in the image on the left below.

10-10-3

The example is based on Java SDK and these are the core code you can refer to when you are also Position Extraction:

DocumentPackage documentPackage = PackageBuilder.newPackageNamed("Test Optional Signature " + new SimpleDateFormat("HH:mm:ss").format(new Date()))
		.withSigner(SignerBuilder.newSignerWithEmail(signer1Email)
			.withCustomId("Signer1")
			.withFirstName("Signer1.Name")
			.withLastName("Signer1.Lastname")
			.withTitle("Signer1 title")
			.withCompany("Signer1 company"))
		.withDocument(DocumentBuilder.newDocumentWithName("Sample Agreement + Additional Service")
			.fromFile(FILE_PATH)
			.enableExtraction()
	                .withSignature(SignatureBuilder.signatureFor(signer1Email)
				.withName("role1_signature2_optional")
				.withPositionExtracted()
				.makeOptional()	                     //optional signature
                                                                                                )
		).build();

You can find the complete code and the document I was using in the example here.

Introducing the “Optional Signature” feature significantly improves the flexibility of your workflow when you allow your signer to dynamically choose whether to sign during singing ceremony. In today’s blog, we walked through the basic usage and behavior of optional signature and used an example showing how to use this feature with position extraction.

If you have any questions regarding this blog or anything else concerning integrating OneSpan Sign into your application, visit the Developer Community Forums. Your feedback matters to us!

Duo Liang is a Technical Evangelist and Partner Integrations Developer at OneSpan where he creates and maintains integration guides and code shares, helps customers and partners integrate OneSpan products into their applications, and builds integrations within third party platforms.