Jahresabschluss.io
ENAnmeldenRegistrieren →

Eigene Anbindung

Eigene Software & ERP an die Buchhaltung anbinden

Wenn Ihr Shop, Ihre Faktura oder Ihr ERP schon Rechnungen erzeugt, sollen diese Vorgänge ohne Abtippen in den Büchern landen. Die REST-API macht genau das möglich: eine feste Endpunkt-Liste, ein Schlüssel je Unternehmen, klare Trennung zwischen lesen und buchen. Sie schicken Ausgangsrechnungen hinein, ziehen sich die Saldenliste ins Berichtswesen und halten Ihr System und Ihre Buchführung im Gleichtakt — GoBD-konform und ohne Umwege über Zwischendateien.

Stand: 2026-07-03

Zwei Richtungen: schreiben und lesen

Ihr System speist Belege ein und holt sich ausgewertete Zahlen zurück.

Schreiben: Belege einspeisen

POST /outgoing-invoices bucht eine Ausgangsrechnung als Erlös, Umsatzsteuer und Forderung. POST /incoming-invoices verbucht eine Eingangsrechnung mit Vorsteuer. Für individuelle Sätze gibt es POST /journal-entries mit Konto, Gegenkonto und Steuerschlüssel.

Lesen: Zahlen zurückholen

GET /saldenliste liefert die Summen- und Saldenliste inklusive HGB-Zuordnung fürs Berichtswesen. GET /open-items zeigt offene Forderungen und Verbindlichkeiten, GET /journal-entries das gefilterte Journal, GET /accounts den Kontenrahmen.

Die REST-Endpunkte im Überblick

Feste Allowlist, kein SQL, keine freie Abfrage. Jeder Schlüssel spricht genau ein Unternehmen an.

  • Lesen: GET /entity, GET /fiscal-years, GET /accounts, GET /journal-entries (und /{id}), GET /saldenliste, GET /open-items, GET /outgoing-invoices, GET /incoming-invoices, GET /bank-transactions.
  • Schreiben (write-Scope), zum Beispiel: POST /journal-entries, POST /journal-entries/{id}/storno, POST /outgoing-invoices, POST /incoming-invoices — dazu Zahlungen, Belege, Bank, Kasse und Anlagen. Den Rechnungsversand erlaubt erst der Scope send.
  • Authentifizierung: der Header Authorization mit Bearer jab_live_… — ein separater apikey-Header ist nicht nötig. Programme, die den Schlüssel nur ohne „Bearer“ oder im Header X-API-Key senden können, werden ebenfalls angenommen.
  • Das Unternehmen wird aus dem Schlüssel abgeleitet und nie als Parameter übergeben; ein Schlüssel kann keine fremden Daten sehen.

Ausgangsrechnung aus Ihrem System buchen

Ein POST je Rechnung — Erlös, Umsatzsteuer und Forderung entstehen in einem Schritt. So sieht der Aufruf aus.

# Ausgangsrechnung anlegen (bucht Erlös + USt + Forderung) — write-Scope
curl -s -X POST "$BASIS_URL/outgoing-invoices" \
  -H "Authorization: Bearer jab_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "fiscal_year_id": "<id aus GET /fiscal-years>",
    "idempotency_key": "<neue UUID, bei Wiederholung dieselbe>",
    "invoice_date": "2025-06-30",
    "service_date": "2025-06-30",
    "recipient": { "name": "Muster GmbH", "address": "Musterstraße 1, 10115 Berlin" },
    "line_items": [{ "description": "Beratung Juni 2025", "quantity": 1, "unit_price": 1000.00, "tax_rate": 19 }]
  }'

Robust integrieren

Ein paar Grundregeln, damit die Anbindung im Alltag verlässlich läuft.

Halten Sie Ihre Zuordnung von Konten und Steuerschlüsseln nah am Kontenrahmen (SKR03/SKR04) und lesen Sie bei Bedarf GET /accounts, statt Nummern hart zu verdrahten. So bleibt Ihre Anbindung stabil, auch wenn eigene Konten dazukommen.

Für Korrekturen nie ein Storno-Feld erfinden, sondern POST /journal-entries/{id}/storno rufen. Der Buchungskern erzwingt append-only, Festschreibung und Soll gleich Haben — Ihre Integration muss diese Regeln nicht selbst nachbauen, sie gelten ohnehin.

Planen Sie Wiederholungen ein: Jeder schreibende Aufruf trägt einen idempotency_key, eine UUID je Vorgang. Wiederholen Sie einen Aufruf nach einer Zeitüberschreitung mit derselben UUID und denselben Daten, entsteht keine zweite Buchung; eine neue UUID erzeugt dagegen einen zweiten Vorgang. Führen Sie die UUID deshalb auf Ihrer Seite je Vorgang mit. Lesende Aufrufe können Sie gefahrlos wiederholen.

Vom Beleg zum Abschluss — die klare Grenze

Die Schnittstelle liefert die Buchführung. Der Abschluss entsteht anderswo.

Ihr System speist Belege ein und liest ausgewertete Zahlen; die Schnittstelle bleibt eine Daten-Schnittstelle. Neben der Buchhaltung liest sie ausgestellte Jahresabschlüsse und prüft Steuermeldungen amtlich, ohne sie zu übermitteln. Einen Jahresabschluss, eine E-Bilanz oder eine Steuererklärung erzeugt sie nicht.

Die über die Endpunkte gebuchten Zahlen sind aber genau die Grundlage, die später im Programm in den Abschluss übernommen wird. Dieser Schritt geschieht bewusst in der App mit ihren Prüfungen und nicht in Ihrer Integration.

Häufige Fragen

Welche Programme kann ich anbinden?

Jedes, das HTTP-Anfragen senden kann — Ihr Shop, Ihre Faktura, ein ERP, ein eigenes Backend. Es gibt keine vorgeschriebene Plattform; Sie sprechen die feste Endpunkt-Liste der REST-API direkt an.

Wie authentifiziere ich meine Anfragen?

Über den Header Authorization mit dem Wert Bearer jab_live_…. Ein separater apikey-Header ist nicht nötig. Das Unternehmen ergibt sich aus dem Schlüssel, Sie übergeben es nie als Parameter.

Kann ich beliebige Buchungen absetzen?

Ja, über POST /journal-entries mit Konto, Gegenkonto und Steuerschlüssel — für Standardfälle bequemer über die Rechnungs-Endpunkte. Es gibt keinen SQL-Durchgriff; die Endpunkte sind eine feste Allowlist, jede Buchung folgt den GoBD-Regeln.

Wie korrigiere ich eine falsche Buchung?

Nicht durch Löschen, sondern mit POST /journal-entries/{id}/storno. Der Buchungskern ist append-only und schreibt fest — ein Storno erzeugt die Gegenbuchung, danach buchen Sie korrekt neu.

Kann meine Software den Jahresabschluss erzeugen?

Nein. Die REST-API arbeitet mit Buchhaltungsdaten und Buchungen. Sie erstellt keinen Jahresabschluss, keine E-Bilanz und keine Steuererklärung — dieser Schritt findet im Programm statt, nicht in Ihrer Anbindung.

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