Perioden
Das Perioden-Modul steuert, wann gebucht werden darf und wann nicht. Es ist die operative Leitplanke für saubere Monats- und Jahresabschlüsse.
YYYY-MM, automatisch angelegtStatusmodell
Jede Periode hat einen klar definierten Status, der bestimmt ob und wie gebucht werden darf.
Workflow
soft_locked gesetzt. Neue Buchungen erfordern eine explizite Freigabe — verhindert versehentliche Nachbuchungen.perioden:write erforderlich. Jede Ausnahme ist im Audit-Log dokumentiert.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:
| Periodenbezeichner | period_number | Zweck |
|---|---|---|
2025-12 | 0 | Reguläre Dezember-Buchungen |
2025-P13 | 13 | Erste Abschlussperiode (z. B. Jahresabschluss-Korrekturen) |
2025-P14 | 14 | Zweite 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/bookingsContent-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:
- Dezember regulär schließen (
2025-12→soft_locked) - P13 anlegen und Jahresabschlussbuchungen vornehmen
- P13 nach Steuerberater-Prüfung locken (
2025-P13→locked) - 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-adjustmentContent-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
Wichtige Endpunkte
| Methode | Endpoint | Scope | Zweck |
|---|---|---|---|
| GET | /v1/periods | perioden:read | Alle Perioden mit Status, period_number und Buchungsanzahl |
| POST | /v1/periods/:period/soft-lock | perioden:write | Soft-Lock setzen — :period ist YYYY-MM, YYYY-P13 oder YYYY-P14 |
| POST | /v1/periods/:period/lock | perioden:write | Finalen Lock setzen (GoBD, irreversibel) |
| POST | /v1/periods/:period/reopen | perioden:write | Soft-Lock aufheben |
| POST | /v1/periods/:year/create-adjustment | perioden:write | P13 oder P14 für ein Geschäftsjahr anlegen — Body: { "type": 13 | 14 } |
Periodenbezeichner-Format
| Format | Beispiel | Bedeutung |
|---|---|---|
YYYY-MM | 2025-12 | Reguläre Monatsperiode (period_number = 0) |
YYYY-P13 | 2025-P13 | Erste Abschlussperiode (period_number = 13) |
YYYY-P14 | 2025-P14 | Zweite Abschlussperiode (period_number = 14) |
Scopes
Lesen erfordert perioden:read, schreibende Operationen erfordern perioden:write: