Developer FAQ

 Customization: How can I customize emails and languages?
You can configure email templates and languages for your eSignAnyWhere signers. It may also helpful if you have a look in the user guide settings section.
 Customization: How can I customize the eSignAnyWhere UI?

There are two possibilities to customize the UI

  • eSignAnyWhere UI for Signers: you can customize it by changing the template
  • eSignAnyWhere UI for Users (Backoffice): this can just be done in a private cloud instance or on premise. For more information contact us.
 How to use the REST Interface, Testing and Tools?

eSignAnyWhere offers you a REST interface. See our API documentation for the basic information about our interfaces. Most programming languages offer you simple REST interfaces moreover for the beginning you may start with Postman, a webservice testing tool.

 API: Can I prefill PDF Forms?

You can prefill PDF form field with values via API.

Configuration for prefill PDF forms:

"OverrideOptions": {
    "Name": "string",
    "MetaData": "string",
    "AddDocumentTimestamp": true,
    "ShareWithTeam": true,
    "LockFormFieldsOnFinish": true,
    "UnassignedElements": {
      "SequenceMode": "NoSequenceEnforced",
      "TextBoxes": [
        {
          "ElementId": "string",
          "Required": true,
          "Value": "string",
          "DocumentNumber": 0,
          "Validation": {
            "Type": "None",
            "DateValidationConfiguration": {
              "Format": "string",
              "Range": {
                "From": "string",
                "To": "string"
              }
            },
            "NumberValidationConfiguration": {
              "DecimalDigits": 0,
              "Symbol": "string",
              "SymbolLocation": "Start",
              "GroupSeparator": "Comma",
              "DecimalSeparator": "Comma",
              "Range": {
                "From": "string",
                "To": "string"
              }
            },
            "PhoneValidationConfiguration": {
              "Type": "International"
            },
            "TimeValidationConfiguration": {
              "Format": "string",
              "Range": {
                "From": "string",
                "To": "string"
              }
            }
          },
          "FieldDefinition": {
            "ReadOnly": true,
            "MaxLength": 0,
            "IsMultiline": true,
            "IsPassword": true,
            "IsFileSelect": true,
            "IsScrollAllowed": true,
            "IsCombined": true,
            "TextFormat": {
              "TextColor": "string",
              "FontSizeInPt": 0,
              "FontName": "string",
              "Bold": true,
              "Italic": true,
              "TextAlign": "Left"
            },
            "Position": {
              "PageNumber": 0,
              "X": 0,
              "Y": 0
            },
            "Size": {
              "Width": 0,
              "Height": 0
            }
          },
          "TaskConfiguration": {
            "GroupedOrderDefinition": {
              "GroupId": "string",
              "OrderIndex": 0
            }
          }
        }
      ],
 API: Can I send multiple documents within one envelope?

Yes, just add two ore more documents within the tag in the API call send envelope:

"Documents": [{
            "FileId": "3c816859-1234-1234-b5ef-3b52a3af1c77",            
            "DocumentNumber": 1
        },
        {
            "FileId": "3c816859-1234-1234-b5ef-3b52a3af1c77",            
            "DocumentNumber": 2
        }
    ],

After this configuration you can send an envelope as usual but with multiple documents.

 API / Integration: How do I embed eSignAnyWhere Designer in my application?

First you have to create a draft and configure the option to allow an external designer (allowAgentRedirect).

"AgentRedirectConfiguration": {
    "Policy": "None",
    "Allow": true,
    "IframeWhitelisting": [
      "string"
    ]
  },

The option allowAgentRedirect enables an anonymous designer integration (without eSignAnyWhere Login) and iFrameWhiteList extends the HTTP header with a list to integrate in your web application or portal (via X-FRAME-OPTIONS).

The designer can be embedded by modifying the following string:

http://www.significant.com/AgentRedirect/index?draftid=#envelopeid#

If the draft is finished you can start the envelope.

 API / Integration: Suppress sending email for recipient

If you don’t want to send an email to a specific recipient, you just have to add the following configuration to the envelope JSON ("DisableEmail": true):

 API / Integration: How often is the callback URL retried?
eSignAnyWhere it calling the Callback URL 30 times. With the timeout this should be enough to recover if the called system is down for a few minutes.
 API / Integration: How to modify SMS OTP message (language and content)?

With the feature flag ActivityEngineCustomLocalizations it is possible to change the language and content of SMS OTP messages.

General process:

  1.  Make a copy of the file provided for downloading in the organization settings in the section Activity-Engine Custom Localizations
  2. Rename it to include the language code of the target language (e.g. Localizations.de.custom.json)
  3. Open the copied file
  4. Find the items you want to change and adapt the values accordingly,
  5. Remove all other items (which still have the default value) to receive updates automatically after a software update

For available default languages see Language Support
Attention: SMS length restrictions apply for entries in group 'transactionCodeConfigurations'"

For more information about the modifying of messages and the integration please have a look at Organization Settings#Activity-EngineCustomLocalizations eSignAnyWhere Release News (v 23.49) and /wiki/spaces/eSign/pages/91992775

 API / Integration: Envelope is finished, but status is still "in Progress".
If you have a finished envelope (all recipients finished) and the state of the envelope is still “in Progress”, the reason could be the post processing (the callback). The callback expects a HTTP 200 and if an error is returned it tries to call the callback after some time again (up to 30 times). This could delay the “finished” or “error” of the envelope.
 API / Integration: Envelope is in state "started", but the "workstepRedirectionUrl" is empty

The problem is, that the envelope is not yet in the correct status.
The current status is “Started”. This means, that the link for the first recipient is not yet being created.

You have to wait until the status is “InProgress”.

Another option would be to either…

  • set “suppressEmails” on the recipient
  • or to check “Prevent emails from being sent :” on the organization (using the Admin Web site)

Then the link will be generated immediately when calling send envelope.

If you use regular notifications (emails), the link is sent to the recipient as soon as the Workstep is ready.

 API / Integration: Set a reading task, so that the signer has to confirm the reading
You can define a reading task, so that the signer has to confirm the reading of the envelope. Details about the configuration you find in the Reading Task Guide.
 API / Integration: Can I store Meta data in the envelopes

Yes, you can store your own meta data in the envelopes.

{
  "Documents": [
    {
      "FileId": "string",
      "DocumentNumber": 0
    }
  ],
  "Name": "string",
  "MetaData": "string",

The metaData element allows you to store additional, non-eSAW-data (e.g. for archiving) directly in the envelope. The callback-integrating solution then can download the files (PDF & Audit-Trail) and store them directly in the archive.

 API / Integration: What envelope status are available?
EnvelopeBulk
  • Draft
    • Not sent envelope
  • Canceled
    • Envelope which was canceled by the sender. (final state).
  • Completed
    • Envelope which does not need any more actions (final state).
  • Expired
    • Envelope reached expiration date. Can be restarted with a new expiration date.
  • Rejected
    • Rejected by one of the envelope recipient.
  • Template
    • Template which can be used to create envelopes with a given configuration.
  • ActionRequired
    • Waiting for your action.
  • WaitingForOthers
    • Waiting for actions of other recipients.
  • ExpiringSoon
    • The expiration date will soon the be reached.
  • InProgress
    • The envelope is in progress, waiting for next recipient in the order to do his/her action.
  • Draft
    • Not sent envelope
  • Canceled
    • Envelope which was canceled by the sender. (final state).
  • Completed
    • Envelope which does not need any more actions (final state).
  • Expired
    • Envelope reached expiration date. Can be restarted with a new expiration date.
  • Rejected
    • Rejected by one of the envelope recipient.
  • Template
    • Template which can be used to create envelopes with a given configuration.
  • Started
    • The envelope was started but needs to setup further metrics to the into status InProgress
  • CompletedWithWarnings
    • Warnings concerning long lived disposable
  • BulkCompleted
    • All envelopes of a bulk are completed
  • BulkPartlyCompleted
    • Not all envelopes of a bulk are completed
  • InProgress
    • The envelope is in progress, waiting for next recipient in the order to do his/her action.
 Integration: How do I use SIGNificant Apps with eSignAnyWhere or catch the WorkstepId?

eSAW supports to send out links for the SIGNificant products automatically via notifications. Therefore you just have to add to the recipient configuration the following parameters:

 "IncludedEmailAppLinks": {
              "Android": true,
              "iOS": true,
              "Windows": true
            },

Otherwise you can connect one workstep of eSignAnyWhere with one of the SIGNificant Apps. First you call the get envelope by Id with the envelopeID you got in the send envelope call. In the result you will find the workstepRedirectionURL. This URL forwards the SignAnywhere Viewer (Web-Client), but with the additional parameter &responseType=returnWorkstepId it returns the workstepId. Example:

https://demo.xyzmo.com/workstepredirector/sign?identifier=8WNDxmUVr5V/aV1AAN49xjKuVsHMQEIQVuM/ktLNw1jOfWgaovF2mDg3uW9JJbp5Q/k7Yz92eoo=&responseType=returnWorkstepId

With this WorkstepId you can now connect the SIGNificant product to the document. If the document is finished the workflow continues automatically.

Other parameters are:

  • responseType=redirectToViewer – redirects to SAW Viewer (default)
  • responseType=redirectToAndroidApp – redirects to Android App
  • responseType=redirectToIOsApp – redirects to iOS App
  • responseType=redirectToWindowsApp – redirects to Windows App
  • responseType=returnWorkstepId – returns the WorkstepId for other integration types
 Integration: Custom callbacks on specific events
If you want to get a callback on specific events, e.g. when a signer rejects the agreement, you can use the following guide.
 Documents: How are PDF and PDF/A document types handled by eSignAnyWhere?
If you upload a PDF/A document to eSignAnyWhere it stays through the workflow a PDF/A valid document. If you are starting with a non-PDF/A document, the final document will be also a non-PDF/A document.
 Documents: Is there a simple placeholder for signature fields in documents?

Yes, you may use our SigStrings to place signature fields in documents. You just have to type a string (the simplest version: `sig`) in the document and eSignAnyWhere is placing a signature field for you automatically. Here you get more information about our placeholders.

If you want to use more complex tags (e.g. for form fields, radio buttons, etc.) you may be interested in our advanced tags. This can be found in our Placeholder Use Case.

 Adobe Reader says that documents are not valid signed
This is typically caused by an outdated Adobe Reader with not update-to-date certificates. Please install a new version or perform an update of the certificates (Settings > Trust Manager > Update AATL/EUTL).