Versions Compared

Key

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

...

The structure of the XML as svg can be found here: eso.svg

and created via .xsd:

View file
nameeso.xsd

The svg also contains XML elements which aren't relevant for TyrService upload. 

...

XML-Element

webso

Type

description

<SignaturePosition>

x

Contains a list of <UserName> which defines the signatories on the given position.

example

explanation

    <SignatureOrder>
        <SignaturePosition>
            <UserName>signer1@example.com</UserName>
            <UserName>registeredUserLogin</UserName>
        </SignaturePosition>
        <SignaturePosition>
            <UserName>signer2@example.com</UserName>
        </SignaturePosition>
        <SignaturePosition>
            <UserName>signer3@example.com</UserName>
            <UserName>registered_user2@example.com</UserName>
        </SignaturePosition>
   

Code Block
<SignatureOrder>
	<SignaturePosition>
		<UserName>signer1@example.com</UserName>
		<UserName>registeredUserLogin</UserName>
	</SignaturePosition>
	<SignaturePosition>
		<UserName>signer2@example.com</UserName>
	</SignaturePosition>
	<SignaturePosition>
		<UserName>signer3@example.com</UserName>
		<UserName>registered_user2@example.com</UserName>
	</SignaturePosition>
</SignatureOrder>

The document contains signatures for five users.

  1. First the guest user with the email adress signer1@example.com and the registered user with the login "registeredUserLogin" have to sign.

  2. After all users from position one signed their fields, the guest user signer2@example.com can sign the document

  3. After all users from position two signed their fields, the guest user signer3@example.com and the registered user defined by the user email adress registered_user2@example.com can sign the document.

Note: Each user can only be set to one position. So "registeredUserLogin" and "registered_user2@example.com" are not the same users!

...

XML-Element

webso

Type / example

description

<PasswordRequired>

Anchor
#PasswordRequired
#PasswordRequired

x

Integer

1/0

true or false, defines if the signer of the signature has to enter the password when opening the document.

If a password is assigned to the document by default <PasswordRequired> is set to true. It must be explicitly set to false to prohibit the password prompt.

The <DocumentPassword> is defined globally.

Note: The first appearence of <PasswordRequired> in the signature fields of a distinct user defines whether the user has to enter a password. eg:

A user has three signature fields.

  • In the first field <PasswordRequired> is not defined, in the second field it is "1", in the third field it is "0" → password is required

  • In the first field <PasswordRequired> is not defined, in the second field it is "0", in the third field it is "1" → password is NOT required

  • In the first field <PasswordRequired> is "1", in the second field it is not defined, in the third field it is "1" → password is required

  • <PasswordRequired> isn't defined in any field → password is required

(<Signed>)

When the method retrieveXML is called and the field is signed, the element is set to 1.

<Signed> can't be set at upload time.

<Mandatory>

x

Integer

1/0

Is an optional field indicating that signature field is mandatory.

 <Mandatory>1</Mandatory> means mandatory field

<Mandatory>0</Mandatory> means optional field

If no value is set, the field is optional.

<Textblock>

<Zoom>

<Stamp>

x

<Stamp>

Stamp can be:

  1. the image can be omitted, then only a text is added defined. Line breaks are defined with "\r\n".

  2. only an image can be defined

  3. if both image and text are defined, then the text is added to the stamp image and overlayed upon the signature

If <SignatureType> value of the signature element is 0, a stamp creation without signature will be set, otherwise it's a combination of stamp and signature.

A stamp can't be defined for digitalStamp (<SignatureType>1) because the stamp image including the email address or username of the signee is generated automatically.

<Signer>

<UserName>

x

String

Login name of a registered user or an email address. Defines which technical user has to sign the field.

If no <UserName> is defined, a self-sign field (for own/ xml-upload user) is set.

If the email adress doesn't belong to a registered user a guest user will be created.

<Reason>

x

String

Can be used to set the reason for the signature which will be visible in the pdf certificate.

<SignatureType>

x

Integer

0-4

The available values are:
*0 = stamp data (text/image) without signature
1 = digital stamp (signature with user certificate instead of hand-written signature)
2 = html-signer signature only
3 = pad signature only
4 = app / phone / tablet signature only (QR code, link, sms)
If no signature type is defined, a selection window appears for a biometric signature appears.

The signer can choose between following types: StepOver signature pad OR one of our apps OR HTML-signer (with a pen or your finger on your mobile device)

