Produktaktualisierungen

Neu in Firma.dev: Nachweis auf jedem Zertifikat, dass Ihr Unterzeichner den Einmalcode eingegeben hat

Geschrieben von

Inhalt

Firma.dev API v1.40.3 wurde am 20. Oktober 2026 veröffentlicht und ändert, was der Einmalcode per E-Mail hinterlässt. Wenn eine Signaturanfrage den Code erfordert, wird der Moment, in dem eine unterzeichnende Person ihn korrekt eingibt, jetzt im Audit-Trail mit Uhrzeit und IP-Adresse protokolliert und auf dem Abschlusszertifikat vermerkt.

Neu: Code-Verifizierung wird jetzt protokolliert

Firma.dev erfasst die Code-Eingabe jetzt an zwei Stellen. Der Audit-Trail erhält ein neues otp_verified-Ereignis, das geschrieben wird, wenn die unterzeichnende Person den korrekten Code eingibt. Auf dem Abschlusszertifikat wird für jede unterzeichnende Person ausgewiesen, wie sie sich authentifiziert hat und wann der Code verifiziert wurde. Beides gilt für Signaturanfragen, die ab dem 20. Oktober abgeschlossen werden. Vor diesem Datum ausgestellte Zertifikate bleiben genau so, wie sie waren.

Was das Abschlusszertifikat anzeigt

Jede Zeile für unterzeichnende Personen auf dem Zertifikat enthält nun eine Zeile zur Authentifizierung, die auf eine von zwei Weisen lautet:

  • Email Link für Personen, die ohne Einmalcode unterzeichnet haben

  • Email Link + One-Time Code (code verified <Uhrzeit>) für Personen, die den Code eingegeben haben

Die Zeile „Identity“ im oberen Bereich fasst die gesamte Anfrage zusammen. Wenn sich alle unterzeichnenden Personen auf dieselbe Weise authentifiziert haben, wird diese Methode angezeigt. Wenn sie sich unterscheiden, wird „Mixed (see signers)“ angezeigt, was darauf hinweist, die einzelnen Zeilen zu lesen.

Ein vereinfachter Auszug einer Zeile für eine unterzeichnende Person, die den Code verwendet hat:

Signer:          Alice Johnson (alice@example.com)
Viewed:          2026-10-21 09:14:11
Authentication:  Email Link + One-Time Code (code verified 2026-10-21 09:14:03)
Signer:          Alice Johnson (alice@example.com)
Viewed:          2026-10-21 09:14:11
Authentication:  Email Link + One-Time Code (code verified 2026-10-21 09:14:03)
Signer:          Alice Johnson (alice@example.com)
Viewed:          2026-10-21 09:14:11
Authentication:  Email Link + One-Time Code (code verified 2026-10-21 09:14:03)

Die Zeit des Codes liegt in dieser Skizze vor der Anzeigezeit („Viewed“), was genau so erwartet wird. Die unterzeichnende Person gibt den Code ein, bevor das Dokument geladen wird, sodass die Verifizierung vor dem ersten Aufruf erfolgt (auf dem Papier sähe das seltsam aus, wenn man den Grund nicht wüsste).

Was der Audit-Trail aufzeichnet

Das neue Ereignis heißt otp_verified mit der Beschreibung „Entered the one-time code sent by email“. Wie jedes Ereignis einer unterzeichnenden Person enthält es einen Zeitstempel, Name und E-Mail-Adresse der agierenden Person sowie deren IP-Adresse. Öffnen Sie eine beliebige Signaturanfrage im Dashboard und klicken Sie auf den Reiter „Audit Trail“, um es in der Zeitleiste neben Aufrufen, Feldeingaben und Unterschriften zu sehen.

Der Code selbst wird niemals aufgenommen. Das Ereignis verweist über seine ID auf den Eintrag des verifizierten Codes, sodass der Trail die Eingabe mit einem bestimmten Code verknüpft, ohne den Code für Lesende offenzulegen.

Wenn die unterzeichnende Person fertig ist, enthält das Ereignis document_finished dieselbe Referenz, sofern die abschließende Sitzung mit einem verifizierten Code verknüpft war. Dadurch wird die Code-Eingabe mit der fertigen Signatur im selben Audit-Trail verknüpft...

