Jahresabschluss.io
ENAnmeldenRegistrieren →

ChatGPT Actions einrichten

ChatGPT Actions für Ihre Buchhaltung

ChatGPT Actions sind die Schnittstelle, über die ein Custom GPT externe Dienste aufruft. Sie hinterlegen einmalig eine OpenAPI-Definition und einen Bearer-Schlüssel — danach liest und bebucht der Custom GPT Ihre Buchhaltung selbstständig über unsere offene REST-API. Der Custom GPT ist dabei Ihr eigenes Werkzeug und kein Bestandteil unserer Software; wir stellen nur die dokumentierten Endpunkte bereit. Diese Seite zeigt, wie Sie die Verbindung sauber, sicher und GoBD-konform einrichten. OpenAI stellt eigene GPTs samt Actions laut Ankündigung zum 11. Dezember 2026 ein; für eine dauerhafte Anbindung mit Ihrem OpenAI-Konto nutzen Sie Codex.

Was ChatGPT Actions mit der Buchhaltung machen

Wichtig: OpenAI hat angekündigt, eigene GPTs (Custom GPTs) zum 11. Dezember 2026 einzustellen; ihre Actions werden dabei nicht übernommen und müssten als App oder über einen eigenen MCP-Server neu gebaut werden. Einen eigenen MCP-Server bindet ChatGPT nur per OAuth oder ganz ohne Anmeldung an — einen API-Schlüssel kann es dort nicht mitgeben. Mit Ihrem OpenAI-Konto verbindet heute Codex (Kommandozeile oder IDE-Erweiterung) die Buchhaltung direkt mit Ihrem Schlüssel: In ~/.codex/config.toml tragen Sie unter [mcp_servers.buchhaltung] url = "https://api.jahresabschluss.io/functions/v1/bookkeeping-mcp" und bearer_token_env_var = "JAB_API_KEY" ein. Den Weg beschreibt die Seite /ki-agent/buchhaltung-mit-chatgpt. Bis zur Abschaltung ruft ein Custom GPT Ihre Buchhaltung direkt über beschriebene Endpunkte auf; drei Punkte sollten Sie dazu verstehen.

OpenAPI statt Programmierung

Sie müssen keine Software schreiben. Im GPT-Builder fügen Sie unter „Actions“ ein OpenAPI-Schema ein, das unsere Endpunkte beschreibt. ChatGPT liest daraus, welche Aufrufe möglich sind, und entscheidet anhand Ihrer Prompts, welchen Endpunkt es mit welchen Parametern aufruft.

Ein Schlüssel, eine Firma

Die Gesellschaft wird aus dem API-Schlüssel abgeleitet und ist kein Parameter im Aufruf. Ein Schlüssel gehört zu genau einer Firma. Für mehrere Mandanten legen Sie mehrere Custom GPTs mit je eigenem Schlüssel an — so kann kein Aufruf versehentlich Daten der falschen Gesellschaft berühren.

Ihr Agent, unsere Endpunkte

Der Custom GPT läuft in Ihrem eigenen Konto und gehört Ihnen. Wir liefern die REST-API und die Zugangsregeln. So bleibt die Trennung klar: Sie steuern den Agenten, wir verantworten die Buchhaltungslogik dahinter.

OpenAPI-Definition und Bearer-Authentifizierung

Im Actions-Dialog des GPT-Builders hinterlegen Sie zwei Dinge: das OpenAPI-Schema mit den Endpunkten und den Bearer-Schlüssel. Das Schema fügen Sie entweder direkt ein oder importieren es über eine URL; jeder Endpunkt braucht eine eindeutige operationId, an der ChatGPT den Aufruf erkennt. Den Schlüssel selbst tragen Sie NICHT in das Schema ein, sondern in den Authentifizierungs-Dialog (Authentifizierung → API-Schlüssel → Typ „Bearer“). ChatGPT sendet ihn dann bei jedem Aufruf als Header „Authorization: Bearer jab_live_…“. Die genaue Basis-URL entnehmen Sie der API-Dokumentation.

openapi: 3.1.0
info:
  title: Buchhaltung
  version: "1.0.0"
servers:
  - url: https://IHRE-API-BASIS/bookkeeping-api   # genaue Basis-URL: siehe API-Dokumentation
paths:
  /saldenliste:
    get:
      operationId: getSaldenliste
      summary: Saldenliste (SuSa) eines Geschaeftsjahres abrufen
      parameters:
        - name: fiscal_year_id
          in: query
          required: true
          schema: { type: string }
  /journal-entries:
    post:
      operationId: createBuchung
      summary: Manuelle Buchung anlegen — benoetigt Scope "write"
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
security:
  - bearerAuth: []

Die Endpunkte im Überblick

Dieselben Fähigkeiten wie über den MCP-Server — hier als REST-Endpunkte, die Sie in das OpenAPI-Schema aufnehmen. Die wichtigsten im Überblick:

  • Lesend (Scope „read“): GET /entity (Stammdaten), GET /fiscal-years (Geschäftsjahre), GET /accounts (Kontenrahmen inkl. Ihrer Anpassungen).
  • Lesend: GET /journal-entries (Buchungsjournal, gefiltert nach Geschäftsjahr, Zeitraum, Konto) und GET /journal-entries/{id} (einzelner Buchungssatz).
  • Lesend: GET /saldenliste (Summen- und Saldenliste), GET /open-items (offene Posten Debitor/Kreditor), GET /bank-transactions (Bankumsätze).
  • Lesend: GET /outgoing-invoices (Ausgangsrechnungen) und GET /incoming-invoices (Eingangsrechnungen).
  • Schreibend (Scope „write“): POST /journal-entries (manuelle Buchung), POST /journal-entries/{id}/storno (Stornobuchung).
  • Schreibend: POST /outgoing-invoices (Ausgangsrechnung stellen) und POST /incoming-invoices (Eingangsrechnung erfassen).

Lese- und Schreibrechte sauber trennen

Jeder Schlüssel trägt einen Scope. Ein reiner Lese-Schlüssel (Scope „read“) kann Saldenliste, Journal, offene Posten und Rechnungen abrufen, aber nichts verändern. Für einen Auswertungs- oder Reporting-GPT ist das die richtige Wahl: Selbst bei einem unklugen Prompt kann nichts gebucht werden.

Erst ein Schlüssel mit dem Scope „write“ gibt die schreibenden Endpunkte frei, den Rechnungsversand per E-Mail erst „send“. Wir empfehlen, Lesen und Schreiben auf getrennte Custom GPTs mit getrennten Schlüsseln aufzuteilen. Fällt ein Schlüssel weg, widerrufen Sie ihn unter Einstellungen → „KI-Agent & API“ und erzeugen einen neuen — die alte Verbindung ist damit sofort tot.

Bei schreibenden Aufrufen fragt ChatGPT vor der Ausführung um Bestätigung, sodass keine Buchung ohne Ihre ausdrückliche Freigabe entsteht. Sie sehen den geplanten Aufruf und die Werte, bevor er die REST-API erreicht. Beim ersten Aufruf einer neuen Domain zeigt ChatGPT zusätzlich einen Zustimmungsdialog — die Verbindung wird also nie unbemerkt aufgebaut.

GoBD bleibt erzwungen — auch über Actions

Ein schreibender Aufruf aus ChatGPT nimmt keine Abkürzung. Er läuft durch denselben Buchungskern wie eine Erfassung in der Anwendung selbst. Das Journal ist append-only: einmal geschriebene Sätze werden festgeschrieben und nicht mehr verändert oder gelöscht.

Eine Korrektur erfolgt ausschließlich per Stornobuchung, nicht durch Löschen. Jede Buchung muss ausgeglichen sein — Soll gleich Haben. Verstößt ein von ChatGPT vorgeschlagener Buchungssatz gegen diese Regeln, weist die API ihn ab, statt ihn zu speichern.

Dadurch bleibt die Ordnungsmäßigkeit unabhängig davon erhalten, welchen Agenten Sie einsetzen. Der Custom GPT bereitet und erfasst Buchungen — die Festschreibungs- und Nachvollziehbarkeitsregeln liegen fest im Buchungskern und lassen sich über die Schnittstelle nicht umgehen.

Praxisbeispiele: Prompts, die Actions auslösen

Sie formulieren Ihr Anliegen in normaler Sprache; der Custom GPT übersetzt es in den passenden Endpunktaufruf.

Auswerten (Lese-Scope)

„Zeig mir die Saldenliste für das Geschäftsjahr 2025 und nenne die zehn größten Aufwandskonten.“ oder „Welche Kreditoren-Offenen-Posten sind über 30 Tage überfällig?“ — der GPT ruft /saldenliste bzw. /open-items auf und fasst das Ergebnis zusammen.