Detailed Description: https://stepoverinfo.atlassian.net/wiki/spaces/WEBSO/pages/181960712/j+ESign+Input+XML#4.-Defining-the-%E2%80%9Csignature-type%E2%80%9D-%3CSignatureType%3E

please note: If a SigatureGroup is defined, the signatureType will be ignored.

<SignatureGroupName>

x

String

The name of the <SignatureGroup>

<HtmlSignerWidth>

x

Decimaldepricated

Deprecated!

Defines the displayed / zoomed signature field width (in cm) for signatures with HTML signer (and with apps)

<SmsToken>

x

Deprecated: SmsTokens are defined in the <ESign>.<SmsTokens> element. See https://stepoverinfo.atlassian.net/wiki/spaces/PAF/pages/edit-v2/126484481#%3CSmsTokens%3E%3A-MFA-sms-envelope-protection

With this tag you can define if user have to enter a auto-generated SMS token before entering the document (two factor authentication).

The SmsToken element has to be part of the <Signature> / <DigSig> / <Static> element and requires following parameters:

<Number>: the mobile number excluding the phone code / country code

<PhoneCode>: the international phone code of the mobile number according to iso 3166-1 alpha 2 (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 ).

('DE' for Germany, 'US' for United States, 'GB' for Great Britain, etc.)

You can only set one <SmsToken> element for each <Signature> / <DigSig> / <Static> element and only one <SmsToken> element for each signatory (defined via <UserName> for other user or self-sign fields).
Means if you have more than one signature elements for the same user within the XML, only the last set number and phone code will be defined for the signatory.<Signature>
   

Code Block
<Signature>
    <SignatureType>2</SignatureType>

   

    <Placeholder>Signature1</Placeholder>

   

    <Height>2</Height>

   

    <Width>3.5</Width>

    <SmsToken>
        <Number>173123456</Number>
        <PhoneCode>DE</PhoneCode>
    </SmsToken>

    <SmsToken>
        <Number>173123456</Number>
        <PhoneCode>DE</PhoneCode>
    </SmsToken>
</Signature>

<SelectionPhoneTabletDetails>

x

<SelectionPhoneTabletDetails>

Defines what options are shown in the Phone/Tablet overlay:

The child elements <OptionQRCode>, <OptionLink> and <OptionSMS> have the values 0 or 1.

Note: If SignatureType is not 4 (handwritten), <SelectionPhoneTabletDetails> will be ignored.

...

XML-Element

webso

Type

description

<Placeholder>

x

String

The placeholder for the intelligent signature placement. The placeholder is a string inside the pdf document.

If several strings are found, a signature field will be placed for every occurence.

The top left corner of the placeholder is the top left corner of the signature field. The field can be displaced with Offset_X and Offset_Y.

<Width>

Decimal

Width of the field in cm.

<Height>

Decimal

Height of the field in cm.

<FilterSignature>

x

Filter the signature by the number they are found inside the document. 

Although the element is defined for all signature definitions, it's only applicable for <Signature>.

<FilterSignature>Begin:End;</FilterSignature>

<FilterSignature>Begin:End;Begin2:End2;</FilterSignature>

Note: If <FilterSignature> is defined, <FilterPage> will be ignored.

Sample:

<FilterSignature>1:1;</FilterSignature>     (only first appareance)

<FilterSignature>1:3;</FilterSignature>     (1, 2 and 3 appareance)

<FilterSignature>1:1;5:6;</FilterSignature>     (1, 5 and 6 appareance)

<FilterSignature>3:-1;</FilterSignature>     (3 until last appareance)

<FilterSignature>-2:-1;</FilterSignature>     (second to last and last appareance)

Code Block
<Signature>


    <SignatureType>2</SignatureType>


    <Placeholder>Signature1</Placeholder>


    <Height>2</Height>


    <Width>3.5</Width>


    <FilterSignature>-3:-1;</FilterSignature>


</Signature>

Signature fields are only created for the last three placeholder matches.

<FilterPage>

x

String

Filter the signature by the pages, which means you can define on which pages the signature should be offered to the signer.

Although the element is defined for all signature definitions, it's only applicable for <Signature>.

Sample:

<FilterPage>1:1;</FilterPage>     (only first page appareance)

<FilterPage>1:3;</FilterPage>     (1, 2 and 3 page appareance)

<FilterPage>1:1;5:6;</FilterPage>     (1, 5 and 6 page appareance)

<FilterPage>3:-1;</FilterPage>     (3 until last page appareance)

