Versions Compared

Key

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

...

Expand
titleHow to use the SOAP or REST Interface, Testing and Tools?

eSignAnyWhere offers you an SOAP and a REST interface. It uses authentication and XML for the datastructures. See our API documentation for the basic information about our interfaces. Most programming languages offer you simple SOAP/REST interfaces moreover for the beginning you may start with SoapUI, a webservice testing tool.

...

Expand
titleAPI / Integration: How to modify SMS OTP message (language and content)?

You can modify the message and also the language of the SMS OTP sent via API. The easiest way is to call the GetAdHocWorkstepConfiguration_v1 to recive a default workstep for the document or you can modify it directly via API (see example below).

Following Three types can be defined (inclusive max character length - GSM-7 (3GPP TS 23.038 / GSM 03.38) standard):

  • smsAuthTransactionCodeId (SMS Authentication Message)
    • disposableCertificateEnrolAndSignSmsText (Disposable Certificate Message)
      • Text (excluding placeholders) must not be longer than 146 characters. (If any character not-compliant to the standard will be used, the limit is reduced to 52!)
    • disposableCertificateEnrolAndSignSmsText (Disposable remoteCertificateSignSmsText (Remote Certificate Message)
        As tag {tId} (Transaction ID) and {Token} (Token
          • Text (excluding placeholders) must not be longer than 150 characters. (If any character not-compliant to the standard will be used, the limit is reduced to 60!)
        • remoteCertificateSignSmsText (Remote Certificate Message)
          • Text (excluding placeholders) must not be longer than 150 characters. (If any character not-compliant to the standard will be used, the limit is reduced to 60!)
        • otpSignatureSmsText (SMS OTP-Signature Message)
          • Text (excluding placeholders) must not be longer than 146 characters. (If any character not-compliant to the standard will be used, the limit is reduced to 52!)
        • swissComSign
          • Text must not be longer than 160 characters. (If any character not-compliant to the standard will be used, the limit is reduced by half!)
        • bankIdSignText
          • Text must not be longer than 160 characters. (If any character not-compliant to the standard will be used, the limit is reduced by half!)

        Please note the following: The tag {tId} (Transaction ID) and {Token} (Token) must be defined in the message. If you do not define a language attribute, this will be used as fallback or specified language or recipient does not exists.

        Please see the following sample configuration for an otp signature:

        Code Block
        languagejava
        themeEclipse
        {
          "SspFileIds": [
            "e686d325-1234-1234-1234-f33cc522f38c"
          ],
          "SendEnvelopeDescription": {
          "Name": "test",
          "DisplayedEmailSender": "",
          "EnableReminders": true,
          "FirstReminderDayAmount": 5,
          "RecurrentReminderDayAmount": 3,
          "BeforeExpirationDayAmount": 3,
          "ExpirationInSecondsAfterSending": 2419200,
          "CallbackUrl": "",
          "StatusUpdateCallbackUrl": "",
          "LockFormFieldsAtEnvelopeFinish": false,
          "Steps": [
            {
              "OrderIndex": 1,
              "Recipients": [
                {
                  "Email": "##Email##",
                  "FirstName": "##Name##",
                  "LastName": "##Name##",
                  "LanguageCode": "en",
                  "EmailBodyExtra": "",
                  "DisableEmail": false,
                  "AddAndroidAppLink": false,
                  "AddIosAppLink": false,
                  "AddWindowsAppLink": false,
                  "AllowDelegation": true,
                  "AllowAccessFinishedWorkstep": false,
                  "SkipExternalDataValidation": false,
                  "AuthenticationMethods": [],
                  "IdentificationMethods": [],
                  "OtpData": {
                    "PhoneMobile": "##PhoneNumber##"
                  }
                }
              ],
              "EmailBodyExtra": "",
              "RecipientType": "Signer",
              "WorkstepConfiguration": {
                "WorkstepLabel": "test",
                "SmallTextZoomFactorPercent": 100,
                
                "TransactionCodeConfigurations": [
                     {
                    "Id": "otpSignatureSmsText",
                    "HashAlgorithmIdentifier": "Sha256",
                    "Texts": [
                       {
                    "Language": "en",
                    "Value": "This is for testing porpuses only  with the transactionId {tId}. Your code is: {Token}"
                  }
                    ]
                  }
                ],
                "SignatureConfigurations": [],
                "ViewerPreferences": {
                  "FinishWorkstepOnOpen": false,
                  "VisibleAreaOptions": {
                    "AllowedDomain": "",
                    "Enabled": false
                  }
                },
                "ResourceUris": {
                  "DelegationUri": "https://demo.esignanywhere.net/Resource/Delegate"
                },
                "AuditingToolsConfiguration": {
                  "WriteAuditTrail": true
                },
                "Policy": {
                  "WorkstepTasks": {
                    "PictureAnnotationMinResolution": 0,
                    "PictureAnnotationMaxResolution": 0,
                    "PictureAnnotationColorDepth": "Color16M",
                    "SequenceMode": "NoSequenceEnforced",
                    "PositionUnits": "PdfUnits",
                    "ReferenceCorner": "Lower_Left",
                    "Tasks": [
                      {
                        "Texts": [
                          {
                            "Language": "en",
                            "Value": "Agreement text"
                          },
                          {
                            "Language": "*",
                            "Value": "Agreement text"
                          }
                        ],
                        "Headings": [
                          {
                            "Language": "en",
                            "Value": "Agreement Subject"
                          },
                          {
                            "Language": "*",
                            "Value": "Agreement Subject"
                          }
                        ],
                        "IsRequired": false,
                        "Id": "ra",
                        "DisplayName": "ra",
                        "DocRefNumber": 1,
                        "DiscriminatorType": "Agreements"
                      },
                      {
                        "PositionPage": 1,
                        "Position": {
                          "PositionX": 58.0,
                          "PositionY": 593.0
                        },
                        "Size": {
                          "Height": 80.0,
                          "Width": 190.0
                        },
                        "AdditionalParameters": [
                          {
                            "Key": "enabled",
                            "Value": "1"
                          },
                          {
                            "Key": "completed",
                            "Value": "0"
                          },
                          {
                            "Key": "req",
                            "Value": "1"
                          },
                          {
                            "Key": "isPhoneNumberRequired",
                            "Value": "0"
                          },
                          {
                            "Key": "trValidityInSeconds",
                            "Value": "60"
                          },
                          {
                            "Key": "fd",
                            "Value": ""
                          },
                          {
                            "Key": "fd_dateformat",
                            "Value": "dd-MM-yyyy HH:mm:ss"
                          },
                          {
                            "Key": "fd_timezone",
                            "Value": "datetimeutc"
                          }
                        ],
                        "AllowedSignatureTypes": [
                          {
                            "TrModType": "TransactionCodeSenderPlugin",
                            "TrValidityInSeconds": 300,
                            "TrConfId": "otpSignatureSmsText",
                            "IsPhoneNumberRequired": false,
                            "Ly": "simpleTransactionCodeSms",
                            "Id": "84dc05ed-1234-1234-1234-fbc776faa439",
                            "DiscriminatorType": "SigTypeTransactionCode",
                            "Preferred": false,
                            "SignaturePluginConfigurationId": ""
                          }
                        ],
                        "UseTimestamp": false,
                        "IsRequired": true,
                        "Id": "1#XyzmoDuplicateIdSeperator#Signature_f96c9889-1234-1234-4c9c-f774add0d46b",
                        "DisplayName": "",
                        "DocRefNumber": 1,
                        "DiscriminatorType": "Signature"
                      }
                    ]
                  }
                }
              },
              "DocumentOptions": [
                {
                  "DocumentReference": "1",
                  "IsHidden": false
                }
              ]
            }
          ],
          "AttachSignedDocumentsToEnvelopeLog": false
        }
        }

        The easiest way to implement the TransactionCodeConfiguration in SOAP is to call the GetAdHocWorkstepConfiguration_v1 to receive a default workstep for the document or you can modify it directly via API (see sample below) be defined in the message. If you do not define a language attribute, this will be used as fallback or specified language or recipient does not exists.

        Code Block
        languagexml
        themeEclipse
          <TransactionCodeConfigurations>
            <!--Single TransactionCodeConfiguration.-->
            <TransactionCodeConfiguration trConfId="smsAuthTransactionCodeId">
              <!--Message used to send a transaction code to the client. The message has to contain the placeholder '{tId}' for the transactionId and the placeholder '{Token}' for the token.-->
              <Message>Please authenticate yourself for the access to the envelope with the transactionId {tId}. Your code is: {Token}</Message>
              <hashAlgorithmIdentifier>Sha256</hashAlgorithmIdentifier>
            </TransactionCodeConfiguration>
            <TransactionCodeConfiguration trConfId="smsAuthTransactionCodeId" language="en">
              <Message>Please authenticate yourself for the access to the envelope with the transactionId {tId}. Your code is: {Token}</Message>
              <hashAlgorithmIdentifier>Sha256</hashAlgorithmIdentifier>
            </TransactionCodeConfiguration>
            <TransactionCodeConfiguration trConfId="smsAuthTransactionCodeId" language="it">
              <Message>Con riferimento alla transazione {tId}, per autenticarsi si prega di inserire il seguente CODICE {Token}</Message>
              <hashAlgorithmIdentifier>Sha256</hashAlgorithmIdentifier>
            </TransactionCodeConfiguration>
            <TransactionCodeConfiguration trConfId="disposableCertificateEnrolAndSignSmsText">
              <Message>Please confirm the issuance of your disposable certificate and signature, referenced by transactionId {tId}, with the OTP: </Message>
              <hashAlgorithmIdentifier>Sha256</hashAlgorithmIdentifier>
            </TransactionCodeConfiguration>
            <TransactionCodeConfiguration trConfId="disposableCertificateEnrolAndSignSmsText" language="en">
              <Message>Please confirm the issuance of your disposable certificate and signature, referenced by transactionId {tId}, with the OTP: </Message>
              <hashAlgorithmIdentifier>Sha256</hashAlgorithmIdentifier>
            </TransactionCodeConfiguration>
            <TransactionCodeConfiguration trConfId="disposableCertificateEnrolAndSignSmsText" language="it">
              <Message>Conferma l'emissione del tuo certificato disposable, con riferimento alla transazione {tId}, e della firma con l´OTP </Message>
              <hashAlgorithmIdentifier>Sha256</hashAlgorithmIdentifier>
            </TransactionCodeConfiguration>
            <TransactionCodeConfiguration trConfId="remoteCertificateSignSmsText">
              <Message>Please sign the document, referenced by transactionId {tId}, using the OTP: </Message>
              <hashAlgorithmIdentifier>Sha256</hashAlgorithmIdentifier>
            </TransactionCodeConfiguration>
            <TransactionCodeConfiguration trConfId="remoteCertificateSignSmsText" language="en">
              <Message>Please sign the document, referenced by transactionId {tId}, using the OTP: </Message>
              <hashAlgorithmIdentifier>Sha256</hashAlgorithmIdentifier>
            </TransactionCodeConfiguration>
            <TransactionCodeConfiguration trConfId="remoteCertificateSignSmsText" language="it">
              <Message>Firma il documento, con riferimento alla transazione {tId}, usando l´OTP </Message>
              <hashAlgorithmIdentifier>Sha256</hashAlgorithmIdentifier>
            </TransactionCodeConfiguration>
          </TransactionCodeConfigurations>


    ...

    Expand
    titleAPI / 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.


    Expand
    titleAPI / Integration: Can I store Meta data in the envelopes

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

    Code Block
    languagexml
    themeEclipse
    <envelope>
       <metaData>
          <element>custom data</element>
       </metaData>
    </envelope>

    The metaData element allows you to store additional, non-eSAW-data (e.g. for archiving) directly in the envelope. You can retrieve this information via getEnvelopeById call. An example of metaData is to store data for the archiving system in the envelope. The callback-integrating solution then can download the files (PDF & Audit-Trail) and store them directly in the archive.

    ...

    Expand
    titleIntegration: 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.


    Expand
    titleDocuments: 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.

    ...

    Expand
    titleDocuments: 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 and moreover a look into the PrepareSendEnvelopeSteps_v1 function. This function can be helpful for integrations.

    ...