Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info
titleAttention

Please note that this documentation and the links refer to the api v6. For more information please see the  migration guide and the documentation related to v5.

Introduction

On this page you will find the eSAW API description. First we start with a basic overview of the API. If you are looking for examples we recommend the Postman Sample, Envelope structure and our Stories and Examples.

Table of Contents
stylecircle

Overview and references

The API is for developers, who want to integrate eSignAnyWhere into their application and for administrators, who want to script interactions with eSignAnyWhere (e.g. user synchronization).

Quick Overview: eSAW uses REST (with JSON) as API. The basic workflow is to upload a document  and then send the envelope with a envelope configuration. Optional, before sending the envelope, it is possible to prepare the envelope to get the workstep configuration for sending the envelope. For more information about the envelope configuration please also have a look at the Envelope Structure. The configuration consists out of the envelope part (workflow configuration) and for each action a definition and a signing configuration (workstep configuration). The workstep configuration is the description (as JSON for REST) of tasks for signer (e.g. Signature Fields, Form-Fields) and additional document configurations.

The easiest way to start is enabling the DeveloperMode for a user. As developer (and power user) you can send envelopes via eSignAnywhere in the UI and download the complete envelope configuration (including the workstep configurations). So eSAW can be a seen as configuration designer, where you can easily prepare the envelope configuration. After you downloaded the configuration you just have to replace the recipient information and configuration.

Resources


Info

REST API /v3 and /v4 DEPRECATION: The 23.76 (published March 2024) will be the last LTS version that includes these API versions. By early June 2024, the REST API routes to v3/v4 will be deactivated on DEMO. Early December 2024, the REST API routes to v3/v4 will be removed from feature stream releases. Note that there is no date communicated yet to discontinue REST APIv5 (and where v5 refers to v4 routes, these will still remain); however we recommend to use the /v6 API specification already.

Introduction

On this page you will find the eSAW API description. First we start with a basic overview of the API. If you are looking for examples we recommend the Postman Sample, Envelope structure and our Stories and Examples.

Table of Contents
stylecircle

Principles of Api v6

Detailed information about all changes between api v5 and api v6 can be found here: migration guide.

  • Reduced HTTP verbs
    • Only HTTP GET and POST
  • Consistent naming and symmetric structures within api v6
  • Consistency between Web User Interface (WebUI) and api v6 in features but also naming
    • Positive wording (e.g. prevent sharing with team changed to share with team) 
  • Simplified terminology and structures
  • No abstract types any more

Changes has been made on api method level as well as the JSON structures and the envelope status values changed.

Overview and references

The API is for developers, who want to integrate eSignAnyWhere into their application and for administrators, who want to script interactions with eSignAnyWhere (e.g. user synchronization).

Quick Overview: eSAW uses REST (with JSON) as API. The basic workflow is to upload a document  and then send the envelope with a envelope configuration. Optional, before sending the envelope, it is possible to prepare the envelope to get the workstep configuration for sending the envelope. For more information about the envelope configuration please also have a look at the Envelope Structure. The configuration consists out of the envelope part (workflow configuration) and for each action a definition and a signing configuration (workstep configuration). The workstep configuration is the description (as JSON for REST) of tasks for signer (e.g. Signature Fields, Form-Fields) and additional document configurations.

The easiest way to start is enabling the DeveloperMode for a user. As developer (and power user) you can send envelopes via eSignAnywhere in the UI and download the complete envelope configuration (including the workstep configurations). So eSAW can be a seen as configuration designer, where you can easily prepare the envelope configuration. After you downloaded the configuration you just have to replace the recipient information and configuration.

Resources

REST API Reference (Swagger)   | >= 3.1 |https://demo.esignanywhere.net/Api
REST tutorialsThis turorials help getting familiar with the API technology and the most common tools to do first tests of API calls already before implementing your own integration code.
visit REST tutorial using Postman
Tutorial: Hello World
REST API Reference (Swagger)   | >= 3.1 |https://demo.esignanywhere.net/Api
REST tutorialsThis turorials help getting familiar with the API technology and the most common tools to do first tests of API calls already before implementing your own integration code.
visit REST tutorial using Postman
Tutorial: Hello World*

This tutorial allows to dig into the API integration of eSignAnyWhere a bit deeper. It focuses on audience already familiar with tools to run API calls, such as Postman or SoapUI.

visit Hello World Tutorial

Developer mode*visit developer mode
Sample Code in Java

Here you can find the java sample: Download. (Contains example with REST, developed with JavaSE-12)

SignAnyWhere Viewer 2019

Redesign

visit SignAnyWhere Viewer 2019 Information
SignAnyWhere Viewer Extended Customizationvisit SignAnyWhere Viewer Extended Customization
Integration & Use Casesvisit Integration & Use Cases
Developer FAQvisit Developer FAQ
eSAW Error Codesvisit eSAW Error Codes

...

String and array objects are validated. If hovering over an object in the model section on e.g. https://demo.esignanywhere.net/Api/swagger/ui/index you can see which validation is performed. In the following sample the validation for the Documents array is such that at least one document must be added and maximum of 50 documents are allowed.

Image RemovedModel Items LimitationImage Added

For string objects, the length is validated. In the following sample, a maximum of 100 characters is checked for the string Name.

Image RemovedModel Length LimitationImage Added

Ids have a fixed length, therefore the minimum and maximum values are the same:

Image RemovedModel Lengths LimitationImage Added

Authorization

This section covers the authorization options for REST-API integrations. For the authorization you have different options with REST API; as described in the next chapters. If you are authorized you will get a HTTP/200 Ok info. Otherwise you will get a 401 Unauthorized error.

