Jahresabschluss.io
ENAnmeldenRegistrieren →

PIN bleibt bei Ihnen

Freigabe-Link: Warum Ihr KI-Agent Ihre ELSTER-PIN nie braucht

Ihr KI-Agent braucht Ihre ELSTER-PIN nicht, weil er Steuermeldungen nur amtlich prüft und vorbereitet: Mit prepare_tax_filing friert er Werte und Prüfwert ein, mit request_tax_filing_approval erzeugt er einen Freigabe-Link, der sieben Tage gilt — und in der App übermitteln Sie selbst mit Ihrer PIN. Beim Öffnen des Links rechnet die App den Stand neu und zeigt Ihnen, ob sich seit der Vorbereitung etwas geändert hat. Ein Recht, mit dem ein API-Schlüssel ohne die App an ELSTER übermittelt, wird derzeit nicht vergeben.

Stand: 2026-10-19

Der Ablauf: prüfen, vorbereiten, freigeben

Jeder Schritt ist im MCP-Server ein Werkzeug und in der REST-API eine Route. Die Trennlinie liegt immer an derselben Stelle: Der Agent rechnet und prüft, die Übermittlung geschieht in der App.

  • check_tax_filing bzw. POST /v1/tax/check: die amtliche ELSTER-Prüfung mit ERiC und Testmerker. Es wird nichts übermittelt, auch nicht in der Sandbox. Die Antwort nennt valid, die Feldfehler (eric.field_errors), die Hindernisse und den Prüfwert des aktuellen Stands.
  • prepare_tax_filing bzw. POST /v1/tax/operations: legt einen Vorgang an, der Art, Zeitraum, Werte (manifest) und Prüfwert (manifest_sha256) einfriert — mit amtlicher Prüfung, Hindernissen und dem Kennzeichen sendebereit. Der Vorgang gilt 30 Minuten (expires_at).
  • request_tax_filing_approval bzw. POST /v1/tax/operations/{id}/approval-link: liefert freigabe_url und gueltig_bis. Der Link gilt sieben Tage, der Vorgang steht danach auf freigabe_angefragt.
  • get_tax_operation bzw. GET /v1/tax/operations/{id}: zeigt den Vorgang samt aktuellem Übermittlungsstand der Meldung — auch nachdem Sie über den Link in der App übermittelt haben, dann mit Transferticket.

Die Werkzeugbeschreibungen weisen den Agenten an, Ihnen nach dem Vorbereiten Art, Zeitraum, Werte, Prüfwert und jedes Hindernis zu zeigen und den Freigabe-Link als Standardweg zu empfehlen. Für Prüfen, Vorbereiten und den Link braucht der Schlüssel das Recht write; den Stand eines Vorgangs liest er mit dem Leserecht, das jeder Schlüssel hat.

Was der Prüfwert manifest_sha256 festhält

Eine Lesung, ein Stand

Werte und Prüfwert stammen aus derselben Lesung. Ändert sich eine Meldung, während die Schnittstelle sie prüft, wird nichts vorbereitet (409 stand_geaendert).

Neu gerechnet beim Öffnen

Die Freigabeseite rechnet den Prüfwert aus dem aktuellen Stand neu und vergleicht ihn mit dem eingefrorenen. So sehen Sie, ob seit der Vorbereitung gebucht oder geändert wurde.

  • Umsatzsteuer-Voranmeldung: die Kennzahlen des Zeitraums.
  • Zusammenfassende Meldung, Dauerfristverlängerung, Sondervorauszahlung und Umsatzsteuer-Jahreserklärung: die gespeicherte Meldung, und zwar in genau der Spaltenauswahl, mit der sie auch versendet wird.
  • E-Bilanz: der SHA-256-Wert der erzeugten XBRL-Datei; die gezeigten Beträge stammen aus genau dieser Datei.
  • Körperschaftsteuer, Gewerbesteuer und Anlage EÜR: die Sendewerte des Stands, den Sie in der App freigegeben haben.

Der Prüfwert ist ein SHA-256-Wert über genau die Werte, die der Agent Ihnen zeigt. Welche Werte das sind, hängt von der Meldung ab:

Was Sie beim Öffnen des Links sehen

