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.
Was ChatGPT Actions mit der Buchhaltung machen
Ein Custom GPT ruft Ihre Buchhaltung nicht über Umwege, sondern direkt über beschriebene Endpunkte auf. Drei Punkte sollten Sie vorab 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 14 Fähigkeiten wie über den MCP-Server — hier als REST-Endpunkte, die Sie in das OpenAPI-Schema aufnehmen. Zehn lesen, vier schreiben.
- 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 Scope „read,write“ gibt die vier schreibenden Endpunkte frei. Wir empfehlen, Lesen und Schreiben auf getrennte Custom GPTs mit getrennten Schlüsseln aufzuteilen. Fällt ein Schlüssel weg, widerrufen Sie ihn in der Übersicht 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 löst /journal-entries/412/storno 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 14 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. Das Paket @jahresabschluss/buchhaltung-mcp ist noch nicht veröffentlicht und betrifft 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 Claude-Agenten ist derzeit die gehostete URL-Variante des MCP-Servers der verlässliche Weg.