Skip to content

Perioden

Das Perioden-Modul steuert, wann gebucht werden darf und wann nicht. Es ist die operative Leitplanke für saubere Monats- und Jahresabschlüsse.

MonatsperiodenZeiträume im Format YYYY-MM, automatisch angelegt
StatussteuerungOpen → Soft-Lock → Lock — klar definierte Übergänge
SchreibschutzGesperrte Perioden blockieren neue Buchungen
AbschlussqualitätStabile Auswertungen durch unveränderliche Perioden
WiedereröffnungSoft-Lock lässt sich für Ausnahmen gezielt aufheben
Abschlussperioden P13/P14Zusatzperioden für Jahresabschlussbuchungen nach der regulären Periode
Abweichendes WirtschaftsjahrPerioden werden ab dem konfigurierten Startmonat angelegt
API & MCPVollständig über API und MCP steuerbar

Statusmodell

Jede Periode hat einen klar definierten Status, der bestimmt ob und wie gebucht werden darf.

StatusBuchungen möglichBedeutung
openJaNormalbetrieb — Buchungen uneingeschränkt möglich.
soft_lockedEingeschränktVorläufiger Abschluss — Nachbuchungen nur in Ausnahmen.
lockedNeinFinaler Abschluss — keine Buchungen mehr möglich.

Workflow

1
Periode ist openDer laufende Monat ist offen. Buchungen werden normal ausgeführt. Status kann per API oder Dashboard abgefragt werden.
2
Soft-Lock zum MonatsendeNach dem Monatsabschluss wird die Periode auf soft_locked gesetzt. Neue Buchungen erfordern eine explizite Freigabe — verhindert versehentliche Nachbuchungen.
3
Ausnahme: WiedereröffnungNotwendige Nachbuchungen können gezielt zugelassen werden. Scope perioden:write erforderlich. Jede Ausnahme ist im Audit-Log dokumentiert.
4
Finaler LockNach Steuerberater-Freigabe wird die Periode locked. Ab diesem Punkt sind keine Buchungen mehr möglich — die Periode ist unveränderlich und auswertbar.

Zusatzperioden (P13/P14)

Viele GmbHs benötigen nach dem regulären Jahresabschlussmonat noch eine oder zwei weitere Buchungsperioden für Prüfungs- und Abschlusskorrekturen. LedgerLou unterstützt diese als P13 und P14 — auch bekannt als Abschlussbuchungsperioden oder Nachtragsperioden.

Konzept

P13 und P14 sind zusätzliche Perioden, die denselben Kalendermonat wie das Geschäftsjahresende verwenden (z. B. Dezember für ein Januar–Dezember-Wirtschaftsjahr), aber unabhängig von der regulären Dezember-Periode gesperrt und gelockt werden können:

Periodenbezeichnerperiod_numberZweck
2025-120Reguläre Dezember-Buchungen
2025-P1313Erste Abschlussperiode (z. B. Jahresabschluss-Korrekturen)
2025-P1414Zweite Abschlussperiode (z. B. nach Wirtschaftsprüfer-Freigabe)

So kann die reguläre Dezember-Periode bereits soft_locked sein, während in P13 noch Jahresabschlussbuchungen vorgenommen werden — und P14 dient einem zweiten Korrekturdurchlauf, falls nötig.

Buchungen in P13/P14 zuweisen

Eine manuelle Buchung wird durch den optionalen Parameter adjustment_period der entsprechenden Zusatzperiode zugewiesen:

POST /v1/bookings
Content-Type: application/json
{
"booking_date": "2025-12-31",
"description": "Jahresabschlussbuchung AfA",
"adjustment_period": 13,
"lines": [
{ "account_number": "6220", "account_name": "AfA Sachanlagen", "debit": 5000, "credit": 0 },
{ "account_number": "0820", "account_name": "Maschinen", "debit": 0, "credit": 5000 }
]
}

Fehlt adjustment_period, landet die Buchung in der regulären Monatsperiode (period_number = 0).

Schreibschutz in P13/P14

Der Datenbank-Trigger check_period_lock() wurde erweitert: Bei einer Buchung mit adjustment_period = 13 prüft er ausschließlich den Lock-Status der P13-Periode — nicht den der regulären Dezember-Periode. Reguläre Buchungen (ohne adjustment_period) bleiben vollständig von Zusatzperioden unberührt.

Das ermöglicht diesen typischen Abschlussablauf:

  1. Dezember regulär schließen (2025-12soft_locked)
  2. P13 anlegen und Jahresabschlussbuchungen vornehmen
  3. P13 nach Steuerberater-Prüfung locken (2025-P13locked)
  4. Bei Bedarf P14 für finale Wirtschaftsprüfer-Korrekturen anlegen

P13/P14 anlegen

Zusatzperioden müssen explizit angelegt werden — sie entstehen nicht automatisch:

POST /v1/periods/2025/create-adjustment
Content-Type: application/json
{ "type": 13 }

Der Endpunkt leitet das Fiscal-Year-End-Datum automatisch aus fiscal_year_start des Mandanten ab. Das zurückgegebene period-Label kann direkt für spätere Soft-Lock/Lock-Aufrufe verwendet werden.

Abweichendes Wirtschaftsjahr

LedgerLou unterstützt Wirtschaftsjahre, die nicht im Januar beginnen. Der fiscal_year_start-Wert des Mandanten (1–12) steuert zwei Verhalten:

Perioden-Seeding beim Onboarding: Beim Anlegen eines neuen Mandanten werden 24 Monate ab dem konfigurierten Startmonat angelegt — nicht mehr pauschal Januar bis Dezember. Für einen Mandanten mit fiscal_year_start = 5 (Mai) werden z. B. 2025-05 bis 2027-04 erstellt.

DATEV-Export: Das Feld Wirtschaftsjahresbeginn im DATEV-Buchungsstapel-Header wird aus fiscal_year_start gesetzt. Ein Mandant mit Startmonat Mai erhält 0501 im Header, kein hardcodiertes 0101.

Der fiscal_year_start wird während des Onboardings abgefragt und kann über PATCH /v1/tenant nachträglich angepasst werden.

Zugangswege

Dashboard (UI)Periodenstatus einsehen, Soft-Lock und Lock direkt im Dashboard setzen oder aufheben. Zusatzperioden P13/P14 per Klick anlegen.
REST APIPerioden lesen und Statusübergänge programmatisch steuern — z. B. automatisierter Monatsabschluss per Skript oder Service.

Wichtige Endpunkte

MethodeEndpointScopeZweck
GET/v1/periodsperioden:readAlle Perioden mit Status, period_number und Buchungsanzahl
POST/v1/periods/:period/soft-lockperioden:writeSoft-Lock setzen — :period ist YYYY-MM, YYYY-P13 oder YYYY-P14
POST/v1/periods/:period/lockperioden:writeFinalen Lock setzen (GoBD, irreversibel)
POST/v1/periods/:period/reopenperioden:writeSoft-Lock aufheben
POST/v1/periods/:year/create-adjustmentperioden:writeP13 oder P14 für ein Geschäftsjahr anlegen — Body: { "type": 13 | 14 }

Periodenbezeichner-Format

FormatBeispielBedeutung
YYYY-MM2025-12Reguläre Monatsperiode (period_number = 0)
YYYY-P132025-P13Erste Abschlussperiode (period_number = 13)
YYYY-P142025-P14Zweite Abschlussperiode (period_number = 14)

Scopes

Lesen erfordert perioden:read, schreibende Operationen erfordern perioden:write:

perioden:read perioden:write