Der Link führt auf die Seite „Freigabe einer Steuerübermittlung“ in der App. Öffnen kann ihn nur, wer angemeldet ist und die Gesellschaft bearbeiten darf.

  • Art und Zeitraum der Meldung, das Datum der Vorbereitung und den Anfang des Prüfwerts.
  • Die vorbereiteten Werte: bei der Voranmeldung die Kennzahlen, bei der Zusammenfassenden Meldung die Positionen je USt-IdNr. mit Summe, bei der Jahreserklärung die amtlichen Felder, bei der E-Bilanz Bilanzsummen und Jahresergebnis aus der Datei, bei KSt, GewSt und EÜR die Sendewerte.
  • Den Abgleich: „Unverändert seit der Vorbereitung durch Ihren Agenten“ oder „Seit der Vorbereitung geändert“. Im zweiten Fall zeigt die Versandseite die aktuellen Werte — und genau die werden übermittelt.
  • Die Hindernisse, die beim Vorbereiten gefunden wurden, etwa unbestätigte Zusatzangaben der Voranmeldung oder ein fehlendes Zertifikat.
  • Die Schaltfläche „Zur Übermittlung in der App“. Auf der Versandseite übermitteln Sie wie gewohnt mit Zwei-Faktor-Bestätigung und Ihrer ELSTER-PIN.

Bei KSt und GewSt vergleicht die Freigabeseite den Prüfwert nicht selbst: Die XML-Sendewerte prüfen und bestätigen Sie auf der Seite der Erklärung, bevor Sie senden. Ist der Link abgelaufen, können Sie auf der Versandseite trotzdem übermitteln — der Link ist eine Abkürzung zur richtigen Stelle, keine Voraussetzung.

Beispiel: die Voranmeldung für September freigeben

Ihr Auftrag im Chat lautet etwa: „Umsatzsteuer-Voranmeldung September 2026 vorbereiten, Werte zeigen und den Freigabe-Link schicken.“ Über REST sähen die beiden entscheidenden Aufrufe so aus:

# 1. Vorbereiten (Recht write)
curl -s -X POST \
  -H "Authorization: Bearer $JAB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"art":"ustva","period":"2026-09"}' \
  https://api.jahresabschluss.io/functions/v1/bookkeeping-api/v1/tax/operations

# 2. Freigabe-Link anfordern (vorgang_id aus Schritt 1)
curl -s -X POST \
  -H "Authorization: Bearer $JAB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}' \
  https://api.jahresabschluss.io/functions/v1/bookkeeping-api/v1/tax/operations/$VORGANG_ID/approval-link
  • Zuerst get_vat_supplementary: Der Agent liest die bedingten Fragen des amtlichen Vordrucks für September und fragt Sie, ob einer der Sachverhalte vorliegt. Erst nach Ihrem ausdrücklichen Nein bestätigt er mit confirm_vat_supplementary „keine Sonderfälle“; liegt einer vor, erfassen Sie ihn in der App.
  • Dann prepare_tax_filing mit art ustva und period 2026-09: Der Agent zeigt Ihnen Kennzahlen, Zahllast, Prüfwert und Hindernisse — etwa zusatzangaben_offen, solange die Fragen nicht bestätigt sind.
  • request_tax_filing_approval: Sie erhalten die freigabe_url, öffnen sie angemeldet und übermitteln in der App.
  • Zum Schluss get_tax_operation: Der Agent meldet Ihnen den Stand der Meldung mit Transferticket.

Warum die PIN nicht in den Chat gehört

Nach § 150 Abs. 2 AO sind die Angaben in Steuererklärungen wahrheitsgemäß nach bestem Wissen und Gewissen zu machen. Diese Verantwortung trägt der Mensch, der übermittelt, und die PIN des ELSTER-Zertifikats ist das Mittel, mit dem er es tut. Beim Freigabe-Link geben Sie die PIN nur auf der Versandseite der App ein; sie wird bei jeder Übermittlung abgefragt und nicht gespeichert.

Was Sie in ein KI-Programm schreiben, verarbeitet dessen Anbieter, je nach Programm samt Verlauf. Eine PIN im Chat läge damit außerhalb Ihrer Kontrolle. Mit dem Freigabe-Link erreicht sie den Agenten nie: Er kennt nur die vorbereiteten Werte, den Prüfwert und den Stand danach.

Dazu kommt Ihre Anmeldung. Die Freigabeseite öffnet nur, wer angemeldet ist und die Gesellschaft bearbeiten darf, und die Versandseite verlangt die Bestätigung mit dem zweiten Faktor. Ein abgeflossener API-Schlüssel allein genügt deshalb für keine Übermittlung.