Erfassen (Schreib-Scope)

„Erfasse die Eingangsrechnung von Büromöbel Lang, 1.190 € brutto, 19 % USt, auf Bürobedarf.“ Der GPT bereitet den Buchungssatz vor, zeigt ihn zur Bestätigung und ruft nach Ihrer Freigabe /incoming-invoices auf.

Korrigieren per Storno

„Storniere die Buchung Nummer 412 — falsches Gegenkonto.“ Der GPT sucht die Buchung im Journal (GET /journal-entries), nimmt ihre Kennung und löst /journal-entries/{id}/storno mit dem Grund aus. Es entsteht eine saubere Stornobuchung; der ursprüngliche Satz bleibt unverändert im Journal stehen.

Monatszahlen vorbereiten

„Liste alle noch nicht zugeordneten Bankumsätze im Juni und schlage Gegenkonten vor.“ Der GPT liest /bank-transactions und bereitet Buchungsvorschläge auf, die Sie einzeln freigeben.

Häufige Fragen

Was ist der Unterschied zwischen ChatGPT Actions und dem MCP-Server?

Beide sprechen dieselbe REST-API mit denselben Fähigkeiten, denselben Scopes und denselben GoBD-Regeln an. ChatGPT Actions sind der Weg für einen Custom GPT und arbeiten über eine OpenAPI-Definition. Der MCP-Server ist ein Adapter für MCP-fähige Agenten wie Claude Code oder Claude Desktop. Für ChatGPT brauchen Sie kein zusätzliches Paket — nur das OpenAPI-Schema und Ihren Schlüssel.

Kann ich mit ChatGPT Actions einen Jahresabschluss, eine E-Bilanz oder eine Steuererklärung erstellen?

Nein. Die API ist ausschließlich für die laufende Buchhaltung gedacht: lesen, buchen, stornieren, Rechnungen erfassen. Sie können damit die Zahlen vorbereiten und sauber halten, die später in der Anwendung zum Jahresabschluss oder zur E-Bilanz weiterverarbeitet werden. Das Erstellen oder Übermitteln eines Abschlusses geschieht in der Anwendung selbst, nicht über die Schnittstelle.

Muss ich meinen Custom GPT veröffentlichen, um Actions zu nutzen?

Nein. Ein Custom GPT mit Actions funktioniert auch rein privat in Ihrem Konto — für die Anbindung an Ihre Buchhaltung müssen Sie ihn weder veröffentlichen noch mit anderen teilen. Erst wenn Sie den GPT öffentlich im GPT-Store anbieten wollen, verlangt ChatGPT zusätzlich eine Datenschutz-URL. Für die interne Nutzung in Kanzlei oder Firma genügt der private Modus mit hinterlegtem jab_live_-Schlüssel.

Sieht ChatGPT dauerhaft meine gesamte Buchhaltung?

Der Custom GPT erreicht nur die Endpunkte, die Sie im OpenAPI-Schema freigeben, und nur die eine Firma, die zum Schlüssel gehört. Er ruft Daten dann ab, wenn ein Prompt es verlangt — es gibt keinen dauerhaften Vollzugriff. Beschränken Sie den Schlüssel auf „read“, wenn der GPT nur auswerten soll, und widerrufen Sie ihn jederzeit in der Übersicht.

Wie schütze ich den API-Schlüssel im Custom GPT?

Der Schlüssel beginnt mit jab_live_ und wird nur einmal im Klartext angezeigt. Hinterlegen Sie ihn ausschließlich im Authentifizierungs-Dialog der Actions, nie im sichtbaren Anweisungstext des GPT. Nutzen Sie pro Einsatzzweck einen eigenen Schlüssel mit passendem Scope. Da die Firma aus dem Schlüssel abgeleitet wird, kann ein Schlüssel niemals auf eine andere Gesellschaft zugreifen.

Brauche ich das npm-Paket für ChatGPT Actions?

Nein. Ein Paket beträfe ohnehin nur den MCP-Weg. ChatGPT Actions sprechen die REST-API direkt an — Sie benötigen lediglich das OpenAPI-Schema und den Bearer-Schlüssel. Für MCP-fähige Programme wie Claude Code oder Codex ist der gehostete MCP-Server per URL der Weg.

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