v5 Beginner Guide REST and SOAP
This sample guides you through the configuration of the workstep. Generally the following steps are necessary to test the workstep configuration.
- Upload a file
- Create a workstep configuration
- Send an envelope
Upload a file
First, you will need a PDF document which you want to upload.
For REST you need the following URL: https://demo.esignanywhere.net/Api/v4.0/sspfile/uploadtemporary
For SOAP you need the API call UploadTemporarySspFile_v1
For this call you need an authentication. For authentication, you’ll need an api token. You can find this information in Settings / Api Tokens and Apps. Note that all API methods require authentication. For more information about the authorization please have a look the API Reference Guide for SOAP or the Postman Guide for REST
Workstep configuration
The workstep configuration is the core of the envelope. Within the workstep configuration you can define following settings:
- AdditionalClientWorkstepInformation
- Viewer preferences
- Policy
- Sender and receiver information
- Workstep tasks
- Signature template
- Authentication
- PdfForms
Empty workstep
Lets start with an empty workstep first and then fill it step by step with the settings above. In the next collapse you can find an empty workstep (change ##EMAIL## to the email-address and ”NAME## to the name of the recipient you want to send the envelope):
{ "SspFileIds": [ "##FileId##" ], "SendEnvelopeDescription": { "Name": "test", "EmailSubject": "Please sign the enclosed envelope", "EmailBody": "Dear #RecipientFirstName# #RecipientLastName#\n\n#PersonalMessage#\n\nPlease sign the envelope #EnvelopeName#\n\nEnvelope will expire at #ExpirationDate#", "DisplayedEmailSender": "", "EnableReminders": true, "FirstReminderDayAmount": 5, "RecurrentReminderDayAmount": 3, "BeforeExpirationDayAmount": 3, "DaysUntilExpire": 28, "CallbackUrl": "", "StatusUpdateCallbackUrl": "", "Steps": [ { "OrderIndex": 1, "Recipients": [ { "Email": "##EMAIL##", "FirstName": "##NAME##", "LastName": "##NAME##", "LanguageCode": "en", "EmailBodyExtra": "", "DisableEmail": false, "AddAndroidAppLink": false, "AddIosAppLink": false, "AddWindowsAppLink": false, "AllowDelegation": true, "SkipExternalDataValidation": false, "AuthenticationMethods": [] } ], "EmailBodyExtra": "", "RecipientType": "Signer", "WorkstepConfiguration": { "WorkstepLabel": "test", "SmallTextZoomFactorPercent": 100, "FinishAction": { "ServerActions": [], "ClientActions": [] }, "TransactionCodePushPluginData": [], "TransactionCodeConfigurations": [ { } ], "SignatureConfigurations": [], "ViewerPreferences": { "FinishWorkstepOnOpen": false, "VisibleAreaOptions": { "AllowedDomain": "*", "Enabled": false } }, "Policy": { "WorkstepTasks": { "PictureAnnotationMinResolution": 0, "PictureAnnotationMaxResolution": 0, "PictureAnnotationColorDepth": "Color16M", "SequenceMode": "NoSequenceEnforced", "PositionUnits": "PdfUnits", "ReferenceCorner": "Lower_Left", "Tasks": [] } } }, "DocumentOptions": [ { "DocumentReference": "1", "IsHidden": false } ], "UseDefaultAgreements": true }, { "OrderIndex": 2, "Recipients": [ { "Email": "##EMAIL##", "FirstName": "##NAME##", "LastName": "##NAME##", "LanguageCode": "en", "EmailBodyExtra": "", "DisableEmail": false, "AddAndroidAppLink": false, "AddIosAppLink": false, "AddWindowsAppLink": false, "AllowDelegation": false, "SkipExternalDataValidation": false, "AuthenticationMethods": [] } ], "EmailBodyExtra": "", "RecipientType": "Cc", "DocumentOptions": [], "UseDefaultAgreements": false } ], "AddFormFields": { "Forms": {} }, "OverrideFormFieldValues": { "Forms": {} }, "AttachSignedDocumentsToEnvelopeLog": false } }
If the recipient opens the envelope it should look like the following screenshot:
With this empty workstep configuration we can now add the settings which are mentioned above. First, let us start with the viewer preferences.
Prepare envelope
With the api call: basicURL/envelope/prepare in REST and PrepareSendEnvelopeSteps_v1 in SOAP you can also create a workstep configuration. For this api call you need the FileId and a prepare configuration. You can find a sample configuration in the next section:
{ "SspFileIds": [ "##FileId##" ], "AdHocWorkstepConfiguration": { "WorkstepLabel": "string", "SmallTextZoomFactorPercent": 0, "WorkstepTimeToLiveInMinutes": 0, "FinishAction": { "ClientActions": [ { "RemoveDocumentFromRecentDocumentList": true, "CallClientActionOnlyAfterSuccessfulSync": true, "ClientName": "string", "CloseApp": true, "Action": "string" } ] }, "NoSequenceEnforced": true, "SigTemplate": { "Size": { "Height": 0, "Width": 0 }, "AllowedSignatureTypes": [ ] }, "ParseFormFields": { "MapRequiredFieldsToRequiredTask": true, "FormsGrouping": "PerPage", "ReturnSimplifiedConfig": true, "AddKeepExistingValueFlag": true, "ParseFormField": true }, "AdhocPolicies": { "AllowModificationsAfterSignature": true }, "ViewerPreferences": { "ShowPageNavigationBar": true, "ShowThumbnails": true, "SkipFinishConfirmDialog": true, "SkipDocumentDialog": true, "ShowImagesInFullWidth": true, "DisableGeolocation": true, "ShowDocumentDownloadDialogAfterAutomaticFinish": true, "AttachmentsMaxFileSize": 0, "SkipPreviewImageOnDisposableCertificate": true, "LoadCustomJs": true, "AllowCustomButtons": true, "GuidingBehavior": "GuideOnlyRequiredTasks", "FormFieldsGuidingBehavior": "AllowSubmitAlways", "ShowVersionNumber": true, "EnableWarningPopupOnLeave": true, "WarningPopupDisplayAfter": "FillOrSignField", "FinishWorkstepOnOpen": true, "AutoFinishAfterRequiredTasksDone": true, "GuidingBehaviorOnFinishedTask": "NoMove", "SkipThankYouDialog": true, "NativeAppsUrlScheme": "string", "DocumentViewingMode": "EndlessPaperAllDocuments", "ThumbnailMode": "ShowAllPages", "ShowTopBar": true, "DisplayRejectButtonInTopBar": true, "MultipleSignatureTypesAndBatchSigningSettings": { "IsUseBatchSigningCheckedByDefault": true, "IsRememberSignatureTypeCheckedByDefault": true, "IsRememberBatchSigningDecisionCheckedByDefault": true, "SkipMultipleSignatureTypesAndBatchSigningDialogIfBatchSigningPossible": true }, "VisibleAreaOptions": { "AllowedDomain": "string", "Enabled": true }, "ShowStartGuidingHint": true, "ShowStatusBar": true, "ShowZoomButtons": true, "ShowNoGeolocationWarning": true, "AutoStartGuiding": true, "ShowPageGap": true, "ShowPageNavigationButtons": true, "ShowFinishPossibleHint": true, "SkipRejectConfirmDialog": true }, "SignatureConfigurations": [ { "SpcId": "string", "PdfSignatureProperties": { "PdfAConformant": true, "PAdESPart4Compliant": true, "IncludeSigningCertificateChain": true, "SigningCertificateRevocationInformationIncludeMode": "DoNotInclude", "SignatureTimestampData": { "Uri": "string", "Username": "string", "Password": "string", "SignatureHashAlgorithm": "Sha1", "AuthenticationCertifiateDescriptor": { "Identifier": "string", "Type": "string" } } }, "PdfSignatureCryptographicData": { "SignatureHashAlgorithm": "Sha1", "SigningCertificateDescriptor": { "Identifier": "string", "Type": "Sha1Thumbprint", "Csp": "Default" } }, "CertificateFilter": { "KeyUsages": [ "string" ], "ThumbPrints": [ "string" ], "RootThumbPrints": [ "string" ] } } ], "SigStringParsingConfiguration": { "SigStringsForParsings": [ { "StartPattern": "string", "EndPattern": "string", "ClearSigString": true, "SearchEntireWordOnly": true } ] }, "GeneralPolicies": { "AllowSaveDocument": true, "AllowSaveAuditTrail": true, "AllowRotatingPages": true, "AllowAppendFileToWorkstep": true, "AllowAppendTaskToWorkstep": true, "AllowEmailDocument": true, "AllowPrintDocument": true, "AllowFinishWorkstep": true, "AllowRejectWorkstep": true, "AllowRejectWorkstepDelegation": true, "AllowUndoLastAction": true, "AllowColorizePdfForms": true, "AllowAdhocPdfAttachments": true, "AllowAdhocSignatures": true, "AllowAdhocStampings": true, "AllowAdhocFreeHandAnnotations": true, "AllowAdhocTypewriterAnnotations": true, "AllowAdhocPictureAnnotations": true, "AllowAdhocPdfPageAppending": true, "AllowReloadOfFinishedWorkstep": true }, "FinalizeActions": { "FinalizeActionList": [ ] }, "TransactionCodeConfigurations": [ { "Id": "string", "HashAlgoritmIdentifier": "Sha1", "Texts": [ { "Language": "string", "Value": "string" } ] } ] }, "PrepareSendEnvelopeStepsDescriptor": { "ClearFieldMarkupString": true } }
AdditionalClientWorkstepInformation
This field is used to provide additional information. Note: Must be written in XML form.
Defining a MetaDataXML sets the value only if AdditionalClientWorkstepInformation is not already set via api. For example:
- Setting AdditionalClientWorkstepInformation AND MetaDataXml
"SendEnvelopeDescription": { "MetaDataXml": "<Tagging doctype=\"INVOICE\"><InvoiceNr>123456</InvoiceNr></Tagging>", ... "Recipients": [ { "Email": "##email##", ... } ], "RecipientType": "Signer", "WorkstepConfiguration": { "AdditionalClientWorkstepInformation": "<test id='test'>Some Information</test>", ...
results in
<AdditionalClientWorkstepInformation> <test id='test'>Some Information</test> </AdditionalClientWorkstepInformation>
Setting AdditionalClientWorkstepInformation only
"SendEnvelopeDescription": { ... "Recipients": [ { "Email": "##email##", ... } ], "RecipientType": "Signer", "WorkstepConfiguration": { "AdditionalClientWorkstepInformation": "<test id='test'>Some Information</test>", ...
- results in
<AdditionalClientWorkstepInformation> <test id='test'>Some Information</test> </AdditionalClientWorkstepInformation>
- results in
- Setting MetaDataXml only
"SendEnvelopeDescription": { "MetaDataXml": "<Tagging doctype=\"INVOICE\"><InvoiceNr>123456</InvoiceNr></Tagging>", ... "Recipients": [ { "Email": "##email##", ... } ], "RecipientType": "Signer", "WorkstepConfiguration": { ...
results in
<AdditionalClientWorkstepInformation> <signature> <Tagging doctype="INVOICE"> <InvoiceNr>123456</InvoiceNr> </Tagging> </signature> </AdditionalClientWorkstepInformation>
Expiration date
Note: The following information is valid for envelopes as well as for drafts: Settings for the relative time:
- Envelope expiry as relative time, provided in seconds (or milliseconds) after sending the envelope
- Envelope expiry as relative time, in days after sending the envelope
Settings for the absolute time:
- Envelope expiry as absolute time, as timestamp in GMT (with Z in the timestamp text) or optional with defined timezone
Please note the following: Defining no option will lead to usage of the default value of 28 days. Moreover, if you configure an absolute expiry time which is already in the past at time of sending the envelope, an error message will be returned. For the draft, it is required to have both options - store absolute or relative time. For the envelopes, only an absolute timestamp is required to be set and considered while being in progress. Please also see the next REST API configuration.
Absolute expiration date:
// works with envelope/send // works with draft/create "SendEnvelopeDescription": { ... "ExpirationDate": "2021-03-22T08:34:50.775Z", ... } // works with draft/createFromTemplate // works with envelope/sendFromTemplate "EnvelopeOverrideOptions": { ... "ExpirationDate": "2021-03-22T08:34:50.775Z", ... } // works with draft/update { "ExpirationDate": "2021-03-22T08:34:50.775Z" }
Relative expiration date:
// works with envelope/send // works with draft/create "SendEnvelopeDescription": { ... "DaysUntilExpire": 1, // EXCLUSIVE OR!! (Only one is allowed - otherwise error) "ExpirationInSecondsAfterSending": 86400, ... } // works with draft/createFromTemplate // works with envelope/sendFromTemplate "EnvelopeOverrideOptions": { ... "DaysUntilExpire": 1, // EXCLUSIVE OR!! (Only one is allowed - otherwise error) "ExpirationInSecondsAfterSending": 86400, ... } // works with draft/update { "ExpirationInSecondsAfterSending": }
Please note the following: An absolute expiration date is used in this example. Please
also note the date format (YYYY-MM-DD[T]HH:mm:ssZ).
For example:
- 2022-12-24T18:21Z
- 2022-01-01T12:00:00+01:00
Viewer preferences
Following lines of code show some viewer preferences configurations:
"ViewerPreferences": { "ShowPageNavigationButtons": true, "ShowThumbnails": true, "SkipFinishConfirmDialog": true, "SkipDocumentDialog": true, "ShowImagesInFullWidth": true, "DisableGeolocation": true, "ShowDocumentDownloadDialogAfterAutomaticFinish": true, "SkipPreviewImageOnDisposableCertificate": true, "LoadCustomJs": true, "AllowCustomButtons": true, "ShowVersionNumber": true, "EnableWarningPopupOnLeave": true, "FinishWorkstepOnOpen": true, "AutoFinishAfterRequiredTasksDone": true, "SkipThankYouDialog": true, "ShowTopBar": true, "DisplayRejectButtonInTopBar": true, "ShowStartGuidingHint": true, "ShowStatusBar": true, "ShowZoomButtons": true, "ShowNoGeolocationWarning": true, "AutoStartGuiding": true, "ShowPageGap": true, "ShowPageNavigationButtons": true, "ShowFinishPossibleHint": true, "SkipRejectConfirmDialog": true, "BatchSigningDisableNextButtonUntilDialogScrolledToBottom": true }
Policy
The following list shows the policy configurations:
Note: With the value “1” you enable the policy and with the value “0” you disable the policy. In the following list all policies are enabled.
"Policy": { "GeneralPolicies": { "AllowSaveDocument": true, "AllowSaveAuditTrail": true, "AllowRotatingPages": true, "AllowAppendFileToWorkstep": true, "AllowAppendTaskToWorkstep": true, "AllowEmailDocument": true, "AllowPrintDocument": true, "AllowFinishWorkstep": true, "AllowRejectWorkstep": true, "AllowRejectWorkstepDelegation": true, "AllowUndoLastAction": true, "AllowColorizePdfForms": true, "AllowAdhocPdfAttachments": true, "AllowAdhocSignatures": true, "AllowAdhocStampings": true, "AllowAdhocFreeHandAnnotations": true, "AllowAdhocTypewriterAnnotations": true, "AllowAdhocPictureAnnotations": true, "AllowAdhocPdfPageAppending": true, "AllowReloadOfFinishedWorkstep": true, } },
All policies disabled | All policies enabled |
As you can see on the right screenshot the recipient of the envelope can now print the document as well as reject the envelope and more.
Client Actions
In this section you can define client actions. For detailed information please have a look at the configuration below.
"ClientActions": [ { "RemoveDocumentFromRecentDocumentList": false, "CallClientActionOnlyAfterSuccessfulSync": true, "ClientName": "SIGNificant SignAnywhere", "CloseApp": false, "Action": "https://www.esignanywhere.net/" } ] },
Sender and receiver information
Sender information:
"SenderInformation": { "UserInformation": { "FirstName": "##NAME##", "LastName": "##NAME##", "EMail": "##EMAIL##" } }, },
Receiver information:
"ReceiverInformation": { "UserInformation": { "FirstName": "##NAME##", "LastName": "##NAME##", "EMail": "##EMAIL##" } },
Workstep task
Every task you add to the envelope you have to add also in the section Tasks in REST and in the following section if you create the envelope with SOAP: <WorkstepTasks>##TASK##</WorkstepTasks>. Furthermore you have to define the signature in the section signature template (only in SOAP):
Signatures
Note: In the StampImprintConfiguration you can define which data should be displayed after signing. So you could set, for example, that the IP address and the name should not be displayed after signing. Please see the next sample for a configuration in which all data is displayed. This is followed by a configuration in which only the date, the transaction token and the transaction id should be displayed.
This sample was carried out with an SMS-OTP signature. With such a signature type, in addition to the name, IP address etc., the transaction token and telephone number can be displayed or hidden too.
Note: If you want to hide all data just set the following variable false:
"DisplayExtraInformation”: false,
"AllowedSignatureTypes": [ { "TrModType": "TransactionCodeSenderPlugin", "TrValidityInSeconds": 300, "Ly": "simpleTransactionCodeSms", "TrConfId": "otpSignatureSmsText", "IsPhoneNumberRequired": false, "Id": "cee105ae-f407-42f9-993c-6b664055f5fb", "DiscriminatorType": "SigTypeTransactionCode", "Preferred": false, "StampImprintConfiguration": { "DisplayExtraInformation": true, "DisplayEmail": true, "OverrideLegacyStampImprint": true, "DisplayTransactionId":true, "DisplayTransaktionToken":true, "DisplayPhoneNumber":true, "DisplayIp": true, "DisplayName": true, "DisplaySignatureDate": true, "FontFamily": "Times New Roman", "FontSize": 11.0 } } ], "UseTimestamp": false, "IsRequired": true, "Id": "1#XyzmoDuplicateIdSeperator#Signature_0d123383-e054-81ec-0b17-96c4e7b955b3", "DisplayName": "", "DocRefNumber": 1, "DiscriminatorType": "Signature" } ] } },
Result (All data shown):
"AllowedSignatureTypes": [ { "TrModType": "TransactionCodeSenderPlugin", "TrValidityInSeconds": 300, "Ly": "simpleTransactionCodeSms", "TrConfId": "otpSignatureSmsText", "IsPhoneNumberRequired": false, "Id": "cee105ae-f407-42f9-993c-6b664055f5fb", "DiscriminatorType": "SigTypeTransactionCode", "Preferred": false, "StampImprintConfiguration": { "DisplayExtraInformation": true, "DisplayEmail": false, "OverrideLegacyStampImprint": false, "DisplayTransactionId":true, "DisplayTransaktionToken":true, "DisplayPhoneNumber":false, "DisplayIp": false, "DisplayName": false, "DisplaySignatureDate": true, "FontFamily": "Times New Roman", "FontSize": 11.0 } } ], "UseTimestamp": false, "IsRequired": true, "Id": "1#XyzmoDuplicateIdSeperator#Signature_0d123383-e054-81ec-0b17-96c4e7b955b3", "DisplayName": "", "DocRefNumber": 1, "DiscriminatorType": "Signature" } ] } },
Result (Transaction token, Transaction ID, Signing time):
Click2Sign
This is the simplest signature type, the signer has just to click on the signature field to sing it.
"WorkstepTasks": { "PictureAnnotationMinResolution": 0, "PictureAnnotationMaxResolution": 0, "PictureAnnotationColorDepth": "Color16M", "SequenceMode": "NoSequenceEnforced", "PositionUnits": "PdfUnits", "ReferenceCorner": "Lower_Left", "Tasks": [ { "PositionPage": 1, "Position": { "PositionX": 69.0, "PositionY": 529.92 }, "Size": { "Height": 80.0, "Width": 190.0 }, "AdditionalParameters": [ { "Key": "enabled", "Value": "1" }, { "Key": "positioning", "Value": "onPage" }, { "Key": "req", "Value": "1" }, { "Key": "fd", "Value": "" }, { "Key": "fd_dateformat", "Value": "dd-MM-yyyy HH:mm:ss" }, { "Key": "fd_timezone", "Value": "datetimeutc" } ], "AllowedSignatureTypes": [ { "AllowedCapturingMethod": "Click2Sign", "StampImprintConfiguration": { "DisplayExtraInformation": true, "DisplayEmail": true, "DisplayIp": true, "DisplayName": true, "DisplaySignatureDate": true, "FontFamily": "Times New Roman", "FontSize": 11.0 }, "Id": "d63ec0d5-a2ca-46d9-9c73-7bd8d91aa4ea", "DiscriminatorType": "SigTypeClick2Sign", "Preferred": true } ], "UseTimestamp": false, "IsRequired": true, "Id": "1#XyzmoDuplicateIdSeperator#Signature_94816166-6b59-1cc1-de9b-285633162aef", "DisplayName": "", "DocRefNumber": 1, "DiscriminatorType": "Signature" } ] } } },
Draw2Sign
This type allows the signer to draw a signature by mouse, finger or pen. Just an image of the signature is created and embedded into the document.
"WorkstepTasks": { "PictureAnnotationMinResolution": 0, "PictureAnnotationMaxResolution": 0, "PictureAnnotationColorDepth": "Color16M", "SequenceMode": "NoSequenceEnforced", "PositionUnits": "PdfUnits", "ReferenceCorner": "Lower_Left", "Tasks": [ { "PositionPage": 1, "Position": { "PositionX": 69.0, "PositionY": 529.92 }, "Size": { "Height": 80.0, "Width": 190.0 }, "AdditionalParameters": [ { "Key": "enabled", "Value": "1" }, { "Key": "positioning", "Value": "onPage" }, { "Key": "req", "Value": "1" }, { "Key": "fd", "Value": "" }, { "Key": "fd_dateformat", "Value": "dd-MM-yyyy HH:mm:ss" }, { "Key": "fd_timezone", "Value": "datetimeutc" } ], "AllowedSignatureTypes": [ { "AllowedCapturingMethod": "Draw2Sign", "StampImprintConfiguration": { "DisplayExtraInformation": true, "DisplayEmail": true, "DisplayIp": true, "DisplayName": true, "DisplaySignatureDate": true, "FontFamily": "Times New Roman", "FontSize": 11.0 }, "Id": "d63ec0d5-a2ca-46d9-9c73-7bd8d91aa4ea", "DiscriminatorType": "SigTypeDraw2Sign", "Preferred": true } ], "UseTimestamp": false, "IsRequired": true, "Id": "1#XyzmoDuplicateIdSeperator#Signature_94816166-6b59-1cc1-de9b-285633162aef", "DisplayName": "", "DocRefNumber": 1, "DiscriminatorType": "Signature" } ] } } },
Type2Sign
With this type of signature the signer has to type in his/her name to sign the signature field.
"WorkstepTasks": { "PictureAnnotationMinResolution": 0, "PictureAnnotationMaxResolution": 0, "PictureAnnotationColorDepth": "Color16M", "SequenceMode": "NoSequenceEnforced", "PositionUnits": "PdfUnits", "ReferenceCorner": "Lower_Left", "Tasks": [ { "PositionPage": 1, "Position": { "PositionX": 69.0, "PositionY": 529.92 }, "Size": { "Height": 80.0, "Width": 190.0 }, "AdditionalParameters": [ { "Key": "enabled", "Value": "1" }, { "Key": "positioning", "Value": "onPage" }, { "Key": "req", "Value": "1" }, { "Key": "fd", "Value": "" }, { "Key": "fd_dateformat", "Value": "dd-MM-yyyy HH:mm:ss" }, { "Key": "fd_timezone", "Value": "datetimeutc" } ], "AllowedSignatureTypes": [ { "AllowedCapturingMethod": "Type2Sign", "StampImprintConfiguration": { "DisplayExtraInformation": true, "DisplayEmail": true, "DisplayIp": true, "DisplayName": true, "DisplaySignatureDate": true, "FontFamily": "Times New Roman", "FontSize": 11.0 }, "Id": "d63ec0d5-a2ca-46d9-9c73-7bd8d91aa4ea", "DiscriminatorType": "SigTypeType2Sign", "Preferred": true } ], "UseTimestamp": false, "IsRequired": true, "Id": "1#XyzmoDuplicateIdSeperator#Signature_94816166-6b59-1cc1-de9b-285633162aef", "DisplayName": "", "DocRefNumber": 1, "DiscriminatorType": "Signature" } ] } } }, },
Biometric
"WorkstepTasks": { "PictureAnnotationMinResolution": 0, "PictureAnnotationMaxResolution": 0, "PictureAnnotationColorDepth": "Color16M", "SequenceMode": "NoSequenceEnforced", "PositionUnits": "PdfUnits", "ReferenceCorner": "Lower_Left", "Tasks": [ { "PositionPage": 1, "Position": { "PositionX": 67.0, "PositionY": 521.92 }, "Size": { "Height": 80.0, "Width": 190.0 }, "AdditionalParameters": [ { "Key": "enabled", "Value": "1" }, { "Key": "positioning", "Value": "intersectsWithField" }, { "Key": "req", "Value": "1" }, { "Key": "fd", "Value": "" }, { "Key": "fd_dateformat", "Value": "dd-MM-yyyy HH:mm:ss" }, { "Key": "fd_timezone", "Value": "datetimeutc" } ], "AllowedSignatureTypes": [ { "IsBio": false, "AllowSkipBiometricVerification": false, "AllowBiometricStoringOnly": false, "SignedResponseWithoutBioData": false, "Id": "6fa90b47-847f-47b1-b73a-9c3802aa077d", "DiscriminatorType": "SigTypeBiometricSignature", "Preferred": true } ], "UseTimestamp": false, "IsRequired": true, "Id": "1#XyzmoDuplicateIdSeperator#Signature_532f40e1-0583-8285-fc50-c2a76dc2fa44", "DisplayName": "", "DocRefNumber": 1, "DiscriminatorType": "Signature" } ] } } },
SMS-OTP
"WorkstepTasks": { "PictureAnnotationMinResolution": 0, "PictureAnnotationMaxResolution": 0, "PictureAnnotationColorDepth": "Color16M", "SequenceMode": "NoSequenceEnforced", "PositionUnits": "PdfUnits", "ReferenceCorner": "Lower_Left", "Tasks": [ { "Texts": [ { "Language": "en", "Value": "Signature Disclosure Text" }, { "Language": "*", "Value": "Signature Disclosure Text" } ], "Headings": [ { "Language": "en", "Value": "Signature Disclosure Subject" }, { "Language": "*", "Value": "Signature Disclosure Subject" } ], "IsRequired": false, "Id": "ra", "DisplayName": "ra", "DocRefNumber": 1, "DiscriminatorType": "Agreements" }, { "PositionPage": 1, "Position": { "PositionX": 52.0, "PositionY": 586.0 }, "Size": { "Height": 80.0, "Width": 190.0 }, "AdditionalParameters": [ { "Key": "enabled", "Value": "1" }, { "Key": "completed", "Value": "0" }, { "Key": "req", "Value": "1" }, { "Key": "isPhoneNumberRequired", "Value": "0" }, { "Key": "trValidityInSeconds", "Value": "60" }, { "Key": "fd", "Value": "" }, { "Key": "fd_dateformat", "Value": "dd-MM-yyyy HH:mm:ss" }, { "Key": "fd_timezone", "Value": "datetimeutc" } ], "AllowedSignatureTypes": [ { "TrModType": "TransactionCodeSenderPlugin", "TrValidityInSeconds": 300, "TrConfId": "otpSignatureSmsText", "IsPhoneNumberRequired": false, "Ly": "simpleTransactionCodeSms", "Id": "c787919a-b2fd-4849-8f97-98dee281da30", "DiscriminatorType": "SigTypeTransactionCode", "Preferred": false, "StampImprintConfiguration": { "DisplayExtraInformation": true, "DisplayEmail": true, "DisplayIp": true, "DisplayName": true, "DisplaySignatureDate": true, "FontFamily": "Times New Roman", "FontSize": 11.0, "OverrideLegacyStampImprint": false, "DisplayTransactionId": true, "DisplayTransaktionToken": true, "DisplayPhoneNumber": true }, "SignaturePluginConfigurationId": "ltaLevelId" } ], "UseTimestamp": false, "IsRequired": true, "Id": "1#XyzmoDuplicateIdSeperator#Signature_e7ca3f6a-33fa-cdba-d696-1377fcad51c9", "DisplayName": "", "DocRefNumber": 1, "DiscriminatorType": "Signature" } ] },
Please also see a complete configuration below. Note that the phone number for the otp is in the recipient section!
{ "Name": "Test.pdf", "EmailSubject": "Please sign the enclosed envelope", "EmailBody": "Dear #RecipientFirstName# #RecipientLastName#\n\n#PersonalMessage#\n\nPlease sign the envelope #EnvelopeName#\n\nEnvelope will expire at #ExpirationDate#", "DisplayedEmailSender": "", "EnableReminders": true, "FirstReminderDayAmount": 5, "RecurrentReminderDayAmount": 3, "BeforeExpirationDayAmount": 3, "ExpirationInSecondsAfterSending": 2419200, "CallbackUrl": "", "StatusUpdateCallbackUrl": "", "LockFormFieldsAtEnvelopeFinish": false, "Steps": [ { "OrderIndex": 1, "Recipients": [ { "Email": "##email##", "FirstName": "##name##", "LastName": "##name##", "LanguageCode": "en", "EmailBodyExtra": "", "DisableEmail": false, "AddAndroidAppLink": false, "AddIosAppLink": false, "AddWindowsAppLink": false, "AllowDelegation": true, "AllowAccessFinishedWorkstep": false, "SkipExternalDataValidation": false, "AuthenticationMethods": [], "IdentificationMethods": [], "OtpData": { "PhoneMobile": "##phonenumber##" } } ], "EmailBodyExtra": "", "RecipientType": "Signer", "WorkstepConfiguration": { "WorkstepLabel": "Test.pdf", "SmallTextZoomFactorPercent": 100, "FinishAction": { "ServerActions": [], "ClientActions": [] }, "ReceiverInformation": { "UserInformation": { "FirstName": "##name##", "LastName": "##name##", "EMail": "##email##" }, "TransactionCodePushPluginData": [] }, "SenderInformation": { "UserInformation": { "FirstName": "##name##", "LastName": "##name##", "EMail": "##email##" } }, "TransactionCodeConfigurations": [], "SignatureConfigurations": [], "ViewerPreferences": { "FinishWorkstepOnOpen": false, "VisibleAreaOptions": { "AllowedDomain": "", "Enabled": false } }, "ResourceUris": { "DelegationUri": "" }, "AuditingToolsConfiguration": { "WriteAuditTrail": true }, "Policy": { "GeneralPolicies": { "AllowSaveDocument": true, "AllowSaveAuditTrail": true, "AllowRotatingPages": false, "AllowAppendFileToWorkstep": false, "AllowAppendTaskToWorkstep": false, "AllowEmailDocument": true, "AllowPrintDocument": true, "AllowFinishWorkstep": true, "AllowRejectWorkstep": true, "AllowRejectWorkstepDelegation": true, "AllowUndoLastAction": true, "AllowColorizePdfForms": false, "AllowAdhocPdfAttachments": false, "AllowAdhocSignatures": false, "AllowAdhocStampings": false, "AllowAdhocFreeHandAnnotations": false, "AllowAdhocTypewriterAnnotations": false, "AllowAdhocPictureAnnotations": false, "AllowAdhocPdfPageAppending": false, "AllowReloadOfFinishedWorkstep": true }, "WorkstepTasks": { "PictureAnnotationMinResolution": 0, "PictureAnnotationMaxResolution": 0, "PictureAnnotationColorDepth": "Color16M", "SequenceMode": "NoSequenceEnforced", "PositionUnits": "PdfUnits", "ReferenceCorner": "Lower_Left", "Tasks": [ { "Texts": [ { "Language": "en", "Value": "Signature Disclosure Text" }, { "Language": "*", "Value": "Signature Disclosure Text" } ], "Headings": [ { "Language": "en", "Value": "Signature Disclosure Subject" }, { "Language": "*", "Value": "Signature Disclosure Subject" } ], "IsRequired": false, "Id": "ra", "DisplayName": "ra", "DocRefNumber": 1, "DiscriminatorType": "Agreements" }, { "PositionPage": 1, "Position": { "PositionX": 52.0, "PositionY": 586.0 }, "Size": { "Height": 80.0, "Width": 190.0 }, "AdditionalParameters": [ { "Key": "enabled", "Value": "1" }, { "Key": "completed", "Value": "0" }, { "Key": "req", "Value": "1" }, { "Key": "isPhoneNumberRequired", "Value": "0" }, { "Key": "trValidityInSeconds", "Value": "60" }, { "Key": "fd", "Value": "" }, { "Key": "fd_dateformat", "Value": "dd-MM-yyyy HH:mm:ss" }, { "Key": "fd_timezone", "Value": "datetimeutc" } ], "AllowedSignatureTypes": [ { "TrModType": "TransactionCodeSenderPlugin", "TrValidityInSeconds": 300, "TrConfId": "otpSignatureSmsText", "IsPhoneNumberRequired": false, "Ly": "simpleTransactionCodeSms", "Id": "c787919a-b2fd-4849-8f97-98dee281da30", "DiscriminatorType": "SigTypeTransactionCode", "Preferred": false, "StampImprintConfiguration": { "DisplayExtraInformation": true, "DisplayEmail": true, "DisplayIp": true, "DisplayName": true, "DisplaySignatureDate": true, "FontFamily": "Times New Roman", "FontSize": 11.0, "OverrideLegacyStampImprint": false, "DisplayTransactionId": true, "DisplayTransaktionToken": true, "DisplayPhoneNumber": true }, "SignaturePluginConfigurationId": "ltaLevelId" } ], "UseTimestamp": false, "IsRequired": true, "Id": "1#XyzmoDuplicateIdSeperator#Signature_e7ca3f6a-33fa-cdba-d696-1377fcad51c9", "DisplayName": "", "DocRefNumber": 1, "DiscriminatorType": "Signature" } ] }, "FinalizeActions": { "FinalizeActionList": [ { "DocRefNumbers": "*", "SpcId": "ltaLevelId", "DiscriminatorType": "Timestamp" } ] } }, "Navigation": { "HyperLinks": [], "Links": [], "LinkTargets": [] } }, "DocumentOptions": [ { "DocumentReference": "1", "IsHidden": false } ], "UseDefaultAgreements": true }, { "OrderIndex": 2, "Recipients": [ { "Email": "##email##", "FirstName": "##name##", "LastName": "##name##", "LanguageCode": "en", "EmailBodyExtra": "", "DisableEmail": false, "AddAndroidAppLink": false, "AddIosAppLink": false, "AddWindowsAppLink": false, "AllowDelegation": false, "SkipExternalDataValidation": false, "AuthenticationMethods": [], "IdentificationMethods": [] } ], "EmailBodyExtra": "", "RecipientType": "Cc", "DocumentOptions": [], "UseDefaultAgreements": false } ], "AddFormFields": { "Forms": {} }, "OverrideFormFieldValues": { "Forms": {} }, "AttachSignedDocumentsToEnvelopeLog": false }
Disposable certificate
The disposable certificate signature is a signature variant using the Namirial Trust Service Provider services to issue a (typically qualified) electronic signing certificate on the fly during signing, on explicit request of the signer.
The implementation distinguishes between "traditional" (depracated) and "lean" (recommended) disposable certificate procedure based on the configuration in Settings - Organization.
Registration as Local Registration Authority (LRA) at Namirial is mandatory to perform the necessary identification steps in order to issue disposable certificates. The LRA ID, service password and service username need to be configured in Settings - Organization.
To issue a disposable certificate, the (future) certificate holder must be identified according to the regulations of the LRA contract upfront. The LRA Contract may contain clauses about how consent for issuing a certificate has to be requested, or delivered to the signer.
Please see the following sample configuration for a disposable certificate signature:
{ "SspFileIds": [ "##FILE_ID##" ], "SendEnvelopeDescription": { "Name": "test", "EmailSubject": "Please sign the enclosed envelope", "EmailBody": "Dear #RecipientFirstName# #RecipientLastName#\n\n#PersonalMessage#\n\nPlease sign the envelope #EnvelopeName#\n\nEnvelope will expire at #ExpirationDate#", "DisplayedEmailSender": "", "EnableReminders": true, "FirstReminderDayAmount": 5, "RecurrentReminderDayAmount": 3, "BeforeExpirationDayAmount": 3, "DaysUntilExpire": 28, "CallbackUrl": "", "StatusUpdateCallbackUrl": "", "LockFormFieldsAtEnvelopeFinish": true, "Steps": [ { "OrderIndex": 1, "Recipients": [ { "Email": "##EMAIL##", "FirstName": "##NAME##", "LastName": "##NAME##", "LanguageCode": "en", "EmailBodyExtra": "", "DisableEmail": false, "AddAndroidAppLink": false, "AddIosAppLink": false, "AddWindowsAppLink": false, "AllowDelegation": false, "AllowAccessFinishedWorkstep": false, "SkipExternalDataValidation": false, "AuthenticationMethods": [], "DisposableCertificateData": { "CountryResidence": "AT", "IdentificationCountry": "AT", "IdentificationType": "PASSPORT", "PhoneMobile": "##PHONENUMBER##", "DocumentType": "PASS", "DocumentIssuedBy": "Namirial", "DocumentIssuedOn": "2020-07-07T00:00:00Z", "DocumentExpiryDate": "2020-07-29T00:00:00Z", "SerialNumber": "1234", "DocumentNumber": "123", "OverrideHolderInCaseOfMismatch": false } } ], "EmailBodyExtra": "", "RecipientType": "Signer", "WorkstepConfiguration": { "WorkstepLabel": "test", "SmallTextZoomFactorPercent": 100, "FinishAction": { "ServerActions": [], "ClientActions": [ { "RemoveDocumentFromRecentDocumentList": false, "CallClientActionOnlyAfterSuccessfulSync": true, "ClientName": "SIGNificant SignAnywhere", "CloseApp": false, "Action": "https://www.esignanywhere.net/" } ] }, "ReceiverInformation": { "UserInformation": { "FirstName": "##NAME##", "LastName": "##NAME##", "EMail": "##EMAIL##" }, "HolderInformation": "<recognitionType>PASS</recognitionType><documentIssuedOn>07/07/2020</documentIssuedOn><documentExpiryDate>29/07/2020</documentExpiryDate><documentIssuedBy>Namirial</documentIssuedBy><documentNumber>123</documentNumber><countryResidence>AT</countryResidence><firstName>##NAME##</firstName><lastName>##NAME##</lastName><email>##EMAIL##</email><phoneMobile>##PHONENUMBER##</phoneMobile><identificationType>PASSPORT</identificationType><identificationCountry>AT</identificationCountry><passport>1234</passport>", "TransactionCodePushPluginData": [] }, "SenderInformation": { "UserInformation": { "FirstName": "##NAME##", "LastName": "##NAME##", "EMail": "##EMAIL##" } }, "TransactionCodeConfigurations": [ { "Id": "smsAuthTransactionCodeId", "HashAlgorithmIdentifier": "Sha256", "Texts": [ { } ] } ], "SignatureConfigurations": [], "ViewerPreferences": { "FinishWorkstepOnOpen": false, "VisibleAreaOptions": { "AllowedDomain": "*", "Enabled": false } }, "ResourceUris": {}, "AuditingToolsConfiguration": { "WriteAuditTrail": false, "NotificationConfiguration": {} }, "Policy": { "GeneralPolicies": { "AllowSaveDocument": true, "AllowSaveAuditTrail": true, "AllowRotatingPages": false, "AllowEmailDocument": true, "AllowPrintDocument": true, "AllowFinishWorkstep": true, "AllowRejectWorkstep": true, "AllowRejectWorkstepDelegation": false, "AllowUndoLastAction": true, "AllowAdhocPdfAttachments": false, "AllowAdhocSignatures": false, "AllowAdhocStampings": false, "AllowAdhocFreeHandAnnotations": false, "AllowAdhocTypewriterAnnotations": false, "AllowAdhocPictureAnnotations": false, "AllowAdhocPdfPageAppending": false }, "WorkstepTasks": { "PictureAnnotationMinResolution": 0, "PictureAnnotationMaxResolution": 0, "PictureAnnotationColorDepth": "Color16M", "SequenceMode": "NoSequenceEnforced", "PositionUnits": "PdfUnits", "ReferenceCorner": "Lower_Left", "Tasks": [ { "PositionPage": 1, "Position": { "PositionX": 89.0, "PositionY": 575.0 }, "Size": { "Height": 80.0, "Width": 190.0 }, "AdditionalParameters": [ { "Key": "enabled", "Value": "1" }, { "Key": "positioning", "Value": "onPage" }, { "Key": "req", "Value": "1" }, { "Key": "fd", "Value": "" }, { "Key": "fd_dateformat", "Value": "dd-MM-yyyy HH:mm:ss" }, { "Key": "fd_timezone", "Value": "datetimeutc" }, { "Key": "spcId", "Value": "padesSigningId" } ], "AllowedSignatureTypes": [ { "TrModType": "RemoteSignatureDisposableCertificate", "TrValidityInSeconds": 300, "Ly": "remoteCertificate", "TrConfIdIssueCertificate": "disposableCertificateEnrolAndSignSmsText", "TrConfId": "remoteCertificateSignSmsText", "IsPhoneNumberRequired": false, "Id": "180c4201-4146-4161-baf8-cb5a607eec62", "DiscriminatorType": "SigTypeTransactionCode", "Preferred": false, "StampImprintConfiguration": { "DisplayExtraInformation": true, "DisplayEmail": true, "DisplayIp": true, "DisplayName": true, "DisplaySignatureDate": true, "FontFamily": "Times New Roman", "FontSize": 11.0 } } ], "UseTimestamp": false, "IsRequired": true, "Id": "1#XyzmoDuplicateIdSeperator#Signature_b58c192b-47c0-5339-cb18-4fe77c3d1812", "DisplayName": "", "DocRefNumber": 1, "DiscriminatorType": "Signature" } ] } }, "Navigation": { "HyperLinks": [], "Links": [], "LinkTargets": [] } }, "DocumentOptions": [ { "DocumentReference": "1", "IsHidden": false } ], "UseDefaultAgreements": true }, { "OrderIndex": 2, "Recipients": [ { "Email": "##EMAIL##", "FirstName": "##NAME##", "LastName": "##NAME##", "LanguageCode": "en", "EmailBodyExtra": "", "DisableEmail": false, "AddAndroidAppLink": false, "AddIosAppLink": false, "AddWindowsAppLink": false, "AllowDelegation": false, "SkipExternalDataValidation": false, "AuthenticationMethods": [] } ], "EmailBodyExtra": "", "RecipientType": "Cc", "DocumentOptions": [], "UseDefaultAgreements": false } ], "AddFormFields": { "Forms": {} }, "OverrideFormFieldValues": { "Forms": {} }, "AttachSignedDocumentsToEnvelopeLog": false } }
Disposable certitifacate (Long-lived)
Additional Scenario
Beside the disposable certificate, the solution can use a specific procedure called "Long-Lived Disposable" for scenarios where the signature becomes a valid qualified signature after signing. This can be useful where the identification is confirmed/approved after signing of the document. When using this special type of Disposable Certificates, the procedure of the Opative Manual has to be followed; which is different for the case of Long-Lived Disposable. See Long-Lived Disposable in SSP documentation for more information.
General description
The Long-Lived Disposable Certificate (LLD) is a special variant of a Disposable certificate.
The main difference to the disposable certificate is, that it is not being activated immediately, but after the signatures have been applied. LLD are always active, no need to activate them.
Please see the following sample configuration for LLD:
{ "SspFileIds": [ "b4d753d1-1234-1234-ada4-b7a7975324c3" ], "SendEnvelopeDescription": { "Name": "test", "EmailSubject": "Please sign the enclosed envelope", "EmailBody": "Dear #RecipientFirstName# #RecipientLastName#\n\n#PersonalMessage#\n\nPlease sign the envelope #EnvelopeName#\n\nEnvelope will expire at #ExpirationDate#", "DisplayedEmailSender": "", "EnableReminders": true, "FirstReminderDayAmount": 5, "RecurrentReminderDayAmount": 3, "BeforeExpirationDayAmount": 3, "ExpirationInSecondsAfterSending": 2419200, "CallbackUrl": "", "StatusUpdateCallbackUrl": "", "LockFormFieldsAtEnvelopeFinish": false, "Steps": [ { "OrderIndex": 1, "Recipients": [ { "Email": "johndoe@sample.com", "FirstName": "John", "LastName": "Doe", "LanguageCode": "en", "EmailBodyExtra": "", "DisableEmail": false, "AddAndroidAppLink": false, "AddIosAppLink": false, "AddWindowsAppLink": false, "AllowDelegation": true, "AllowAccessFinishedWorkstep": false, "SkipExternalDataValidation": false, "AuthenticationMethods": [], "IdentificationMethods": [], "DisposableCertificateData": { "CountryResidence": "AT", "DocumentIssuingCountry": "", "IdentificationCountry": "AT", "IdentificationType": "PASSPORT", "PhoneMobile": "##PhoneNumber##", "DocumentType": "PASS", "DocumentIssuedBy": "Namirial", "DocumentIssuedOn": "2022-05-24T00:00:00Z", "DocumentExpiryDate": "2022-06-07T00:00:00Z", "SerialNumber": "##SerialNumber##", "DocumentNumber": "##DocumentNumber##", "OverrideHolderInCaseOfMismatch": false } } ], "EmailBodyExtra": "", "RecipientType": "Signer", "WorkstepConfiguration": { "WorkstepLabel": "test", "SmallTextZoomFactorPercent": 100, "FinishAction": { "ServerActions": [], "ClientActions": [] }, "ReceiverInformation": { "UserInformation": { "FirstName": "Jane", "LastName": "Doe", "EMail": "janedoe@sample.com" }, "HolderInformation": "<recognitionType>PASS</recognitionType><documentIssuedOn>24/05/2022</documentIssuedOn><documentExpiryDate>07/06/2022</documentExpiryDate><documentIssuedBy>Namirial</documentIssuedBy><documentNumber>##DocumentNumber##</documentNumber><countryResidence>AT</countryResidence><firstName>John</firstName><lastName>Doe</lastName><email>johndoe@sample.com</email><phoneMobile>##PhoneNumber##</phoneMobile><identificationType>PASSPORT</identificationType><identificationCountry>AT</identificationCountry><passport>##Passport##</passport>", "TransactionCodePushPluginData": [] }, "SenderInformation": { "UserInformation": { "FirstName": "John", "LastName": "Doe", "EMail": "johndoe@sample.com" } }, "TransactionCodeConfigurations": [], "SignatureConfigurations": [], "ViewerPreferences": { "FinishWorkstepOnOpen": false, "VisibleAreaOptions": { "AllowedDomain": "", "Enabled": false } }, "ResourceUris": { "DelegationUri": "https://demo.esignanywhere.net/Resource/Delegate" }, "AuditingToolsConfiguration": { "WriteAuditTrail": true }, "Policy": { "GeneralPolicies": { "AllowSaveDocument": false, "AllowSaveAuditTrail": false, "AllowRotatingPages": false, "AllowAppendFileToWorkstep": false, "AllowAppendTaskToWorkstep": false, "AllowEmailDocument": true, "AllowPrintDocument": true, "AllowFinishWorkstep": true, "AllowRejectWorkstep": true, "AllowRejectWorkstepDelegation": true, "AllowUndoLastAction": true, "AllowColorizePdfForms": false, "AllowAdhocPdfAttachments": false, "AllowAdhocSignatures": false, "AllowAdhocStampings": false, "AllowAdhocFreeHandAnnotations": false, "AllowAdhocTypewriterAnnotations": false, "AllowAdhocPictureAnnotations": false, "AllowAdhocPdfPageAppending": false, "AllowReloadOfFinishedWorkstep": true }, "WorkstepTasks": { "PictureAnnotationMinResolution": 0, "PictureAnnotationMaxResolution": 0, "PictureAnnotationColorDepth": "Color16M", "SequenceMode": "NoSequenceEnforced", "PositionUnits": "PdfUnits", "ReferenceCorner": "Lower_Left", "Tasks": [ { "Texts": [ { "Language": "en", "Value": "Agreement text" }, { "Language": "*", "Value": "Agreement text" } ], "Headings": [ { "Language": "en", "Value": "Agreement Subject" }, { "Language": "*", "Value": "Agreement Subject" } ], "IsRequired": false, "Id": "ra", "DisplayName": "ra", "DocRefNumber": 1, "DiscriminatorType": "Agreements" }, { "PositionPage": 1, "Position": { "PositionX": 72.0, "PositionY": 594.0 }, "Size": { "Height": 80.0, "Width": 190.0 }, "AdditionalParameters": [ { "Key": "enabled", "Value": "1" }, { "Key": "completed", "Value": "0" }, { "Key": "req", "Value": "1" }, { "Key": "isPhoneNumberRequired", "Value": "0" }, { "Key": "trValidityInSeconds", "Value": "60" }, { "Key": "fd", "Value": "" }, { "Key": "fd_dateformat", "Value": "dd-MM-yyyy HH:mm:ss" }, { "Key": "fd_timezone", "Value": "datetimeutc" } ], "AllowedSignatureTypes": [ { "TrModType": "RemoteSignatureLongLivedDisposableCertificate", "TrValidityInSeconds": 300, "TrConfIdIssueCertificate": "disposableCertificateEnrolAndSignSmsText", "TrConfId": "remoteCertificateSignSmsText", "IsPhoneNumberRequired": false, "Ly": "remoteCertificate", "Id": "7392f37f-32f5-4f53-bade-d830ddb51fa2", "DiscriminatorType": "SigTypeTransactionCode", "Preferred": false, "StampImprintConfiguration": { "DisplayExtraInformation": true, "DisplayEmail": true, "DisplayIp": true, "DisplayName": true, "DisplaySignatureDate": true, "FontFamily": "Times New Roman", "FontSize": 11.0, "OverrideLegacyStampImprint": false, "DisplayTransactionId": true, "DisplayTransaktionToken": true, "DisplayPhoneNumber": true }, "SignaturePluginConfigurationId": "padesSigningId" } ], "UseTimestamp": false, "IsRequired": true, "Id": "1#XyzmoDuplicateIdSeperator#Signature_4385a5b6-4615-2f23-3a1e-49e31af38dba", "DisplayName": "", "DocRefNumber": 1, "DiscriminatorType": "Signature" } ] } }, "Navigation": { "HyperLinks": [], "Links": [], "LinkTargets": [] } }, "DocumentOptions": [ { "DocumentReference": "1", "IsHidden": false } ], "UseDefaultAgreements": true }, { "OrderIndex": 2, "Recipients": [ { "Email": "johndoe@sample", "FirstName": "John", "LastName": "Doe", "LanguageCode": "en", "EmailBodyExtra": "", "DisableEmail": false, "AddAndroidAppLink": false, "AddIosAppLink": false, "AddWindowsAppLink": false, "AllowDelegation": false, "SkipExternalDataValidation": false, "AuthenticationMethods": [], "IdentificationMethods": [] } ], "EmailBodyExtra": "", "RecipientType": "Cc", "DocumentOptions": [], "UseDefaultAgreements": false } ], "AddFormFields": { "Forms": {} }, "OverrideFormFieldValues": { "Forms": {} }, "AttachSignedDocumentsToEnvelopeLog": false } }
After sending the envelope the receiver get the following after clicking the signature field to accept the general terms and conditions.:
The information about the LLD is also shown in the audit trail:
Please also note the following difference:
Difference in the certificate issued
A main difference is in the "certification policies" documented in the certificate:
"Normal" Disposable Certificate (Sample) | Long-Lived Disposable Certificate (Sample) |
---|---|
* Refers to Policy OID: 1.3.6.1.4.1.36203.1.1.6 | * Refers to Policy OID 1.3.6.1.4.1.36203.1.1.7 (Long-Lived Disposable) |
P7M Signers
It is possible to define P7M signers in eSignAnyWhere. This allows you to define at the end of a signing workflow to define signers with P7M. Due technical reasons it is not possible to add non-P7M signers after the first P7M signer. P7M is an advanced feature and must be enabled for you, so please contact your Namirial Sales
The P7M signer can be defined in the recipient list (P7M Signer Type). The P7M signer has no assigned signature fields in the document, so you will not be able to assign signature fields, form fields or predefined fields for him or her.
When a workflow with a P7M signer is finished you will not receive a PDF document, but a signed P7M container with the PDF. Please see the next figure:
The workstepconfig must be extended with a invisibleSignature, Task and a document information:
<signatureTemplate> <InvisibleSig> <id>pkcs1</id> <TargetDocument> <DocRefNumber>1</DocRefNumber> <completed>0</completed> </TargetDocument> <TargetDocument> <DocRefNumber>2</DocRefNumber> <completed>0</completed> </TargetDocument> <TargetDocument> <DocRefNumber>3</DocRefNumber> <completed>0</completed> </TargetDocument> </InvisibleSig> </signatureTemplate>
Taskdefinition:
<WorkstepTasks SequenceMode="SequenceOnlyRequiredTasks"> <Task enabled="1" completed="0" required="0" id="pkcs1" displayName="" DocRefNumber="1" type="SignPkcs7" finishPercentage="0" /> </WorkstepTasks> EnvelopeDocumentInforamtion <WorkStepInformation> ... <EnvelopeInformation> <EnvelopeDocumentInformation numberOfPages="1" DocRefNumber="1" name="" isOptionalDocument="0" isPkcs7="0" enabled="1" /> <EnvelopeDocumentInformation numberOfPages="1" DocRefNumber="2" name="" isOptionalDocument="0" isPkcs7="0" enabled="1" /> <EnvelopeDocumentInformation numberOfPages="1" DocRefNumber="3" name="" isOptionalDocument="0" isPkcs7="0" enabled="1" /> </EnvelopeInformation> ... </WorkStepInformation>
Automatic Remote Signature Recipient via API
Via API you have to use a new recipient type (“Automatic”). Moreover the workstepConfiguration must contain information about the automatic remote signature. As additional option, you can use more than one profile for the workstep configuration at once via API. Note: this leads to a missing information in eSAW UI!
1) Envelope JSON with new recipient type “Automatic”
"EmailBodyExtra": "", "RecipientType": "Automatic", "WorkstepConfiguration": {
2) Workstep Configuration
2.1) Define Signature Field in WorkstepConfiguration
"AllowedSignatureTypes": [ { "TrModType": "RemoteSignature", "SealingProfileId": "SEALING_PROFILE_IDENTIFIER_FROM_ORGANIZATION_SETTINGS", "RenderingLanguage": "en", "Ly": "test", "Id": "##Id##", "DiscriminatorType": "SigTypeAutomaticSignature", "Preferred": false, "StampImprintConfiguration": { "DisplayExtraInformation": true, "DisplayEmail": true, "DisplayIp": true, "DisplayName": true, "DisplaySignatureDate": true, "FontFamily": "Times New Roman", "FontSize": 11.0, "OverrideLegacyStampImprint": false, "DisplayTransactionId": true, "DisplayTransaktionToken": true, "DisplayPhoneNumber": true },
2.3) Finalize Action in WorkstepConfiguration Policy
"FinalizeActions": { "FinalizeActionList": [ { "SigId": "##SignatureId##", "DiscriminatorType": "AutomaticSignature" }, { "DocRefNumbers": "*", "SpcId": "ltaLevelId", "DiscriminatorType": "Timestamp" } ] } },
Please also see the following sample configuration:
{ "Name": "Test.pdf", "EmailSubject": "Please sign the enclosed envelope", "EmailBody": "Dear #RecipientFirstName# #RecipientLastName#\n\n#PersonalMessage#\n\nPlease sign the envelope #EnvelopeName#\n\nEnvelope will expire at #ExpirationDate#", "DisplayedEmailSender": "", "EnableReminders": true, "FirstReminderDayAmount": 5, "RecurrentReminderDayAmount": 3, "BeforeExpirationDayAmount": 3, "ExpirationInSecondsAfterSending": 2419200, "CallbackUrl": "", "StatusUpdateCallbackUrl": "", "LockFormFieldsAtEnvelopeFinish": false, "Steps": [ { "OrderIndex": 1, "Recipients": [ { "Email": "##Email##", "FirstName": "##Name##", "LastName": "##Name##", "LanguageCode": "en", "EmailBodyExtra": "", "DisableEmail": false, "AddAndroidAppLink": false, "AddIosAppLink": false, "AddWindowsAppLink": false, "AllowDelegation": true, "AllowAccessFinishedWorkstep": false, "SkipExternalDataValidation": false, "AuthenticationMethods": [], "IdentificationMethods": [] } ], "EmailBodyExtra": "", "RecipientType": "Automatic", "WorkstepConfiguration": { "WorkstepLabel": "Test.pdf", "SmallTextZoomFactorPercent": 100, "FinishAction": { "ServerActions": [], "ClientActions": [] }, "ReceiverInformation": { "UserInformation": { "FirstName": "##Name##", "LastName": "##Name##", "EMail": "##Email##" }, "TransactionCodePushPluginData": [] }, "SenderInformation": { "UserInformation": { "FirstName": "##Name##", "LastName": "##Name##", "EMail": "##Email##" } }, "TransactionCodeConfigurations": [], "SignatureConfigurations": [], "ViewerPreferences": { "FinishWorkstepOnOpen": false, "VisibleAreaOptions": { "AllowedDomain": "", "Enabled": false } }, "AuditingToolsConfiguration": { "WriteAuditTrail": true }, "Policy": { "GeneralPolicies": { "AllowSaveDocument": true, "AllowSaveAuditTrail": true, "AllowRotatingPages": false, "AllowAppendFileToWorkstep": false, "AllowAppendTaskToWorkstep": false, "AllowEmailDocument": true, "AllowPrintDocument": true, "AllowFinishWorkstep": true, "AllowRejectWorkstep": false, "AllowRejectWorkstepDelegation": false, "AllowUndoLastAction": true, "AllowColorizePdfForms": false, "AllowAdhocPdfAttachments": false, "AllowAdhocSignatures": false, "AllowAdhocStampings": false, "AllowAdhocFreeHandAnnotations": false, "AllowAdhocTypewriterAnnotations": false, "AllowAdhocPictureAnnotations": false, "AllowAdhocPdfPageAppending": false, "AllowReloadOfFinishedWorkstep": true }, "WorkstepTasks": { "PictureAnnotationMinResolution": 0, "PictureAnnotationMaxResolution": 0, "PictureAnnotationColorDepth": "Color16M", "SequenceMode": "NoSequenceEnforced", "PositionUnits": "PdfUnits", "ReferenceCorner": "Lower_Left", "Tasks": [ { "PositionPage": 1, "Position": { "PositionX": 56.0, "PositionY": 589.0 }, "Size": { "Height": 80.0, "Width": 190.0 }, "AdditionalParameters": [ { "Key": "enabled", "Value": "1" }, { "Key": "completed", "Value": "0" }, { "Key": "req", "Value": "0" }, { "Key": "fd", "Value": "" }, { "Key": "fd_dateformat", "Value": "dd-MM-yyyy HH:mm:ss" }, { "Key": "fd_timezone", "Value": "datetimeutc" } ], "AllowedSignatureTypes": [ { "TrModType": "RemoteSignature", "SealingProfileId": "##SealingProfileId##", "RenderingLanguage": "en", "Ly": "test", "Id": "##Id##", "DiscriminatorType": "SigTypeAutomaticSignature", "Preferred": false, "StampImprintConfiguration": { "DisplayExtraInformation": true, "DisplayEmail": true, "DisplayIp": true, "DisplayName": true, "DisplaySignatureDate": true, "FontFamily": "Times New Roman", "FontSize": 11.0, "OverrideLegacyStampImprint": false, "DisplayTransactionId": true, "DisplayTransaktionToken": true, "DisplayPhoneNumber": true }, "SignaturePluginConfigurationId": "ltaLevelId" } ], "UseTimestamp": false, "IsRequired": false, "Id": "##Id##", "DocRefNumber": 1, "DiscriminatorType": "Signature" } ] }, "FinalizeActions": { "FinalizeActionList": [ { "SigId": "##SignatureId##", "DiscriminatorType": "AutomaticSignature" }, { "DocRefNumbers": "*", "SpcId": "ltaLevelId", "DiscriminatorType": "Timestamp" } ] } }, "Navigation": { "HyperLinks": [], "Links": [], "LinkTargets": [] } }, "DocumentOptions": [ { "DocumentReference": "1", "IsHidden": false } ], "UseDefaultAgreements": true }, { "OrderIndex": 2, "Recipients": [ { "Email": "##Email##", "FirstName": "##Name##", "LastName": "##Name##", "LanguageCode": "en", "EmailBodyExtra": "", "DisableEmail": false, "AddAndroidAppLink": false, "AddIosAppLink": false, "AddWindowsAppLink": false, "AllowDelegation": false, "SkipExternalDataValidation": false, "AuthenticationMethods": [], "IdentificationMethods": [] } ], "EmailBodyExtra": "", "RecipientType": "Cc", "DocumentOptions": [], "UseDefaultAgreements": false } ], "AddFormFields": { "Forms": {} }, "OverrideFormFieldValues": { "Forms": {} }, "AttachSignedDocumentsToEnvelopeLog": false }
You can also find the same samples but for SOAP below:
1) Envelope XML with new recipient type “Automatic”
<envelope> ... <steps> <step> <emailBodyExtra></emailBodyExtra> <orderIndex>1</orderIndex> <recipientType>Automatic</recipientType> <workstepConfiguration skipThirdPartyChecks="0"> ... </workstepConfiguration> </step> </steps> </envelope>
2) Workstep Configuration
2.1) Define Signature Field in WorkstepConfiguration
<sig id="GENERIC_SIG_IDENTIFIER"> <DocRefNumber>1</DocRefNumber> <param name="enabled">1</param> <AllowedSignatureTypes> <sigType id="automatic" type="AutomaticSignature" preferred="0"> <trModType>RemoteSignature</trModType> <ImageRenderingLanguage>en</ImageRenderingLanguage> <SealingProfileId>SEALING_PROFILE_IDENTIFIER_FROM_ORGANIZATION_SETTINGS</SealingProfileId> </sigType> </AllowedSignatureTypes> </sig>
The sealing profile identifier can be found in the organization settings page at the automatic remote signature settings (Identifier).
2.3) Finalize Action in WorkstepConfiguration Policy
<Policy version="1.1.0.0"> <FinalizeActions> <AutomaticSignature sigId="GENERIC_SIG_IDENTIFIER" /> </FinalizeActions> </Policy>
A-Trust
Note: For the A-Trust signature configuration you need an A-Trust Signaturbox first. For more information please contact us.
In this section you can find the configuration for the A-Trust signature. First we have to upload a PDF with the API call UploadTemporarySspFile_v1. After uploading the document we can now send the document with the following workstep configuration to define the A-Trust signature:
<envelope> <name>eSignAnyWhere Tutorial</name> <eMailSubject>Document of eSignAnyWhere Tutorial</eMailSubject> <eMailBody>Dear #RecipientFirstName#! Please sign this tutorial document.</eMailBody> <enableReminders>True</enableReminders> <firstReminderDayAmount>1</firstReminderDayAmount> <recurrentReminderDayAmount>1</recurrentReminderDayAmount> <beforeExpirationReminderDayAmount>1</beforeExpirationReminderDayAmount> <daysUntilExpire>2</daysUntilExpire> <!-- callback to your backend system on a completed envelope <callbackUrl>http://172.16.17.78:57550/default.aspx?EnvelopeId=##EnvelopeId##&myParamForMe=1234</callbackUrl> --> <callbackUrl /> <steps> <step> <emailBodyExtra /> <orderIndex>1</orderIndex> <recipientType>Signer</recipientType> <recipients> <recipient> <languageCode>en</languageCode> <eMail>##EMAIL##</eMail> <firstName>Alice</firstName> <lastName>Somename</lastName> </recipient> </recipients> <workstepConfiguration> <WorkstepLabel /> <SmallTextZoomFactorPercent>100</SmallTextZoomFactorPercent> <WorkstepTimeToLiveInMinutes>11520</WorkstepTimeToLiveInMinutes> <FinishAction /> <signatureTemplate> <version>1.2.0.2</version> <positionUnits>PdfUnits</positionUnits> <positionReferenceCorner>Lower_Left</positionReferenceCorner> <sig id="1"> <positionPage>1</positionPage> <DocRefNumber>1</DocRefNumber> <positionX>10</positionX> <positionY>10</positionY> <width>200</width> <height>50</height> <param name="enabled">1</param> <param name="completed">0</param> <param name="sigType">ExternalSigningProcess</param> <param name="positioning">onPage</param> <param name="trModType">ATrustHandySignatur</param> <param name="aTrustTemplateId">4246</param> </sig> </signatureTemplate> <receiverInformation> <userInformation> <firstName>FirstName</firstName> <lastName>LastName</lastName> <eMail /> </userInformation> <aTrustCertificateData> <!--Used to prefill the phone number for A-Trust Handysignatur--> <phonenumber>##phone number##</phonenumber> </aTrustCertificateData> <!--Defines, if the disclaimer for Namirial disposable certificates should be shown.--> <showNamirialDisposableDisclaimer>0</showNamirialDisposableDisclaimer> </receiverInformation> <Policy version="1.1.0.0"> <GeneralPolicies> </GeneralPolicies> <TypewriterAnnotationTaskInfo /> <WorkstepTasks SequenceMode="SequenceOnlyRequiredTasks" originalSequenceMode="SequenceOnlyRequiredTasks"> <Task enabled="1" completed="0" required="1" id="1" displayName="SignField 1" DocRefNumber="1" type="SignField" internalAllConcernedDocRefNumbersList="1" allRequiredFieldsFilledOnWorkstepCreation="0" /> </WorkstepTasks> </Policy> <TransactionCodeConfigurations> <TransactionCodeConfiguration trConfId=""> <Message>Please sign the document with the transactionId {tId} with the code: {Token}</Message> <hashAlgorithmIdentifier>Sha256</hashAlgorithmIdentifier> </TransactionCodeConfiguration> <TransactionCodeConfiguration trConfId="Trans1"> <Message>Please accept the transactionId {tId} with the code: {Token}</Message> <hashAlgorithmIdentifier>Sha256</hashAlgorithmIdentifier> </TransactionCodeConfiguration> </TransactionCodeConfigurations> </workstepConfiguration> </step> <step> <emailBodyExtra /> <orderIndex>2</orderIndex> <recipientType>CC</recipientType> <recipients> <recipient> <languageCode>en</languageCode> <eMail>##EMAIL##</eMail> <firstName>Charly</firstName> <lastName>Randomname</lastName> </recipient> </recipients> </step> </steps> </envelope>
If you enter the phone number then the recipient can not enter another number. However, if you do not define a phone number then the recipient is free to choose a phone number of their choice.
BankID
In this section you can find the configuration for the bankID signature. First we have to upload a PDF. After uploading the document we can now send the document with the following workstep configuration to define the bankID signature:
{ "Name": "test", "EmailSubject": "Please sign the enclosed envelope", "EmailBody": "Dear #RecipientFirstName# #RecipientLastName#\n\n#PersonalMessage#\n\nPlease sign the envelope #EnvelopeName#\n\nEnvelope will expire at #ExpirationDate#", "DisplayedEmailSender": "##SENDER##", "EnableReminders": true, "FirstReminderDayAmount": 5, "RecurrentReminderDayAmount": 3, "BeforeExpirationDayAmount": 3, "DaysUntilExpire": 28, "CallbackUrl": "", "StatusUpdateCallbackUrl": "", "LockFormFieldsAtEnvelopeFinish": true, "Steps": [ { "OrderIndex": 1, "Recipients": [ { "Email": "##EMAIL##", "FirstName": "##NAME##", "LastName": "##NAME##", "LanguageCode": "en", "EmailBodyExtra": "", "DisableEmail": false, "AddAndroidAppLink": false, "AddIosAppLink": false, "AddWindowsAppLink": false, "AllowDelegation": false, "AllowAccessFinishedWorkstep": false, "SkipExternalDataValidation": false, "AuthenticationMethods": [] } ], "EmailBodyExtra": "", "RecipientType": "Signer", "WorkstepConfiguration": { "WorkstepLabel": "test", "SmallTextZoomFactorPercent": 100, "FinishAction": { "ServerActions": [], "ClientActions": [ { "RemoveDocumentFromRecentDocumentList": false, "CallClientActionOnlyAfterSuccessfulSync": true, "ClientName": "SIGNificant SignAnywhere", "CloseApp": false, "Action": "https://www.esignanywhere.net/" } ] }, "ReceiverInformation": { "UserInformation": { "FirstName": "##NAME##", "LastName": "##NAME##", "EMail": "##EMAIL##" }, "TransactionCodePushPluginData": [] }, "SenderInformation": { "UserInformation": { "FirstName": "##NAME##", "LastName": "##NAME##", "EMail": "##EMAIL##" } }, "TransactionCodeConfigurations": [ { "Id": "", "HashAlgorithmIdentifier": "Sha1", "Texts": [ { "Value": "Please sign the document" } ] }, { "Id": "otpSignatureSmsText", "HashAlgorithmIdentifier": "Sha256", "Texts": [ ] } ], "SignatureConfigurations": [], "ViewerPreferences": { "FinishWorkstepOnOpen": false, "VisibleAreaOptions": { "AllowedDomain": "*", "Enabled": false } }, "ResourceUris": {}, "AuditingToolsConfiguration": { "WriteAuditTrail": false, "NotificationConfiguration": {} }, "Policy": { "GeneralPolicies": { "AllowSaveDocument": true, "AllowSaveAuditTrail": true, "AllowRotatingPages": false, "AllowEmailDocument": true, "AllowPrintDocument": true, "AllowFinishWorkstep": true, "AllowRejectWorkstep": true, "AllowRejectWorkstepDelegation": false, "AllowUndoLastAction": true, "AllowAdhocPdfAttachments": false, "AllowAdhocSignatures": false, "AllowAdhocStampings": false, "AllowAdhocFreeHandAnnotations": false, "AllowAdhocTypewriterAnnotations": false, "AllowAdhocPictureAnnotations": false, "AllowAdhocPdfPageAppending": false }, "WorkstepTasks": { "PictureAnnotationMinResolution": 0, "PictureAnnotationMaxResolution": 0, "PictureAnnotationColorDepth": "Color16M", "SequenceMode": "SequenceOnlyRequiredTasks", "PositionUnits": "PdfUnits", "ReferenceCorner": "Lower_Left", "Tasks": [ { "PositionPage": 1, "Position": { "PositionX": 10.0, "PositionY": 10.0 }, "Size": { "Height": 50.0, "Width": 200.0 }, "AdditionalParameters": [ { "Key": "sigType", "Value": "TransactionCode" }, { "Key": "trModType", "Value": "BankIdSignature" }, { "Key": "trValidityInSeconds", "Value": "60" }, { "Key": "ly", "Value": "bankId" } ], "AllowedSignatureTypes": [], "UseTimestamp": false, "IsRequired": true, "Id": "1", "DisplayName": "SignField 1", "DocRefNumber": 1, "DiscriminatorType": "Signature" } ] } }, "Navigation": { "HyperLinks": [], "Links": [], "LinkTargets": [] } }, "DocumentOptions": [ { "DocumentReference": "1", "IsHidden": false } ], "UseDefaultAgreements": true }, { "OrderIndex": 2, "Recipients": [ { "Email": "##EMAIL##", "FirstName": "##NAME##", "LastName": "##NAME##", "LanguageCode": "en", "EmailBodyExtra": "", "DisableEmail": false, "AddAndroidAppLink": false, "AddIosAppLink": false, "AddWindowsAppLink": false, "AllowDelegation": false, "AllowAccessFinishedWorkstep": false, "SkipExternalDataValidation": false, "AuthenticationMethods": [] } ], "EmailBodyExtra": "", "RecipientType": "Cc", "DocumentOptions": [ { "DocumentReference": "1", "IsHidden": false } ], "UseDefaultAgreements": false } ], "AddFormFields": { "Forms": {} }, "OverrideFormFieldValues": { "Forms": {} }, "AttachSignedDocumentsToEnvelopeLog": false }
In this section you can find the bankID authentication method:
"AuthenticationMethods": [ { "Method": "BankId", "Parameter": "##Parameter##" } ]
Generic Signing Plugin
In this section you can find the configuration for the generic signing plugin signature. First we have to upload a PDF. After uploading the document we can now send the document with the following workstep configuration to define the plugin signature:
{ "SspFileIds": [ "##FileId##" ], "SendEnvelopeDescription": { "Name": "test", "EmailSubject": "Please sign the enclosed envelope", "EmailBody": "Dear #RecipientFirstName# #RecipientLastName#\n\n#PersonalMessage#\n\nPlease sign the envelope #EnvelopeName#\n\nEnvelope will expire at #ExpirationDate#", "DisplayedEmailSender": "", "EnableReminders": true, "FirstReminderDayAmount": 5, "RecurrentReminderDayAmount": 3, "BeforeExpirationDayAmount": 3, "DaysUntilExpire": 28, "CallbackUrl": "", "StatusUpdateCallbackUrl": "", "Steps": [ { "OrderIndex": 1, "Recipients": [ { "Email": "##Email##", "FirstName": "##name##", "LastName": "##name##", "LanguageCode": "en", "EmailBodyExtra": "", "DisableEmail": false, "AddAndroidAppLink": false, "AddIosAppLink": false, "AddWindowsAppLink": false, "AllowDelegation": false, "SkipExternalDataValidation": false, "AuthenticationMethods": [], "BankIdPluginData" : { "TrBiPersonalNumber": "##PersonalNumber##", "TrBiAllowAnyPersonalNumber": false } } ], "EmailBodyExtra": "", "RecipientType": "Signer", "WorkstepConfiguration": { "WorkstepLabel": "test", "ReceiverInformation": { "GenericSigningPluginDataList": [{ "PluginId": "GenericSigningPluginForTests", "SenderDataFields": { "Fields": [{ "Key": "customEmail", "Value": "##customEmail##" },{ "Key": "userId", "Value": "##UserId##" },{ "Key": "email", "Value": "##Email##" },{ "Key": "password", "Value": "##Password##" },{ "Key": "number", "Value": "##Number##" },{ "Key": "phoneNumber", "Value": "##Number##" },{ "Key": "list", "Value": "app" }] } }] }, "SmallTextZoomFactorPercent": 100, "FinishAction": { "ServerActions": [], "ClientActions": [ { "RemoveDocumentFromRecentDocumentList": false, "CallClientActionOnlyAfterSuccessfulSync": true, "ClientName": "SIGNificant SignAnywhere", "CloseApp": false, "Action": "https://www.esignanywhere.net/" } ] }, "Policy": { "GeneralPolicies": { "AllowSaveDocument": true, "AllowSaveAuditTrail": true, "AllowRotatingPages": false, "AllowEmailDocument": true, "AllowPrintDocument": true, "AllowFinishWorkstep": true, "AllowRejectWorkstep": true, "AllowRejectWorkstepDelegation": false, "AllowUndoLastAction": true, "AllowAdhocPdfAttachments": false, "AllowAdhocSignatures": false, "AllowAdhocStampings": false, "AllowAdhocFreeHandAnnotations": false, "AllowAdhocTypewriterAnnotations": false, "AllowAdhocPictureAnnotations": false, "AllowAdhocPdfPageAppending": false }, "WorkstepTasks": { "PictureAnnotationMinResolution": 0, "PictureAnnotationMaxResolution": 0, "PictureAnnotationColorDepth": "Color16M", "SequenceMode": "NoSequenceEnforced", "PositionUnits": "PdfUnits", "ReferenceCorner": "Lower_Left", "Tasks": [ { "PositionPage": 1, "Position": { "PositionX": 70.0, "PositionY": 606.0 }, "Size": { "Height": 80.0, "Width": 191.0 }, "AdditionalParameters": [ { "Key": "enabled", "Value": "1" }, { "Key": "positioning", "Value": "onPage" }, { "Key": "req", "Value": "1" }, { "Key": "fd", "Value": "" }, { "Key": "fd_dateformat", "Value": "dd-MM-yyyy HH:mm:ss" }, { "Key": "fd_timezone", "Value": "datetimeutc" }, { "Key": "spcId", "Value": "padesSigningId" } ], "AllowedSignatureTypes": [ { "Id": "8e4ce7e9-b70b-464b-861e-8429239ef474", "DiscriminatorType": "SigTypeGenericSigningPlugin", "PluginId": "GenericSigningPluginForTests" } ], "UseTimestamp": false, "IsRequired": true, "Id": "1#XyzmoDuplicateIdSeperator#Signature_a48a82a2-0bd3-1e9e-c223-64ad308bf715", "DisplayName": "", "DocRefNumber": 1, "DiscriminatorType": "Signature" } ] } } }, "DocumentOptions": [ { "DocumentReference": "1", "IsHidden": false } ], "UseDefaultAgreements": true } ] } }
Generic Signing Plugin (automatic)
In this section you can find the configuration for an automatic generic signing plugin signature. Please see the following workstep configuration for more information:
{ "SspFileIds": ["##SspFileId##"], "SendEnvelopeDescription": { "Name": "GenericSigningPluginForTests", "EmailSubject": "*GenericSigningPluginForTests*", "EmailBody": "*Please sign the document*", "Steps": [{ "OrderIndex": 1, "Recipients": [{ "Email": "##PlaceholderEmail##", "FirstName": "_PlaceHolderFirstName", "LastName": "_PlaceHolderLastName", "LanguageCode": "en", "DisableEmail": true, "AddAndroidAppLink": false, "AddIosAppLink": false, "AddWindowsAppLink": false, "AllowDelegation": false, "SkipExternalDataValidation": true }], "RecipientType": "Automatic", "WorkstepConfiguration": { "WorkstepLabel": "Automatic", "SkipThirdPartyChecks": false, "SmallTextZoomFactorPercent": 100, "WorkstepTimeToLiveInMinutes": 44650, "ViewerPreferences": { "FinishWorkstepOnOpen": false }, "Policy": { "WorkstepTasks": { "SequenceMode": "NoSequenceEnforced", "PositionUnits": "PdfUnits", "ReferenceCorner": "Lower_Left", "Tasks": [{ "DiscriminatorType": "Signature", "Id": "c5d2b3a5-afd1-4794-b8c8-c3f9c0755b75", "DocRefNumber": 1, "PositionPage": 1, "Position": { "PositionX": 0.0, "PositionY": 0.0 }, "Size": { "Height": 80.0, "Width": 190.0 }, "AdditionalParameters": [{ "Key": "req", "Value": "1" }, { "Key": "positioning", "Value": "onPage" }, { "Key": "enabled", "Value": "1" }], "AllowedSignatureTypes": [{ "DiscriminatorType": "SigTypeAutomaticSignature", "Id": "SignFor_c5d2b3a5-afd1-4794-b8c8-c3f9c0755b75", "GenericSigningPluginId": "GenericSigningPluginForTests", "SealingProfileId": "##SealingProfileId##" }] }] }, "FinalizeActions": { "FinalizeActionList": [{ "DiscriminatorType": "AutomaticSignature", "SigId": "c5d2b3a5-afd1-4794-b8c8-c3f9c0755b75" }] } } } }] } }
Generic Signing Plugin (Batch-Signature)
In this section you can find the configuration for a batch generic signing plugin signature. Please see the following workstep configuration for more information:
{ "SspFileIds": ["##SspFileId##"], "SendEnvelopeDescription": { "Name": "eSignAnyWhere Tutorial", "EmailSubject": "Document of eSignAnyWhere Tutorial", "EmailBody": "Dear #RecipientFirstName#! Please sign this tutorial document.", "DisplayedEmailSender": "", "EnableReminders": true, "FirstReminderDayAmount": 1, "RecurrentReminderDayAmount": 1, "BeforeExpirationDayAmount": 1, "DaysUntilExpire": 2, "CallbackUrl": "", "StatusUpdateCallbackUrl": "", "LockFormFieldsAtEnvelopeFinish": false, "Steps": [ { "OrderIndex": 1, "Recipients": [ { "Email": "##Email##", "FirstName": "##FirstName##", "LastName": "##LastName##", "LanguageCode": "en", "EmailBodyExtra": "", "DisableEmail": false, "AddAndroidAppLink": false, "AddIosAppLink": false, "AddWindowsAppLink": false, "AllowDelegation": false, "AllowAccessFinishedWorkstep": false, "SkipExternalDataValidation": false, "AuthenticationMethods": [] } ], "EmailBodyExtra": "", "RecipientType": "Signer", "WorkstepConfiguration": { "WorkstepLabel": "", "SmallTextZoomFactorPercent": 100, "FinishAction": { "ServerActions": [], "ClientActions": [] }, "ReceiverInformation": { "UserInformation": { "FirstName": "##FirstName##", "LastName": "##LastName##", "EMail": "##Email##" }, "TransactionCodePushPluginData": [], "GenericSigningPluginDataList": [ { "PluginId": "GenericSigningPluginForTests", "SenderDataFields": { "Fields": [ { "Key": "customEmail", "Value": "##Email##" }, { "Key": "userId", "Value": "##UserId##" }, { "Key": "email", "Value": "##Email##" }, { "Key": "password", "Value": "##Password##" }, { "Key": "number", "Value": "##Number##" }, { "Key": "phoneNumber", "Value": "+##PhoneNumber##" }, { "Key": "list", "Value": "app" } ] } } ] }, "SenderInformation": { "UserInformation": { "FirstName": "##FirstName##", "LastName": "##LastName##", "EMail": "##Email##" } }, "TransactionCodeConfigurations": [ { "Id": "", "HashAlgorithmIdentifier": "Sha256", "Texts": [ { "Value": "Please sign the document with the transactionId {tId} with the code: {Token}" } ] }, { "Id": "Trans1", "HashAlgorithmIdentifier": "Sha256", "Texts": [ { "Value": "Please accept the transactionId {tId} with the code: {Token}" } ] }, { "Id": "IdentityServerMail", "HashAlgorithmIdentifier": "Sha256", "Texts": [ {} ] }, { "Id": "otpSignatureSmsText", "HashAlgorithmIdentifier": "Sha256", "Texts": [ ] } ], "SignatureConfigurations": [], "ViewerPreferences": {}, "AuditingToolsConfiguration": { "WriteAuditTrail": true, "NotificationConfiguration": { } }, "Policy": { "GeneralPolicies": { "AllowSaveDocument": true, "AllowSaveAuditTrail": true, "AllowRotatingPages": true, "AllowAppendFileToWorkstep": false, "AllowAppendTaskToWorkstep": false, "AllowEmailDocument": true, "AllowPrintDocument": true, "AllowFinishWorkstep": true, "AllowRejectWorkstep": true, "AllowRejectWorkstepDelegation": false, "AllowUndoLastAction": true, "AllowColorizePdfForms": false, "AllowAdhocPdfAttachments": true, "AllowAdhocSignatures": true, "AllowAdhocStampings": true, "AllowAdhocFreeHandAnnotations": true, "AllowAdhocTypewriterAnnotations": true, "AllowAdhocPictureAnnotations": true, "AllowAdhocPdfPageAppending": true, "AllowReloadOfFinishedWorkstep": true }, "WorkstepTasks": { "PictureAnnotationMinResolution": 96, "PictureAnnotationMaxResolution": 300, "PictureAnnotationColorDepth": "Color16M", "SequenceMode": "SequenceOnlyRequiredTasks", "PositionUnits": "PdfUnits", "ReferenceCorner": "Lower_Left", "Tasks": [ { "PositionPage": 1, "Position": { "PositionX": 50.0, "PositionY": 700.0 }, "Size": { "Height": 54.85714, "Width": 240.0 }, "AdditionalParameters": [ { "Key": "enabled", "Value": "1" }, { "Key": "completed", "Value": "0" }, { "Key": "sigType", "Value": "GenericSigningPlugin" }, { "Key": "genericSigningPluginId", "Value": "GenericSigningPluginForTests" }, { "Key": "positioning", "Value": "onPage" }, { "Key": "ly", "Value": "remoteCertificate" }, { "Key": "fd", "Value": "My Field Description Text" } ], "AllowedSignatureTypes": [], "UseTimestamp": false, "IsRequired": false, "Id": "Sig1a", "DisplayName": "SignField 1", "DocRefNumber": 1, "BatchId": "batch", "DiscriminatorType": "Signature" }, { "PositionPage": 1, "Position": { "PositionX": 50.0, "PositionY": 600.0 }, "Size": { "Height": 54.85714, "Width": 240.0 }, "AdditionalParameters": [ { "Key": "enabled", "Value": "1" }, { "Key": "completed", "Value": "0" }, { "Key": "sigType", "Value": "GenericSigningPlugin" }, { "Key": "genericSigningPluginId", "Value": "GenericSigningPluginForTests" }, { "Key": "positioning", "Value": "onPage" }, { "Key": "ly", "Value": "remoteCertificate" }, { "Key": "fd", "Value": "My Field Description Text" } ], "AllowedSignatureTypes": [], "UseTimestamp": false, "IsRequired": false, "Id": "Sig1b", "DisplayName": "SignField 1", "DocRefNumber": 1, "BatchId": "batch", "DiscriminatorType": "Signature" }, { "PositionPage": 1, "Position": { "PositionX": 50.0, "PositionY": 500.0 }, "Size": { "Height": 54.85714, "Width": 240.0 }, "AdditionalParameters": [ { "Key": "enabled", "Value": "1" }, { "Key": "completed", "Value": "0" }, { "Key": "sigType", "Value": "GenericSigningPlugin" }, { "Key": "genericSigningPluginId", "Value": "GenericSigningPluginForTests" }, { "Key": "positioning", "Value": "onPage" }, { "Key": "ly", "Value": "remoteCertificate" }, { "Key": "fd", "Value": "My Field Description Text" } ], "AllowedSignatureTypes": [], "UseTimestamp": false, "IsRequired": false, "Id": "Sig1c", "DisplayName": "SignField 1", "DocRefNumber": 1, "BatchId": "batch", "DiscriminatorType": "Signature" } ] } }, "Navigation": { "HyperLinks": [], "Links": [], "LinkTargets": [] } }, "DocumentOptions": [ { "DocumentReference": "1", "IsHidden": false } ], "UseDefaultAgreements": true }, { "OrderIndex": 2, "Recipients": [ { "Email": "##Email##", "FirstName": "##FirstName##", "LastName": "##LastName##", "LanguageCode": "en", "EmailBodyExtra": "", "DisableEmail": false, "AddAndroidAppLink": false, "AddIosAppLink": false, "AddWindowsAppLink": false, "AllowDelegation": false, "AllowAccessFinishedWorkstep": false, "SkipExternalDataValidation": false, "AuthenticationMethods": [] } ], "EmailBodyExtra": "", "RecipientType": "Cc", "DocumentOptions": [ { "DocumentReference": "1", "IsHidden": false } ], "UseDefaultAgreements": true } ], "AddFormFields": { "Forms": {} }, "OverrideFormFieldValues": { "Forms": {} }, "AttachSignedDocumentsToEnvelopeLog": false } }
Authentication
You can add different authentications for the recipient to ensure that only the one who has the code/phone number can open the envelope. Following list shows the different authentications:
- Pin
- SMS
- WindowsLive
In the next two collapses you can find the configuration for the Pin-authentication and for the SMS-authentication:
Pin-authentication
{ "Method": "Pin", "Parameter": "1234" }
SMS-authentication
{ "Method": "Sms", "Parameter": "+0123456789" }
You have to place the authentication in the section “recipient”. You can find a workstep configuration with an authentication in the next section:
"Steps": [ { "OrderIndex": 1, "Recipients": [ { "Email": "##EMAIL##", "FirstName": "##NAME##", "LastName": "##NAME##", "LanguageCode": "en", "EmailBodyExtra": "", "DisableEmail": false, "AddAndroidAppLink": false, "AddIosAppLink": false, "AddWindowsAppLink": false, "AllowDelegation": false, "SkipExternalDataValidation": false, "AuthenticationMethods": [ { "Method": "Pin", "Parameter": "1234" } ] } ],
PdfForms
The following list shows you all different form fields which can be placed on the document:
- Textfield
- Radiobutton
- Checkbox
- Listbox
- Combobox
The next tabs you can find the configurations of these form fields. Beginning with the configuration of the section “PdfForms”.
There are two configurations to do:
- PdfForms
- AddFormFields
This applies to all form fields.
Textfield
"Forms": [ { "Id": "TextBox_3daf9a88-bf45-70af-99d0-c077bcb48245", "PositionPage": 1, "DocRefNumber": 1, "Position": { "PositionX": 77.0, "PositionY": 590.0 }, "Size": { "Height": 20.0, "Width": 124.0 }, "DiscriminatorType": "TextBox" } ], "IsRequired": false, "Id": "f390ebd3-4b9c-4554-ab61-4d1234bad681", "DisplayName": "", "DocRefNumber": 1, "DiscriminatorType": "FormGroup" },
Radiobutton
{ "RadioButtonGroupId": "RadioButton_942fca6a-5e0e-7694-b858-b5ded711ed0b", "Id": "0", "PositionPage": 1, "DocRefNumber": 1, "Position": { "PositionX": 77.0, "PositionY": 553.0 }, "Size": { "Height": 20.0, "Width": 20.0 }, "DiscriminatorType": "RadioButton" },
Checkbox
{ "IsRequired": false, "RequiredEvalPolicy": "None", "Id": "CheckBox_41371eaf-6e1a-0d9a-58a9-0705fd8d08d1", "PositionPage": 1, "DocRefNumber": 1, "Position": { "PositionX": 77.0, "PositionY": 520.0 }, "Size": { "Height": 20.0, "Width": 20.0 }, "DiscriminatorType": "CheckBox" },
Listbox
{ "Items": [], "Id": "ListBox_d51c4e55-2497-8ab4-f2c8-6f60ac6a2cfd", "PositionPage": 1, "DocRefNumber": 1, "Position": { "PositionX": 79.0, "PositionY": 475.0 }, "Size": { "Height": 30.0, "Width": 150.0 }, "DiscriminatorType": "ListBox" },
Listbox (Multiselect)
In the workstep configuration you can also define to select multiple items in the listbox. To define a multiselect of items you have to have at least two items in the listbox and you have to activate multiselect for this listbox. Please see the configurations below for more information:
Here you can find the configuration to enable multiselect for the listbox:
"IsMultiselect": true,
Below you can find a complete configuration with three items in the listbox and the enabled multiselect.
{ "SspFileIds": [ "##FILE-ID##" ], "SendEnvelopeDescription": { "Name": "test", "EmailSubject": "Please sign the enclosed envelope", "EmailBody": "Dear #RecipientFirstName# #RecipientLastName#\n\n#PersonalMessage#\n\nPlease sign the envelope #EnvelopeName#\n\nEnvelope will expire at #ExpirationDate#", "DisplayedEmailSender": "", "EnableReminders": true, "FirstReminderDayAmount": 5, "RecurrentReminderDayAmount": 3, "BeforeExpirationDayAmount": 3, "DaysUntilExpire": 28, "CallbackUrl": "", "StatusUpdateCallbackUrl": "", "LockFormFieldsAtEnvelopeFinish": true, "Steps": [ { "OrderIndex": 1, "Recipients": [ { "Email": "##EMAIL##", "FirstName": "##NAME##", "LastName": "##NAME##", "LanguageCode": "en", "EmailBodyExtra": "", "DisableEmail": false, "AddAndroidAppLink": false, "AddIosAppLink": false, "AddWindowsAppLink": false, "AllowDelegation": false, "AllowAccessFinishedWorkstep": false, "SkipExternalDataValidation": false, "AuthenticationMethods": [] } ], "EmailBodyExtra": "", "RecipientType": "Signer", "WorkstepConfiguration": { "WorkstepLabel": "test", "SmallTextZoomFactorPercent": 100, "FinishAction": { "ServerActions": [], "ClientActions": [ { "RemoveDocumentFromRecentDocumentList": false, "CallClientActionOnlyAfterSuccessfulSync": true, "ClientName": "SIGNificant SignAnywhere", "CloseApp": false, "Action": "https://www.esignanywhere.net/" } ] }, "ReceiverInformation": { "UserInformation": { "FirstName": "##NAME##", "LastName": "##NAME##", "EMail": "##EMAIL##" }, "TransactionCodePushPluginData": [] }, "SenderInformation": { "UserInformation": { "FirstName": "##NAME##", "LastName": "##NAME##", "EMail": "##EMAIL##" } }, "TransactionCodeConfigurations": [ { "Id": "smsAuthTransactionCodeId", "HashAlgorithmIdentifier": "Sha256", "Texts": [ ] } ], "SignatureConfigurations": [], "ViewerPreferences": { "FinishWorkstepOnOpen": false, "VisibleAreaOptions": { "AllowedDomain": "*", "Enabled": false } }, "ResourceUris": {}, "AuditingToolsConfiguration": { "WriteAuditTrail": false, "NotificationConfiguration": {} }, "Policy": { "GeneralPolicies": { "AllowSaveDocument": true, "AllowSaveAuditTrail": true, "AllowRotatingPages": false, "AllowEmailDocument": true, "AllowPrintDocument": true, "AllowFinishWorkstep": true, "AllowRejectWorkstep": true, "AllowRejectWorkstepDelegation": false, "AllowUndoLastAction": true, "AllowAdhocPdfAttachments": false, "AllowAdhocSignatures": false, "AllowAdhocStampings": false, "AllowAdhocFreeHandAnnotations": false, "AllowAdhocTypewriterAnnotations": false, "AllowAdhocPictureAnnotations": false, "AllowAdhocPdfPageAppending": false }, "WorkstepTasks": { "PictureAnnotationMinResolution": 0, "PictureAnnotationMaxResolution": 0, "PictureAnnotationColorDepth": "Color16M", "SequenceMode": "NoSequenceEnforced", "PositionUnits": "PdfUnits", "ReferenceCorner": "Lower_Left", "Tasks": [ { "Forms": [ { "Items": [], "IsRequired": false, "Id": "ListBox_ef1ae2c5-8c83-2aab-b9eb-56624e33bcb8", "PositionPage": 1, "DocRefNumber": 1, "Position": { "PositionX": 60.0, "PositionY": 655.0 }, "Size": { "Height": 30.0, "Width": 150.0 }, "DiscriminatorType": "ListBox" } ], "IsRequired": false, "Id": "8ab43761-8310-4331-8c47-b3b9c5886146", "DisplayName": "", "DocRefNumber": 1, "DiscriminatorType": "FormGroup" } ] } }, "Navigation": { "HyperLinks": [], "Links": [], "LinkTargets": [] } }, "DocumentOptions": [ { "DocumentReference": "1", "IsHidden": false } ], "UseDefaultAgreements": true }, { "OrderIndex": 2, "Recipients": [ { "Email": "##EMAIL##", "FirstName": "##NAME##", "LastName": "##NAME##", "LanguageCode": "en", "EmailBodyExtra": "", "DisableEmail": false, "AddAndroidAppLink": false, "AddIosAppLink": false, "AddWindowsAppLink": false, "AllowDelegation": false, "SkipExternalDataValidation": false, "AuthenticationMethods": [] } ], "EmailBodyExtra": "", "RecipientType": "Cc", "DocumentOptions": [], "UseDefaultAgreements": false } ], "AddFormFields": { "Forms": { "1": [ { "Items": [ { "ExportValue": "option1", "DisplayValue": "option1", "IsSelected": true }, { "ExportValue": "option2", "DisplayValue": "option2", "IsSelected": true }, { "ExportValue": "option3", "DisplayValue": "option3", "IsSelected": false } ], "TextColor": "", "IsMultiselect": true, "FontSize": 11.0, "FontName": "Times New Roman", "Bold": false, "Italic": false, "TextAlign": "Left", "Name": "ListBox_ef1ae2c5-8c83-2aab-b9eb-56624e33bcb8", "ReadOnly": false, "Required": false, "X": 60.0, "Y": 655.0, "Width": 150.0, "Height": 30.0, "Page": 1, "DiscriminatorType": "AddListBoxFormFieldDescriptor" } ] } }, "OverrideFormFieldValues": { "Forms": {} }, "AttachSignedDocumentsToEnvelopeLog": false } }
Combobox
{ "IsRequired": false, "Items": [], "Id": "ComboBox_67a8d39f-3a49-65e0-0d5d-88ac97b387ea", "PositionPage": 1, "DocRefNumber": 1, "Position": { "PositionX": 79.0, "PositionY": 424.0 }, "Size": { "Height": 30.0, "Width": 150.0 }, "DiscriminatorType": "ComboBox" }
After the configuration of the section “PdfForms” you can add these form fields in the section “addFormFields”.
AddFormFields
Textfield:
{ "Value": "", "MaxLength": -1, "IsMultiline": false, "IsPassword": false, "IsComb": false, "TextColor": "0, 0, 0", "FontSize": 11.0, "FontName": "Times New Roman", "Bold": false, "Italic": false, "TextAlign": "Left", "Name": "TextBox_3daf9a88-bf45-70af-99d0-c077bcb48245", "ReadOnly": false, "Required": false, "X": 77.0, "Y": 590.92, "Width": 124.0, "Height": 20.0, "Page": 1, "DiscriminatorType": "AddTextBoxFormFieldDescriptor" },
Radiobutton:
{ "ExportValue": "1b6c204b-0642-5566-f526-a725e16737a5", "IsChecked": false, "Name": "RadioButton_18d57bcd-6a82-ebde-a2ab-c4557a720bfe", "ReadOnly": false, "Required": false, "X": 77.0, "Y": 550.92, "Width": 20.0, "Height": 20.0, "Page": 1, "DiscriminatorType": "AddRadioButtonFormFieldDescriptor" },
Checkbox:
{ "IsChecked": true, "Name": "CheckBox_e5ba8ea4-8c39-324f-0170-a83dd3fb3aeb", "ReadOnly": false, "Required": false, "X": 79.0, "Y": 516.92, "Width": 20.0, "Height": 20.0, "Page": 1, "DiscriminatorType": "AddCheckBoxFormFieldDescriptor" }
Listbox:
{ "Items": [], "TextColor": "", "FontSize": 11.0, "FontName": "Times New Roman", "Bold": false, "Italic": false, "TextAlign": "Left", "Name": "ListBox_e4076d02-c636-0138-fe54-03d19fe10a7d", "ReadOnly": false, "Required": false, "X": 79.0, "Y": 468.92, "Width": 150.0, "Height": 30.0, "Page": 1, "DiscriminatorType": "AddListBoxFormFieldDescriptor" },
Combobox:
{ "Value": "", "Items": [], "TextColor": "", "FontSize": 11.0, "FontName": "Times New Roman", "Bold": false, "Italic": false, "TextAlign": "Left", "Name": "ComboBox_6936c368-b465-6355-0367-bdfe042c8ec7", "ReadOnly": false, "Required": false, "X": 79.0, "Y": 418.92, "Width": 150.0, "Height": 30.0, "Page": 1, "DiscriminatorType": "AddComboBoxFormFieldDescriptor" },
TypeWriterAnnotation
The following lines of code show you how to write the configuration. First, you have to define the task:
"Tasks": [ { "PageNumber": 1, "TextAlign": "Left", "Position": { "PositionX": 76.0, "PositionY": 664.0 }, "DefaultText": "##ReceiverEmail##", "TextFormat": "", "DefaultTextType": "Email", "FontSettings": { "Id": "f238fef7-87db-400c-91ed-7d58d7d76652", "TextColor": { "A": 255, "R": 0, "G": 0, "B": 0 }, "Name": "Times New Roman", "Size": 11.0, "IsBold": false, "IsItalic": false }, "IsEditablePosition": false, "IsEditableDefaultText": false, "IsEditableFontSettings": false, "IsRequired": false, "Id": "ed6db64d-98fc-497b-be30-ee2a2a2b6f7c", "DocRefNumber": 1, "DiscriminatorType": "TypewriterAnnotation" },
Instead of “Email” in the REST example or “DateTime” in the SOAP example you can place the following placeholders:
Placeholder | Description |
---|---|
ServerTime | Places a text field with the time of the server |
ClientTime | Places a text field with the the time of the client |
SenderFirstName* | Places a text field with the first name of the sender |
SenderLastName* | Places a text field with the last name of the sender |
SenderEmail* | Places a text field with the email of the sender |
ReceiverFirstName* | Places a text field with the first name of the recipient |
ReceiverLastName* | Places a text field with the last name of the recipient |
ReceiverEmail* | Places a text field with the email of the recipient |
For all placeholder with the additional “*” you need either the sender information or the receiver information which are both explained in the section “sender and receiver information”.
Reading Tasks
With the reading task a recipient must confirm reading the document to have the evidence that he/she was reading it.
Generally there are 3 basic ways concerning the range of the reading task:
- Reading task for one page
- Reading task for all pages
- Reading task for a section
Reading task for one page
Note: The reading task must be the first task and it must be required!)
Add the following lines of code within the workstep configuration:
"Tasks": [ { "PositionPage": 1, "AllPages": false, "AllDocuments": false, "IsRequired": true, "Id": "847a3d4a-da2c-46f4-8c8c-a9edaa06c29b", "DisplayName": "your text for this task", "DocRefNumber": 1, "DiscriminatorType": "ReadingTask" }, { "PositionPage": 1, "Position": { "PositionX": 80.22857, "PositionY": 158.8629 }, "Size": { "Height": 68.57143, "Width": 171.4286 }, "AllowedSignatureTypes": [], "UseTimestamp": false, "IsRequired": true, "Id": "93cce567-ae5c-4e98-ac99-9f56ac034250", "DisplayName": "SignField 1", "DocRefNumber": 1, "DiscriminatorType": "Signature" } ]
After adding the reading task within the workstep configuration you can send the document. The result should look like the following:
As you can see, just the first page needs a reading confirmation.
Reading task for all pages
The following lines of code shows you the reading task configuration for all pages:
"Tasks": [ { "PositionPage": 1, "AllPages": true, "AllDocuments": false, "Position": { "PositionX": 50.0, "PositionY": 100.0 }, "Size": { "Height": 40.0, "Width": 400.0 }, "IsRequired": true, "Id": "847a3d4a-da2c-46f4-8c8c-a9edaa06c29b", "DisplayName": "your text for this task", "DocRefNumber": 1, "DiscriminatorType": "ReadingTask" }, { "PositionPage": 1, "Position": { "PositionX": 80.22857, "PositionY": 158.8629 }, "Size": { "Height": 68.57143, "Width": 171.4286 }, "AllowedSignatureTypes": [], "UseTimestamp": false, "IsRequired": true, "Id": "93cce567-ae5c-4e98-ac99-9f56ac034250", "DisplayName": "SignField 1", "DocRefNumber": 1, "DiscriminatorType": "Signature" } ]
The result should look like the following screenshot:
Reading task for a section
The following lines of code shows you how to configure the reading task for a section:
"Tasks": [ { "PositionPage": 1, "AllPages": false, "AllDocuments": false, "Position": { "PositionX": 50.0, "PositionY": 100.0 }, "Size": { "Height": 40.0, "Width": 400.0 }, "IsRequired": true, "Id": "847a3d4a-da2c-46f4-8c8c-a9edaa06c29b", "DisplayName": "your text for this task", "DocRefNumber": 1, "DiscriminatorType": "ReadingTask" }, { "PositionPage": 1, "Position": { "PositionX": 80.22857, "PositionY": 158.8629 }, "Size": { "Height": 68.57143, "Width": 171.4286 }, "AllowedSignatureTypes": [], "UseTimestamp": false, "IsRequired": true, "Id": "93cce567-ae5c-4e98-ac99-9f56ac034250", "DisplayName": "SignField 1", "DocRefNumber": 1, "DiscriminatorType": "Signature" } ]
In the next section you can find a complete workstep configuration with one signature field, one recipient and a reading confirmation for a section:
{ "SspFileIds": [ "##FILEID##" ], "SendEnvelopeDescription": { "Name": "eSignAnyWhere Tutorial", "EmailSubject": "Document of eSignAnyWhere Tutorial", "EmailBody": "Dear #RecipientFirstName#! Please sign this tutorial document.", "DisplayedEmailSender": "", "EnableReminders": true, "FirstReminderDayAmount": 1, "RecurrentReminderDayAmount": 1, "BeforeExpirationDayAmount": 1, "DaysUntilExpire": 2, "CallbackUrl": "", "StatusUpdateCallbackUrl": "", "LockFormFieldsAtEnvelopeFinish": true, "Steps": [ { "OrderIndex": 1, "Recipients": [ { "Email": "##EMAIL##", "FirstName": "##NAME##", "LastName": "##NAME##", "LanguageCode": "en", "EmailBodyExtra": "", "DisableEmail": false, "AddAndroidAppLink": false, "AddIosAppLink": false, "AddWindowsAppLink": false, "AllowDelegation": false, "AllowAccessFinishedWorkstep": false, "SkipExternalDataValidation": false, "AuthenticationMethods": [] } ], "EmailBodyExtra": "", "RecipientType": "Signer", "WorkstepConfiguration": { "WorkstepLabel": "", "SmallTextZoomFactorPercent": 100, "FinishAction": { "ServerActions": [], "ClientActions": [] }, "ReceiverInformation": { "UserInformation": { "FirstName": "##NAME##", "LastName": "##NAME##", "EMail": "##EMAIL##" }, "TransactionCodePushPluginData": [] }, "SenderInformation": { "UserInformation": { "FirstName": "##NAME##", "LastName": "##NAME##", "EMail": "##EMAIL##" } }, "TransactionCodeConfigurations": [ { } ], "SignatureConfigurations": [], "ViewerPreferences": {}, "Policy": { "GeneralPolicies": { "AllowSaveDocument": true, "AllowSaveAuditTrail": true, "AllowRotatingPages": true, "AllowFinishWorkstep": true, "AllowUndoLastAction": true }, "WorkstepTasks": { "PictureAnnotationMinResolution": 0, "PictureAnnotationMaxResolution": 0, "PictureAnnotationColorDepth": "Color16M", "SequenceMode": "SequenceOnlyRequiredTasks", "PositionUnits": "PdfUnits", "ReferenceCorner": "Upper_Left", "Tasks": [ { "PositionPage": 1, "AllPages": false, "AllDocuments": false, "Position": { "PositionX": 50.0, "PositionY": 100.0 }, "Size": { "Height": 40.0, "Width": 400.0 }, "IsRequired": true, "Id": "847a3d4a-da2c-46f4-8c8c-a9edaa06c29b", "DisplayName": "your text for this task", "DocRefNumber": 1, "DiscriminatorType": "ReadingTask" }, { "PositionPage": 1, "Position": { "PositionX": 80.22857, "PositionY": 158.8629 }, "Size": { "Height": 68.57143, "Width": 171.4286 }, "AdditionalParameters": [ { "Key": "enabled", "Value": "1" }, { "Key": "completed", "Value": "0" }, { "Key": "sigType", "Value": "Picture" }, { "Key": "positioning", "Value": "onPage" }, { "Key": "allowedCapturingMethods", "Value": "Click2Sign" } ], "AllowedSignatureTypes": [], "UseTimestamp": false, "IsRequired": true, "Id": "93cce567-ae5c-4e98-ac99-9f56ac034250", "DisplayName": "SignField 1", "DocRefNumber": 1, "DiscriminatorType": "Signature" } ] } } }, "DocumentOptions": [ { "DocumentReference": "1", "IsHidden": false } ], "UseDefaultAgreements": true }, { "OrderIndex": 2, "Recipients": [ { "Email": "##EMAIL##", "FirstName": "Charly", "LastName": "Randomname", "LanguageCode": "en", "EmailBodyExtra": "", "DisableEmail": false, "AddAndroidAppLink": false, "AddIosAppLink": false, "AddWindowsAppLink": false, "AllowDelegation": false, "AllowAccessFinishedWorkstep": false, "SkipExternalDataValidation": false, "AuthenticationMethods": [] } ], "EmailBodyExtra": "", "RecipientType": "Cc", "DocumentOptions": [ { "DocumentReference": "1", "IsHidden": false } ], "UseDefaultAgreements": true } ], "AddFormFields": { "Forms": {} }, "OverrideFormFieldValues": { "Forms": {} }, "AttachSignedDocumentsToEnvelopeLog": false } }
Sending envelope
After you have added all form fields and signatures you can send the envelope to recipients. Therefore, add the file Id and the workstep configuration to the REST call basicURL/envelope/send or in SOAP to the API call SendEnvelope_v1 and send the envelope to the recipients.
Get the envelope
After sending the envelope you can call the api call (basicURL/envelope{envelopeId}) in REST and GetEnvelopeById_v1 in SOAP.
For this api call you just need the envelopeId. After finishing the api call you get all information about the envelope. The next section shows you a sample response.
{ "Status": "InProgress", "Email": "", "LogDocumentId": "", "FinishedDocuments": [], "Steps": [ { "Id": "b3df7533-c3d4-4041-a9a8-16039025dc02", "FirstName": "##NAME##", "LastName": "##NAME##", "OrderIndex": 1, "Email": "##EMAIL##", "LanguageCode": "en", "Status": "NotSigned", "StatusReason": "", "RecipientType": "Signer", "WorkstepRedirectionUrl": "https://demo.xyzmo.com/workstepredirector/sign?identifier=##RedirectionURL##", "AllowAccessFinishedWorkstep": false, "Authentication": [ { "Method": "Pin", "Parameter": "1234", "Filters": [] } ], "IsParallel": false, "WorkstepConfiguration": { "WorkstepLabel": "test", "SmallTextZoomFactorPercent": 100, "FinishAction": { "ServerActions": [ { "CallSynchronous": false, "Action": "https://demo.xyzmo.com/workstepredirector/setfinishaction?wid=##WorkstepId##" } ], "ClientActions": [ { "RemoveDocumentFromRecentDocumentList": false, "CallClientActionOnlyAfterSuccessfulSync": true, "ClientName": "SIGNificant SignAnywhere", "CloseApp": false, "Action": "https://www.esignanywhere.net/" } ] }, "ReceiverInformation": { "UserInformation": { "FirstName": "##NAME##", "LastName": "##NAME##", "EMail": "##EMAIL##" }, "TransactionCodePushPluginData": [] }, "SenderInformation": { "UserInformation": { "FirstName": "##NAME##", "LastName": "##NAME##", "EMail": "##EMAIL##" } }, "TransactionCodeConfigurations": [ { "Id": "otpSignatureSmsText", "HashAlgorithmIdentifier": "Sha256", "Texts": [ ] } ], "SignatureConfigurations": [ { "PdfSignatureProperties": { "PdfAConformant": false, "PAdESPart4Compliant": false, "IncludeSigningCertificateChain": false, "SigningCertificateRevocationInformationIncludeMode": "DoNotInclude" }, "PdfSignatureCryptographicData": { "SignatureHashAlgorithm": "Sha256", "SigningCertificateDescriptor": { "Identifier": "14527a6bcfa8b4d7d0183fca6b735b1c246d14ae", "Type": "Sha1Thumbprint", "Csp": "Default" } } }, { "SpcId": "timestampSigningId", "PdfSignatureProperties": { "PdfAConformant": false, "PAdESPart4Compliant": false, "IncludeSigningCertificateChain": false, "SigningCertificateRevocationInformationIncludeMode": "DoNotInclude", "SignatureTimestampData": { "Uri": "https://timestamp.test.namirialtsp.com", "Username": "xyzmo", "Password": "xyzmo", "SignatureHashAlgorithm": "Sha256" } }, "PdfSignatureCryptographicData": { "SignatureHashAlgorithm": "Sha256", "SigningCertificateDescriptor": { "Identifier": "14527a6bcfa8b4d7d0183fca6b735b1c246d14ae", "Type": "Sha1Thumbprint", "Csp": "Default" } } }, { "SpcId": "padesSigningId", "PdfSignatureProperties": { "PdfAConformant": false, "PAdESPart4Compliant": true, "IncludeSigningCertificateChain": false, "SigningCertificateRevocationInformationIncludeMode": "IncludeDss" }, "PdfSignatureCryptographicData": { "SignatureHashAlgorithm": "Sha256", "SigningCertificateDescriptor": { "Identifier": "14527a6bcfa8b4d7d0183fca6b735b1c246d14ae", "Type": "Sha1Thumbprint", "Csp": "Default" } } }, { "SpcId": "padesTimestampSigningId", "PdfSignatureProperties": { "PdfAConformant": false, "PAdESPart4Compliant": true, "IncludeSigningCertificateChain": false, "SigningCertificateRevocationInformationIncludeMode": "IncludeDss", "SignatureTimestampData": { "Uri": "https://timestamp.test.namirialtsp.com", "Username": "xyzmo", "Password": "xyzmo", "SignatureHashAlgorithm": "Sha256" } }, "PdfSignatureCryptographicData": { "SignatureHashAlgorithm": "Sha256", "SigningCertificateDescriptor": { "Identifier": "14527a6bcfa8b4d7d0183fca6b735b1c246d14ae", "Type": "Sha1Thumbprint", "Csp": "Default" } } }, { "SpcId": "padesRemoteCertificateSigningId", "PdfSignatureProperties": { "PdfAConformant": false, "PAdESPart4Compliant": true, "IncludeSigningCertificateChain": false, "SigningCertificateRevocationInformationIncludeMode": "IncludeDss" }, "PdfSignatureCryptographicData": { "SignatureHashAlgorithm": "Sha256", "SigningCertificateDescriptor": { "Identifier": "14527a6bcfa8b4d7d0183fca6b735b1c246d14ae", "Type": "Sha1Thumbprint", "Csp": "Default" } } }, { "SpcId": "padesRemoteCertificateTimestampSigningId", "PdfSignatureProperties": { "PdfAConformant": false, "PAdESPart4Compliant": true, "IncludeSigningCertificateChain": false, "SigningCertificateRevocationInformationIncludeMode": "IncludeDss", "SignatureTimestampData": { "Uri": "https://timestamp.test.namirialtsp.com", "Username": "xyzmo", "Password": "xyzmo", "SignatureHashAlgorithm": "Sha256" } }, "PdfSignatureCryptographicData": { "SignatureHashAlgorithm": "Sha256", "SigningCertificateDescriptor": { "Identifier": "14527a6bcfa8b4d7d0183fca6b735b1c246d14ae", "Type": "Sha1Thumbprint", "Csp": "Default" } } }, { "SpcId": "automaticSigningId", "PdfSignatureProperties": { "PdfAConformant": false, "PAdESPart4Compliant": false, "IncludeSigningCertificateChain": false, "SigningCertificateRevocationInformationIncludeMode": "DoNotInclude" }, "PdfSignatureCryptographicData": { "SignatureHashAlgorithm": "Sha256", "SigningCertificateDescriptor": { "Identifier": "14527a6bcfa8b4d7d0183fca6b735b1c246d14ae", "Type": "Sha1Thumbprint", "Csp": "Default" } } }, { "SpcId": "automaticTimestampSigningId", "PdfSignatureProperties": { "PdfAConformant": false, "PAdESPart4Compliant": false, "IncludeSigningCertificateChain": false, "SigningCertificateRevocationInformationIncludeMode": "DoNotInclude", "SignatureTimestampData": { "Uri": "https://timestamp.test.namirialtsp.com", "Username": "xyzmo", "Password": "xyzmo", "SignatureHashAlgorithm": "Sha256" } }, "PdfSignatureCryptographicData": { "SignatureHashAlgorithm": "Sha256", "SigningCertificateDescriptor": { "Identifier": "14527a6bcfa8b4d7d0183fca6b735b1c246d14ae", "Type": "Sha1Thumbprint", "Csp": "Default" } } }, { "SpcId": "swissComSigningId", "PdfSignatureProperties": { "PdfAConformant": false, "PAdESPart4Compliant": true, "IncludeSigningCertificateChain": false, "SigningCertificateRevocationInformationIncludeMode": "IncludeDss" }, "PdfSignatureCryptographicData": { "SignatureHashAlgorithm": "Sha256", "SigningCertificateDescriptor": { "Identifier": "14527a6bcfa8b4d7d0183fca6b735b1c246d14ae", "Type": "Sha1Thumbprint", "Csp": "Default" } } } ], "ViewerPreferences": { "FinishWorkstepOnOpen": false, "VisibleAreaOptions": { "AllowedDomain": "*", "Enabled": false } }, "ResourceUris": { "SignatureImagesUri": "https://demo.xyzmo.com/Resource/SignatureImages/?link=1NB8ErluKvwtK3g7VVj4PvoPlDStEIYcIkbMequyIb2k2OMxZGqFHgVK2vy8WtBzP" }, "Policy": { "GeneralPolicies": { "AllowSaveDocument": true, "AllowSaveAuditTrail": true, "AllowRotatingPages": false, "AllowAppendFileToWorkstep": false, "AllowAppendTaskToWorkstep": false, "AllowEmailDocument": true, "AllowPrintDocument": true, "AllowFinishWorkstep": true, "AllowRejectWorkstep": true, "AllowRejectWorkstepDelegation": true, "AllowUndoLastAction": true, "AllowColorizePdfForms": false, "AllowAdhocPdfAttachments": false, "AllowAdhocSignatures": false, "AllowAdhocStampings": false, "AllowAdhocFreeHandAnnotations": false, "AllowAdhocTypewriterAnnotations": false, "AllowAdhocPictureAnnotations": false, "AllowAdhocPdfPageAppending": false }, "WorkstepTasks": { "PictureAnnotationMinResolution": 0, "PictureAnnotationMaxResolution": 0, "PictureAnnotationColorDepth": "Color16M", "SequenceMode": "NoSequenceEnforced", "PositionUnits": "PdfUnits", "ReferenceCorner": "Lower_Left", "Tasks": [ { "PositionPage": 1, "Position": { "PositionX": 65.0, "PositionY": 602.0 }, "Size": { "Height": 80.0, "Width": 190.0 }, "AdditionalParameters": [ { "Key": "enabled", "Value": "1" }, { "Key": "positioning", "Value": "onPage" }, { "Key": "req", "Value": "1" }, { "Key": "fd", "Value": "" }, { "Key": "fd_dateformat", "Value": "dd-MM-yyyy HH:mm:ss" }, { "Key": "fd_timezone", "Value": "datetimeutc" } ], "AllowedSignatureTypes": [ { "AllowedCapturingMethod": "Click2Sign", "Id": "5d8de01a-b924-4d87-98c9-cc45909c0b4b", "DiscriminatorType": "SigTypeClick2Sign", "Preferred": false, "StampImprintConfiguration": { "DisplayExtraInformation": true, "DisplayEmail": true, "DisplayIp": true, "DisplayName": true, "DisplaySignatureDate": true, "FontFamily": "Times New Roman", "FontSize": 11.0 } } ], "UseTimestamp": false, "IsRequired": true, "Id": "1#XyzmoDuplicateIdSeperator#Signature_a9cd7f4f-6c7d-ff20-dc3f-dea0a4638bd4", "DisplayName": "", "DocRefNumber": 1, "DiscriminatorType": "Signature" }, { "Forms": [ { "IsScrollAllowed": false, "IsComb": false, "MaxLength": 0, "IsMultiLine": false, "IsPassword": false, "IsFileSelect": false, "IsRequired": false, "Id": "TextBox_4e277dde-23c4-8a81-103a-f84abd798a8a", "PositionPage": 1, "DocRefNumber": 1, "Position": { "PositionX": 71.0, "PositionY": 558.0 }, "Size": { "Height": 20.0, "Width": 126.0 }, "IsHidden": false, "ExportValue": "", "Description": "", "KeepExistingValue": true, "DiscriminatorType": "TextBox" } ], "IsRequired": false, "Id": "73df5772-d204-40ca-908e-34d43891bc01", "DisplayName": "", "DocRefNumber": 1, "DiscriminatorType": "FormGroup" } ] } }, "Navigation": { "HyperLinks": [], "Links": [], "LinkTargets": [] } } }, { "Id": "68b7605b-8403-40ee-896e-e896be5459fc", "FirstName": "##NAME##", "LastName": "##NAME##", "OrderIndex": 2, "Email": "##EMAIL##", "LanguageCode": "en", "Status": "NotSigned", "StatusReason": "", "RecipientType": "Cc", "WorkstepRedirectionUrl": "", "AllowAccessFinishedWorkstep": false, "IsParallel": false, "WorkstepConfiguration": { "SmallTextZoomFactorPercent": 100, "ViewerPreferences": {}, "Policy": { "GeneralPolicies": { "AllowRotatingPages": true, "AllowFinishWorkstep": true, "AllowUndoLastAction": true }, "WorkstepTasks": { "PictureAnnotationMinResolution": 0, "PictureAnnotationMaxResolution": 0, "PictureAnnotationColorDepth": "Color16M", "SequenceMode": "NoSequenceEnforced", "PositionUnits": "PdfUnits", "ReferenceCorner": "Lower_Left", "Tasks": [] } } } } ] } ], "Documents": [ { "PageSizesInPoints": [ { "Height": 792.0, "Width": 612.0 } ], "DocRefNumber": 1, "FileName": "Test.pdf", "FormFields": [ { "Name": "TextBox_4e277dde-23c4-8a81-103a-f84abd798a8a", "Values": [ { "Key": "", "Value": "" } ] } ] } ], "Id": "b94e4d2a-9901-48d5-8896-effd2cc17a96", "Bulk": "", "BasicOptions": { "Name": "test", "EmailSubject": "Please sign the enclosed envelope", "EmailBody": "Dear #RecipientFirstName# #RecipientLastName#\n\n#PersonalMessage#\n\nPlease sign the envelope #EnvelopeName#\n\nEnvelope will expire at #ExpirationDate#", "EnableReminders": true, "FirstReminderDayAmount": 5, "RecurrentReminderDayAmount": 3, "BeforeExpirationDayAmount": 3 } }
Download the document(s)
With the following URI you can download the documents: basicURL/envelope/downloadCompletedDocument/{documentId} in REST and DownloadCompletedDocument_v1 in SOAP.
You can only download the documents if the envelope is finished (Status: “Completed”). In the section before (getenvelope) you can see that the envelope has the Status: “In Progress”. After finishing the envelope you should see that the status changed to completed.
You can download the following documents:
- LogDocument
- LogXmlDocument
- FlowDocument
Note: If you send an envelope with a disposable signature you can also see the disclaimerDocument available for download.