<FilterPage>-2:-1;</FilterPage>     (second to last page and last page appareance)

Note: If <FilterSignature> is defined, <FilterPage> will be ignored.

Code Block
<Signature>


    <SignatureType>2</SignatureType>


    <Placeholder>Signature1</Placeholder>


    <Height>2</Height>


    <Width>3.5</Width>


    <FilterPage>2:3;</FilterPage>


</Signature>

Signature fields are only created on page two and three.

<DisplacementTLIndex>

<FeldPositionIndex>

<Page>

<X>

<Y>

<Offset_X>

x

Decimal

Horizontal displacement of the signature field in cm.

If offset is positive, the field will be moved right.

<Offset_Y>

x

Decimal

Vertical displacement of the signature field in cm.

If offset is positive, the field will be moved down.

<RectPosX>

<RectPosY>

<BeforeSignConfirmation>

<Location>

<Background>

<FrameColor>

<FrameThickness>

...

XML-Element

webso

Type

description

<OptionQRCode>

x

Integer

1/0

If 1 QRCode option is shown

<OptionLink>

x

Integer

1/0

If 1 link option is shown

<OptionSMS>

x

Integer

1/0

If 1 sms option is shown.

<Number>

x

Integer

Can be set if <OptionSMS> is 1.

If <OptionSMS> is 0, it will be ignored.

Defines the phone number for the sms link without the country code.

<PhoneCode>

x

String

Can be set if <OptionSMS> is 1.

If <OptionSMS> is 0, it will be ignored.

Defines the country code according to ISO 3166-1 alpha-2 (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 )

example

explanation

Code Block
<Signature>


    <Placeholder>Unterschrift 123</Placeholder>


    <Height>2.0</Height>


    <Width>4.0</Width>


    <SignatureType>4</SignatureType>


    <SelectionPhoneTabletDetails>


        <OptionQRCode>1</OptionQRCode>


        <OptionSMS>1</OptionSMS>


        <OptionLink>0</OptionLink>


        <Number>173123456</Number>


        <PhoneCode>DE</PhoneCode>


    </SelectionPhoneTabletDetails>


</Signature>

A <Signature> is defined with the width 4cm and height 2cm without <SignatureGroup>.

The SignatureType is 4 = Phone/Tablet.

When clicking on "sign now" the Popup appears with the QR-code to scan and the tab to send a SMS containing a link to the document to the given number.

The SignatureType is 4 = Phone/Tablet.

When clicking on "sign now" the Popup appears with the QR-code to scan and the tab to send a SMS containing a link to the document to the given number.

<Qes>: Qualified electronic signatures

Qualified electronic signatures (QES) are defined within the <QES> element. This element contains a list of <QesUser> entries. Each <QesUser> element provides the user's signature details, including email, phone number, and phone code/country code.

The user is referenced in the signature field by the <UserName> element

<Qes>: List of QES signatories

XML-Element

webso

Type

description

<QesUser>

x

List of <QesUser>

QES definition of a signatorie:

Code Block
<ESign>
	...
	<Qes>
		<QesUser>
			<!-- QesUser see below > -->
			...
		</QesUser>
		<QesUser>
			<!-- QesUser see below > -->
			...
		</QesUser>
	</Qes>
	...
</ESign>

<QesUser>: QES definition for signer

XML-Element

webso

Type

description

<QesId>

x

Integer

The id of the qes service. Either <QesId> or <QesProvider> must be provided.

<QesProvider>

x

String

The name of the qes service. Either <QesId> or <QesProvider> must be provided.

example:

Code Block
<QesProvider>signius</QesProvider>

<UserName>

x

String

The UserName. It is used to map the Qes data of the user to the signature fields.

<Number>

x

Number

The phone number without country code.

e.g.: 173 123 123

<PhoneCode>

x

String

The international phone code of the mobile number according to iso 3166-1 alpha 2 (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 ).

e.g. “de” for Germany

Code Block
<ESign>
	<Qes>
		<QesUser>
			<UserName>signer2@example.de</UserName>
			<Number>17100100100</Number>
			<PhoneCode>de</PhoneCode>
			<QesProvider>signius</QesProvider>
		</QesUser>
		<QesUser>
			<UserName>signer1@example.de</UserName>
			<Number>17200123123</Number>
			<PhoneCode>de</PhoneCode>
			<QesProviderId>1</QesProviderId> 
		</QesUser>
	</Qes>
