HomeBlogMigrationsleitfaden von Elektronische_Signatur zu EU-SES
Anleitungen

Migrationsleitfaden von Elektronische_Signatur zu EU-SES

Betriebsanweisungen und Funktionszuordnung für die Umstellung auf das EU-SES-Protokoll bis zum 31. Dezember 2026.

Hier ist eine Schritt-für-Schritt-Anleitung zur Migration von der alten Digital Signature API zur neuen eSignature API. Bitte beachten Sie, dass die alte API veraltet ist und ihr Support am 31. Dezember 2026. endet.

1. Änderung der Basis-Domains (Base URL)

Der erste Schritt der Migration besteht darin, die Domains Ihrer API-Aufrufe so zu aktualisieren, dass sie auf die neuen eSignature-Server verweisen:

  • Produktion: von https://ws.firmadigitale.com zu https://esignature.openapi.com.
  • Sandbox: von https://test.ws.firmadigitale.com zu https://test.esignature.openapi.com.

2. Endpoint-Mapping

Die alten /firma_elettronica-Endpoints wurden in der neuen eSignature API ersetzt und neu strukturiert. Dabei wird zwischen dem Endpoint zur Erstellung einer Signatur /EU-SES, dem Endpoint zum Abrufen der Signaturhistorie /signatures sowie dem Endpoint für Details eines einzelnen signierten Dokuments /signatures/{id}/{actionType} unterschieden.

Hier ist das exakte Mapping für die Migration:

Erstellung einer einfachen elektronischen Signatur (SES)

  • Alter Endpoint: POST /firma_elettronica/base
  • Neuer Endpoint: POST /EU-SES

Hinweis: Dieser neue Endpoint ermöglicht die Erstellung einer SES-Anfrage für einen oder mehrere Signierende. Das Payload basiert auf dem neuen EU-SES_POST-Schema.

Abruf der Signatur-/Anfrageliste

  • Alter Endpoint: GET /firma_elettronica
  • Neuer Endpoint: GET /signatures

Hinweis: Die neue Version unterstützt erweiterte Filterfunktionen (nach Status, Signaturtyp und Zertifikatstyp).

Abruf von Informationen / Details einer bestimmten Anfrage

  • Alter Endpoint: GET /firma_elettronica/{id}
  • Neuer Endpoint: GET /signatures/{id}/detail

Download des signierten Dokuments

  • Alter Endpoint: GET /firma_elettronica/{id}/download
  • Neuer Endpoint: GET /signatures/{id}/signedDocument

Abruf des Audit Trails

  • Alter Endpoint: GET /firma_elettronica/{id}/audit
  • Neuer Endpoint: GET /signatures/{id}/audit

Löschen von Dokumenten (Neue Funktion)

  • Neuer Endpoint: DELETE /signatures/{id}

Hinweis: Die neue eSignature API ermöglicht es, signierte Dokumente, deren Details und den Audit Trail jederzeit explizit aus dem System zu löschen.

3. Änderung des UI-Anpassungsmodus

In der alten API gab es dedizierte Endpoints zur Erstellung und Verwaltung benutzerdefinierter Oberflächen (/firma_elettronica_ui) für das Signatur-iframe. Diese Endpoints (POST, GET und DELETE /firma_elettronica_ui) wurden bereits als VERALTET markiert.

Die neue API hebt alle Einschränkungen der vorherigen Version auf und ermöglicht es, unbegrenzt viele Interfaces direkt im Rahmen der POST /EU-SES-Anfrage zu erstellen, indem alle Anpassungsinformationen in den Optionsfeldern übergeben werden.

Dies sind die optionalen Parameter zur Anpassung der Benutzeroberfläche oder des Signaturverhaltens:

1. Farben und Stil (Theming)

Alle Farbparameter erfordern einen Hex-String (HEX) im Format: ^#[0-9a-fA-F]{6}$.

Sidebar-Bereich

Eigenschaft Typ Beispiel Beschreibung
sidebarBackgroundColor string #55a4ed Hintergrundfarbe der Seitenleiste.
sidebarTitleColor string #000000 Titel-Farbe der Seitenleiste.
sidebarTextColor string #55a4ed Textfarbe der Seitenleiste.
sidebarLogo string($uri) https://... Logo oben links (wird auch in OTP-E-Mails verwendet).

Header- & Footer-Bereich

Eigenschaft Typ Beispiel Beschreibung
headerBackgroundColor string #afcfed Hintergrundfarbe des Headers.
headerTitleColor string #000000 Titel-Farbe des Headers.
headerSubtitleColor string #55a4ed Untertitel-Farbe des Headers.
footerBackgroundColor string #afcfed Hintergrundfarbe des Footers.

Standard-Buttons

Eigenschaft Typ Beispiel Beschreibung
buttonTextColor string #000000 Textfarbe des Buttons.
buttonTextColorHover string #000000 Textfarbe beim Hover.
buttonBackgroundColor string #ffffff Hintergrundfarbe des Buttons.
buttonBackgroundColorHover string #0a5aa6 Hintergrundfarbe beim Hover.

Signatur- / Prozess-Buttons

Eigenschaft Typ Beispiel Beschreibung
signButtonTextColor string #55a4ed Textfarbe des „Weiter/Signieren“-Buttons.
signButtonTextColorHover string #000000 Textfarbe beim Hover.
signButtonBackgroundColor string #0a5aa6 Hintergrundfarbe des „Weiter/Signieren“-Buttons.
signButtonBackgroundColorHover string #55a4ed Hintergrundfarbe beim Hover.

2. Sichtbarkeit und Verhalten

Diese Parameter steuern die Anzeige von UI-Elementen. Der Standardwert ist für alle booleschen Felder false.

Eigenschaft Typ Standard Beschreibung
hideSidebar boolean false Wenn true, wird die Seitenleiste ausgeblendet.
hideHeader boolean false Wenn true, wird der Header ausgeblendet.
hideDownloadValidated boolean false Blendet den Download-Button für das hochgeladene Dokument aus.
hideDownloadSigned boolean false Blendet den Download-Button für das signierte Dokument aus.

3. Integration und Weiterleitung

Parameter zur Steuerung der Einbettung der Anwendung und des Weiterleitungsflusses nach Abschluss.

Eigenschaft Typ Beispiel / Hinweise Beschreibung
iframeAncestors array ["https://site.com"] Liste der URLs, die die Anwendung in einem iframe einbetten dürfen.
completeUrl string($uri) https://... URL, zu der der Benutzer nach Abschluss des Prozesses weitergeleitet wird.
cancelUrl string($uri) https://... URL, zu der der Benutzer bei Abbruch weitergeleitet wird.

4. Dokumentenaufbewahrung in der neuen API

Ein wichtiger Aspekt der neuen API, der bei der Migration berücksichtigt werden muss, ist die Aufbewahrungsrichtlinie. In der neuen eSignature API gilt:

  • Signierte, validierte und hochgeladene Dokumente bleiben bis zu 90 Tage im System zum Download verfügbar und werden danach automatisch gelöscht.
  • Strukturierte Signaturdaten und der Audit Trail werden bis zu 10 Jahre aufbewahrt.

Stellen Sie sicher, dass Ihre Backend-Prozesse aktualisiert werden, um die finale Datei über /signatures/{id}/signedDocument herunterzuladen und innerhalb des 90-Tage-Zeitraums in Ihren Systemen zu archivieren.

5. Unterschiede im Request Body (POST)

Das Payload zur Erstellung einer neuen Signaturanfrage (POST /EU-SES) hat im Vergleich zum alten Endpoint POST /firma_elettronica/base erhebliche Änderungen erfahren.

Alter Request Body (Beispiel)

{
  "members": [
    {
      "firstname": "Mario",
      "lastname": "Rossi",
      "email": "[email protected]",
      "phone": "+393333333333",
      "signs": [
        {
          "page": 1,
          "position": "100,200,45,35"
        }
      ]
    }
  ],
  "callback": {
    "headers": {
      "custom": "test"
    },
    "field": "data",
    "url": "https://webhook.site/12345678"
  },
  "content": "JVBERi0xLjQNCiWio4+TD..."
}

Neuer Request Body (Beispiel)

{
  "signers": [
    {
      "name": "Mario",
      "surname": "Rossi",
      "email": "[email protected]",
      "mobile": "+393333333333",
      "message": "Hallo Mario, {OTP} ist der Code zur Eingabe...",
      "authentication": [
        "sms"
      ],
      "signatures": [{
        "page": 1,
        "x": "100",
        "y": "200"
      }]
    }
  ],
  "options": {
    "signatureMode": [
      "drawn"
    ],
    "ui": {
      "sidebarLogo": "https://www.your-company.com/logo.png",
      "buttonBackgroundColor": "#0a5aa6"
    }
  },
  "inputDocuments": {
    "sourceType": "base64",
    "payload": "JVBERi0xLjQK..."
  },
  "callback": {
    "url": "https://webhook.site/12345678"
  }
}

Payload-Mapping und Migrationspunkte

Altes Feld Neues Feld / Struktur Migrationsdetails / Hinweise
members signers Umbenannt.
firstname name Umbenannt.
lastname surname Umbenannt.
phone mobile Umbenannt.
signs signatures Umbenannt.
position x und y (getrennt) Das alte Feld position (z. B. "100,200,45,35"), das Position und Größe definierte, wurde durch die Felder x und y für die reine Position ersetzt.
content inputDocuments Umbenannt.
(N/A) message (in signers) Neues Feld: ermöglicht die Anpassung der Nachricht (SMS/E-Mail), die den OTP-Code für den Signierenden enthält.
(N/A) authentication (in signers) Neues Feld: definiert die Authentifizierungsmethoden für den Signierenden (z. B. "sms", "email").
(N/A) options Neuer Abschnitt: gruppiert globale Einstellungen und UI-Konfigurationen.
(N/A) options.ui Neuer Abschnitt: enthält alle UI-Anpassungsparameter (z. B. sidebarLogo, Farben usw.), wodurch separate UI-Endpunkte entfallen.
callback.field Siehe unten Siehe unten.
callback.headers Callback-Objekt Durch das Callback-Objekt ersetzt.

Details des neuen Callback-Objekts

Das callback-Objekt (gesendet in der POST /EU-SES-Anfrage) definiert die Webhook-Konfiguration, die von der eSignature-Plattform verwendet wird, um externe Systeme über Statusänderungen einer Signaturanfrage zu informieren.

Die unterstützten Felder sind unten beschrieben:

Eigenschaft Typ Erforderlich Beschreibung
url string($uri) Ja HTTP(S)-Endpoint für Webhook-Benachrichtigungen.
method string Nein JSON (Standard) oder FORM.
field string Nein Definiert das Feld, in das der Callback-Payload eingefügt wird (nur relevant bei FORM).
retry integer Nein Maximale Anzahl an Wiederholungsversuchen bei Fehlern.
headers Objekt Nein Benutzerdefinierte HTTP-Header (z. B. für Authentifizierung).
custom Objekt Nein Benutzerdefinierte Metadaten (z. B. interne IDs), die im Callback zurückgesendet werden.

Vollständiges Konfigurationsbeispiel:

{
    "callback": {
        "url": "https://www.your-site.com/api/webhook/signature",
        "method": "JSON",
        "field": "data",
        "retry": 3,
        "headers": {
            "Authorization": "Bearer your_security_token",
            "X-Custom-Header": "custom_value"
        },
        "custom": {
            "internal_case_id": "PRT-98765",
            "department": "Human Resources"
        }
    }
}

6. Antwortkörper der neuen Signatur

Der Antwortkörper der Anfrage:

POST /EU-SES

wurde in der neuen eSignature API erweitert, um sofort nicht nur die eindeutige ID der erstellten Anfrage und die Weiterleitungs-URL zur Signatur-Oberfläche bereitzustellen, sondern auch den aktuellen Status der gesamten Anfrage, die Signierer-ID sowie die spezifische URL für den Zugriff des Signierenden.
Nachfolgend ein Beispiel des erweiterten Response-Bodys:

