On 19th November 2024 it will be dismissed.
The documentation is available in the new Confluence Site: - https://namirial.atlassian.net/wiki
This sample guides you through the configuration of the workstep. Generally the following steps are necessary to test the workstep configuration.
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
The workstep configuration is the core of the envelope. Within the workstep configuration you can define following settings:
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.
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 } }
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:
"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>", ...
<AdditionalClientWorkstepInformation> <test id='test'>Some Information</test> </AdditionalClientWorkstepInformation>
"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>
Note: The following information is valid for envelopes as well as for drafts: Settings for the relative time:
Settings for the absolute time:
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:
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 }
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.
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/" } ] },
"SenderInformation": { "UserInformation": { "FirstName": "##NAME##", "LastName": "##NAME##", "EMail": "##EMAIL##" } }, },
"ReceiverInformation": { "UserInformation": { "FirstName": "##NAME##", "LastName": "##NAME##", "EMail": "##EMAIL##" } },
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):
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):
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" } ] } } },
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" } ] } } },
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" } ] } } }, },
"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" } ] } } },
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.
Needs Rework
Requires an update regarding (minor) changes in the API - difference between traditional and lean disposable
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. Documentation for long-lived disposable is available on request.
{ "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 } }
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>
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 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>
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.
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##" } ]
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 } ] } }
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" }] } } } }] } }
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 } }
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:
In the next two collapses you can find the configuration for the Pin-authentication and for the SMS-authentication:
{ "Method": "Pin", "Parameter": "1234" }
{ "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" } ] } ],
The following list shows you all different form fields which can be placed on the document:
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:
This applies to all form fields.
"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" },
{ "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" },
{ "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" },
{ "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" },
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 } }
{ "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”.
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" },
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”.
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:
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.
The following lines of code shows you the reading task configuration for all pages:
"Tasks": [ { "PositionPage": 1, "AllPages": false, "AllDocuments": true, "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:
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 } }
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.
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 } }
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:
Note: If you send an envelope with a disposable signature you can also see the disclaimerDocument available for download.