CASE: make signatures work with any digital signing integration

As we’ve seen from this case, it is possible to make sure signatures can work with digital signing integrations:

This is done by adding sign markers tags, which allows for an integration to “print” (for a lack of a better word) their signing mechanism on the generated PDF from Silverfin.

However, we need to be sure that the digital signing matches on our PDF. There’s a limited space available in our legal texts for example in the signatures section, which the signing integration should respect.
If not, there might be cases in which the digital signing will overlap with other printed text.

With this case, we share the fixed sections which we are holding onto in every of our templates that are available for digital signing.

As one can see, all of our signatures are created with a maximum of 2 signatures next to each other.
Each signature has a fixed placement of where the digital signature can be put.
It is quite important that these sections are respected so all signing integrations can work with any template (not just the ones of Silverfin) and their signing part.

Below an example, of where the signmarkers should be made available for signing integrations:

So any signing partner will place the digital signature on that signmarker upwards.

To make sure all signing integrations can work with any template in Silverfin, the following guidelines should be followed when creating the placement of the signmarker:

  • 5 breaks before each signmarker (which will be used to add the digital signature on)
  • 3 breaks after each signmarker (to make sure it’s not too close either to the next signature)

An example of code:

{% stripnewlines %}
{% newline %}
|------
  {% for i in (1..aantal_kolommen) %}
  ----{{ 100/aantal_kolommen | integer }}%------|
  {% endfor %}
+
{% newline %}
| 
{% for signature in zkv_signatures %}
  <br><br><br><br><br>
  {{ signature }}
|
  {% assign modulo = forloop.index | modulo:2 %}
    {% if modulo == 0 %}
      {% unless forloop.last %}
        {% newline %}
        | 
      {% endunless %}
    {% endif %}
{% endfor %}
{% newline %}
| <br>
{% endstripnewlines %} 

The signmarkers themselves are actually created in one array that holds all info of signatures (function, name, …) and it’s in there where we place the 3 additional break tags:

{% assign signatures = signatures | append: signmarkers | append:"<br>" | append:"<br>" | append:"<br>" | append:current_signature %} 
1 Like

Hi, when copying the code shown above, nothing appears on the document (TEXT). Is there a difference with the Luxembourgish platform ?

Many thanks in advance and best regards,

Hi @naders,

If you are trying to use the exactly same code used in the example, you will need first to define at least two variables that are used there:

  • aantal_kolommen: the number of columns that the table should have
  • zkv_signatures: an array where each item is each signature that it is going to be displayed.

Do you have those in place already ? If so, maybe could you share a extract of your code to take a look further ?

Hi @agustin,

Many thanks for your prompt reply. I created a report that gathers some data such as the name of the company, the period, the balance sheet, the result and a logic that choose between “loss” and “profit”.

I would like to have 2 e-signatures fields. Therefore, I simply copied your code above to see what the result is but I am stuck.

{% stripnewlines %}
{% newline %}
|------
{% for i in (1…aantal_kolommen) %}
----{{ 100/aantal_kolommen | integer }}%------|
{% endfor %}
+
{% newline %}
|
{% for signature in zkv_signatures %}






{{ signature }}
|
{% assign modulo = forloop.index | modulo:2 %}
{% if modulo == 0 %}
{% unless forloop.last %}
{% newline %}
|
{% endunless %}
{% endif %}
{% endfor %}
{% newline %}
|

{% endstripnewlines %}

{% assign signatures = signatures | append: signmarkers | append:“
” | append:“
” | append:“
” | append:current_signature %}

Additionally, I was wondering whether it was possible to show the name of the signatories next to the e-signature.

Thank you in advance for your help and best regards,

@naders

Thank you for you question.

In order to help with your issue, we need additional information.
Please confirm who should be signees - directors or all people?

Dear @Jelena_Sutova ,

Many thanks for your prompt feedback.

The signees will have different positions : always 1 partner and 1 Director/Senior Manager/Manager (depending on the team).

Have a great day,

Hi Nader,

First of all, I believe the issue lies with the zkv_signatures variable that you are trying to loop over.
It is indeed true that this variable is often used in our Belgian legal templates to print the relevant signatures.

However, we first perform some logic to make sure that this variable contains the relevant persons that will need to sign. In Belgium, we do this by looping over the director drop which contains all designated directors. The code to get this information will not be the same for your use-case.

If I’m correct, you want to have 2 people from your own team sign the report you created. That is information that is not yet available anywhere else.

The code mentioned above might even be too complex for your use-case as you only seem to need two persons for signing.

You could add two input boxes where the name of the team members who will be signing (e.g. the partner and director) need to be completed.

The following two inputs could be created

{% input custom.signatory.partner placeholder:“Name partner” %}
{% input custom.signatory.director_manager placeholder:"Name director/(senior) manager %}

This will created two input boses where the relevant names could be included. You could even have 2 inputs for each person for both the First and Last Names.

You can place these inputs between {% ic %} and {% endic %} tags meaning they won’t be shown in export.

After creating these inputs, you can use these to create the required signmarkers (while also printing the names themselves). Be mindful of the breaks required for the signmarker as mentioned by Snake above (5 breaks before and 3 after the signmarker). This is how you can print the name and signmarker for the partner:

      <br><br><br><br><br>
      {% signmarker name:custom.signatory.partner %}
      <br><br><br>
      {{ custom.signatory.partner }}

The name of the director/manager can be printed next to it by adding both in a simple table where both signatures span half of the page:

{% stripnewlines %}
|----50%----
|----50%----+
{% newline %}
| <br><br><br><br><br>
  {% signmarker name:custom.signatory.partner %}
  <br><br><br>
  {{ custom.signatory.partner }}
| <br><br><br><br><br>
  {% signmarker name:custom.signatory.director_manager %}
  <br><br><br>
  {{ custom.signatory.director_manager }}
{% endstripnewlines %}

Let me know if this helps your case. We can always help you to fine-tune the code in order to make sure it’s tailored to your needs.

Dear @Laurent_Bonny1 ,

I missed you kind reply and it helped me a lot.

However, when exporting, I still do not see any signature fields such as this one :

Which makes sense as we have no code in this respect. Our issue is that when signing in Acrobat (we do not have in Luxembourg any option yet to sign directly within Silverfin), people have to draw the signature fields and, of course, these fields never have the same size.

Ultimate question : do you think it would possible instead of typing the name of the partner/manager to directly print the name contained in the certificate (Luxtrust, Isabel, …) ? Of course, this implies that the document in signed directly within Silverfin.

Many thanks in advance for your kind cooperation and sorry again for my late reply!

Hi @naders

Thanks for getting back to us!

Just to be sure, do I understand that you’re asking:

  1. If the signmarker automatically prints signing areas in Adobe Acrobat instead of adding them manually through the following option?

If this is wat you’re asking, then currently our signmarkers only add signing areas when used in combination with one of our signing integrations within Silverfin (e.g. DocuSign , Ok!Sign, Connective, Penneo, etc.), but they don’t add these interactive signing areas when exporting to normal PDFs.

  1. If you can pre-emptively print the name of the signee under the signature area? Generally, information about the partners/managers that need to sign documents are contained within the PeopleDrop (see more info in our documentation people). So if Silverfin has this data, you can already print the names by looping over the PeopleDrop in your template.

I hope I’ve understood your questions correctly and this helps you further, but please let us know in case you still have some open topics.

Kind regards
Wouter

Many thanks for your reply. I still need to be called-back by Docusign to be able to add this feature in our Luxembourgish environment.

Have a great day,