LedgerLou Docs ist für Desktop optimiert.

Bitte öffne diese Seite auf einem Gerät mit breiterem Bildschirm.

Start

REST API — Einführung

Die LedgerLou REST API bietet direkten, deterministischen Zugriff auf das GoBD-konforme Hauptbuch. Alle Endpunkte sind scope-geschützt, Append-Only-sicher und vollständig auditiert.

Basis-URL

https://api.ledgerlou.com

Alle Endpunkte beginnen mit /v1/. Der vollständige Pfad einer Anfrage lautet daher zum Beispiel https://api.ledgerlou.com/v1/journal/bookings.

Authentifizierung

Jede Anfrage muss einen gültigen API-Key im Authorization-Header enthalten:

Authorization: Bearer ll_<ihr-api-key>

API-Keys beginnen immer mit dem Präfix ll_ und werden im Dashboard unter Einstellungen → API-Keys ausgestellt. Anfragen ohne gültigen Key werden mit 401 Unauthorized abgelehnt.

Beispiel — curl
Authentifizierte Anfrage
curl https://api.ledgerlou.com/v1/journal/bookings \
  -H "Authorization: Bearer ll_abc123..."
Beispiel — fetch
JavaScript / TypeScript
await fetch('/v1/journal/bookings', {
  headers: {
    Authorization: `Bearer ${apiKey}`
  }
});

Scopes

Jeder API-Key trägt eine Liste von Scopes im Format modul:aktion. Ohne den passenden Scope liefert der Server 403 Forbidden — unabhängig davon, ob der Key gültig ist.

AktionBeschreibungBeispiel
:readDaten lesenjournal:read
:writeDaten schreibenbank:write
adminGlobaler Scope — alle Module und Aktionenadmin

Für jeden Endpunkt zeigt diese Referenz neben dem Method-Badge, welcher Scope erforderlich ist. Detaillierte Scope-Tabelle: Auth & Scopes.

Query-Parameter

GET-Endpunkte akzeptieren Filter- und Paginierungsparameter als URL-Query-String. Parameter werden mit ? eingeleitet und mit & verkettet:

GET /v1/journal/bookings?from=2026-01-01&to=2026-01-31&limit=50

Werte müssen URL-kodiert sein. Zeichenketten mit Sonderzeichen (zum Beispiel Leerzeichen in Suchbegriffen) werden mit encodeURIComponent() kodiert:

GET /v1/accounts/search?q=Vorsteuer%2019%25
Datumsformate
ISO 8601

Datumsangaben immer im Format YYYY-MM-DD, Monatsperioden im Format YYYY-MM. Alle Zeitangaben in UTC.

Erforderliche Parameter
Pflicht vs. optional

In dieser Referenz sind Pflichtparameter mit required gekennzeichnet. Fehlende Pflichtparameter liefern 400 Bad Request.

Antwortformat

Alle Antworten sind JSON. Erfolgreiche Anfragen liefern den HTTP-Statuscode 200 (oder 201 für neu erstellte Ressourcen). Fehler folgen diesem Format:

Fehlerantwort
JSON-Struktur
{
  "error": "Kurze Fehlerbeschreibung",
  "details": [ ... ]  // optional, bei Validierungsfehlern
}
StatusBedeutung
200Erfolg
201Ressource erstellt
400Ungültige Eingabe — Parameter fehlen oder haben ein falsches Format
401Kein oder ungültiger API-Key
403Fehlender Scope für diese Aktion
404Ressource nicht gefunden
409Konflikt — zum Beispiel Duplikat oder gesperrte Periode
429Rate-Limit überschritten

Rate-Limiting

Standardlimit: 300 Anfragen pro Minute pro API-Key. Auth-Endpunkte (Login, Token) sind auf 10 Anfragen pro Minute begrenzt. Bei Überschreitung: 429 Too Many Requests mit Header Retry-After.