Ein Senderecht wird derzeit nicht vergeben

  • höchstens eine Übermittlung je Gesellschaft zur selben Zeit;
  • senden könnte nur der Schlüssel, der den Vorgang vorbereitet hat, nur mit dessen Prüfwert und höchstens 30 Minuten nach dem Vorbereiten;
  • Pflicht zur ausdrücklichen Bestätigung nach § 150 Abs. 2 AO (confirm_150_ao);
  • nach zwei falschen PINs 24 Stunden lang keine Übermittlung über die Schnittstelle für diese Gesellschaft, damit das ELSTER-Zertifikat nicht gesperrt wird;
  • nach jeder Übermittlung eine Sicherheitsmail an den Ersteller des Schlüssels und die Administratoren des Arbeitsbereichs — ohne PIN und ohne Werte der Erklärung;
  • in der Sandbox nie eine Übermittlung.

API-Schlüssel tragen die Rechte read, write, send, webhooks und finalize. send betrifft Ausgangsrechnungen per E-Mail an hinterlegte Adressen, nicht das Finanzamt. Ein Recht, mit dem ein Schlüssel ohne die App an ELSTER übermittelt, wird derzeit nicht vergeben. Die Werkzeugliste, die Ihr Agent vom MCP-Server erhält, enthält deshalb kein Werkzeug zum Senden.

Unabhängig davon ist die Sendestrecke der Schnittstelle im Code eng begrenzt:

Was beim Menschen in der App bleibt

  • Die Übermittlung selbst, mit Zwei-Faktor-Bestätigung und PIN.
  • Sachverhalte, die nicht in den Büchern stehen: Sonderfälle der Voranmeldung, die Sachverhaltsfragen und die Freigabe von KSt und GewSt, die amtlichen Jahresfragen und die Freigabe der Anlage EÜR.
  • Das Anlegen der Umsatzsteuer-Jahreserklärung und das Erzeugen der E-Bilanz-Datei.
  • Berichtigungen und die Gewerbesteuererklärung mit Zerlegung — die Schnittstelle lehnt sie benannt ab oder verweist in die App.
  • Einkommensteuer, Feststellungserklärung, Lohnsteuer- und Kapitalertragsteuer-Anmeldung: nicht über die Schnittstelle.
  • Ein Kanzlei-Zertifikat: Die Schnittstelle verwendet es nicht; mit dem Freigabe-Link wird ohnehin in der App übermittelt.

Die Software ersetzt keine Steuerberatung. Was der Agent vorbereitet, ist ein Vorschlag; ob und was übermittelt wird, entscheiden Sie — allein oder gemeinsam mit Ihrer Kanzlei, die in derselben Software arbeiten kann.

Häufige Fragen

Braucht mein KI-Agent meine ELSTER-PIN?

Nein. Der Agent prüft und bereitet vor; übermittelt wird über den Freigabe-Link in der App, wo Sie die PIN selbst eingeben. Ein Recht, mit dem ein API-Schlüssel ohne die App an ELSTER übermittelt, wird derzeit nicht vergeben.

Wie lange gilt der Freigabe-Link?

Sieben Tage. Der vorbereitete Vorgang friert Werte und Prüfwert für 30 Minuten ein. Ist der Link abgelaufen, können Sie auf der Versandseite der App trotzdem übermitteln.

Was passiert, wenn sich nach dem Vorbereiten eine Buchung ändert?

Die Freigabeseite rechnet den Prüfwert neu und meldet „Seit der Vorbereitung geändert“. Übermittelt werden dann die aktuellen Werte, die Ihnen die Versandseite zeigt; Ihr Agent kann den Vorgang auch neu vorbereiten.

Wer kann den Freigabe-Link öffnen?

Nur wer in der App angemeldet ist und die Gesellschaft bearbeiten darf. Allen anderen zeigt die Seite nur, dass der Vorgang nicht vorhanden ist oder die Berechtigung fehlt.

Woher weiß der Agent, ob übermittelt wurde?

get_tax_operation liest den Vorgang samt aktuellem Stand der Meldung, mit Transferticket. list_tax_filings zeigt den Übermittlungsstand aller Meldungen, gleich ob in der App oder über den Link übermittelt.

Welche Rechte braucht der API-Schlüssel?

write für Prüfen, Vorbereiten und den Freigabe-Link; read genügt für Fristen, Meldungen und den Stand eines Vorgangs. Angelegt wird der Schlüssel in der App im Bereich „KI-Agent & API“, bestätigt mit dem zweiten Faktor.

Vom selben Anbieter: Jahresabschluss nach HGB – der komplette Leitfaden auf jahresabschluss.io.