Jahresabschluss per KI-Agent
Jahresabschluss per KI-Agent: was Ihr Agent übernimmt und was in der App bleibt
Ein KI-Agent wie Claude Code übernimmt beim HGB-Jahresabschluss vor allem drei Aufgaben: Er übergibt die Saldenliste aus der Buchhaltung an den Jahresabschluss, liest den Stand eines Geschäftsjahres und ruft ausgestellte Abschlüsse – Bilanz, GuV, Anhang und Lagebericht – als Text ab; erstellt, geprüft und ausgestellt wird der Abschluss in der App. Angebunden wird der Agent über unseren MCP-Server oder die REST-API, mit einem Schlüssel, der für genau eine Gesellschaft gilt. Was er liest, ist genau die Fassung, die Sie ausgestellt haben, nie ein Entwurf. Diese Seite zeigt den Weg vom letzten Buchungstag bis zur Offenlegungsdatei mit den echten Werkzeugnamen.
Stand: 2026-10-19
Wer was macht: Agent, App und Sie
Der Jahresabschluss ist hier ein Einzelabschluss nach HGB. Die Arbeit verteilt sich auf drei Stellen.
Der Agent in der Buchhaltung
Er bringt die Bücher in einen abschlussreifen Zustand, prüft mit get_saldenliste, ob Soll und Haben aufgehen, schreibt nach Ihrer Bestätigung mit finalize_bookkeeping_period fest und übergibt die Saldenliste mit publish_trial_balance an das Jahresabschluss-Modul.
Die App im Jahresabschluss
Dort prüfen Sie die Zuordnung der Konten zu Bilanz- und GuV-Posten, erstellen mit KI-Hilfe Anhang und Lagebericht, stellen den Abschluss als PDF oder DOCX aus und erzeugen die Offenlegungsdatei. Diese Schritte gibt es bewusst nicht als Werkzeug.
Der Agent als Leser
Nach dem Ausstellen liest er mit get_annual_report_status, list_annual_reports und get_annual_report Stand und Inhalt, mit list_disclosure_files die archivierten Offenlegungsdateien – für Zusammenfassungen, Kontrollen und Ihre Ablage.
Sie und Ihre Kanzlei
Aufstellen müssen die gesetzlichen Vertreter, offenlegen die Mitglieder des vertretungsberechtigten Organs. Die Software ersetzt keine Steuerberatung und keine Abschlussprüfung; Ihre Kanzlei kann in derselben Software mitarbeiten.
Die Werkzeuge rund um den Jahresabschluss
Jedes MCP-Werkzeug entspricht einer REST-Route unter /v1. Zum Lesen genügt das Recht read; für die Übergabe braucht der Schlüssel write, für das Festschreiben finalize.
- get_annual_report_status (GET /v1/annual-reports/status, fiscal_year_id ist Pflicht): festgeschrieben bis wann und ob das ganze Jahr festgeschrieben ist, ob eine Saldenliste übergeben wurde, wann zuletzt eine Aufstellungs- und eine Offenlegungsfassung ausgestellt wurde, wie viele Offenlegungsdateien archiviert sind, dazu der Stand der E-Bilanz sowie der Körperschaft- und Gewerbesteuererklärung des Veranlagungszeitraums.
- publish_trial_balance (POST /v1/saldenliste/publish, Recht write): übergibt die Saldenliste eines Geschäftsjahres an das Jahresabschluss-Modul und meldet Saldenlisten-ID, Zuordnungszahlen und Hinweise.
- list_annual_reports (GET /v1/annual-reports): die ausgestellten Abschlüsse mit Kennung, Geschäftsjahr, Fassung (aufstellung oder offenlegung), Format (pdf oder docx), Dateiname, Größe und Prüfsumme artifact_sha256.
- get_annual_report (GET /v1/annual-reports/{id}): die Abschnitte des ausgestellten Dokuments – Bilanz, GuV, Anhang, Lagebericht und weitere – je mit Überschrift, als Text und als HTML. Gibt es keinen ausgestellten Abschluss mit dieser Kennung, antwortet die Schnittstelle mit 404 no_issued_report statt mit leeren Werten.
- download_annual_report (GET /v1/annual-reports/{id}/file): die PDF- oder DOCX-Datei. Über MCP nennt das Werkzeug nur den Abrufweg, denn die Datei geht nicht durch das Modell.
- list_disclosure_files und download_disclosure_file (GET /v1/disclosure-files und /v1/disclosure-files/{id}/content): die archivierten Offenlegungsdateien mit Dokumentart, Ziel, Dateiname und SHA-256 sowie ihre exakten XML-Bytes.
Vom letzten Buchungstag bis zur Offenlegung
So greifen Agent und App ineinander – am Beispiel eines Geschäftsjahres, das am 31.12. endet.
- Abschluss vorbereiten: Belege, Bank, offene Posten, Anlagen, Rückstellungen und Abgrenzungen vollständig buchen. Welche Werkzeuge dafür bereitstehen, zeigt die Checkliste zur Abschlussvorbereitung.
- Kontrollieren: get_saldenliste mit der fiscal_year_id liefert je Konto Eröffnung, Verkehrszahlen, Schlusssaldo und den zugeordneten Bilanz- oder GuV-Posten, dazu totals.balanced.
- Festschreiben: Der Agent nennt den Stichtag, wartet auf Ihr Ja und ruft finalize_bookkeeping_period mit until und confirm=true auf. Erst wenn alle Buchungen des Jahres festgeschrieben sind, nimmt die Schnittstelle die Übergabe an.
- Übergeben: publish_trial_balance mit fiscal_year_id und einer neuen UUID als idempotency_key. Meldet die Antwort requires_manual_mapping, ordnen Sie die übrigen Konten in der App zu.
- Erstellen und ausstellen: in der App, mit Prüfungen und KI-Hilfe für Anhang und Lagebericht. Jede ausgestellte Fassung wird mit Prüfsumme archiviert.
- Lesen: get_annual_report_status zeigt unter abschluss_ausgestellt, ob und wann ausgestellt wurde, list_annual_reports nennt die Kennung, get_annual_report liefert den Inhalt.
- Offenlegen: In der App erzeugen Sie die Datei für das Unternehmensregister; der Agent findet sie mit list_disclosure_files. Eingereicht wird sie von Ihnen oder Ihrer Kanzlei.
Beispiel: ein Auftrag im Chat
So kann ein Auftrag an einen angebundenen Agenten aussehen:
Wie weit ist der Jahresabschluss 2025? Wenn er ausgestellt ist: Bilanzsumme, Jahresergebnis und die Angaben zu Haftungsverhältnissen kurz zusammenfassen – jeweils mit dem Abschnitt, aus dem die Angabe stammt.
Der Agent holt mit list_fiscal_years die Kennung des Geschäftsjahres 2025 und ruft get_annual_report_status auf. Steht saldenliste_uebergeben auf true, abschluss_ausgestellt.aufstellung aber auf null, sagt er Ihnen genau das: Die Zahlen liegen im Jahresabschluss-Modul, ausgestellt ist noch nichts. Eine Bilanzsumme schätzt er nicht.
Ist eine Fassung ausgestellt, findet er sie mit list_annual_reports, wählt die Aufstellungsfassung und liest sie mit get_annual_report. Tabellen von Bilanz und GuV kommen als Textzeilen mit Tabulatoren, der Anhang als Fließtext. Seine Antwort nennt Bilanzsumme und Jahresergebnis mit dem Abschnitt, aus dem sie stammen, und die Prüfsumme des Dokuments.
Möchten Sie die PDF-Datei ablegen, nennt download_annual_report den Befehl dafür. Die Datei laden Sie mit Ihrem Schlüssel aus einer Umgebungsvariable, nicht über den Chat.
Verbinden und abrufen
Ein Schlüssel, ein Server. Für Claude Code und für direkte REST-Aufrufe:
export JAB_API_KEY="jab_live_…" # Claude Code: MCP-Server eintragen claude mcp add --transport http --scope user buchhaltung \ https://api.jahresabschluss.io/functions/v1/bookkeeping-mcp \ --header "Authorization: Bearer $JAB_API_KEY" # REST: Stand des Jahresabschlusses eines Geschäftsjahres curl -H "Authorization: Bearer $JAB_API_KEY" \ "https://api.jahresabschluss.io/functions/v1/bookkeeping-api/v1/annual-reports/status?fiscal_year_id=<uuid>" # REST: ausgestellte Fassung als Datei speichern curl -H "Authorization: Bearer $JAB_API_KEY" -OJ \ "https://api.jahresabschluss.io/functions/v1/bookkeeping-api/v1/annual-reports/<id>/file"
Den Schlüssel legen Administratoren oder der Ersteller des Arbeitsbereichs in der App unter Buchhaltung → Einstellungen → „KI-Agent & API“ an, bestätigt mit dem zweiten Faktor. Er gilt für genau eine Gesellschaft, läuft spätestens nach 366 Tagen ab, und gespeichert wird nur sein Hash. Je Schlüssel sind 120 Anfragen pro Minute möglich.
Das OpenAPI-3.1-Schema aller Routen steht ohne Schlüssel unter https://api.jahresabschluss.io/functions/v1/bookkeeping-api/openapi.json. Dateien über 15 MB liefert die Schnittstelle nicht aus (413); diese laden Sie in der App herunter.
Der rechtliche Rahmen in Kürze
Nach § 242 Abs. 3 HGB bilden Bilanz und Gewinn- und Verlustrechnung den Jahresabschluss. Kapitalgesellschaften erweitern ihn nach § 264 Abs. 1 Satz 1 HGB um einen Anhang und stellen einen Lagebericht auf, und zwar in den ersten drei Monaten des Geschäftsjahres für das vergangene. Kleine Kapitalgesellschaften brauchen keinen Lagebericht und dürfen später aufstellen, wenn das einem ordnungsgemäßen Geschäftsgang entspricht, spätestens innerhalb von sechs Monaten (§ 264 Abs. 1 Satz 3 und 4 HGB).
Kleinstkapitalgesellschaften brauchen keinen Anhang, wenn sie bestimmte Angaben unter der Bilanz machen (§ 264 Abs. 1 Satz 5 HGB), und dürfen Bilanz und GuV verkürzt aufstellen (§ 266 Abs. 1 Satz 4, § 275 Abs. 5 HGB). Welche Größenklasse gilt, liest der Agent mit get_entity; welche Teile der ausgestellte Abschluss enthält, zeigt get_annual_report.
Offenzulegen sind die Unterlagen elektronisch bei der Stelle, die das Unternehmensregister führt (§ 325 Abs. 1 HGB), spätestens ein Jahr nach dem Abschlussstichtag (§ 325 Abs. 1a HGB). Konzernabschlüsse nach §§ 290 ff. HGB sind in der Software ein eigenes Modul und nicht Teil dieser Werkzeuge.
Warum der Agent nur Ausgestelltes liest
get_annual_report liefert das Dokumentmodell, das beim Ausstellen archiviert wurde – nicht den aktuellen Entwurf im Editor. Ändern Sie danach etwas und stellen neu aus, entsteht eine neue Fassung mit eigener Kennung und eigener Prüfsumme; die alte bleibt lesbar. So kann der Agent sagen, auf welche Fassung sich eine Aussage bezieht, und Sie finden sie später wieder.
Für Zwischenstände vor dem Ausstellen bleibt die Saldenliste: get_saldenliste rechnet aus dem Journal und ist ausdrücklich ein Buchhaltungsstand, kein Abschluss. Ein guter Agent kennzeichnet das in seiner Antwort. Alles, was das Modell daraus formuliert, ist ein Vorschlag; Freigabe und Verantwortung bleiben bei Ihnen.
Was in der App bleibt
- Die Kontenzuordnung prüfen und offene Konten zuordnen, wenn die Übergabe requires_manual_mapping meldet.
- Bilanz, GuV, Anhang und Lagebericht erstellen, prüfen und als PDF oder DOCX ausstellen.
- Die Zahlen des Jahresabschlusses festschreiben. Danach nimmt publish_trial_balance für dieses Jahr keine neue Saldenliste mehr an (409), bis Sie die Festschreibung unter „Bilanz & GuV“ aufheben.
- Die E-Bilanz erstellen und übermitteln: Der Agent kann sie amtlich prüfen und die Übermittlung vorbereiten, gesendet wird über den Freigabe-Link in der App.
- Die Offenlegungsdatei erzeugen und einreichen: An das Unternehmensregister übermittelt die Software derzeit nicht direkt.
- Gesellschaften mit Einnahmen-Überschuss-Rechnung stellen keinen Jahresabschluss auf; publish_trial_balance antwortet dort mit 409 und dem Code euer_betrieb.
Häufige Fragen
Kann ein KI-Agent meinen Jahresabschluss erstellen?
Nein. Er bereitet die Buchhaltung vor, schreibt nach Ihrer Bestätigung fest und übergibt die Saldenliste mit publish_trial_balance. Erstellt, geprüft und ausgestellt wird der HGB-Abschluss in der App; danach liest der Agent ihn mit get_annual_report.
Welche Rechte braucht der API-Schlüssel?
Zum Lesen von Stand, Abschlüssen und Offenlegungsdateien genügt read, das in jedem Schlüssel enthalten ist. Für publish_trial_balance braucht er write, für finalize_bookkeeping_period das eigene Recht finalize.
Liest der Agent den Entwurf oder den ausgestellten Abschluss?
Immer den ausgestellten Stand. get_annual_report liefert die Abschnitte genau der Fassung, die in der App ausgestellt wurde; ohne ausgestellten Abschluss kommt 404 no_issued_report.
Warum lädt der Agent die PDF nicht selbst herunter?
Dateien gehen nicht durch das Modell. download_annual_report nennt den REST-Abruf; Sie oder ein Skript laden die Datei mit dem Schlüssel aus einer Umgebungsvariable. Den Inhalt als Text liefert get_annual_report.
Reicht die Software den Abschluss beim Unternehmensregister ein?
Derzeit nicht direkt. Sie erzeugt die Offenlegungsdatei und archiviert sie mit SHA-256; die Einreichung übernehmen Sie oder Ihre Kanzlei. Der Agent kann die Datei mit list_disclosure_files und download_disclosure_file abrufen.
Gilt das auch für Konzernabschlüsse?
Nein. Diese Werkzeuge betreffen den Einzelabschluss nach HGB. Der Konzernabschluss ist in der Software ein eigenes Modul.
Was kostet die Anbindung?
REST-API und MCP-Server sind im Buchhaltungs-Abo ohne Aufpreis enthalten. Was Jahresabschluss und E-Bilanz kosten, steht auf der Preisseite.
Vom selben Anbieter: Jahresabschluss nach HGB – der komplette Leitfaden auf jahresabschluss.io.