Weitere Informationen darüber, was ein vollständiger Audit-Trail enthalten sollte, finden Sie in unserer Erläuterung zum E-Signatur-Audit-Trail und auf der Funktionsseite zum Audit-Trail.

Warum das wichtig ist, wenn später Fragen aufkommen

Stellen Sie sich einen Vertrag vor, der vor sechs Monaten unterzeichnet wurde... die unterzeichnende Person behauptet nun, ihn nie gesehen zu haben, oder ein Prüfer, der Ihre Lieferantenunterlagen kontrolliert, möchte wissen, wie Sie überprüft haben, wer unterschreibt. Beide Fragen beziehen sich auf dasselbe Dokument.

Wenn der Einmalcode aktiviert ist, beantwortet das Zertifikat diese Fragen auf einer einzigen Seite. Es belegt, dass die unterzeichnende Person durch Eingabe des Codes den Zugriff auf ihre E-Mail-Adresse nachgewiesen hat, und zeigt, wann dies geschehen ist. Der Audit-Trail ergänzt die IP-Adresse, von der aus der Code eingegeben wurde. Sie können das Zertifikat so weiterleiten, wie es ist, ohne dass jemand Dashboards oder alte E-Mail-Verläufe durchsuchen muss, um die Zeitleiste zu rekonstruieren...

Firma.dev ist konform mit dem ESIGN Act, UETA, eIDAS (EES und FES) sowie UK eIDAS, und damit erstellte Signaturen sind in über 55 Ländern rechtsverbindlich. Der Nachweis über den Einmalcode deckt die Seite der unterzeichnenden Person ab. Wenn Sie auch die Seite Ihres Unternehmens auf dem fertigen Dokument festhalten möchten, fügen Organisationssiegel diese hinzu – beide Funktionen ergänzen sich hervorragend.

Aktivieren des Einmalcodes

Sie können den Code für einen gesamten Arbeitsbereich in dessen Einstellungen vorschreiben (dies muss durch einen Eigentümer erfolgen) oder pro Anfrage über die API mit settings.require_otp_verification:

{
  "settings": {
    "require_otp_verification": true
  }
}
{
  "settings": {
    "require_otp_verification": true
  }
}
{
  "settings": {
    "require_otp_verification": true
  }
}

Die Verifizierung erfolgt ausschließlich per E-Mail. Unterzeichnende Personen erhalten den Code in ihrem Posteingang und geben ihn ein, bevor sich das Dokument öffnet. Mehr zum Ablauf für unterzeichnende Personen finden Sie auf der Funktionsseite zu E-Mail-OTP.

Der Code verursacht keine zusätzlichen Kosten. Sie zahlen 0,049 € pro Umschlag (~5¢ USD) im Pay-as-you-go-Modell, ohne monatliche Mindestbeträge und ohne Gebühren pro Benutzerkonto. Details finden Sie auf der Preisseite.

Für Entwickler: Auslesen der Nachweise über die API

GET /signing-requests/{id}/audit gibt die vollständige Liste der Ereignisse unter results zurück. Filtern Sie nach event gleich otp_verified und lesen Sie dann timestamp, ip_address und details.otp_code_id aus. Ein Ereignis sieht wie folgt aus:

{
  "id": "a1b2c3d4-0000-0000-0000-000000000007",
  "timestamp": "2026-10-21T09:14:03.000Z",
  "source": "signer",
  "event": "otp_verified",
  "description": "Entered the one-time code sent by email",
  "actor": { "name": "Alice Johnson", "email": "alice@example.com" },
  "ip_address": "203.0.113.42",
  "details": {
    "channel": "email",
    "otp_code_id": "5f0c9e2a-0000-0000-0000-000000000001"
  }
}
{
  "id": "a1b2c3d4-0000-0000-0000-000000000007",
  "timestamp": "2026-10-21T09:14:03.000Z",
  "source": "signer",
  "event": "otp_verified",
  "description": "Entered the one-time code sent by email",
  "actor": { "name": "Alice Johnson", "email": "alice@example.com" },
  "ip_address": "203.0.113.42",
  "details": {
    "channel": "email",
    "otp_code_id": "5f0c9e2a-0000-0000-0000-000000000001"
  }
}
{
  "id": "a1b2c3d4-0000-0000-0000-000000000007",
  "timestamp": "2026-10-21T09:14:03.000Z",
  "source": "signer",
  "event": "otp_verified",
  "description": "Entered the one-time code sent by email",
  "actor": { "name": "Alice Johnson", "email": "alice@example.com" },
  "ip_address": "203.0.113.42",
  "details": {
    "channel": "email",
    "otp_code_id": "5f0c9e2a-0000-0000-0000-000000000001"
  }
}