{
    "data": {
        "id": "69aaa647adb8b5c802035539",
        "errorNumber": null,
        "errorMessage": null,
        "updatedAt": "2026-03-06 10:02:47.980+00:00",
        "createdAt": "2026-03-06 10:02:47.979+00:00",
        "certificateType": "EU-SES",
        "state": "WAIT_VALIDATION",
        "signatureType": "pades",
        "signers": [
            {
                "authentication": [
                    "sms"
                ],
                "name": "Mario",
                "state": "NEW",
                "surname": "Rossi",
                "mobile": "+393333333333",
                "mobileEditable": false,
                "email": "[email protected]",
                "emailEditable": false,
                "id": "b99f85d9-8482-4970-b57d-ff6703a98818",
                "url": "https://esign.openapi.com/b99f85d9-8482-4970-b57d-ff6703a98818",
                "language": "browser",
                "message": "Hallo Mario, {OTP} ist der Code zur Eingabe zur Bestätigung des Signaturprozesses",
                "mobileValidation": {
                    "isPossible": true,
                    "isValid": true,
                    "regionCode": "IT",
                    "countryCode": "39",
                    "isValidNumberForRegion": true,
                    "numberType": "MOBILE",
                    "otpAttempts": 0
                }
            }
        ],
        "options": {
            "asyncDocumentsValidation": true,
            "asyncSignature": false,
            "signatureMode": [
                "typed"
            ],
            "withTimestamp": false,
            "timezone": "UTC"
        },
        "document": {}
    }
}
Feld (data – Top-Level) Typ Beschreibung
id string Eindeutige ID der erstellten Signaturanfrage. Diese ID wird in allen weiteren Endpoints (/signatures/{id}/...) verwendet.
state string Aktueller Status der Signaturanfrage (z. B. WAIT_VALIDATION, WAIT_SIGN, WAIT_SIGNERS, WAIT_OTP, ERROR, CANCELLED, DONE).
certificateType string Art der elektronischen Signatur (EU-SES).
signers array Liste mit Details zu jedem Signierenden.
Feld signers Typ Beschreibung
id string Eindeutige ID des Signierenden.
url string($uri) URL zur Weiterleitung oder Einbettung (iframe), um den Signaturprozess für diesen Signierenden zu starten.
state string Status des Signierenden (NEW, DONE).
mobile string Telefonnummer für die Authentifizierung (falls konfiguriert).
email string E-Mail-Adresse des Signierenden.

Details des Callback-Bodys (Beispiel DONE-Status)

Das folgende Beispiel zeigt einen typischen Callback-Body, der von der eSignature API gesendet wird, wenn der Status einer Signaturanfrage einen finalen Zustand wie DONE erreicht.

Wichtige Analysepunkte

Feld Beispielwert Beschreibung
id 69aaada4adb8b5c80203553d Eindeutige ID der Signaturanfrage.
state DONE Finaler Status: Der Signaturprozess ist für alle Signierenden abgeschlossen.
certificateType EU-SES Typ der verwendeten elektronischen Signatur (Simple Electronic Signature EU-SES).
updatedAt 2026-03-06 10:35:14.183+00:00 Zeitpunkt der letzten Statusaktualisierung (Abschluss der Signatur).

Details des Signierenden (signers)

Feld Beispielwert Beschreibung
id (Signierender) 69aaada4adb8b5c80203553d Eindeutige ID der Signaturanfrage.
state DONE Status des Signierenden: Signatur abgeschlossen.
mobile +393333333333 Für SMS-Authentifizierung verwendete Nummer.
email [email protected] E-Mail-Adresse des Signierenden.
signatures [{"page":1,"x":10,"y":10, "formId":"Mario Rossi [0][0]"}] Position der Signatur im Dokument (Seite 1, Koordinaten x:10, y:10).
mobileValidation (Objekt) Details der OTP-Validierung (inkl. otpAttempts: 1).
webValidation (Objekt) Tracking-Daten der Web-Interaktion des Nutzers während des Signaturprozesses.

Dokumente (Bereich document)

Im Status DONE werden sowohl das validierte Originaldokument als auch das signierte Dokument detailliert bereitgestellt:

Unterfeld Objekt (Beispiel) Beschreibung
validatedDocument (Objekt) Details des vor der Signatur validierten Dokuments (z. B. Seitenanzahl, PDF-Metadaten, md5, sha256, Größe, mimetype).
signedDocument (Objekt) Referenz auf das finale signierte Dokument (id, md5, sha256, Größe, mimetype).

Empfohlene Aktion:

Da der Status DONE ist und das Feld signedDocument vorhanden ist, sollte Ihr System im nächsten Schritt die ID (69aaada4adb8b5c80203553d) verwenden, um einen Aufruf GET /signatures/{id}/signedDocument durchzuführen und das signierte Dokument herunterzuladen. Beachten Sie, dass das Dokument nur 90 Tage im System verfügbar ist.

Migrationsleitfaden von Elektronische_Signatur zu EU-SES
Teilen auf