...

Consider, that our system expects the full callback url, including the parameter list you expect, with the placeholders that should be replaced by values at runtime. You can also add your own paramter parameter for that envelope (e.g. internal references). Moreover, on our shared SaaS environments only HTTPS callbacks (port 443, and 1025-65535) callbacks are allowed.

Placehoder for callback URL:

...

Consider, that our system expects the full callback url, including the parameter list you expect, with the placeholders that should be replaced by values at runtime. You can also add your own paramter parameter for that envelope (e.g. internal references). Moreover, on our shared SaaS environments only HTTPS callbacks (port 443, and 1025-65535) callbacks are allowed.

Sample:

https://www.mycallback.at?envelope=##EnvelopeId##&action=##Action##

...

Code Block
languagejava
themeEclipse
  "CallbackConfiguration": {
    "CallbackUrl": "string",
    "StatusUpdateCallbackUrl": "string",
    "StepActionCallbackConfigurationActivityActionCallbackConfiguration": {
      "Url": "string",
      "ActionCallbackSelection": {
        "ConfirmTransactionCode": true,
        "DefaultEventType": true,
        "AgreementAccepted": true,
        "AgreementRejected": true,
        "RequestPrepareAuthenticationInformationSuccess": true,
        "PrepareAuthenticationSuccess": true,
        "AuthenticationFailed": true,
        "AuthenticationRejected": true,
        "AuthenticationSuccess": true,
        "ReAuthenticationFailed": true,
        "AuditTrailRequested": true,
        "AuditTrailXmlRequested": true,
        "CalledPage": true,
        "WhoIsInformation": true,
        "DocumentDownloaded": true,
        "FlattenedDocumentDownloaded": true,
        "AddedAnnotation": true,
        "AddedAttachment": true,
        "AppendedDocument": true,
        "FormsFilled": true,
        "ConfirmReading": true,
        "PageViewChanged": true,
        "SendTransactionCode": true,
        "PrepareSignWorkstepDocument": true,
        "SignWorkstepDocument": true,
        "UndoAction": true,
        "WorkstepCreated": true,
        "WorkstepFinished": true,
        "WorkstepRejected": true,
        "DisablePolicyAndValidityChecks": true,
        "EnablePolicyAndValidityChecks": true,
        "AppendFileToWorkstep": true,
        "AppendTasksToWorkstep": true,
        "SetOptionalDocumentState": true,
        "PreparePayloadForBatch": true
      }
    }
  },

...

These events are fired by the Workstep Controller (internal component) and are fired before the data in eSAW is complete updated (some post-processing is required). Therefore this event callbacks are used only in rare integrations.

Available Event Types

...

For more information please see https://demo.esignanywhere.net/Api/swagger/ui/index#!/Envelope/Envelope_Send section EnvelopeSendActionCallbackSelection

Available Event Types

TypeDescription
ConfirmTransactionCode A transaction code was sent
AgreementAccepted The user accepted the agreement
AgreementRejectedThe user rejected the agreement
PrepareAuthenticationSuccessThe prepare authentication process succeeded
AuthenticationFailedThe user failed to authenticate
AuthenticationSuccessThe user succeeded to authenticate
AuditTrailRequestedThe audittrail was requested
AuditTrailXmlRequestedThe audittrail XML was requested
CalledPageThe viewer site was requested
DocumentDownloadedThe document download was requested
FlattenedDocumentDownloadedThe flattened document download was requested
AddedAnnotationAn annotation was added
AddedAttachmentAn attachment was added
AppendedDocumentA document was appended
FormsFilledA form field was filled
ConfirmReadingA reading task was completed
PageViewChangedNote: This event is only used for the audit trail, no notification is sent to the configured URL. The user changed the page view (e.g. by scrolling through the document).
SendTransactionCodeThis event is raised, when a TransactionCode for a signature with type TransactionCode has been sent using the IdentityServer or the TransactionCodeSenderPlugin
PrepareSignWorkstepDocumentA signature is prepared for signing
SignWorkstepDocumentTry to sign a signature
UndoActionAn action was undone
WorkstepCreatedA workstep was created
WorkstepFinishedA workstep was finished
WorkstepRejectedA workstep was rejected
DisablePolicyAndValidityChecksThe policy and validity checks have been disabled. 
EnablePolicyAndValidityChecksThe policy and validity checks have been enabled. 
AppendFileToWorkstepA file was appended to the workstep
AppendTasksToWorkstepA task was added to the workstep
SetOptionalDocumentStateA optional document became either active or inactive
PreparePayloadForBatchThe payload is getting prepared for batch signing

Draft Callbacks

Draft callbacks are fired, if a draft is used or deleted. The draft callback is set in the “CreateDraftOptions” (“AfterSendCallbackUrl”: “”), via the following call: https://demo.esignanywhere.net/Api/swagger/Draft/Draft_Create

  • ##DraftId##
  • #Action##
    • draftDiscarded
    • draftSent

Sample:

https://www.mycallback.at?draft=##DraftId##

Draft Callbacks

Draft callbacks are fired, if a draft is used or deleted. The draft callback is set in the “CreateDraftOptions” (“AfterSendCallbackUrl”: “”), via the following call: https://demo.esignanywhere.net/Api/v6/envelope/create

  • ##DraftId##
  • #Action##
    • draftDiscarded
    • draftSent

Sample:

https://www.mycallback.at?draft=##DraftId##

Error

In general, our REST endpoint returns different HTTP status codes:

...

The request cannot be processed.

...