{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"Lohnjournal","description":"Payroll journal: per-period list of all employees with their gross, tax, social-security contributions (employee/employer shares) and net pay. Used for booking and audit trails; not a statutory form but required by GoBD-compliant record-keeping (§§238 ff. HGB, §§145 ff. AO).","type":"object","required":["employer","period","lines","totals"],"additionalProperties":false,"properties":{"employer":{"type":"object","required":["name","address","betriebsnummer"],"additionalProperties":false,"properties":{"name":{"type":"string","minLength":1},"legal_form":{"type":"string"},"address":{"type":"string","minLength":1},"betriebsnummer":{"type":"string","pattern":"^[0-9]{8}$"}}},"period":{"type":"object","required":["year","month","filing_date"],"additionalProperties":false,"properties":{"year":{"type":"integer","minimum":2020,"maximum":2100},"month":{"type":"integer","minimum":1,"maximum":12},"filing_date":{"type":"string","format":"date"}}},"lines":{"type":"array","minItems":1,"items":{"type":"object","required":["personal_number","full_name","tax_class","gross","lohnsteuer","soli","kirchensteuer","sv_employee","sv_employer","net"],"additionalProperties":false,"properties":{"personal_number":{"type":"string","minLength":1},"full_name":{"type":"string","minLength":1},"tax_class":{"type":"integer","minimum":1,"maximum":6},"krankenkasse":{"type":"string"},"gross":{"type":"number","minimum":0},"lohnsteuer":{"type":"number","minimum":0},"soli":{"type":"number","minimum":0},"kirchensteuer":{"type":"number","minimum":0},"sv_employee":{"type":"number","minimum":0},"sv_employer":{"type":"number","minimum":0},"net":{"type":"number"}}}},"totals":{"type":"object","required":["gross","lohnsteuer","soli","kirchensteuer","sv_employee","sv_employer","net","cost_to_employer"],"additionalProperties":false,"properties":{"gross":{"type":"number","minimum":0},"lohnsteuer":{"type":"number","minimum":0},"soli":{"type":"number","minimum":0},"kirchensteuer":{"type":"number","minimum":0},"sv_employee":{"type":"number","minimum":0},"sv_employer":{"type":"number","minimum":0},"net":{"type":"number"},"cost_to_employer":{"type":"number","minimum":0,"description":"Gross + employer SV + U-Umlagen"}}},"preparer":{"type":"object","required":["name","role"],"additionalProperties":false,"properties":{"name":{"type":"string","minLength":1},"role":{"type":"string","minLength":1},"date":{"type":"string","format":"date"}}}}}