document_finished-Ereignisse enthalten ebenfalls details.otp_code_id, wenn die abschließende Sitzung mit einem verifizierten Code verknüpft war, sodass Sie den Abschluss dem eingegebenen Code zuordnen können. Diese Ereignisse gelten für Anfragen mit weniger als 1.000 Tracking-Zeilen. Bei größeren Anfragen bleibt die bisherige Kürzung bestehen.

Auch die Antworten von verify-signing-otp wurden in dieser Version präziser gestaltet:

  • 404 SIGNING_USER_NOT_FOUND für eine unbekannte unterzeichnende Person

  • 404 SIGNING_REQUEST_NOT_FOUND, wenn die Anfrage gelöscht wurde

  • 400 INVALID_INPUT für eine fehlerhafte signingUserId

  • 200 mit code: "SIGNING_STATE_CHANGED" und einem state, wenn die Anfrage nicht mehr unterzeichnet werden kann (storniert, abgelehnt, abgelaufen, bereits unterzeichnet und ähnliches)

  • 500 INTERNAL bei einem Datenbankfehler

Ein korrekter Code, bei dem ein vorübergehender Fehler auftritt, verbraucht nun keinen Versuch der unterzeichnenden Person mehr. Es gibt keine Änderung am OpenAPI-Schema, und event bleibt eine Freitext-Zeichenkette.

Auch die Admin-Beschreibungen wurden geändert. Ein Abbruch über das Dashboard lautet nun „Signing Request Cancellation requested“, eine Löschung „Signing Request Deletion requested“ und ein erneuter Zertifikatsversuch fügt „Certificate regeneration requested“ hinzu. Firma.dev schreibt jede Zeile, bevor die Änderung eintritt; „requested“ erfasst also die Anfrage und bestätigt nicht deren Abschluss. Überprüfen Sie den Status der Anfrage, bevor Sie anhand einer dieser Zeilen handeln. Vor v1.40.3 geschriebene Zeilen behalten den alten Wortlaut bei.

Die vollständige Liste finden Sie im API-Changelog und im Leitfaden zum Audit-Trail.

Zusammenfassung

Aktivieren Sie den Einmalcode, und jede ab dem 20. Oktober abgeschlossene Anfrage enthält den entsprechenden Nachweis: ein otp_verified-Ereignis mit Uhrzeit und IP-Adresse im Audit-Trail sowie eine Authentifizierungszeile auf dem Zertifikatseintrag jeder unterzeichnenden Person.

Starten Sie jetzt kostenlos mit Firma.dev – keine Kreditkarte erforderlich.

  1. Überschrift

Hintergrundbild

Bereit, elektronischen Unterschriften zu Ihrer Anwendung hinzuzufügen?

Kostenlos starten. Keine Kreditkarte erforderlich. Zahlen Sie nur 0,049 € pro Umschlag, wenn Sie bereit sind, live zu gehen.

Hintergrundbild

Bereit, elektronischen Unterschriften zu Ihrer Anwendung hinzuzufügen?

Kostenlos starten. Keine Kreditkarte erforderlich. Zahlen Sie nur 0,049 € pro Umschlag, wenn Sie bereit sind, live zu gehen.

Hintergrundbild

Bereit, elektronischen Unterschriften zu Ihrer Anwendung hinzuzufügen?

Kostenlos starten. Keine Kreditkarte erforderlich. Zahlen Sie nur 0,049 € pro Umschlag, wenn Sie bereit sind, live zu gehen.