German employment law for small companies: notice periods, costs, sick pay, contracts. No sign-in.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Germany only. Rule-of-thumb severance pay under German law (Abfindung, § 1a KSchG): monthly pay × factor × years of service, with the usual range of factors and the legal cap if a court dissolves the employment (§ 10 KSchG). There is usually no legal right to severance; use it to size an offer or a settlement. Germany only.
Last day of employment (YYYY-MM-DD)
First day of employment (YYYY-MM-DD)
Gross monthly salary incl. regular allowances, in euros
Age at leaving in years, only for the legal cap
Monthly salaries per year of service, default 0.5 (statutory value), commonly up to 1.0
True for a small business with regularly 10 or fewer full-time employees (part-time counted pro rata)
Day the notice of termination was received; the 6-month waiting period of the KSchG counts to this day (YYYY-MM-DD)
Annual one-off payments such as Christmas or holiday bonus, in euros; added with 1/12
Germany only. Rule-of-thumb severance pay under German law (Abfindung, § 1a KSchG): monthly pay × factor × years of service, with the usual range of factors and the legal cap if a court dissolves the employment (§ 10 KSchG). There is usually no legal right to severance; use it to size an offer or a settlement. Germany only.
| Argument | Type | Description |
|---|---|---|
| alter | number | Age at leaving in years, only for the legal cap |
| faktor | number | Monthly salaries per year of service, default 0.5 (statutory value), commonly up to 1.0 |
| austritt* | string | Last day of employment (YYYY-MM-DD) |
| eintritt* | string | First day of employment (YYYY-MM-DD) |
| kleinbetrieb | boolean | True for a small business with regularly 10 or fewer full-time employees (part-time counted pro rata) |
| zugang_kuendigung | string | Day the notice of termination was received; the 6-month waiting period of the KSchG counts to this day (YYYY-MM-DD) |
| monatsgehalt_brutto* | number | Gross monthly salary incl. regular allowances, in euros |
| sonderzahlungen_jahr | number | Annual one-off payments such as Christmas or holiday bonus, in euros; added with 1/12 |
{
"type": "object",
"required": [
"monatsgehalt_brutto",
"eintritt",
"austritt"
],
"properties": {
"alter": {
"type": "number",
"maximum": 80,
"minimum": 14,
"description": "Age at leaving in years, only for the legal cap"
},
"faktor": {
"type": "number",
"maximum": 2,
"minimum": 0.25,
"description": "Monthly salaries per year of service, default 0.5 (statutory value), commonly up to 1.0"
},
"austritt": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Last day of employment (YYYY-MM-DD)"
},
"eintritt": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "First day of employment (YYYY-MM-DD)"
},
"kleinbetrieb": {
"type": "boolean",
"description": "True for a small business with regularly 10 or fewer full-time employees (part-time counted pro rata)"
},
"zugang_kuendigung": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Day the notice of termination was received; the 6-month waiting period of the KSchG counts to this day (YYYY-MM-DD)"
},
"monatsgehalt_brutto": {
"type": "number",
"minimum": 0,
"description": "Gross monthly salary incl. regular allowances, in euros"
},
"sonderzahlungen_jahr": {
"type": "number",
"minimum": 0,
"description": "Annual one-off payments such as Christmas or holiday bonus, in euros; added with 1/12"
}
},
"additionalProperties": false
}Germany only. German employment law, Germany only: a complete HR workflow (Ablauf) with dates, roles and legal norms for a situation, e.g. first hire (erste Einstellung), onboarding (Eintritt), leaving (Austritt), sick employee (Krankheit, Entgeltfortzahlung, U1, BEM), pregnancy (Mutterschutz), parental leave (Elternzeit), preparing a dismissal (Kündigung), end of probation, end of a fixed-term contract, monthly payroll (Lohn). Use it when a founder describes a situation such as a first hire, a sick employee, a pregnancy or a planned dismissal. Takes only dates, numbers and choices, never names.
| Argument | Type | Description |
|---|---|---|
| art* | string | Which workflow |
| datum | string | Anchor date, meaning per art: erste_einstellung = erster Arbeitstag; eintritt = erster Arbeitstag; austritt = letzter Arbeitstag; krankheit = erster Krankheitstag; mutterschutz = voraussichtlicher Entbindungstermin; elternzeit = Beginn der Elternzeit; kuendigung_vorbereiten = geplanter Tag des Zugangs der Kündigung; probezeit_ende = erster Arbeitstag (Beginn der Probezeit); befristung_ende = letzter Tag der Befristung; monatsende_lohn = ein Tag im Lohnmonat (YYYY-MM-DD) |
| grund | string | Reason for leaving (Austrittsgrund), required for austritt; arbeitgeber = dismissal by the company |
| zugang | string | Day the notice or termination agreement was received (Zugang), austritt (YYYY-MM-DD) |
| eintritt | string | First working day of the person, for krankheit (waiting period) and kuendigung_vorbereiten (notice period) (YYYY-MM-DD) |
Germany only. German employment law, Germany only. Gives you what you need to write a formal warning letter (Abmahnung) yourself: the required parts (Rüge with date and time, verletzte Pflicht, Hinweis, Warnung vor Kündigung), a letter template with placeholders, writing rules, checklist and pitfalls. Use it when an employer wants to warn an employee about misconduct. The template uses roles instead of names of third parties. The facts themselves never go into this tool.
| Argument | Type | Description |
|---|---|---|
| anrede | string | Form of address in the letter, default sie |
| uhrzeit | string | Time of the incident, HH:MM, optional |
| verstoss* | string | Kind of misconduct (Art des Verstoßes) |
| briefdatum | string | Date of the letter; placeholder if empty (YYYY-MM-DD) |
| pflicht_aus | string | Where the breached duty is written (Die verletzte Pflicht steht in), default Arbeitsvertrag |
| datum_vorfall* | string | Day of the incident (Datum des Vorfalls) (YYYY-MM-DD) |
| fruehere_abmahnung | string | Earlier warning (frühere Abmahnung): none, for the same kind of misconduct, or for a different kind; default nein |
Germany only. Employer costs (Arbeitgeberkosten) of one employee in Germany per month and year: gross pay plus the employer share of social security (Sozialversicherung) for full-time, part-time, working students (Werkstudent) and mini-jobs (Minijob), with rates, contribution ceilings and sources. In the transition zone (Midijob, Übergangsbereich) it gives only the lower bound instead of guessing.
| Argument | Type | Description |
|---|---|---|
| art* | string | Type of employment |
| stichtag | string | Month the costs apply to, default today (YYYY-MM-DD) |
| brutto_monat* | number | Gross pay per month in euro |
| pauschsteuer | boolean | Mini-job: employer pays the 2 % flat-rate tax, default true |
| gesetzlich_versichert | boolean | Mini-job: person has statutory health insurance, default true |
{
"type": "object",
"required": [
"art",
"brutto_monat"
],
"properties": {
"art": {
"enum": [
"vollzeit",
"teilzeit",
"werkstudent",
"minijob"
],
"type": "string",
"description": "Type of employment"
},
"stichtag": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Month the costs apply to, default today (YYYY-MM-DD)"
},
"brutto_monat": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Gross pay per month in euro"
},
"pauschsteuer": {
"type": "boolean",
"description": "Mini-job: employer pays the 2 % flat-rate tax, default true"
},
"gesetzlich_versichert": {
"type": "boolean",
"description": "Mini-job: person has statutory health insurance, default true"
}
},
"additionalProperties": false
}Germany only. German employment reference (Arbeitszeugnis, Zwischenzeugnis, Endzeugnis), Germany only. Use it when a founder wants a reference written: give the kind of reference and a grade from 1 to 5 per area, never names. Returns the structure with mandatory parts, the coded wording (Zeugnissprache) for each grade, the overall grade with its satisfaction formula, forbidden codes and traps, and the legal claim under § 109 GewO.
| Argument | Type | Description |
|---|---|---|
| art | string | endzeugnis (final reference at the end of employment) or zwischenzeugnis (interim reference while employed), default endzeugnis |
| ende | string | Last day of employment, final reference only (YYYY-MM-DD) |
| grund | string | Why the employment ends, final reference only, default ohne (no reason stated) |
| beginn | string | First day of employment (YYYY-MM-DD) |
| umfang | string | qualifiziert (with performance and conduct, the usual case) or einfach (only kind and duration of work), default qualifiziert |
| schluss | string | Closing formula: note (thanks, regret and wishes matching the grade, default), dank (thanks only), keine (none) |
| note_fuehrung | number |
Germany only. German employment law, Germany only: retention periods for HR documents (Aufbewahrungsfristen) and the earliest day to delete them: payslips, payroll account, social security pay records, time records, contract and personnel file after exit, rejected applications, warning letters. With modus austritt it returns a deletion plan (Löschplan) for the personnel file after an exit date. Use it when someone asks how long to keep employee documents or when they may or must be deleted.
| Argument | Type | Description |
|---|---|---|
| datum | string | Start date: date of the document, last entry (lohnkonto), pay month (sv), rejection (bewerbung) or exit date (vertrag, akte, modus austritt). Not needed for abmahnung (YYYY-MM-DD) |
| modus | string | dokument (one document type) or austritt (deletion plan after exit). Default dokument |
| dokument | string | Document type: lohn (payslips, Lohnabrechnungen), reise (travel expense reports), lohnkonto (payroll account), sv (social security pay records, Entgeltunterlagen), arbeitszeit (time records), vertrag (employment contract after exit), akte (personnel file after exit), bewerbung (rejected applications), abmahnung (warning letter in ongoing employment) |
| pruefung_am | string | Only sv: day of that audit (YYYY-MM-DD) |
| verfahren_laeuft | boolean | A lawsuit or an audit about these documents is ongoing |
Germany only. Compensatory levy for unfilled jobs for severely disabled people under German law (Ausgleichsabgabe, §§ 154, 160 SGB IX), years 2024 to 2026. Takes the jobs and the severely disabled employees per month (or one value for all months) and returns required places, employment rate, rate per place and month, the levy and the 31 March deadline. Only employers with 20 or more jobs on annual average are affected. Germany only.
| Argument | Type | Description |
|---|---|---|
| jahr | string | Calendar year of employment, default the current year |
| arbeitsplaetze* | array | Jobs (Arbeitsplätze) of 18 or more hours per week without apprentices and fixed terms up to 8 weeks: one value for every month or 12 values January to December |
| schwerbehinderte | array | Severely disabled or equivalent employees as counted by the employment agency (angerechnet): one value or 12 monthly values, default 0 |
{
"type": "object",
"required": [
"arbeitsplaetze"
],
"properties": {
"jahr": {
"enum": [
"2024",
"2025",
"2026"
],
"type": "string",
"description": "Calendar year of employment, default the current year"
},
"arbeitsplaetze": {
"type": "array",
"items": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Number of jobs"
},
"maxItems": 12,
"description": "Jobs (Arbeitsplätze) of 18 or more hours per week without apprentices and fixed terms up to 8 weeks: one value for every month or 12 values January to December"
},
"schwerbehinderte": {
"type": "array",
"items": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Number of people"
},
"maxItems": 12,
"description": "Severely disabled or equivalent employees as counted by the employment agency (angerechnet): one value or 12 monthly values, default 0"
}
},
"additionalProperties": false
}Germany only. German employment law, Germany only: checks a fixed-term contract without objective reason (sachgrundlose Befristung, § 14 TzBfG). Returns the latest allowed end date (2 years, 4 for new companies, 5 from age 52), extensions used and left, and a traffic light with findings on prior employment (Vorbeschäftigung), written form (Schriftform) and extensions (Verlängerung). Use it before signing or extending a fixed-term contract.
| Argument | Type | Description |
|---|---|---|
| ab52 | boolean | Special case: at least 52 at start and unemployed for at least 4 months before (§ 14 Abs. 3 TzBfG) |
| ende | string | End of the first contract, without extensions (YYYY-MM-DD) |
| beginn* | string | Start of the first fixed-term contract (YYYY-MM-DD) |
| gruendung | string | Founding date if the company is a new business (§ 14 Abs. 2a TzBfG) (YYYY-MM-DD) |
| schriftform | string | Signed on paper by both sides before the first working day: ja, nein, unklar. Default unklar |
| verlaengerungen | array | Extensions in order |
| regelaltersgrenze | boolean | Person had reached the standard retirement age at contract start (§ 41 Abs. 2 SGB VI) |
Germany only. Checks whether an employer must offer occupational integration management under German law (betriebliches Eingliederungsmanagement, BEM, § 167 Abs. 2 SGB IX): more than 6 weeks of incapacity to work within the last 12 months, counted in calendar days and in working days, whatever the cause. Returns the counts, the day the limit was crossed and the next steps. Applies from the first employee. Germany only.
| Argument | Type | Description |
|---|---|---|
| stichtag | string | Reference date, the 12 months before it are counted; default today (YYYY-MM-DD) |
| zeitraeume* | array | Periods of incapacity to work (Arbeitsunfähigkeit) of any cause, incl. partial incapacity. Follow-up notes as one period. |
| arbeitstage | array | Working days of the person, default Mo to Fr |
{
"type": "object",
"required": [
"zeitraeume"
],
"properties": {
"stichtag": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Reference date, the 12 months before it are counted; default today (YYYY-MM-DD)"
},
"zeitraeume": {
"type": "array",
"items": {
"type": "object",
"required": [
"von"
],
"properties": {
"bis": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Last day; leave out if still ongoing (YYYY-MM-DD)"
},
"von": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "First day (YYYY-MM-DD)"
}
},
"additionalProperties": false
},
"maxItems": 20,
"description": "Periods of incapacity to work (Arbeitsunfähigkeit) of any cause, incl. partial incapacity. Follow-up notes as one period."
},
"arbeitstage": {
"type": "array",
"items": {
"enum": [
"Mo",
"Di",
"Mi",
"Do",
"Fr",
"Sa",
"So"
],
"type": "string",
"description": "Weekday"
},
"maxItems": 7,
"description": "Working days of the person, default Mo to Fr"
}
},
"additionalProperties": false
}Germany only. German employment law, Germany only: deadlines for parental leave (Elternzeit, §§ 15 to 18 BEEG). Returns the last day the request must reach the employer (7 weeks, 13 weeks after the 3rd birthday), the required form, start and end of protection against dismissal (Kündigungsschutz), the end of maternity protection for the mother and the possible cut of annual leave (Urlaubskürzung). Use it when an employee announces parental leave or a request has arrived.
| Argument | Type | Description |
|---|---|---|
| ende* | string | Last day of parental leave (YYYY-MM-DD) |
| beginn* | string | First day of parental leave (YYYY-MM-DD) |
| geburt* | string | Child's date of birth, or the expected date if not born yet (YYYY-MM-DD) |
| teilzeit | boolean | Employee works part-time for you during parental leave |
| elternteil | string | Who takes the leave: mutter (mother) or anderer (father or other parent). Default anderer |
| jahresurlaub | number | Annual leave in days, optional, for the possible cut |
| antrag_zugang | string |
Germany only. Continued pay during sickness under German law (Entgeltfortzahlung, § 3 EFZG): up to 6 weeks per illness after a 4-week waiting period, with repeated sickness from the same illness (Fortsetzungserkrankung). Returns paid days, the last day of continued pay and when sickness benefit (Krankengeld) starts, the refund via the U1 levy (Umlage U1) and when a BEM is due. Use it when an employee is or was sick. Germany only.
| Argument | Type | Description |
|---|---|---|
| beginn* | string | First day of the employment relationship, starts the 4-week waiting period (YYYY-MM-DD) |
| zeitraeume* | array | Periods of incapacity to work (Arbeitsunfähigkeit) in date order, first and last day as on the sick note. Follow-up notes without a gap are one period. |
{
"type": "object",
"required": [
"beginn",
"zeitraeume"
],
"properties": {
"beginn": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "First day of the employment relationship, starts the 4-week waiting period (YYYY-MM-DD)"
},
"zeitraeume": {
"type": "array",
"items": {
"type": "object",
"required": [
"von",
"bis"
],
"properties": {
"bis": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Last day of incapacity to work (YYYY-MM-DD)"
},
"von": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "First day of incapacity to work (YYYY-MM-DD)"
},
"ursache_unsicher": {
"type": "boolean",
"description": "True if it is not certain that it is the same illness; both variants are then calculated"
},
"erster_tag_gearbeitet": {
"type": "boolean",
"description": "True if the person still worked on the first day; that day does not count"
},
"gleiche_erkrankung_wie": {
"type": "number",
"maximum": 11,
"minimum": 1,
"description": "Number of an earlier period (1 = first) with the same illness (Fortsetzungserkrankung). Leave out for a new illness"
}
},
"additionalProperties": false
},
"maxItems": 12,
"description": "Periods of incapacity to work (Arbeitsunfähigkeit) in date order, first and last day as on the sick note. Follow-up notes without a gap are one period."
}
},
"additionalProperties": false
}Germany only. Remember an HR deadline without storing anything here: returns a calendar entry (iCalendar text the user can save) and a link to the matching calculator on lintelly.com, where the user can request an e-mail reminder (double opt-in). Lintelly HR has no memory and stores no personal data.
| Argument | Type | Description |
|---|---|---|
| datum* | string | The deadline (YYYY-MM-DD) |
| frist* | string | Kind of deadline |
{
"type": "object",
"required": [
"datum",
"frist"
],
"properties": {
"datum": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "The deadline (YYYY-MM-DD)"
},
"frist": {
"enum": [
"Ende des Arbeitsverhältnisses",
"Ende des befristeten Vertrags",
"Spätestes Ende ohne Sachgrund",
"Wiedervorlage BEM-Prüfung",
"Spätester Eingang des Elternzeit-Antrags",
"Beginn der Elternzeit",
"Verfall des Resturlaubs",
"Anzeige und Zahlung der Ausgleichsabgabe",
"Ende der Probezeit",
"Beginn der Schutzfrist vor der Geburt",
"Ende der Aufbewahrungsfrist",
"Ende der Entgeltfortzahlung"
],
"type": "string",
"description": "Kind of deadline"
}
},
"additionalProperties": false
}Germany only. Checklist for job interviews in Germany (Vorstellungsgespräch, Interviewfragen), Germany only. Use it when a founder prepares an interview or asks whether a question is allowed, e.g. about pregnancy (Schwangerschaft), religion, health or age under the AGG. Returns forbidden and sensitive topics with the reason, allowed questions, the method for structured questions with rating anchors and the interview flow.
| Argument | Type | Description |
|---|---|---|
| form | string | Interview setting: vor_ort (in person) or telefon_video (phone or video) |
| senioritaet | string | Seniority of the role: ausbildung (apprenticeship or internship), berufseinstieg (entry level), berufserfahren (2 to 5 years), senior, fuehrungskraft (manager) |
{
"type": "object",
"properties": {
"form": {
"enum": [
"vor_ort",
"telefon_video"
],
"type": "string",
"description": "Interview setting: vor_ort (in person) or telefon_video (phone or video)"
},
"senioritaet": {
"enum": [
"ausbildung",
"berufseinstieg",
"berufserfahren",
"senior",
"fuehrungskraft"
],
"type": "string",
"description": "Seniority of the role: ausbildung (apprenticeship or internship), berufseinstieg (entry level), berufserfahren (2 to 5 years), senior, fuehrungskraft (manager)"
}
},
"additionalProperties": false
}Germany only. Calculate the deadline for an unfair dismissal claim (Klagefrist, Kündigungsschutzklage) in Germany: 3 weeks after the written notice was received (§ 4 KSchG), moved to the next working day if it ends on a weekend or public holiday (§ 222 Abs. 2 ZPO). Applies in small businesses too. Use it to know from when a dismissal can be treated as final.
| Argument | Type | Description |
|---|---|---|
| zugang* | string | Day the written notice was received (YYYY-MM-DD) |
| bundesland | string | Federal state of the company for public holidays (Bundesland), e.g. HE |
{
"type": "object",
"required": [
"zugang"
],
"properties": {
"zugang": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Day the written notice was received (YYYY-MM-DD)"
},
"bundesland": {
"enum": [
"BW",
"BY",
"BY-OHNE-MH",
"BY-AUGSBURG",
"BE",
"BB",
"HB",
"HH",
"HE",
"MV",
"NI",
"NW",
"RP",
"SL",
"SN",
"ST",
"SH",
"TH"
],
"type": "string",
"description": "Federal state of the company for public holidays (Bundesland), e.g. HE"
}
},
"additionalProperties": false
}Germany only. Read one clause of a German employment contract against 17 clause types that are void or prohibited under German law (rote Liste), e.g. all overtime paid with the salary, non-compete without compensation, cut-off periods without exceptions. Returns matches with reason, norm and the safe alternative clause. No match is not a legal review of validity. The text is only read, never stored.
| Argument | Type | Description |
|---|---|---|
| klausel* | string | Clause text, up to 3,000 characters |
{
"type": "object",
"required": [
"klausel"
],
"properties": {
"klausel": {
"type": "string",
"maxLength": 3000,
"description": "Clause text, up to 3,000 characters"
}
},
"additionalProperties": false
}Germany only. German employment law, Germany only. Checklist of the formal requirements when an employer gives notice (Kündigung durch den Arbeitgeber), each item with its legal norm: written form, receipt (Zugang), notice period, works council hearing, special protection (Sonderkündigungsschutz), small business without the Kündigungsschutzgesetz up to 10 employees, 3-week deadline for a claim, Arbeitsbescheinigung, reference (Zeugnis), remaining holiday. Use it before a dismissal.
| Argument | Type | Description |
|---|---|---|
| betriebsrat | boolean | There is a works council (Betriebsrat), default false |
| beschaeftigte* | number | Number of employees counted under § 23 KSchG: apprentices not counted, part-time pro rata |
{
"type": "object",
"required": [
"beschaeftigte"
],
"properties": {
"betriebsrat": {
"type": "boolean",
"description": "There is a works council (Betriebsrat), default false"
},
"beschaeftigte": {
"type": "number",
"maximum": 10000,
"minimum": 1,
"description": "Number of employees counted under § 23 KSchG: apprentices not counted, part-time pro rata"
}
},
"additionalProperties": false
}Germany only. Calculate the notice period (Kündigungsfrist) for a German employment contract under §§ 187, 188, 622 BGB: end of employment, latest day the notice must be received, the next three possible end dates, the rule applied and warnings (e.g. notice received on a Sunday). Covers probation, length of service, small businesses and longer contractual periods. Use it for dismissals by the employer and resignations.
| Argument | Type | Description |
|---|---|---|
| zugang* | string | Day the notice is received by the other side, not the date of the letter (YYYY-MM-DD) |
| eintritt* | string | First day of employment (YYYY-MM-DD) |
| bundesland | string | Federal state of the company for public holidays (Bundesland), e.g. HE |
| tarifvertrag | boolean | A collective agreement applies (it may set other periods) |
| wer_kuendigt | string | Who gives notice, default arbeitgeber |
| vertrag_monate | number | Longer notice period in the contract, months |
| vertrag_termin | string | End date of the contractual period |
Germany only. German employment law, Germany only. Builds an employer's termination letter (Kündigungsschreiben, ordentliche Kündigung) in DIN 5008 form with the end date calculated under § 622 BGB from start date and day of receipt (Zugang), plus the checklist before sending (Schriftform § 623 BGB, Zugang, Vollmacht, Klagefrist). Names, addresses and signer stay placeholders in square brackets. Not for summary dismissal (fristlose Kündigung) or apprentices.
| Argument | Type | Description |
|---|---|---|
| anrede | string | Form of address in the letter, default sie |
| zugang* | string | Day the employee receives the signed original (Zugang), not the date of the letter (YYYY-MM-DD) |
| eintritt* | string | First day of employment (Eintritt); apprenticeship in the same company counts (YYYY-MM-DD) |
| rueckgabe | boolean | Ask for return of work equipment, default true |
| ausbildung | boolean | Apprenticeship (Ausbildungsverhältnis); the template does not fit then |
| briefdatum | string | Date of the letter; placeholder if empty (YYYY-MM-DD) |
| zustellung | string |
Germany only. Check a monthly salary and weekly hours against the German statutory minimum wage (Mindestlohn) on a given date: hourly wage, minimum wage, required monthly pay and the shortfall. Uses 13/3 weeks per month like payroll. Not for apprentices (they have a minimum training allowance).
| Argument | Type | Description |
|---|---|---|
| stichtag | string | Date to check, default today (YYYY-MM-DD) |
| brutto_monat* | number | Gross pay per month in euro |
| wochenstunden* | number | Contractual hours per week |
{
"type": "object",
"required": [
"brutto_monat",
"wochenstunden"
],
"properties": {
"stichtag": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Date to check, default today (YYYY-MM-DD)"
},
"brutto_monat": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Gross pay per month in euro"
},
"wochenstunden": {
"type": "number",
"maximum": 60,
"minimum": 0.5,
"description": "Contractual hours per week"
}
},
"additionalProperties": false
}Germany only. Mini-job check under German law (Minijob, geringfügige Beschäftigung, § 8 SGB IV) for 2026 and 2027: maximum hours under the monthly earnings limit, minimum wage check (Mindestlohn), annual limit including one-off payments, and the employer's flat-rate contributions and levies (Pauschalabgaben). Use it before hiring a mini-jobber or changing hours or pay. Germany only.
| Argument | Type | Description |
|---|---|---|
| jahr | string | Year, default the current year |
| stunden | number | Planned working hours, leave out to get only the maximum hours |
| stunden_je | string | Whether the hours are per week or per month, default week |
| stundenlohn* | number | Gross hourly wage in euros |
| pauschsteuer | boolean | True (default) for the usual 2 % flat-rate tax |
| einmalzahlungen_jahr | number | Promised one-off payments in the year in euros, e.g. Christmas bonus |
| gesetzlich_krankenversichert | boolean | True (default) if the person has statutory health insurance; then the employer pays the 13 % health flat rate |
Germany only. Guide for employee meetings in German companies (Mitarbeitergespräch), Germany only: critical feedback (Kritikgespräch), probation review (Probezeitgespräch), annual review (Jahresgespräch) or return after illness (Rückkehrgespräch). Use it when a founder has to hold such a meeting. Returns duration, preparation, phases with goal and open questions, difficult moments, a minutes template and legal traps such as BEM or works council rights.
| Argument | Type | Description |
|---|---|---|
| art* | string | Kind of meeting: kritik (critical feedback), probezeit (probation review), jahr (annual review), rueckkehr (return after illness) |
| betriebsrat | boolean | The company has a works council (Betriebsrat), default false |
{
"type": "object",
"required": [
"art"
],
"properties": {
"art": {
"enum": [
"kritik",
"probezeit",
"jahr",
"rueckkehr"
],
"type": "string",
"description": "Kind of meeting: kritik (critical feedback), probezeit (probation review), jahr (annual review), rueckkehr (return after illness)"
},
"betriebsrat": {
"type": "boolean",
"description": "The company has a works council (Betriebsrat), default false"
}
},
"additionalProperties": false
}Germany only. German employment law, Germany only: maternity protection periods (Mutterschutz, MuSchG) from the expected delivery date, protection before and after birth, extension after premature or multiple birth, the ban on dismissal (Kündigungsverbot) and the employer's duties: notify the supervisory authority (Aufsichtsbehörde) and get the maternity pay supplement refunded (Umlage U2). Also covers miscarriage and stillbirth (Fehlgeburt, Totgeburt). Use it when an employee is pregnant, has given birth or lost a pregnancy.
| Argument | Type | Description |
|---|---|---|
| fall | string | schwangerschaft (pregnancy or birth) or fehlgeburt (miscarriage or stillbirth). Default schwangerschaft |
| geburt | string | Actual date of birth, leave out while the child is not born (YYYY-MM-DD) |
| mehrlinge | boolean | Twins or more (12 weeks after birth) |
| behinderung | boolean | Disability of the child certified within 8 weeks, on request (12 weeks after birth) |
| fruehgeburt | boolean | Premature birth as medically certified (12 weeks after birth) |
| ab_500_gramm | boolean | Weight at least 500 grams, then it counts as stillbirth even before week 24 |
| fehlgeburt_am | string |
Germany only. Checklist of the mandatory written terms of employment under § 2 Abs. 1 NachwG (Nachweisgesetz, Arbeitsvertrag-Check), Germany only. Use it when a founder hires someone or checks a contract: with the start date it gives the deadline for each of the 15 items (first working day, 7th calendar day, one month), with an answer per item it shows what is missing or overdue. It also checks the form: written form, text form since 2025 under conditions, paper-only industries and fixed-term contracts.
| Argument | Type | Description |
|---|---|---|
| form | string | How the written statement is given: papier (signed paper), textform (PDF or e-mail), nichts (nothing in writing yet) |
| beginn | string | Agreed first day of employment; deadlines count from it (YYYY-MM-DD) |
| angaben | array | What the contract already contains, per item 1 to 15: drin (included), fehlt (missing), entfaellt (not applicable, only for items that apply only if agreed). Items without an answer count as open |
| befristet | boolean | Fixed-term contract (befristet), default false |
| empfangsbestaetigung | boolean | With textform: the employee is asked to confirm receipt |
| papierpflicht_branche | boolean | Industry under § 2a SchwarzArbG (construction, hospitality, passenger transport, logistics, fairground, building cleaning, trade fair construction, meat industry, prostitution, security, hairdressing and cosmetics): paper only, default false |
Germany only. German employment law, Germany only: checks shifts against the rules on breaks (Pausen), maximum daily and weekly working time (Höchstarbeitszeit) and rest between shifts (Ruhezeit) under the ArbZG, or the stricter JArbSchG for employees under 18. Returns working time, required and actual break per day, rest period and each violation. Use it to check a shift plan or a time sheet.
| Argument | Type | Description |
|---|---|---|
| tage* | array | Shifts in order, one per day |
| jugendlich | boolean | Person is under 18 (JArbSchG) |
| vortag_ende | string | End of the last shift on the day before the first day, optional (HH:MM, 24 h) |
| branche_10_stunden_ruhezeit | boolean | Industry that may shorten rest to 10 hours: hospital, care, restaurants, transport, broadcasting, agriculture (§ 5 Abs. 2 ArbZG) |
{
"type": "object",
"required": [
"tage"
],
"properties": {
"tage": {
"type": "array",
"items": {
"type": "object",
"required": [
"beginn",
"ende"
],
"properties": {
"ende": {
"type": "string",
"pattern": "^([01]?\\d|2[0-3]):[0-5]\\d$",
"maxLength": 5,
"description": "End, after midnight allowed (HH:MM, 24 h)"
},
"datum": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Date of the shift, optional, needed for Sundays and totals per calendar week (YYYY-MM-DD)"
},
"beginn": {
"type": "string",
"pattern": "^([01]?\\d|2[0-3]):[0-5]\\d$",
"maxLength": 5,
"description": "Start (HH:MM, 24 h)"
},
"pausen": {
"type": "array",
"items": {
"type": "object",
"required": [
"von",
"bis"
],
"properties": {
"bis": {
"type": "string",
"pattern": "^([01]?\\d|2[0-3]):[0-5]\\d$",
"maxLength": 5,
"description": "Break end (HH:MM, 24 h)"
},
"von": {
"type": "string",
"pattern": "^([01]?\\d|2[0-3]):[0-5]\\d$",
"maxLength": 5,
"description": "Break start (HH:MM, 24 h)"
}
},
"additionalProperties": false
},
"maxItems": 4,
"description": "Breaks within the shift"
}
},
"additionalProperties": false
},
"maxItems": 14,
"description": "Shifts in order, one per day"
},
"jugendlich": {
"type": "boolean",
"description": "Person is under 18 (JArbSchG)"
},
"vortag_ende": {
"type": "string",
"pattern": "^([01]?\\d|2[0-3]):[0-5]\\d$",
"maxLength": 5,
"description": "End of the last shift on the day before the first day, optional (HH:MM, 24 h)"
},
"branche_10_stunden_ruhezeit": {
"type": "boolean",
"description": "Industry that may shorten rest to 10 hours: hospital, care, restaurants, transport, broadcasting, agriculture (§ 5 Abs. 2 ArbZG)"
}
},
"additionalProperties": false
}Germany only. German employment law, Germany only: end of the probation period (Probezeit) from the first working day, the last day a dismissal with 2 weeks notice can be delivered (§ 622 Abs. 3 BGB), when protection against dismissal (Kündigungsschutz, KSchG) starts and dates for the review meeting. Covers apprenticeships (Ausbildung, BBiG) and fixed-term contracts (Befristung). Use it when someone asks when a probation period ends or until when they can still dismiss with the short notice.
| Argument | Type | Description |
|---|---|---|
| dauer* | number | Length of the probation period as a whole number, unit see einheit |
| beginn* | string | First working day according to the contract (YYYY-MM-DD) |
| einheit | string | Unit of dauer, default monate |
| ausbildung | boolean | true for an apprenticeship (Ausbildung, BBiG): 1 to 4 months, dismissal without notice period |
| befristet_bis | string | End date if the contract is fixed-term (Befristung) (YYYY-MM-DD) |
| beschaeftigte | number | Employees in the business, part-time counted pro rata, apprentices not counted (§ 23 KSchG). Leave out if unknown |
Germany only. Calendar of changes in German employment law values between two dates (Rechtsänderungen), e.g. what changes on 1 January: minimum wage, mini-job limit, contribution ceilings and rates. Lists each new value with the previous one and the source, and values that are not yet officially published.
| Argument | Type | Description |
|---|---|---|
| bis | string | Last day, default one year after the first day (YYYY-MM-DD) |
| von | string | First day, default today (YYYY-MM-DD) |
{
"type": "object",
"properties": {
"bis": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Last day, default one year after the first day (YYYY-MM-DD)"
},
"von": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "First day, default today (YYYY-MM-DD)"
}
},
"additionalProperties": false
}Germany only. Look up one German employment law value (Rechtswert) by its key, e.g. mindestlohn (minimum wage), minijobGrenze, bbgRv, urlaubMindest. Returns the value valid on the given date, all dated values, the legal norm, the official source link, the date it was last checked and its status.
| Argument | Type | Description |
|---|---|---|
| kennung* | string | Key of the value, e.g. mindestlohn |
| stichtag | string | Date the value should apply to, default today (YYYY-MM-DD) |
{
"type": "object",
"required": [
"kennung"
],
"properties": {
"kennung": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,60}$",
"maxLength": 60,
"description": "Key of the value, e.g. mindestlohn"
},
"stichtag": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Date the value should apply to, default today (YYYY-MM-DD)"
}
},
"additionalProperties": false
}Germany only. Search the register of German employment law values (215 values with norm, official source and review date): minimum wage, mini-job limit, notice periods, probation, holiday, sick pay, maternity protection, retention periods, thresholds. Returns up to 20 matches with key, title, value on the date and status.
| Argument | Type | Description |
|---|---|---|
| gebiet | string | Optional area of law |
| stichtag | string | Date the values should apply to, default today (YYYY-MM-DD) |
| suchtext | string | Words to search for, German or key, e.g. Mindestlohn, Urlaub, Aufbewahrung |
{
"type": "object",
"properties": {
"gebiet": {
"enum": [
"Kündigung und Vertrag",
"Befristung und Teilzeit",
"Schwellenwerte",
"Urlaub",
"Krankheit und BEM",
"Entgelttransparenz",
"Mutterschutz und Elternzeit",
"Ausbildung und Werkstudium",
"Lohn und Sozialversicherung",
"Pflege",
"Arbeitsschutz",
"Arbeitszeit",
"Datenschutz und Hinweisgeber",
"Freelancer",
"Wettbewerb und Vertragsstrafe",
"Vergütung und Provision",
"Erfindungen und Urheberrecht",
"Aufbewahrung",
"Feiertage"
],
"type": "string",
"description": "Optional area of law"
},
"stichtag": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Date the values should apply to, default today (YYYY-MM-DD)"
},
"suchtext": {
"type": "string",
"maxLength": 100,
"description": "Words to search for, German or key, e.g. Mindestlohn, Urlaub, Aufbewahrung"
}
},
"additionalProperties": false
}Germany only. Size thresholds in German employment law (Schwellenwerte): which duties apply at how many employees, each counted the way its law counts (heads, part-time weighting, apprentices). Covers works council, unfair dismissal protection above 10 (KSchG), part-time claims, U1 levy, severely disabled quota, data protection officer, whistleblower channel and more, plus what changes at the next threshold. Use it when a founder asks what applies to a team of their size or what changes with the next hire. Germany only.
| Argument | Type | Description |
|---|---|---|
| azubis | number | Apprentices (Auszubildende) |
| koepfe* | number | Employees by head count without apprentices; part-time staff and mini-jobbers count, managing directors, freelancers and agency workers do not |
| betriebsrat | boolean | True if there is a works council (Betriebsrat) |
| schwerbehinderte | number | Severely disabled employees without apprentices |
| teilzeit_bis_10_stunden | number | Of the employees, those with up to 10 regular hours per week |
| personen_mit_personendaten | number | People who constantly process personal data by computer, incl. part-time, apprentices and freelancers; for the data protection officer |
Germany only. Check whether a German employer must file an immediate registration (Sofortmeldung) before the first working hour, by industry under § 28a Abs. 4 SGB IV: construction, hospitality, passenger transport, logistics and delivery, showmen, building cleaning, trade fair construction, meat industry, prostitution, security, hairdressing and cosmetics.
| Argument | Type | Description |
|---|---|---|
| branche* | string | Industry of the company |
{
"type": "object",
"required": [
"branche"
],
"properties": {
"branche": {
"enum": [
"bau",
"gastro",
"personenbefoerderung",
"spedition",
"schausteller",
"gebaeudereinigung",
"messebau",
"fleisch",
"prostitution",
"sicherheit",
"friseur",
"keine"
],
"type": "string",
"description": "Industry of the company"
}
},
"additionalProperties": false
}Germany only. Special protection against dismissal under German law (Sonderkündigungsschutz): checks 11 grounds such as pregnancy, parental leave, care leave, works council, severe disability, data protection officer, apprentices and whistleblowers. Returns a traffic light, the authority whose consent is needed, the protected period and the steps before giving notice. Use it before any dismissal, also in small businesses. Germany only.
| Argument | Type | Description |
|---|---|---|
| dsb | string | Is the person your mandatory data protection officer, or was removed from that role within the last 12 months? Answer ja, nein or unklar; not answered counts as nein. |
| wahl | string | Is the person on the election board or a candidate, or did they invite to or prepare a works council election? Answer ja, nein or unklar; not answered counts as nein. |
| azubi | string | Is the person an apprentice whose probation period is over? Answer ja, nein or unklar; not answered counts as nein. |
| pflege | string | Has the person announced or is taking short-term care leave, care leave or family care leave (Pflegezeit, Familienpflegezeit)? Answer ja, nein or unklar; not answered counts as nein. |
| elternzeit | string | Has the person requested parental leave (Elternzeit) or is on it, or works part-time while receiving parental allowance? Answer ja, nein or unklar; not answered counts as nein. |
Germany only. Checks a German job ad (Stellenanzeige) for discrimination traps under the AGG (Allgemeines Gleichbehandlungsgesetz), Germany only. Use it before a founder publishes a job ad or after you drafted one: pass the ad text. Returns each risky word with the protected characteristic (Merkmal), the reason and a better wording, plus the parts of a good ad; the text itself is neither stored nor returned.
| Argument | Type | Description |
|---|---|---|
| anzeigentext* | string | Full text of the job ad, at most 3000 characters, without names or contact details |
{
"type": "object",
"required": [
"anzeigentext"
],
"properties": {
"anzeigentext": {
"type": "string",
"maxLength": 3000,
"description": "Full text of the job ad, at most 3000 characters, without names or contact details"
}
},
"additionalProperties": false
}Germany only. Payment in lieu of untaken holiday when employment ends under German law (Urlaubsabgeltung, § 7 Abs. 4 and § 11 BUrlG). Calculates the holiday entitlement in the year of leaving (full or partial, Teilurlaub), adds carry-over, subtracts days taken and multiplies the open days by the daily rate from the last 13 weeks' pay. Use it when someone leaves with holiday left. Germany only.
| Argument | Type | Description |
|---|---|---|
| austritt | string | Last day of employment (YYYY-MM-DD) |
| eintritt | string | First day of employment (YYYY-MM-DD) |
| offene_tage | number | Open holiday days if already known; then entry and exit dates are not needed |
| jahresurlaub | number | Contractual annual holiday for full time in a 5-day week, in days (legal minimum 20) |
| rest_vorjahr | number | Holiday carried over from the previous year that has not lapsed. Leave out to add partial holiday from the year of entry automatically where it applies |
| schon_genommen | number | Holiday days already taken in the year of leaving |
| tage_pro_woche* | number | Working days per week of the person, 0.5 to 6 |
Germany only. German employment law, Germany only: annual leave entitlement (Urlaubsanspruch, BUrlG) in working days, split into statutory minimum (gesetzlicher Mindesturlaub) and contractual extra leave (Mehrurlaub). Handles part-time (Teilzeit), alternating weeks, a change of working days during the year, entry or exit during the year (Teilurlaub) and extra leave for severe disability (§ 208 SGB IX). Use it when someone asks how many leave days an employee has.
| Argument | Type | Description |
|---|---|---|
| jahr | number | Leave year, default the current year |
| austritt | string | Last day of employment if in the year, optional (YYYY-MM-DD) |
| eintritt | string | Entry date if in or after the start of the year, optional (YYYY-MM-DD) |
| mehrurlaub | string | Contract rule for extra leave on entry or exit in the year: wie-gesetz (contract says nothing, follows the law) or anteilig (contract cuts it pro rata). Default wie-gesetz |
| wechsel_ab | string | Day the number of working days changes, optional (YYYY-MM-DD) |
| bezugswoche | string | Reference week of the contract: 5_tage (working days) or 6_tage (Werktage). Default 5_tage |
| jahresurlaub* |
Germany only. German employment law, Germany only: writes the notice an employer must give before unused leave can expire (Hinweis auf Urlaubsverfall, § 7 Abs. 3 BUrlG, BAG 9 AZR 423/16), as a finished letter with placeholders instead of names. Returns open days, expiry date, end of carry-over (Übertragung) and whether the letter comes too late. Use it at the start of the year or in autumn when someone asks how to stop leave from piling up or whether leave expires.
| Argument | Type | Description |
|---|---|---|
| art | string | jahresbeginn (start of year) or erinnerung (autumn reminder). Default by date: from July erinnerung |
| jahr | number | Leave year, default the year of datum |
| datum | string | Date of the letter, must be in the leave year, default today (YYYY-MM-DD) |
| geplant | number | Days approved and planned, default 0 |
| vorjahr | number | Days left from the previous year that were carried over after a timely notice, default 0 |
| anspruch* | number | Leave entitlement of the year in working days |
| genommen | number | Days already taken, default 0 |
Germany only. Get one German employment contract clause (Vertragsbaustein) by key, e.g. B3 (home office), C2 (overtime allowance), D18 (Christmas bonus). Returns when it fits, the inputs with limits and safe defaults, norms, court rulings, mandatory safeguards, what is blocked and the clause text in German with [Name] as placeholder. If required inputs are missing, it lists them instead of returning a text with gaps; call again with angaben.
| Argument | Type | Description |
|---|---|---|
| angaben | array | Inputs of the clause as field and value, e.g. {feld: tage, wert: 2}. Numbers German style (4.500,50), options exactly as listed |
| kennung* | string | Key of the clause, e.g. B3 |
| eintritt | string | Start of employment, only if the clause needs it (YYYY-MM-DD) |
| gehalt_monat | number | Gross monthly salary in euro, only if the clause needs it |
| wochenstunden | number | Weekly working hours, only if the clause needs it |
{
"type": "object",
"required": [
"kennung"
],
"properties": {
"angaben": {
"type": "array",
"items": {
"type": "object",
"required": [
"feld",
"wert"
],
"properties": {
"feld": {
"type": "string",
"pattern": "^[A-Za-z0-9]{1,40}$",
"maxLength": 40,
"description": "Field key from angaben"
},
"wert": {
"type": "string",
"maxLength": 500,
"description": "Value"
}
},
"additionalProperties": false
},
"maxItems": 30,
"description": "Inputs of the clause as field and value, e.g. {feld: tage, wert: 2}. Numbers German style (4.500,50), options exactly as listed"
},
"kennung": {
"type": "string",
"pattern": "^[A-S][0-9]{1,2}$",
"maxLength": 3,
"description": "Key of the clause, e.g. B3"
},
"eintritt": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Start of employment, only if the clause needs it (YYYY-MM-DD)"
},
"gehalt_monat": {
"type": "number",
"maximum": 1000000,
"minimum": 0,
"description": "Gross monthly salary in euro, only if the clause needs it"
},
"wochenstunden": {
"type": "number",
"maximum": 60,
"minimum": 0,
"description": "Weekly working hours, only if the clause needs it"
}
},
"additionalProperties": false
}Germany only. Search 126 German employment contract clauses (Vertragsbausteine), e.g. home office (Homeoffice), overtime (Überstunden), bonus, company car (Dienstwagen), non-compete (Wettbewerbsverbot), probation (Probezeit). Returns matching clauses with key and when they fit, and void clause types from the red list with the reason and the safe alternative.
| Argument | Type | Description |
|---|---|---|
| suchtext* | string | What the clause should cover, German works best, e.g. Homeoffice |
| vertragsart | string | Type of contract, default arbeitsvertrag |
{
"type": "object",
"required": [
"suchtext"
],
"properties": {
"suchtext": {
"type": "string",
"maxLength": 100,
"description": "What the clause should cover, German works best, e.g. Homeoffice"
},
"vertragsart": {
"enum": [
"arbeitsvertrag",
"befristet",
"teilzeit",
"minijob",
"werkstudent",
"ausbildung",
"aenderung"
],
"type": "string",
"description": "Type of contract, default arbeitsvertrag"
}
},
"additionalProperties": false
}Germany only. German employment law, Germany only: the ten follow-up workflows of the Lintelly workbench (HR-Workflows), e.g. payroll input deadline, missing onboarding documents, sick leave with eAU and BEM, maternity protection, probation decision, fixed-term contract signed before start. Each shows the chain 'when ... then ...' with default days and roles. Use it as a template for your own reminders. Without kennung it lists all ten.
| Argument | Type | Description |
|---|---|---|
| kennung | string | Key of the workflow, leave out for the list |
{
"type": "object",
"properties": {
"kennung": {
"enum": [
"lohn-stichtag",
"eintritt-unterlagen",
"austritt-rueckgabe",
"probezeit",
"krankheit",
"mutterschutz",
"resturlaub",
"lesebestaetigung",
"mindestlohn",
"befristung"
],
"type": "string",
"description": "Key of the workflow, leave out for the list"
}
},
"additionalProperties": false
}| abgabetag | string | Day the payroll input is due at the payroll office (monatsende_lohn) (YYYY-MM-DD) |
| befristet | boolean | Fixed-term contract (befristet), eintritt and erste_einstellung |
| bundesland | string | Federal state of the company for public holidays (Bundesland), e.g. HE |
| drittstaat | boolean | Person needs a residence and work permit (Drittstaat) |
| betriebsrat | boolean | A works council (Betriebsrat) exists |
| beschaeftigte | number | Employees in the business, part-time pro rata, apprentices not counted |
| probezeit_monate | number | Agreed probation in months (Probezeit), required for probezeit_ende |
| wettbewerbsverbot | boolean | Contract has a post-contractual non-compete or customer protection clause (austritt, befristung_ende, kuendigung_vorbereiten) |
| beschaeftigungsart | string | Type of employment (Beschäftigungsart) |
| branche_sofortmeldung | string | Sector with immediate registration duty (Sofortmeldung, § 28a Abs. 4 SGB IV) or keine |
| nach_drittem_geburtstag | boolean | Parental leave lies between the 3rd and 8th birthday of the child (elternzeit) |
| sonderkuendigungsschutz | boolean | Person is pregnant, on parental leave or severely disabled (austritt with dismissal) |
{
"type": "object",
"required": [
"art"
],
"properties": {
"art": {
"enum": [
"erste_einstellung",
"eintritt",
"austritt",
"krankheit",
"mutterschutz",
"elternzeit",
"kuendigung_vorbereiten",
"probezeit_ende",
"befristung_ende",
"monatsende_lohn"
],
"type": "string",
"description": "Which workflow"
},
"datum": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Anchor date, meaning per art: erste_einstellung = erster Arbeitstag; eintritt = erster Arbeitstag; austritt = letzter Arbeitstag; krankheit = erster Krankheitstag; mutterschutz = voraussichtlicher Entbindungstermin; elternzeit = Beginn der Elternzeit; kuendigung_vorbereiten = geplanter Tag des Zugangs der Kündigung; probezeit_ende = erster Arbeitstag (Beginn der Probezeit); befristung_ende = letzter Tag der Befristung; monatsende_lohn = ein Tag im Lohnmonat (YYYY-MM-DD)"
},
"grund": {
"enum": [
"arbeitnehmer",
"arbeitgeber",
"aufhebung",
"befristung",
"rente",
"tod",
"vergleich",
"sonstiges"
],
"type": "string",
"description": "Reason for leaving (Austrittsgrund), required for austritt; arbeitgeber = dismissal by the company"
},
"zugang": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Day the notice or termination agreement was received (Zugang), austritt (YYYY-MM-DD)"
},
"eintritt": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "First working day of the person, for krankheit (waiting period) and kuendigung_vorbereiten (notice period) (YYYY-MM-DD)"
},
"abgabetag": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Day the payroll input is due at the payroll office (monatsende_lohn) (YYYY-MM-DD)"
},
"befristet": {
"type": "boolean",
"description": "Fixed-term contract (befristet), eintritt and erste_einstellung"
},
"bundesland": {
"enum": [
"BW",
"BY",
"BY-OHNE-MH",
"BY-AUGSBURG",
"BE",
"BB",
"HB",
"HH",
"HE",
"MV",
"NI",
"NW",
"RP",
"SL",
"SN",
"ST",
"SH",
"TH"
],
"type": "string",
"description": "Federal state of the company for public holidays (Bundesland), e.g. HE"
},
"drittstaat": {
"type": "boolean",
"description": "Person needs a residence and work permit (Drittstaat)"
},
"betriebsrat": {
"type": "boolean",
"description": "A works council (Betriebsrat) exists"
},
"beschaeftigte": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Employees in the business, part-time pro rata, apprentices not counted"
},
"probezeit_monate": {
"type": "number",
"maximum": 12,
"minimum": 0,
"description": "Agreed probation in months (Probezeit), required for probezeit_ende"
},
"wettbewerbsverbot": {
"type": "boolean",
"description": "Contract has a post-contractual non-compete or customer protection clause (austritt, befristung_ende, kuendigung_vorbereiten)"
},
"beschaeftigungsart": {
"enum": [
"vollzeit",
"teilzeit",
"werkstudent",
"azubi",
"minijob",
"praktikum"
],
"type": "string",
"description": "Type of employment (Beschäftigungsart)"
},
"branche_sofortmeldung": {
"enum": [
"bau",
"gastro",
"personenbefoerderung",
"spedition",
"schausteller",
"gebaeudereinigung",
"messebau",
"fleisch",
"prostitution",
"sicherheit",
"friseur",
"keine"
],
"type": "string",
"description": "Sector with immediate registration duty (Sofortmeldung, § 28a Abs. 4 SGB IV) or keine"
},
"nach_drittem_geburtstag": {
"type": "boolean",
"description": "Parental leave lies between the 3rd and 8th birthday of the child (elternzeit)"
},
"sonderkuendigungsschutz": {
"type": "boolean",
"description": "Person is pregnant, on parental leave or severely disabled (austritt with dismissal)"
}
},
"additionalProperties": false
}| datum_fruehere_abmahnung | string | Date of the earlier warning, optional (YYYY-MM-DD) |
{
"type": "object",
"required": [
"verstoss",
"datum_vorfall"
],
"properties": {
"anrede": {
"enum": [
"sie",
"du"
],
"type": "string",
"description": "Form of address in the letter, default sie"
},
"uhrzeit": {
"type": "string",
"pattern": "^([01]?\\d|2[0-3]):[0-5]\\d$",
"maxLength": 5,
"description": "Time of the incident, HH:MM, optional"
},
"verstoss": {
"enum": [
"Unpünktlichkeit",
"Unentschuldigtes Fehlen",
"Verspätete Krankmeldung oder fehlende AU-Bescheinigung",
"Arbeitsverweigerung",
"Verstoß gegen eine Anweisung",
"Verhalten gegenüber Kollegen oder Kunden",
"Sonstiges"
],
"type": "string",
"description": "Kind of misconduct (Art des Verstoßes)"
},
"briefdatum": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Date of the letter; placeholder if empty (YYYY-MM-DD)"
},
"pflicht_aus": {
"enum": [
"Arbeitsvertrag",
"Weisung der Vorgesetzten",
"Betriebsordnung oder Betriebsvereinbarung",
"Gesetz",
"Weiß ich nicht genau"
],
"type": "string",
"description": "Where the breached duty is written (Die verletzte Pflicht steht in), default Arbeitsvertrag"
},
"datum_vorfall": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Day of the incident (Datum des Vorfalls) (YYYY-MM-DD)"
},
"fruehere_abmahnung": {
"enum": [
"nein",
"gleich",
"andere"
],
"type": "string",
"description": "Earlier warning (frühere Abmahnung): none, for the same kind of misconduct, or for a different kind; default nein"
},
"datum_fruehere_abmahnung": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Date of the earlier warning, optional (YYYY-MM-DD)"
}
},
"additionalProperties": false
}| Grade for leadership (Führungsleistung), only with fuehrungsverantwortung, 1 (sehr gut) to 5 (mangelhaft), default 2 |
| note_verhalten | number | Grade for conduct towards superiors, colleagues and customers (Verhalten), graded separately, 1 (sehr gut) to 5 (mangelhaft), default 2 |
| note_fachwissen | number | Grade for expertise (Fachwissen), 1 (sehr gut) to 5 (mangelhaft), default 2 |
| zwischen_anlass | string | Occasion of an interim reference, default wunsch (employee asked) |
| note_arbeitsweise | number | Grade for way of working (Arbeitsweise: care, reliability, pace), 1 (sehr gut) to 5 (mangelhaft), default 2 |
| note_arbeitserfolg | number | Grade for results (Arbeitserfolg: quality and quantity), 1 (sehr gut) to 5 (mangelhaft), default 2 |
| fuehrungsverantwortung | boolean | The person leads staff (Führungsverantwortung); then note_fuehrung counts toward the overall grade |
| note_arbeitsbereitschaft | number | Grade for willingness to work (Arbeitsbereitschaft: commitment, initiative), 1 (sehr gut) to 5 (mangelhaft), default 2 |
{
"type": "object",
"properties": {
"art": {
"enum": [
"endzeugnis",
"zwischenzeugnis"
],
"type": "string",
"description": "endzeugnis (final reference at the end of employment) or zwischenzeugnis (interim reference while employed), default endzeugnis"
},
"ende": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Last day of employment, final reference only (YYYY-MM-DD)"
},
"grund": {
"enum": [
"eigener-wunsch",
"einvernehmlich",
"betriebsbedingt",
"befristung",
"ruhestand",
"ohne"
],
"type": "string",
"description": "Why the employment ends, final reference only, default ohne (no reason stated)"
},
"beginn": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "First day of employment (YYYY-MM-DD)"
},
"umfang": {
"enum": [
"qualifiziert",
"einfach"
],
"type": "string",
"description": "qualifiziert (with performance and conduct, the usual case) or einfach (only kind and duration of work), default qualifiziert"
},
"schluss": {
"enum": [
"note",
"dank",
"keine"
],
"type": "string",
"description": "Closing formula: note (thanks, regret and wishes matching the grade, default), dank (thanks only), keine (none)"
},
"note_fuehrung": {
"type": "number",
"maximum": 5,
"minimum": 1,
"description": "Grade for leadership (Führungsleistung), only with fuehrungsverantwortung, 1 (sehr gut) to 5 (mangelhaft), default 2"
},
"note_verhalten": {
"type": "number",
"maximum": 5,
"minimum": 1,
"description": "Grade for conduct towards superiors, colleagues and customers (Verhalten), graded separately, 1 (sehr gut) to 5 (mangelhaft), default 2"
},
"note_fachwissen": {
"type": "number",
"maximum": 5,
"minimum": 1,
"description": "Grade for expertise (Fachwissen), 1 (sehr gut) to 5 (mangelhaft), default 2"
},
"zwischen_anlass": {
"enum": [
"vorgesetztenwechsel",
"versetzung",
"elternzeit",
"betriebsuebergang",
"wunsch"
],
"type": "string",
"description": "Occasion of an interim reference, default wunsch (employee asked)"
},
"note_arbeitsweise": {
"type": "number",
"maximum": 5,
"minimum": 1,
"description": "Grade for way of working (Arbeitsweise: care, reliability, pace), 1 (sehr gut) to 5 (mangelhaft), default 2"
},
"note_arbeitserfolg": {
"type": "number",
"maximum": 5,
"minimum": 1,
"description": "Grade for results (Arbeitserfolg: quality and quantity), 1 (sehr gut) to 5 (mangelhaft), default 2"
},
"fuehrungsverantwortung": {
"type": "boolean",
"description": "The person leads staff (Führungsverantwortung); then note_fuehrung counts toward the overall grade"
},
"note_arbeitsbereitschaft": {
"type": "number",
"maximum": 5,
"minimum": 1,
"description": "Grade for willingness to work (Arbeitsbereitschaft: commitment, initiative), 1 (sehr gut) to 5 (mangelhaft), default 2"
}
},
"additionalProperties": false
}| pruefung_zeitraum_bis |
| string |
| Only sv: end of the period covered by the last social security audit (Betriebsprüfung), from the audit notice (YYYY-MM-DD) |
{
"type": "object",
"properties": {
"datum": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Start date: date of the document, last entry (lohnkonto), pay month (sv), rejection (bewerbung) or exit date (vertrag, akte, modus austritt). Not needed for abmahnung (YYYY-MM-DD)"
},
"modus": {
"enum": [
"dokument",
"austritt"
],
"type": "string",
"description": "dokument (one document type) or austritt (deletion plan after exit). Default dokument"
},
"dokument": {
"enum": [
"lohn",
"reise",
"lohnkonto",
"sv",
"arbeitszeit",
"vertrag",
"akte",
"bewerbung",
"abmahnung"
],
"type": "string",
"description": "Document type: lohn (payslips, Lohnabrechnungen), reise (travel expense reports), lohnkonto (payroll account), sv (social security pay records, Entgeltunterlagen), arbeitszeit (time records), vertrag (employment contract after exit), akte (personnel file after exit), bewerbung (rejected applications), abmahnung (warning letter in ongoing employment)"
},
"pruefung_am": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Only sv: day of that audit (YYYY-MM-DD)"
},
"verfahren_laeuft": {
"type": "boolean",
"description": "A lawsuit or an audit about these documents is ongoing"
},
"pruefung_zeitraum_bis": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Only sv: end of the period covered by the last social security audit (Betriebsprüfung), from the audit notice (YYYY-MM-DD)"
}
},
"additionalProperties": false
}| vorbeschaeftigung | string | Employed before by the same employer: nein (never), arbeit (as employee, also mini-job or working student), azubi (only apprenticeship), praktikum (internship), leih (temp agency worker). Default nein |
| vorbeschaeftigung_ende | string | End of the earlier employment, optional (YYYY-MM-DD) |
{
"type": "object",
"required": [
"beginn"
],
"properties": {
"ab52": {
"type": "boolean",
"description": "Special case: at least 52 at start and unemployed for at least 4 months before (§ 14 Abs. 3 TzBfG)"
},
"ende": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "End of the first contract, without extensions (YYYY-MM-DD)"
},
"beginn": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Start of the first fixed-term contract (YYYY-MM-DD)"
},
"gruendung": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Founding date if the company is a new business (§ 14 Abs. 2a TzBfG) (YYYY-MM-DD)"
},
"schriftform": {
"enum": [
"ja",
"nein",
"unklar"
],
"type": "string",
"description": "Signed on paper by both sides before the first working day: ja, nein, unklar. Default unklar"
},
"verlaengerungen": {
"type": "array",
"items": {
"type": "object",
"required": [
"vereinbart_am",
"neues_ende"
],
"properties": {
"neues_ende": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "New end date (YYYY-MM-DD)"
},
"vereinbart_am": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Day both sides signed the extension (YYYY-MM-DD)"
},
"bedingungen_geaendert": {
"type": "boolean",
"description": "Salary, hours or tasks were changed together with the extension"
}
},
"additionalProperties": false
},
"maxItems": 6,
"description": "Extensions in order"
},
"regelaltersgrenze": {
"type": "boolean",
"description": "Person had reached the standard retirement age at contract start (§ 41 Abs. 2 SGB VI)"
},
"vorbeschaeftigung": {
"enum": [
"nein",
"arbeit",
"azubi",
"praktikum",
"leih"
],
"type": "string",
"description": "Employed before by the same employer: nein (never), arbeit (as employee, also mini-job or working student), azubi (only apprenticeship), praktikum (internship), leih (temp agency worker). Default nein"
},
"vorbeschaeftigung_ende": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "End of the earlier employment, optional (YYYY-MM-DD)"
}
},
"additionalProperties": false
}| Day the request reached the employer, optional (YYYY-MM-DD) |
| beschaeftigte | number | Employees without apprentices, optional, decides the claim to part-time (more than 15) |
| errechneter_termin | string | Mother only, child born: expected date of delivery if the child came early, extends maternity protection (YYYY-MM-DD) |
| noch_nicht_geboren | boolean | true if the child is not born yet, geburt is then the expected date |
| mutterschutz_12_wochen | boolean | Mother only: premature or multiple birth or disability, maternity protection 12 instead of 8 weeks after birth |
{
"type": "object",
"required": [
"geburt",
"beginn",
"ende"
],
"properties": {
"ende": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Last day of parental leave (YYYY-MM-DD)"
},
"beginn": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "First day of parental leave (YYYY-MM-DD)"
},
"geburt": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Child's date of birth, or the expected date if not born yet (YYYY-MM-DD)"
},
"teilzeit": {
"type": "boolean",
"description": "Employee works part-time for you during parental leave"
},
"elternteil": {
"enum": [
"mutter",
"anderer"
],
"type": "string",
"description": "Who takes the leave: mutter (mother) or anderer (father or other parent). Default anderer"
},
"jahresurlaub": {
"type": "number",
"maximum": 60,
"minimum": 0,
"description": "Annual leave in days, optional, for the possible cut"
},
"antrag_zugang": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Day the request reached the employer, optional (YYYY-MM-DD)"
},
"beschaeftigte": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Employees without apprentices, optional, decides the claim to part-time (more than 15)"
},
"errechneter_termin": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Mother only, child born: expected date of delivery if the child came early, extends maternity protection (YYYY-MM-DD)"
},
"noch_nicht_geboren": {
"type": "boolean",
"description": "true if the child is not born yet, geburt is then the expected date"
},
"mutterschutz_12_wochen": {
"type": "boolean",
"description": "Mother only: premature or multiple birth or disability, maternity protection 12 instead of 8 weeks after birth"
}
},
"additionalProperties": false
}| probezeit_monate | number | Agreed probation in months, 0 for none |
| kleinbetrieb_vier_wochen | boolean | Small business with at most 20 employees that agreed 4 weeks to any day (§ 622 Abs. 5 Nr. 2 BGB) |
| staffel_auch_arbeitnehmer | boolean | Contract extends the longer statutory periods to resignations too |
{
"type": "object",
"required": [
"eintritt",
"zugang"
],
"properties": {
"zugang": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Day the notice is received by the other side, not the date of the letter (YYYY-MM-DD)"
},
"eintritt": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "First day of employment (YYYY-MM-DD)"
},
"bundesland": {
"enum": [
"BW",
"BY",
"BY-OHNE-MH",
"BY-AUGSBURG",
"BE",
"BB",
"HB",
"HH",
"HE",
"MV",
"NI",
"NW",
"RP",
"SL",
"SN",
"ST",
"SH",
"TH"
],
"type": "string",
"description": "Federal state of the company for public holidays (Bundesland), e.g. HE"
},
"tarifvertrag": {
"type": "boolean",
"description": "A collective agreement applies (it may set other periods)"
},
"wer_kuendigt": {
"enum": [
"arbeitgeber",
"arbeitnehmer"
],
"type": "string",
"description": "Who gives notice, default arbeitgeber"
},
"vertrag_monate": {
"type": "number",
"maximum": 24,
"minimum": 0,
"description": "Longer notice period in the contract, months"
},
"vertrag_termin": {
"enum": [
"monatsende",
"quartalsende"
],
"type": "string",
"description": "End date of the contractual period"
},
"probezeit_monate": {
"type": "number",
"maximum": 12,
"minimum": 0,
"description": "Agreed probation in months, 0 for none"
},
"kleinbetrieb_vier_wochen": {
"type": "boolean",
"description": "Small business with at most 20 employees that agreed 4 weeks to any day (§ 622 Abs. 5 Nr. 2 BGB)"
},
"staffel_auch_arbeitnehmer": {
"type": "boolean",
"description": "Contract extends the longer statutory periods to resignations too"
}
},
"additionalProperties": false
}| Delivery: personal handover or messenger (Bote), default persoenlich |
| betriebsrat | string | Works council (Betriebsrat): none, already heard, or not yet heard; default keiner |
| freistellung | string | Release from work until the end (Freistellung), default keine |
| tarifvertrag | boolean | A collective agreement (Tarifvertrag) applies; its periods are not calculated |
| unterschrift | string | Who signs: owner or managing director, Prokura (ppa.), in Vertretung (i. V.) or im Auftrag (i. A.); default geschaeftsfuehrung |
| vertragsfrist | string | Longer notice period agreed in the contract (Vertrag), default keine |
| freistellung_ab | string | First day of the release; placeholder if empty (YYYY-MM-DD) |
| resturlaub_tage | number | Remaining holiday in working days, set off against an irrevocable release |
| probezeit_monate | number | Agreed probation in whole months (Probezeit), 0 = none, default 6 as on lintelly.com; ask if unsure |
| vertragsfrist_monate | number | Months of that contractual notice period, default 3 |
| kleinbetrieb_vier_wochen | boolean | At most 20 employees and the contract agrees 4 weeks without a fixed end date (§ 622 Abs. 5 BGB) |
{
"type": "object",
"required": [
"eintritt",
"zugang"
],
"properties": {
"anrede": {
"enum": [
"sie",
"du"
],
"type": "string",
"description": "Form of address in the letter, default sie"
},
"zugang": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Day the employee receives the signed original (Zugang), not the date of the letter (YYYY-MM-DD)"
},
"eintritt": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "First day of employment (Eintritt); apprenticeship in the same company counts (YYYY-MM-DD)"
},
"rueckgabe": {
"type": "boolean",
"description": "Ask for return of work equipment, default true"
},
"ausbildung": {
"type": "boolean",
"description": "Apprenticeship (Ausbildungsverhältnis); the template does not fit then"
},
"briefdatum": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Date of the letter; placeholder if empty (YYYY-MM-DD)"
},
"zustellung": {
"enum": [
"persoenlich",
"bote"
],
"type": "string",
"description": "Delivery: personal handover or messenger (Bote), default persoenlich"
},
"betriebsrat": {
"enum": [
"keiner",
"angehoert",
"nicht_angehoert"
],
"type": "string",
"description": "Works council (Betriebsrat): none, already heard, or not yet heard; default keiner"
},
"freistellung": {
"enum": [
"keine",
"widerruflich",
"unwiderruflich"
],
"type": "string",
"description": "Release from work until the end (Freistellung), default keine"
},
"tarifvertrag": {
"type": "boolean",
"description": "A collective agreement (Tarifvertrag) applies; its periods are not calculated"
},
"unterschrift": {
"enum": [
"geschaeftsfuehrung",
"prokura",
"in_vertretung",
"im_auftrag"
],
"type": "string",
"description": "Who signs: owner or managing director, Prokura (ppa.), in Vertretung (i. V.) or im Auftrag (i. A.); default geschaeftsfuehrung"
},
"vertragsfrist": {
"enum": [
"keine",
"monatsende",
"quartalsende"
],
"type": "string",
"description": "Longer notice period agreed in the contract (Vertrag), default keine"
},
"freistellung_ab": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "First day of the release; placeholder if empty (YYYY-MM-DD)"
},
"resturlaub_tage": {
"type": "number",
"maximum": 365,
"minimum": 0,
"description": "Remaining holiday in working days, set off against an irrevocable release"
},
"probezeit_monate": {
"type": "number",
"maximum": 12,
"minimum": 0,
"description": "Agreed probation in whole months (Probezeit), 0 = none, default 6 as on lintelly.com; ask if unsure"
},
"vertragsfrist_monate": {
"type": "number",
"maximum": 12,
"minimum": 1,
"description": "Months of that contractual notice period, default 3"
},
"kleinbetrieb_vier_wochen": {
"type": "boolean",
"description": "At most 20 employees and the contract agrees 4 weeks without a fixed end date (§ 622 Abs. 5 BGB)"
}
},
"additionalProperties": false
}| unter_18_ohne_berufsabschluss |
| boolean |
| True if the person is under 18 without vocational qualification; then the minimum wage does not apply (§ 22 Abs. 2 MiLoG) |
{
"type": "object",
"required": [
"stundenlohn"
],
"properties": {
"jahr": {
"enum": [
"2026",
"2027"
],
"type": "string",
"description": "Year, default the current year"
},
"stunden": {
"type": "number",
"maximum": 300,
"minimum": 0,
"description": "Planned working hours, leave out to get only the maximum hours"
},
"stunden_je": {
"enum": [
"woche",
"monat"
],
"type": "string",
"description": "Whether the hours are per week or per month, default week"
},
"stundenlohn": {
"type": "number",
"maximum": 200,
"minimum": 0.01,
"description": "Gross hourly wage in euros"
},
"pauschsteuer": {
"type": "boolean",
"description": "True (default) for the usual 2 % flat-rate tax"
},
"einmalzahlungen_jahr": {
"type": "number",
"minimum": 0,
"description": "Promised one-off payments in the year in euros, e.g. Christmas bonus"
},
"gesetzlich_krankenversichert": {
"type": "boolean",
"description": "True (default) if the person has statutory health insurance; then the employer pays the 13 % health flat rate"
},
"unter_18_ohne_berufsabschluss": {
"type": "boolean",
"description": "True if the person is under 18 without vocational qualification; then the minimum wage does not apply (§ 22 Abs. 2 MiLoG)"
}
},
"additionalProperties": false
}| Date of the miscarriage or stillbirth (YYYY-MM-DD) |
| errechneter_termin | string | Expected date of delivery from the maternity record; for a stillbirth it extends the period (YYYY-MM-DD) |
| schwangerschaftswoche | number | Week of pregnancy at the miscarriage, the 13th week starts after 12 completed weeks |
{
"type": "object",
"properties": {
"fall": {
"enum": [
"schwangerschaft",
"fehlgeburt"
],
"type": "string",
"description": "schwangerschaft (pregnancy or birth) or fehlgeburt (miscarriage or stillbirth). Default schwangerschaft"
},
"geburt": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Actual date of birth, leave out while the child is not born (YYYY-MM-DD)"
},
"mehrlinge": {
"type": "boolean",
"description": "Twins or more (12 weeks after birth)"
},
"behinderung": {
"type": "boolean",
"description": "Disability of the child certified within 8 weeks, on request (12 weeks after birth)"
},
"fruehgeburt": {
"type": "boolean",
"description": "Premature birth as medically certified (12 weeks after birth)"
},
"ab_500_gramm": {
"type": "boolean",
"description": "Weight at least 500 grams, then it counts as stillbirth even before week 24"
},
"fehlgeburt_am": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Date of the miscarriage or stillbirth (YYYY-MM-DD)"
},
"errechneter_termin": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Expected date of delivery from the maternity record; for a stillbirth it extends the period (YYYY-MM-DD)"
},
"schwangerschaftswoche": {
"type": "number",
"maximum": 45,
"minimum": 1,
"description": "Week of pregnancy at the miscarriage, the 13th week starts after 12 completed weeks"
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"form": {
"enum": [
"papier",
"textform",
"nichts"
],
"type": "string",
"description": "How the written statement is given: papier (signed paper), textform (PDF or e-mail), nichts (nothing in writing yet)"
},
"beginn": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Agreed first day of employment; deadlines count from it (YYYY-MM-DD)"
},
"angaben": {
"type": "array",
"items": {
"type": "object",
"required": [
"nr",
"stand"
],
"properties": {
"nr": {
"type": "number",
"maximum": 15,
"minimum": 1,
"description": "Item number 1 to 15"
},
"stand": {
"enum": [
"drin",
"fehlt",
"entfaellt"
],
"type": "string",
"description": "drin, fehlt or entfaellt"
}
},
"additionalProperties": false
},
"maxItems": 15,
"description": "What the contract already contains, per item 1 to 15: drin (included), fehlt (missing), entfaellt (not applicable, only for items that apply only if agreed). Items without an answer count as open"
},
"befristet": {
"type": "boolean",
"description": "Fixed-term contract (befristet), default false"
},
"empfangsbestaetigung": {
"type": "boolean",
"description": "With textform: the employee is asked to confirm receipt"
},
"papierpflicht_branche": {
"type": "boolean",
"description": "Industry under § 2a SchwarzArbG (construction, hospitality, passenger transport, logistics, fairground, building cleaning, trade fair construction, meat industry, prostitution, security, hairdressing and cosmetics): paper only, default false"
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"beginn",
"dauer"
],
"properties": {
"dauer": {
"type": "number",
"maximum": 26,
"minimum": 1,
"description": "Length of the probation period as a whole number, unit see einheit"
},
"beginn": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "First working day according to the contract (YYYY-MM-DD)"
},
"einheit": {
"enum": [
"monate",
"wochen"
],
"type": "string",
"description": "Unit of dauer, default monate"
},
"ausbildung": {
"type": "boolean",
"description": "true for an apprenticeship (Ausbildung, BBiG): 1 to 4 months, dismissal without notice period"
},
"befristet_bis": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "End date if the contract is fixed-term (Befristung) (YYYY-MM-DD)"
},
"beschaeftigte": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Employees in the business, part-time counted pro rata, apprentices not counted (§ 23 KSchG). Leave out if unknown"
}
},
"additionalProperties": false
}| teilzeit_11_bis_20_stunden | number | Of the employees, those with more than 10 up to 20 hours per week |
| teilzeit_21_bis_30_stunden | number | Of the employees, those with more than 20 up to 30 hours per week |
| arbeitsplaetze_ab_18_stunden | number | Jobs with 18 or more hours per week without apprentices, for the severely disabled quota; estimated if left out |
{
"type": "object",
"required": [
"koepfe"
],
"properties": {
"azubis": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Apprentices (Auszubildende)"
},
"koepfe": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Employees by head count without apprentices; part-time staff and mini-jobbers count, managing directors, freelancers and agency workers do not"
},
"betriebsrat": {
"type": "boolean",
"description": "True if there is a works council (Betriebsrat)"
},
"schwerbehinderte": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Severely disabled employees without apprentices"
},
"teilzeit_bis_10_stunden": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Of the employees, those with up to 10 regular hours per week"
},
"personen_mit_personendaten": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "People who constantly process personal data by computer, incl. part-time, apprentices and freelancers; for the data protection officer"
},
"teilzeit_11_bis_20_stunden": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Of the employees, those with more than 10 up to 20 hours per week"
},
"teilzeit_21_bis_30_stunden": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Of the employees, those with more than 20 up to 30 hours per week"
},
"arbeitsplaetze_ab_18_stunden": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Jobs with 18 or more hours per week without apprentices, for the severely disabled quota; estimated if left out"
}
},
"additionalProperties": false
}| wehrdienst |
| string |
| Has the person received a call-up notice or is doing military service or a military exercise? Answer ja, nein or unklar; not answered counts as nein. |
| beauftragte | string | Is the person an appointed officer for emission control, incidents, waste or water protection, or was removed from that role within the last 12 months? Answer ja, nein or unklar; not answered counts as nein. |
| betriebsrat | string | Is the person a member of the works council, the youth representation or representative of severely disabled employees, or left such office within the last 12 months? Answer ja, nein or unklar; not answered counts as nein. |
| hinweisgeber | string | Has the person recently reported a violation (whistleblowing), internally or to an external reporting channel? Answer ja, nein or unklar; not answered counts as nein. |
| mutterschutz | string | Is the person pregnant, gave birth up to 4 months ago, still in the protection period after birth, or had a miscarriage after the 12th week of pregnancy? Answer ja, nein or unklar; not answered counts as nein. |
| schwerbehindert | string | Is the person severely disabled (degree of disability 50 or more) or treated as equal (gleichgestellt)? Answer unklar if an application is pending or you do not know. Answer ja, nein or unklar; not answered counts as nein. |
| laenger_als_6_monate | string | Only for severe disability: has the employment lasted more than 6 months without interruption? Default ja. Answer ja, nein or unklar; not answered counts as nein. |
| betriebsrat_vorhanden | string | Is there a works council (Betriebsrat) in the business? Default nein. Answer ja, nein or unklar; not answered counts as nein. |
{
"type": "object",
"properties": {
"dsb": {
"enum": [
"ja",
"nein",
"unklar"
],
"type": "string",
"description": "Is the person your mandatory data protection officer, or was removed from that role within the last 12 months? Answer ja, nein or unklar; not answered counts as nein."
},
"wahl": {
"enum": [
"ja",
"nein",
"unklar"
],
"type": "string",
"description": "Is the person on the election board or a candidate, or did they invite to or prepare a works council election? Answer ja, nein or unklar; not answered counts as nein."
},
"azubi": {
"enum": [
"ja",
"nein",
"unklar"
],
"type": "string",
"description": "Is the person an apprentice whose probation period is over? Answer ja, nein or unklar; not answered counts as nein."
},
"pflege": {
"enum": [
"ja",
"nein",
"unklar"
],
"type": "string",
"description": "Has the person announced or is taking short-term care leave, care leave or family care leave (Pflegezeit, Familienpflegezeit)? Answer ja, nein or unklar; not answered counts as nein."
},
"elternzeit": {
"enum": [
"ja",
"nein",
"unklar"
],
"type": "string",
"description": "Has the person requested parental leave (Elternzeit) or is on it, or works part-time while receiving parental allowance? Answer ja, nein or unklar; not answered counts as nein."
},
"wehrdienst": {
"enum": [
"ja",
"nein",
"unklar"
],
"type": "string",
"description": "Has the person received a call-up notice or is doing military service or a military exercise? Answer ja, nein or unklar; not answered counts as nein."
},
"beauftragte": {
"enum": [
"ja",
"nein",
"unklar"
],
"type": "string",
"description": "Is the person an appointed officer for emission control, incidents, waste or water protection, or was removed from that role within the last 12 months? Answer ja, nein or unklar; not answered counts as nein."
},
"betriebsrat": {
"enum": [
"ja",
"nein",
"unklar"
],
"type": "string",
"description": "Is the person a member of the works council, the youth representation or representative of severely disabled employees, or left such office within the last 12 months? Answer ja, nein or unklar; not answered counts as nein."
},
"hinweisgeber": {
"enum": [
"ja",
"nein",
"unklar"
],
"type": "string",
"description": "Has the person recently reported a violation (whistleblowing), internally or to an external reporting channel? Answer ja, nein or unklar; not answered counts as nein."
},
"mutterschutz": {
"enum": [
"ja",
"nein",
"unklar"
],
"type": "string",
"description": "Is the person pregnant, gave birth up to 4 months ago, still in the protection period after birth, or had a miscarriage after the 12th week of pregnancy? Answer ja, nein or unklar; not answered counts as nein."
},
"schwerbehindert": {
"enum": [
"ja",
"nein",
"unklar"
],
"type": "string",
"description": "Is the person severely disabled (degree of disability 50 or more) or treated as equal (gleichgestellt)? Answer unklar if an application is pending or you do not know. Answer ja, nein or unklar; not answered counts as nein."
},
"laenger_als_6_monate": {
"enum": [
"ja",
"nein",
"unklar"
],
"type": "string",
"description": "Only for severe disability: has the employment lasted more than 6 months without interruption? Default ja. Answer ja, nein or unklar; not answered counts as nein."
},
"betriebsrat_vorhanden": {
"enum": [
"ja",
"nein",
"unklar"
],
"type": "string",
"description": "Is there a works council (Betriebsrat) in the business? Default nein. Answer ja, nein or unklar; not answered counts as nein."
}
},
"additionalProperties": false
}| schwerbehindert | boolean | True if the person is severely disabled; the additional holiday (§ 208 SGB IX) is paid out too |
| variabel_13_wochen | number | Variable pay (commission, allowances) in the last 13 weeks in euros, without overtime pay |
| monatsgehalt_brutto | number | Fixed gross monthly salary in euros |
| verdienst_13_wochen | number | Alternative to the monthly salary: gross pay of the last 13 weeks in euros, without overtime pay and one-off payments |
| mehrurlaub_gezwoelftelt | boolean | True only if the contract expressly reduces holiday above the legal minimum pro rata (1/12 per month) when leaving |
{
"type": "object",
"required": [
"tage_pro_woche"
],
"properties": {
"austritt": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Last day of employment (YYYY-MM-DD)"
},
"eintritt": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "First day of employment (YYYY-MM-DD)"
},
"offene_tage": {
"type": "number",
"maximum": 200,
"minimum": 0,
"description": "Open holiday days if already known; then entry and exit dates are not needed"
},
"jahresurlaub": {
"type": "number",
"maximum": 60,
"minimum": 20,
"description": "Contractual annual holiday for full time in a 5-day week, in days (legal minimum 20)"
},
"rest_vorjahr": {
"type": "number",
"maximum": 200,
"minimum": 0,
"description": "Holiday carried over from the previous year that has not lapsed. Leave out to add partial holiday from the year of entry automatically where it applies"
},
"schon_genommen": {
"type": "number",
"maximum": 200,
"minimum": 0,
"description": "Holiday days already taken in the year of leaving"
},
"tage_pro_woche": {
"type": "number",
"maximum": 6,
"minimum": 0.5,
"description": "Working days per week of the person, 0.5 to 6"
},
"schwerbehindert": {
"type": "boolean",
"description": "True if the person is severely disabled; the additional holiday (§ 208 SGB IX) is paid out too"
},
"variabel_13_wochen": {
"type": "number",
"minimum": 0,
"description": "Variable pay (commission, allowances) in the last 13 weeks in euros, without overtime pay"
},
"monatsgehalt_brutto": {
"type": "number",
"minimum": 1,
"description": "Fixed gross monthly salary in euros"
},
"verdienst_13_wochen": {
"type": "number",
"minimum": 1,
"description": "Alternative to the monthly salary: gross pay of the last 13 weeks in euros, without overtime pay and one-off payments"
},
"mehrurlaub_gezwoelftelt": {
"type": "boolean",
"description": "True only if the contract expressly reduces holiday above the legal minimum pro rata (1/12 per month) when leaving"
}
},
"additionalProperties": false
}| number |
| Annual leave in the contract for full time, in days of the reference week |
| wechsel_tage | number | Working days per week from wechsel_ab |
| schwerbehindert | boolean | Recognised severe disability (GdB from 50), not equal status |
| schwerbehindert_ab | string | Recognised only from this date in the year, optional (YYYY-MM-DD) |
| arbeitstage_pro_woche* | number | Days with work per week, each day counts fully however short; average for alternating weeks, e.g. 2.5 |
{
"type": "object",
"required": [
"jahresurlaub",
"arbeitstage_pro_woche"
],
"properties": {
"jahr": {
"type": "number",
"maximum": 2100,
"minimum": 2000,
"description": "Leave year, default the current year"
},
"austritt": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Last day of employment if in the year, optional (YYYY-MM-DD)"
},
"eintritt": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Entry date if in or after the start of the year, optional (YYYY-MM-DD)"
},
"mehrurlaub": {
"enum": [
"wie-gesetz",
"anteilig"
],
"type": "string",
"description": "Contract rule for extra leave on entry or exit in the year: wie-gesetz (contract says nothing, follows the law) or anteilig (contract cuts it pro rata). Default wie-gesetz"
},
"wechsel_ab": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Day the number of working days changes, optional (YYYY-MM-DD)"
},
"bezugswoche": {
"enum": [
"5_tage",
"6_tage"
],
"type": "string",
"description": "Reference week of the contract: 5_tage (working days) or 6_tage (Werktage). Default 5_tage"
},
"jahresurlaub": {
"type": "number",
"maximum": 60,
"minimum": 1,
"description": "Annual leave in the contract for full time, in days of the reference week"
},
"wechsel_tage": {
"type": "number",
"maximum": 6,
"minimum": 0.5,
"description": "Working days per week from wechsel_ab"
},
"schwerbehindert": {
"type": "boolean",
"description": "Recognised severe disability (GdB from 50), not equal status"
},
"schwerbehindert_ab": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Recognised only from this date in the year, optional (YYYY-MM-DD)"
},
"arbeitstage_pro_woche": {
"type": "number",
"maximum": 6,
"minimum": 0.5,
"description": "Days with work per week, each day counts fully however short; average for alternating weeks, e.g. 2.5"
}
},
"additionalProperties": false
}| ansprache |
| string |
| Form of address in the letter: sie or du. Default sie |
| uebertragung | string | Carry-over: gesetzlich (until 31 March) or vertraglich (contract allows longer). Default gesetzlich |
| uebertragung_bis | string | Only vertraglich: carry-over end date in the following year, at the earliest 31 March (YYYY-MM-DD) |
{
"type": "object",
"required": [
"anspruch"
],
"properties": {
"art": {
"enum": [
"jahresbeginn",
"erinnerung"
],
"type": "string",
"description": "jahresbeginn (start of year) or erinnerung (autumn reminder). Default by date: from July erinnerung"
},
"jahr": {
"type": "number",
"maximum": 2100,
"minimum": 2020,
"description": "Leave year, default the year of datum"
},
"datum": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Date of the letter, must be in the leave year, default today (YYYY-MM-DD)"
},
"geplant": {
"type": "number",
"maximum": 60,
"minimum": 0,
"description": "Days approved and planned, default 0"
},
"vorjahr": {
"type": "number",
"maximum": 60,
"minimum": 0,
"description": "Days left from the previous year that were carried over after a timely notice, default 0"
},
"anspruch": {
"type": "number",
"maximum": 60,
"minimum": 0.5,
"description": "Leave entitlement of the year in working days"
},
"genommen": {
"type": "number",
"maximum": 60,
"minimum": 0,
"description": "Days already taken, default 0"
},
"ansprache": {
"enum": [
"sie",
"du"
],
"type": "string",
"description": "Form of address in the letter: sie or du. Default sie"
},
"uebertragung": {
"enum": [
"gesetzlich",
"vertraglich"
],
"type": "string",
"description": "Carry-over: gesetzlich (until 31 March) or vertraglich (contract allows longer). Default gesetzlich"
},
"uebertragung_bis": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Only vertraglich: carry-over end date in the following year, at the earliest 31 March (YYYY-MM-DD)"
}
},
"additionalProperties": false
}