Versions Compared

Key

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

...

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
    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.

    ...