S-Sign Software Development Kit (ESignSDK)

Introduction

The ESignSDK, also known as the S-Sign SDK, empowers developers to seamlessly integrate electronic signature functionality into their organizations. This SDK offers a range of methods designed to simplify the process of preparing and managing envelopes delivered for eSignature execution on signature documents. The following is an overview of its capabilities:

Supported Contexts

The following contexts are supported:

  • Apex Invocable Class (that can be called from a Flow)
  • Apex Queueable
  • Apex Batch
  • @future Apex method
  • Visualforce Apex Controller (Custom and Controller extensions)
  • AuraEnabled Apex method
  • Apex class that supports an OmniScript
Note: Apex trigger context is not supported and will result in an Exception being thrown.

Use cases

With this SDK method you can programmatically create a e-signature envelope along with an associated document(s). In addition you can programmatically generate the unique link for the 1st signer to sign the document. Some of the use cases that this can solve for are:

  • Being able to support signing in person through existing customizations like Screen Flow etc. without needing to use the S-Docs UI.
  • Able to trigger envelope creation and signature link and any added automation from approval process or Flow components.
Limitations:
  • You can only have 1 invocation of prepareEnvelope or sealEnvelopeAndGetSigningLink per Apex transaction. I.e. if you invoke it in the same transaction you will get a LimitsException
  • If there is an error in generating the document, there is an Exception thrown that needs to be handled to introspect into the error details.
  • Runtime prompts based templates aren’t supported in the SDK.

ESignSDK Methods

Envelope Creation

Usage:

in your apex class (Lightning Web component controller, Apex invocable, Queueable or Apex batch classes) you would invoke the above SDK method like below:

List<Id> sDocIdsInEnvelope = new List<Id>(); 
sDocIdsInEnvelope.add('...SDOC__SDOC__c.Id...'); 
sDocIdsInEnvelope.add('...SDOC__SDOC__c.Id...'); 
String ssign__SSEnvelope_Id = SDOC.ESignSDK.prepareEnvelope(sDocIdsInEnvelope);
Method Signature

prepareEnvelope(docsIds)

Parameters
docsIds

(Type: List<Id> ) : A list of IDs of SDOC__SDoc__c records that need to be included in the envelope.

Returns

Type:

String

The Id of the SSign_SSEnvelope__c record created

Generate PDFs and Signature Links

Usage:

In your apex class you would invoke the above SDK method like below:

Id ssign_SSEnvelope_Id = '<envelope id from prepareEnvelope()'; 
String signatureUrl = SDOC.ESignSDK.sealEnvelopeAndGetSigningLink(ssign_SSEnvelope_Id);
Method Signature
sealEnvelopeAndGetSigningLink(envelopeId)

Parameters

envelopeId

(Type: Id ) : The record id for the SSEnvelope__c record for which the signature URL is required.

Returns

Type:

String

The URL for the 1st signer of the envelope.

Was this helpful?