LedgerLou Docs ist für Desktop optimiert.

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

Journal

Buchungs-Intent direkt erstellen

Erstellt einen neuen Buchungs-Intent direkt im Hauptbuch. Der Intent kann aus einer einfachen oder mehrzeiligen Split-Buchung bestehen. Die Soll- und Habenbeträge aller Buchungszeilen zusammen müssen ausgeglichen sein. Für Umsatzsteuer-Buchungen stehen zwei gleichwertige Wege zur Verfügung: entweder rohe Zeilen mit expliziten SKR04-Steuerkonten oder pro Zeile ein optionaler tax_code, der auf einen über GET /v1/tax-codes verfügbaren Steuerschlüssel verweist. Bei Nutzung von tax_code bucht die API den Brutto-Betrag und splittet die Zeile deterministisch in Netto plus Steuer auf das hinterlegte vat_account (Regelfall) bzw. erzeugt zusätzlich eine Selbstveranlagungs-Gegenbuchung auf self_assess_account (Reverse Charge / §13b / innergemeinschaftlicher Erwerb). Manuelle Steuerkontenzeilen und tax_code dürfen innerhalb einer Buchung nicht gemischt werden.

POST /v1/bookings
Authorization
Authorization string header erforderlich API-Key im Format ll_.... Übergabe als Bearer Token.
Request Body
booking_date string erforderlich Buchungsdatum (YYYY-MM-DD)
description string erforderlich Buchungstext
lines array erforderlich Eine oder mehrere Buchungszeilen; insgesamt muss Soll = Haben gelten
skip_duplicate_check boolean optional Duplikatprüfung überspringen
adjustment_period number optional 13 oder 14 für Abschlussperioden
fx object | null optional Fremdwährungsblock für Buchungen in Nicht-EUR-Währungen. Alle fünf Felder sind Pflicht, wenn fx angegeben wird. EUR-Buchungen lassen fx weg oder setzen es auf null.
external_reference string | null optional Freitext-Referenz zu einem externen System (Rechnungsnummer, Stripe-ID, ERP-Referenz). Max. 500 Zeichen. Unveränderlich nach Erstellung.
custom_metadata object | null optional Flaches Key-Value-Objekt für beliebigen Aufruferkontext (Kostenstelle, Projekt, Tags). Max. 20 Schlüssel, Schlüssel max. 64 Zeichen, String-Werte max. 256 Zeichen, Gesamt max. 4 KB. Werte dürfen string, number, boolean oder null sein. Unveränderlich nach Erstellung.
document_id string (uuid) | null optional Optionale Referenz auf ein zuvor hochgeladenes Dokument. Die UUID stammt aus POST /v1/documents.
Buchungszeile (`lines`)
account_number string erforderlich SKR04-Kontonummer
account_name string erforderlich Kontobezeichnung
debit number erforderlich Soll-Betrag. Bei Nutzung von tax_code ist dies der Brutto-Betrag, den die API automatisch in Netto + Steuer aufteilt.
credit number erforderlich Haben-Betrag. Bei Nutzung von tax_code ist dies der Brutto-Betrag, den die API automatisch in Netto + Steuer aufteilt.
tax_code string | null optional Optionaler Steuerschlüssel (z. B. VST19, UST19, VST-IGE19, VST-13B19) aus GET /v1/tax-codes. Wenn gesetzt, splittet die API die Zeile automatisch in Netto- und Steueranteil. Darf nicht mit manuellen Steuerkontenzeilen kombiniert werden. Die Zeile muss genau eine Soll- oder Haben-Seite belegen. FX-Buchungen mit Selbstveranlagungs-Steuerschlüsseln werden aktuell nicht unterstützt.
Fremdwährungsblock (`fx`)
currency string erforderlich ISO 4217 Währungscode (3 Großbuchstaben, nicht EUR)
foreign_amount number erforderlich Brutto-Betrag in Fremdwährung (max. 4 Dezimalstellen)
rate number erforderlich Umrechnungskurs Fremdwährung → EUR (max. 8 Dezimalstellen). Beispiel: 1 USD × 0.92 = 0.92 EUR
rate_date string erforderlich Stichtag des Kurses (YYYY-MM-DD)
rate_source string erforderlich Quelle des Kurses (1–64 Zeichen), z. B. ECB, manual, bank
Antworten
200
Erfolgreich
409
DUPLICATE_SUSPECTED Eine ähnliche Buchung wurde bereits gebucht. Nutze skip_duplicate_check: true, um eine weitere Buchung zu erzeugen.
400
PERIOD_LOCKED Die betroffene Periode ist gesperrt und akzeptiert keine neuen Buchungen.
400
INVALID_INPUT Pflichtfelder fehlen oder Werte entsprechen nicht dem erwarteten Format.
400
FX_AMOUNT_MISMATCH
400
FX_INVALID_RATE
400
FX_INVALID_RATE_DATE
400
FX_CURRENCY_EUR_NOT_ALLOWED
400
INVALID_TAX_CODE
400
MANUAL_TAX_LINES_NOT_ALLOWED_WITH_TAX_CODE
400
TAX_ACCOUNT_AS_SOURCE_NOT_ALLOWED
400
FX_SELF_ASSESS_NOT_SUPPORTED
400
TAX_CODE_PAIRING_UNSUPPORTED
POST /v1/bookings
cURL
-cmd">curl --request -method">POST -punct">\
  --url 'https://api.ledgerlou.de/v1/bookings' -punct">\
  --header 'Authorization: Bearer ll_your_key' -punct">\
  --header 'Content-Type: application/json' -punct">\
  --data '{
  "booking_date": "2025-06-01",
  "description": "Büromaterial Einkauf",
  "lines": [
    {
      "account_number": "6815",
      "account_name": "Bürobedarf",
      "debit": 119,
      "credit": 0,
      "tax_code": "VST19"
    },
    {
      "account_number": "1200",
      "account_name": "Bank",
      "debit": 0,
      "credit": 119
    }
  ]
}'
200 Response
JSON
{
  "intent_id": "<string>",
  "event_count": 1
}