</ESign>

<SmsTokens>: MFA sms envelope protection

When a <SmsToken> is defined for a user, a sms is sent to user containing a one-time token, when opening a protected envelope. The user has to enter the token, to access the envelope. The <SmsTokens> element contains a list of <SmsToken>, which contains the information for the specified user. The user is referenced by the <UserName> element.

<SmsTokens>: List of <SmsToken> definitions

XML-Element

webso

Type

description

<SmsTokens>

x

List of <SmsToken>

QES definition of a signatorie:

Code Block
<ESign>
    ...
	<SmsTokens>
		<SmsToken>
            <!-- SmsToken see below-->
             ...
		</SmsToken>
		<SmsToken>
            <!-- SmsToken see below-->
            ...
		</SmsToken>
	</SmsTokens>
    ...
</ESign>

<SmsToken>: sms protection definition for signer

XML-Element

webso

Type

description

<UserName>

x

String

The UserName. It is used to map the sms protection data of the user to the signature fields.

<Number>

x

Number

The phone number without country code.

e.g.: 173 123 123

<PhoneCode>

x

String

The international phone code of the mobile number according to iso 3166-1 alpha 2 (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 ).

e.g. “de” for Germany

Code Block
<ESign>
    ...
	<SmsTokens>
		<SmsToken>
			<UserName>signer1@example.de</UserName>
			<Number>17100100100</Number>
			<PhoneCode>de</PhoneCode>
		</SmsToken>
		<SmsToken>
			<UserName>signer2@example.de</UserName>
			<Number>17200123123</Number>
			<PhoneCode>de</PhoneCode>
		</SmsToken>
	</SmsTokens>
    ...
</ESign>

<FillInfo> : Filling PDF-formfields
Anchor
FillInfo
FillInfo

...

XML-Element

webso

Type

description

<Name>

x

String

The name (identifier in the pdf) of the pdf formfield.

<Value>

x

String

The value to be set for the formfield.

example

explanation

  <FillInfo>
    <FillEntry>
      <Name>Text1</Name>
      <Value>foo</Value>
    </FillEntry>
    <FillEntry>
      <Name>Text2</Name>
      <Value></Value>
    </FillEntry>
    <FillEntry>
      <Name>RadioButton5</Name>
      <Value>Yes</Value>
    </FillEntry>
    <FillEntry>
      <Name>CheckBox4</Name>
      <Value>Yes</Value>
    </FillEntry>
    <FillEntry>
      <Name>CheckBox3</Name>
      <Value>No</Value>
    </FillEntry>
    <FillEntry>
      <Name>Optionsfeld1</Name>
      <Value>Ja</Value>
    </FillEntry>
    <FillEntry>
      <Name>Kombinationsfeld3</Name>
      <Value>Option3</Value>
    </FillEntry>
 

Code Block
<FillInfo>
    <FillEntry>
        <Name>Text1</Name>
        <Value>foo</Value>
    </FillEntry>
    <FillEntry>
        <Name>Text2</Name>
        <Value></Value>
    </FillEntry>
    <FillEntry>
        <Name>RadioButton5</Name>
        <Value>Yes</Value>
    </FillEntry>
    <FillEntry>
        <Name>CheckBox4</Name>
        <Value>Yes</Value>
    </FillEntry>
    <FillEntry>
        <Name>CheckBox3</Name>
        <Value>No</Value>
    </FillEntry>
    <FillEntry>
        <Name>Optionsfeld1</Name>
        <Value>Ja</Value>
    </FillEntry>
    <FillEntry>
        <Name>Kombinationsfeld3</Name>
        <Value>Option3</Value>
    </FillEntry>
</FillInfo>
  1. sets the value of text field with identifier "Text1" to "foo"

  2. clears the value of text field with identifier "Text2"

  3.  sets the value of the radiobutton-group with identifier "RadioButton5" to "Yes"

  4. checks the checkbox with the identifier "Checkbox4"

  5. unchecks the checkbox with the identifier "Checkbox3"

  6. sets the value of radiobutton-group with identifier "Optionsfeld1" to "Ja"

  7. sets the value of dropdown list with identifier "Kombinationsfeld3" to "Option3".

The identifiers and values can be defined in Adobe Acrobate or other PDF creation software.

The values can be changed in the viewer.

Note:

  • Observers can't change formfield values.

  • With the server setting formfields_writable_for_others=false you can prohibit editing formfields in the viewer by other users.

...