German tools for founders: startup budget, notary fees, taxes, contracts, receipts, e-invoices
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.
Cap table of a German GmbH or UG after a financing round: price per share, shares and percentages before and after (fully diluted and real), convertible loans (cap, discount, floor, interest), VSOP pool top-up, capital increase and Agio, and optionally an exit waterfall with liquidation preference. Free, no key. Each share has a nominal value of 1 €. Calculate a cap table Antwortet auf Deutsch, als Text oder JSON. Der Rechner für Menschen: https://www.firma.de/cap-table-rechner/ – REST: https://www.firma.de/api/cap-table/
Pre-money valuation. In euros.
Optional exit waterfall for one exit value.
Language of names, messages, Markdown and the calculator link.
The existing VSOP pool before the round, in virtual shares.
Convertible loans (Wandeldarlehen) converting in this round.
md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON.
Days per interest year.
post: everyone, the new investor included, carries the pool top-up. pre: the top-up counts into the pre-money, only existing shareholders carry it.
Free pool after the round in percent of all fully diluted shares: 10 means 10 %.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http rechner https://www.firma.de/api/mcp/
Cap table of a German GmbH or UG after a financing round: price per share, shares and percentages before and after (fully diluted and real), convertible loans (cap, discount, floor, interest), VSOP pool top-up, capital increase and Agio, and optionally an exit waterfall with liquidation preference. Free, no key. Each share has a nominal value of 1 €. Calculate a cap table Antwortet auf Deutsch, als Text oder JSON. Der Rechner für Menschen: https://www.firma.de/cap-table-rechner/ – REST: https://www.firma.de/api/cap-table/
| Argument | Type | Description |
|---|---|---|
| exit | object | Optional exit waterfall for one exit value. |
| lang | string | Language of names, messages, Markdown and the calculator link. |
| pool | object | The existing VSOP pool before the round, in virtual shares. |
| loans | array | Convertible loans (Wandeldarlehen) converting in this round. |
| format | string | md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON. |
| dayBasis | integer | Days per interest year. |
| founders* | array | |
| poolMode | string | post: everyone, the new investor included, carries the pool top-up. pre: the top-up counts into the pre-money, only existing shareholders carry it. |
| preMoney* | number | Pre-money valuation. In euros. |
| investors | array | |
| poolTarget | number | Free pool after the round in percent of all fully diluted shares: 10 means 10 %. |
{
"type": "object",
"examples": [
{
"exit": {
"value": 20000000,
"multiple": 1,
"participating": false
},
"loans": [],
"founders": [
{
"name": "Anna",
"shares": 12500
},
{
"name": "Ben",
"shares": 12500
}
],
"preMoney": 4000000,
"investors": [
{
"name": "Seed Fund",
"amount": 1000000
}
],
"poolTarget": 0
}
],
"required": [
"preMoney",
"founders"
],
"properties": {
"exit": {
"type": "object",
"required": [
"value"
],
"properties": {
"value": {
"type": "number",
"maximum": 99000000000,
"minimum": 0,
"description": "Exit value (price for 100 % of the company). In euros."
},
"strike": {
"type": "number",
"default": 0,
"minimum": 0,
"description": "Strike price per virtual share in euros."
},
"multiple": {
"type": "number",
"default": 1,
"maximum": 10,
"minimum": 0,
"description": "Liquidation preference as a multiple of what each investor and lender put in; 0 for none."
},
"poolGranted": {
"type": "boolean",
"default": false,
"description": "Count the free VSOP pool as granted by the exit."
},
"participating": {
"type": "boolean",
"default": false,
"description": "Preferred holders take their preference and then share the rest pro rata."
}
},
"description": "Optional exit waterfall for one exit value."
},
"lang": {
"enum": [
"en",
"de"
],
"type": "string",
"default": "en",
"description": "Language of names, messages, Markdown and the calculator link."
},
"pool": {
"type": "object",
"properties": {
"allocated": {
"type": "integer",
"default": 0,
"minimum": 0
},
"unallocated": {
"type": "integer",
"default": 0,
"minimum": 0
}
},
"description": "The existing VSOP pool before the round, in virtual shares."
},
"loans": {
"type": "array",
"items": {
"type": "object",
"required": [
"principal"
],
"properties": {
"cap": {
"type": [
"number",
"null"
],
"maximum": 99000000000,
"minimum": 0,
"description": "Valuation cap. Null or 0 for none. In euros."
},
"name": {
"type": "string",
"maxLength": 80,
"description": "Optional; numbered from the language otherwise (Founder 1)."
},
"rate": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Interest in percent per year: 5 means 5 % p.a."
},
"floor": {
"type": [
"number",
"null"
],
"maximum": 99000000000,
"minimum": 0,
"description": "Valuation floor. Null or 0 for none. In euros."
},
"months": {
"type": "number",
"maximum": 120,
"minimum": 0,
"description": "Term in months, converted to days as the calculator does (months × 365 ÷ 12)."
},
"discount": {
"type": "number",
"maximum": 90,
"minimum": 0,
"description": "Discount on the round price in percent: 20 means 20 %."
},
"principal": {
"type": "number",
"maximum": 99000000000,
"minimum": 0,
"description": "Loan amount. In euros."
},
"interestDays": {
"type": "integer",
"maximum": 3650,
"minimum": 0,
"description": "Days from payout to conversion; interest runs for these. Alternatively give months."
}
}
},
"maxItems": 50,
"description": "Convertible loans (Wandeldarlehen) converting in this round."
},
"format": {
"enum": [
"md",
"json"
],
"type": "string",
"default": "md",
"description": "md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON."
},
"dayBasis": {
"enum": [
360,
365
],
"type": "integer",
"default": 360,
"description": "Days per interest year."
},
"founders": {
"type": "array",
"items": {
"type": "object",
"required": [
"shares"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80,
"description": "Optional; numbered from the language otherwise (Founder 1)."
},
"shares": {
"type": "integer",
"maximum": 100000000,
"minimum": 0,
"description": "Geschäftsanteile at 1 € nominal each, so also the founder's Stammkapital in euros."
}
}
},
"maxItems": 50,
"minItems": 1
},
"poolMode": {
"enum": [
"post",
"pre"
],
"type": "string",
"default": "post",
"description": "post: everyone, the new investor included, carries the pool top-up. pre: the top-up counts into the pre-money, only existing shareholders carry it."
},
"preMoney": {
"type": "number",
"maximum": 99000000000,
"minimum": 1,
"description": "Pre-money valuation. In euros."
},
"investors": {
"type": "array",
"items": {
"type": "object",
"required": [
"amount"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80,
"description": "Optional; numbered from the language otherwise (Founder 1)."
},
"amount": {
"type": "number",
"maximum": 99000000000,
"minimum": 0,
"description": "Ticket; the investor gets as many whole shares as it buys. In euros."
}
}
},
"maxItems": 50
},
"poolTarget": {
"type": "number",
"default": 0,
"maximum": 99,
"minimum": 0,
"description": "Free pool after the round in percent of all fully diluted shares: 10 means 10 %."
}
}
}Erstellt einen Darlehensvertrag nach deutschem Recht aus den festen Klauseln des Darlehensvertrag-Generators von firma.de: Gesellschafterdarlehen an die GmbH oder UG, Darlehen der Gesellschaft an ihren Gesellschafter, Privatdarlehen (auch unter Angehörigen) und Darlehen zwischen Unternehmen. Die Antwort enthält den Vertragstext (offene Angaben als [Platzhalter]), den Zins- und Tilgungsplan nach der deutschen Zinsmethode 30/360, die Hinweise des Generators zu Verbraucherkreditrecht, verdeckter Gewinnausschüttung, Schenkungsteuer und Insolvenz, Buchungssätze in SKR03 und SKR04 und einen Link, der den Entwurf im Generator öffnet: Dort bearbeiten beide Seiten ihn weiter, unterschreiben und laden PDF oder Word herunter. Kostenlos, ohne Schlüssel. POST mit JSON in der Form des Entwurfs (wie draft in der Antwort): verschachtelt, etwa interest: { mode, rate }, oder mit denselben flachen Namen wie bei GET. Fehlende Felder und null lassen den Standard stehen, "" leert ein Text-, Datums- oder Zahlenfeld. format und draft gehen auch hier; draft darf ein Generator-Link oder ein Entwurf als Objekt sein, etwa draft aus einer früheren Antwort. Antwortet auf Deutsch, als Text oder JSON. Der Rechner für Menschen: https://www.firma.de/darlehensvertrag/ – REST: https://www.firma.de/api/darlehensvertrag/
| Argument | Type | Description |
|---|---|---|
| date | string | Datum der Unterschrift; ohne Angabe heute (Europe/Berlin). |
| iban | string | Optional: IBAN des Darlehensnehmers für die Überweisung; sonst zahlt der Darlehensgeber auf ein benanntes Konto. |
| rate | number | null | Bei fixed: Zins in Prozent pro Jahr. |
| count | integer | null |
Erstellt aus einem Rechnungsentwurf im JSON-Format eine E-Rechnung nach EN 16931 in der Syntax UN/CEFACT CII: als XRechnung 3.0 (für Behörden, mit Leitweg-ID) oder als ZUGFeRD 2.5.2 im Profil EN 16931 (für Unternehmen, als PDF/A-3 mit eingebettetem XML). Dieselbe Rechen- und XML-Logik wie der E-Rechnungs-Generator von firma.de: Positionsbeträge, Umsatzsteuer je Steuersatz, Summen und die Pflichtfelder von XRechnung. Die Antwort enthält die Hinweise des Generators, die Summen und das XML; mit ?format=xml kommt nur das XML, mit ?format=pdf die PDF-Datei. Die Beispiele des Generators sind mit dem KoSIT-Validator und mit Mustang (inklusive veraPDF) getestet. Kostenlos, ohne Schlüssel. POST mit JSON in der Form des Entwurfs (wie draft in der Antwort): seller, buyer, lines (höchstens 50), number, issueDate, service, payment, taxCase, format, note, cashAccounting. Fehlende Felder und null lassen den Standard stehen, "" leert ein Feld. Ungültige Werte und unbekannte Felder geben 400 mit problems je Feld. Antwortet auf Deutsch, als Text oder JSON. Der Rechner für Menschen: https://www.firma.de/e-rechnung/ – REST: https://www.firma.de/api/e-rechnung/
| Argument | Type | Description |
|---|---|---|
| note | string | Freier Hinweis auf der Rechnung (BT-22). |
| buyer | object | |
| lines | array | Positionen, höchstens 50. |
| format | string | md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON. xml: nur die E-Rechnung als XML. |
| number | string |
Rechnet für Selbstständige und Gründer vom Gewinn aus alles, was im Jahr an Steuern anfällt, mit derselben Engine wie der Einkommensteuer-Rechner von firma.de: Einkommensteuer nach dem Tarif des § 32a EStG (Grund- oder Splittingtabelle), Solidaritätszuschlag, Kirchensteuer und für Gewerbetreibende die Gewerbesteuer mit ihrer Anrechnung nach § 35 EStG. Dazu Kranken- und Pflegeversicherung als freiwillig gesetzlich Versicherte, die Günstigerprüfung zwischen Kindergeld und Kinderfreibeträgen, der Rechenweg bis zum zu versteuernden Einkommen, Durchschnitts- und Grenzsteuersatz, die Vorauszahlungen mit Terminen, was du monatlich zurücklegen kannst, Hinweise zum Fall und ein Link, der die Berechnung im Rechner öffnet. Jahre 2025, 2026, 2027; 2027 rechnet mit dem Regierungsentwurf, der noch nicht beschlossen ist. Eine unverbindliche Schätzung, allgemeine Steuerinformation, keine Steuerberatung. Kostenlos, ohne Schlüssel. POST mit JSON: die Felder flach wie bei GET oder unter values, etwa { "year": 2026, "values": { "profit": 60000, "filing": "joint" } }. So passt auch input aus einer früheren Antwort: die Felder von input unverändert. Fehlende Felder und null behalten den Standard des Rechners. format geht auch hier, ebenso ?format=md in der Adresse. Antwortet auf Deutsch, als Text oder JSON. Der Rechner für Menschen: https://www.firma.de/einkommensteuer/ – REST: https://www.firma.de/api/einkommensteuer/
| Argument | Type | Description |
|---|---|---|
| land | string | null | Nur bei church=true: Bundesland für den Kirchensteuersatz, 8 % in Bayern und Baden-Württemberg, sonst 9 %; Kürzel wie by, Name wie Bayern oder NRW. Ohne Angabe 9 %. |
| year | integer | null | Steuerjahr: 2025, 2026, 2027. Standard 2026. 2027 rechnet mit dem Regierungsentwurf, der noch nicht beschlossen ist. |
| church | boolean | null |
Rechnet für den Gesellschafter-Geschäftsführer einer GmbH oder UG drei Fragen in einem Durchgang, mit derselben Engine wie der Geschäftsführergehalt-Rechner von firma.de. Erstens die Sozialversicherung nach der Regel des Bundessozialgerichts: ab 50 % Anteil oder mit umfassender Sperrminorität im Gesellschaftsvertrag in der Regel sozialversicherungsfrei, sonst sozialversicherungspflichtig; verbindlich entscheidet die Clearingstelle der Deutschen Rentenversicherung Bund (§ 7a SGB IV). Zweitens, was dir bei Gehalt und Ausschüttung privat bleibt: in der GmbH Gehalt, Arbeitgeberanteile, Insolvenzgeldumlage und Zuschuss zur Kranken- und Pflegeversicherung als Betriebsausgaben, danach Körperschaftsteuer, Solidaritätszuschlag, Gewerbesteuer und die Rücklage der UG; bei dir Renten- und Arbeitslosenversicherung, Kranken- und Pflegeversicherung (pflichtversichert bis zur Jahresarbeitsentgeltgrenze, freiwillig gesetzlich mit Beiträgen auch auf die Ausschüttung und einen steuerpflichtigen Zuschuss, oder privat) und die Einkommensteuer des Jahres auf Gehalt und Ausschüttung zusammen, mit Abgeltungsteuer, Günstigerprüfung und Teileinkünfteverfahren nebeneinander, Solidaritätszuschlag und Kirchensteuer. Dazu eine Kurve über das Gehalt von 0 bis zum ganzen Gewinn mit dem Gehalt, bei dem bei diesen Angaben am meisten privat bleibt (ein Rechenergebnis, keine Empfehlung: das Finanzamt erkennt nur ein angemessenes Gehalt an, fast der ganze Gewinn als Gehalt ist ein typischer Fall der verdeckten Gewinnausschüttung). Drittens Hinweise zur Angemessenheit: Verlust durch das Gehalt, Formvorschriften für beherrschende Gesellschafter und auf Wunsch die grobe Orientierung der Karlsruher Tabelle 2009, nie ein Urteil. Dazu der Rechenweg, Hinweise zum Fall und ein Link, der die Berechnung im Rechner öffnet. Jahre 2025, 2026, 2027; 2027 rechnet mit Entwürfen (Einkommensteuertarif, Arbeitnehmer-Pauschbetrag und Rechengrößen der Sozialversicherung). Eine unverbindliche Schätzung, allgemeine Steuerinformation, keine Steuerberatung. Kostenlos, ohne Schlüssel. POST mit JSON: die Felder flach wie bei GET oder unter values, etwa { "year": 2026, "values": { "profitBeforeSalary": 200000, "salary": 90000, "health": "gkv" } }. So passt auch input aus einer früheren Antwort: die Felder von input unverändert. Fehlende Felder und null behalten den Standard des Rechners. format geht auch hier, ebenso ?format=md in der Adresse. Antwortet auf Deutsch, als Text oder JSON. Der Rechner für Menschen: https://www.firma.de/geschaeftsfuehrergehalt/ – REST: https://www.firma.de/api/geschaeftsfuehrergehalt/
Rechnet für eine GmbH oder UG vom Gewinn vor Steuern aus, was an Steuern anfällt und was dir als Gesellschafter bleibt, mit derselben Engine wie der GmbH-Steuerrechner von firma.de. In der GmbH: Körperschaftsteuer nach § 23 KStG (15 % bis 2027, danach ein Punkt weniger je Jahr bis 10 % ab 2032), Solidaritätszuschlag, Gewerbesteuer ohne Freibetrag mit dem Hebesatz der Gemeinde (Mindesthebesatz 200 %, ab 2027 280 %), Verlustvortrag mit Mindestbesteuerung und die Rücklage der UG. Bei dir: die Ausschüttung mit Abgeltungsteuer, Günstigerprüfung und Teileinkünfteverfahren nebeneinander, gerechnet mit dem Einkommensteuertarif nach § 32a EStG, dazu Solidaritätszuschlag, Kirchensteuer und für freiwillig gesetzlich Versicherte Kranken- und Pflegeversicherung; oder deine Holding-GmbH als Empfängerin nach § 8b KStG. Dazu der Rechenweg, die Senkung der Körperschaftsteuer bis 2032, ein Vergleich mit einem Einzelunternehmen mit demselben Gewinn, Vorauszahlungen mit Terminen, Hinweise zum Fall und ein Link, der die Berechnung im Rechner öffnet. Der Gewinn zählt nach dem Geschäftsführergehalt; das Gehalt selbst rechnet die API nicht. Jahre 2025, 2026, 2027; 2027 rechnet die Einkommensteuer des Gesellschafters mit dem Regierungsentwurf, der noch nicht beschlossen ist. Eine unverbindliche Schätzung, allgemeine Steuerinformation, keine Steuerberatung. Kostenlos, ohne Schlüssel. POST mit JSON: die Felder flach wie bei GET oder unter values, etwa { "year": 2026, "values": { "profit": 150000, "hebesatz": 450, "share": 50 } }. So passt auch input aus einer früheren Antwort: die Felder von input unverändert. Fehlende Felder und null behalten den Standard des Rechners. format geht auch hier, ebenso ?format=md in der Adresse. Antwortet auf Deutsch, als Text oder JSON. Der Rechner für Menschen: https://www.firma.de/gmbh-steuern/ – REST: https://www.firma.de/api/gmbh-steuern/
| Argument | Type | Description |
|---|---|---|
| land | string | null | Nur bei recipient=person und church=true: Bundesland für den Kirchensteuersatz, 8 % in Bayern und Baden-Württemberg, sonst 9 %; Kürzel wie by, Name wie Bayern oder NRW. Ohne Angabe 9 %. |
Rechnet aus Eckdaten eines geplanten Unternehmens das erste Gründungsbudget: Startfinanzierung (größte kumulierte Finanzierungslücke über Vorlauf und 24 Monate plus Reserve), was vor dem Start anfällt, die Lücke im Betrieb, verfügbares Kapital, noch zu finanzieren, tiefster Kontostand, Liquidität Monat für Monat, Kostentreiber und drei Szenarien. Jede Angabe ist optional; fehlende Werte sind Richtwerte der Branche. Offen, ohne Schlüssel, speichert nichts. Gründungsbudget aus einem JSON-Objekt, mit eigenen Kostenpositionen und Mitarbeitern. Antwortet auf Deutsch, als Text oder JSON. Der Rechner für Menschen: https://www.firma.de/gruendungsbudget/ – REST: https://www.firma.de/api/gruendungsbudget/
| Argument | Type | Description |
|---|---|---|
| city | string | Ort für die Gebühren der Gewerbeanmeldung; andere = jede andere Stadt. |
| hires | array | |
| items | array | Bekannte Kostenpositionen; ersetzen geschätzte mit gleichem key. |
| equity | number | Eigenkapital der Gründer in Euro (Stammkapital eingeschlossen). |
| format | string | md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON. |
| capital | number | Stammkapital einer UG oder GmbH in Euro (Finanzierung, keine Ausgabe). |
Rechnet Notar- und Gerichtsgebühren nach dem GNotKG, die Grunderwerbsteuer je Bundesland und die Gebühren von Testaments- und Vorsorgeregister, mit derselben Engine wie der Notarkosten-Rechner von firma.de: Immobilienkauf, neue Grundschuld, Löschung einer Grundschuld, Schenkung einer Immobilie, Testament und Erbvertrag, Erbschein, Vorsorgevollmacht, Ehevertrag, Beglaubigung und GmbH- oder UG-Gründung. Jeder Posten kommt mit KV-Nummer oder Norm, Rechenweg und wer ihn üblicherweise zahlt; dazu die Summen, Posten, die nur in manchen Fällen anfallen, Hinweise zum Fall und ein Link, der die Berechnung im Rechner öffnet. Das Ergebnis ist eine unverbindliche Schätzung: Die maßgebliche Kostenberechnung erstellt der Notar (§ 19 GNotKG). Kostenlos, ohne Schlüssel. POST mit JSON: case und die Felder des Falls, flach wie bei GET oder unter values, etwa { "case": "kauf", "land": "be", "values": { "price": 420000 } }. So passt auch input aus einer früheren Antwort: case dazu, die Felder von input unverändert. Fehlende Felder und null behalten den Standard des Rechners. format geht auch hier, ebenso ?format=md in der Adresse. Antwortet auf Deutsch, als Text oder JSON. Der Rechner für Menschen: https://www.firma.de/notarkosten/ – REST: https://www.firma.de/api/notarkosten/
| Argument | Type | Description |
|---|---|---|
| case* | string | Der Fall: kauf (Immobilienkauf), grundschuld (neue Grundschuld bestellen), loeschung (Grundschuld löschen), schenkung (Schenkung einer Immobilie), testament (Einzeltestament, gemeinschaftliches Testament, Erbvertrag), erbschein (Erbscheinsantrag), vollmacht (Vorsorgevollmacht), ehevertrag, beglaubigung (Unterschrift, Entwurf oder Kopien) oder gmbh (GmbH- oder UG-Gründung). Deutsche Wörter gehen auch, etwa hauskauf, wohnungskauf, schenkung, berlinertestament, erbvertrag, vorsorgevollmacht, unterschriftsbeglaubigung, ug. Ein Wort, das eine Variante nennt, setzt sie, wenn der Aufruf das Feld nicht selbst angibt: wohnungskauf rechnet eine Wohnung, berlinertestament ein gemeinschaftliches Testament, erbvertrag einen Erbvertrag, gmbh eine GmbH, ug eine UG. |
Erstellt eine Quittung nach § 368 BGB mit den üblichen Angaben, aus derselben Vorlage wie der Quittungs-Generator von firma.de: privat, als umsatzsteuerpflichtiges Unternehmen (bis 250 € brutto mit den Angaben einer Kleinbetragsrechnung nach § 33 UStDV), als Kleinunternehmer (§ 19 UStG, über 250 € mit den Angaben nach § 34a UStDV) oder als Bestätigung einer Zahlung auf eine Rechnung. Die Antwort enthält den Quittungstext (offene Angaben als [Platzhalter]), den Betrag in Worten, bei Unternehmen Steuer- und Nettobetrag, die Hinweise des Generators zu Rechnungspflicht, Kasse, Bargeld-Obergrenze und Umsatzsteuer und einen Link, der die Quittung im Generator öffnet: Dort lässt sie sich unterschreiben und als PDF mit Original und Durchschrift oder als Word-Datei herunterladen. Kostenlos, ohne Schlüssel. POST mit JSON in der Form des Entwurfs (wie draft in der Antwort): verschachtelt, etwa payer: { name, address } und vat: { rate }, oder mit denselben flachen Namen wie bei GET. Fehlende Felder und null lassen den Standard stehen, "" leert ein Text-, Datums- oder Betragsfeld. format und draft gehen auch hier; draft darf ein Generator-Link oder ein Entwurf als Objekt sein, etwa draft aus einer früheren Antwort. Antwortet auf Deutsch, als Text oder JSON. Der Rechner für Menschen: https://www.firma.de/quittung/ – REST: https://www.firma.de/api/quittung/
| Argument | Type | Description |
|---|---|---|
| vat | any | |
| case | string | null | Wer quittiert. private: eine Privatperson, nie mit Umsatzsteuer. business: ein umsatzsteuerpflichtiges Unternehmen (regelbesteuert); bis 250 € brutto ist die Quittung eine Kleinbetragsrechnung. smallBusiness: ein Kleinunternehmer nach § 19 UStG, ohne Umsatzsteuer, mit Befreiungshinweis. invoicePayment: bestätigt die Zahlung auf eine bestehende Rechnung, ohne Steuerangaben (die stehen in der Rechnung). |
| date |
Erstellt einen Schenkungsvertrag nach deutschem Recht aus den festen Bausteinen des Schenkungsvertrag-Generators von firma.de: für Geld (Überweisung oder bar), Fahrzeuge und bewegliche Gegenstände, von einem oder zwei Schenkern; Geld und Gegenstände auch an minderjährige Kinder, Fahrzeuge nur an Volljährige. Die Antwort enthält den Vertragstext (offene Angaben als [Platzhalter]), die Hinweise des Generators (Notar, Minderjährige, Bargeld, Rückforderung), einen Schenkungsteuer-Check je Schenker mit Steuerklasse, Freibetrag und 10-Jahres-Regel (allgemeine Steuerinformation), die Frist für die Anzeige beim Finanzamt und einen Link, der den Entwurf im Generator öffnet: Dort tragen die Beteiligten ihre Namen ein, unterschreiben und laden PDF oder Word herunter. Immobilien und GmbH-Anteile gehen nur beim Notar; dafür gibt es keinen Vertragstext, bei Immobilien aber die Kosten für Notar und Grundbuch. Kostenlos, ohne Schlüssel. POST mit JSON: flach mit denselben Namen wie bei GET oder verschachtelt wie draft in der Antwort (Schenker unter donors.donor1 und donors.donor2, nie als Liste). Fehlende Felder und null lassen den Standard stehen, "" leert ein Text- oder Datumsfeld. Persönliche Angaben gehen nur hier. format und draft gehen auch im Body. Antwortet auf Deutsch, als Text oder JSON. Der Rechner für Menschen: https://www.firma.de/schenkungsvertrag/ – REST: https://www.firma.de/api/schenkungsvertrag/
| Argument | Type | Description |
|---|---|---|
| age | any | adult (Standard), under7 (unter 7 Jahren) oder from7 (7 bis 17); auch das Alter in Jahren von 0 bis 130: 0 bis 6 = under7, 7 bis 17 = from7, ab 18 = adult. Ein Geburtsdatum geht vor: Es zählt das Alter am Vertragsdatum, ohne Vertragsdatum das von heute. |
| vin | string | Fahrzeug-Identifizierungsnummer (FIN), beim E-Bike die Rahmennummer. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 4, 2026.
| Bei installments und annuity: Anzahl der Raten. |
| draft | object | string | Ein Link des Generators oder nur der Teil nach #dv= als Ausgangspunkt; weitere Parameter ändern ihn. In einer GET-Adresse das # als %23 schreiben, sonst kommt der Entwurf nicht an. Bei POST auch ein Entwurf als Objekt, etwa draft aus einer früheren Antwort. |
| place | string | Ort der Unterschrift. |
| amount | number | null | Darlehensbetrag in Euro. |
| format | string | md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON. |
| lender | any |
| margin | number | null | Bei variable: Prozentpunkte über dem Basiszinssatz nach § 247 BGB (derzeit 1,52 %). |
| notice | integer | Bei open: Kündigungsfrist in Monaten für beide Seiten (Standard 3, § 488 Abs. 3 BGB). |
| signer | string | Mit managingDirector: sameExempt, er unterschreibt auch für die Gesellschaft und ist von § 181 BGB befreit; otherDirector, ein anderer Geschäftsführer unterschreibt für sie. |
| purpose | string | Optional: wofür das Geld ist. |
| signing | object |
| approval | boolean | Die Gesellschafterversammlung hat dem Vertrag zugestimmt; nur angeben, wenn es den Beschluss gibt. |
| borrower | any |
| interest | any |
| maturity | string | Bei bullet: Tag der Rückzahlung. |
| relation | object |
| scenario | string | null | Wer leiht wem. shareholderLoan: ein Gesellschafter (Person oder Holding) leiht seiner GmbH oder UG. loanToShareholder: die GmbH oder UG leiht ihrem Gesellschafter. private: Privatperson an Privatperson. business: zwischen Unternehmen oder zwischen Person und Unternehmen, ohne Gesellschafterbeziehung. |
| security | any |
| firstRate | string | Bei installments und annuity: Fälligkeit der ersten Rate. |
| formation | boolean | Bei shareholderLoan: Die Gesellschaft ist notariell gegründet, aber noch nicht eingetragen (in Gründung). |
| frequency | string | Bei installments und annuity: wie oft eine Rate fällig ist (Standard monthly). |
| relatives | boolean | Bei private: Die Parteien sind Angehörige (§ 15 AO). |
| repayment | any |
| reporting | boolean | Die Gesellschaft, die das Geld bekommt, schickt dem Darlehensgeber jedes Jahr ihren Jahresabschluss. |
| lenderKind | string | Art des Darlehensgebers. Das Szenario setzt sie; ändern lässt sie sich, wo das passt: bei shareholderLoan eine Holding als Gesellschafter, bei business jede Seite. |
| borrowerKind | string | Art des Darlehensnehmers. Das Szenario setzt sie; ändern lässt sie sich, wo das passt: bei loanToShareholder eine Holding als Gesellschafter, bei business jede Seite. |
| disbursement | any |
| jurisdiction | boolean | Gerichtsstand am Sitz des Darlehensgebers; gilt nur zwischen Kaufleuten wie zwei GmbHs (§ 38 ZPO). |
| securityText | string | Bei guarantee: Name und Anschrift des Bürgen; bei assignment: die abgetretenen Forderungen; bei other: die Sicherheit in Worten. |
| lenderAddress | string | Anschrift des Darlehensgebers in einer Zeile: Straße und Hausnummer, PLZ und Ort. |
| subordination | boolean | Qualifizierter Rangrücktritt des Darlehensgebers; nur wenn eine Gesellschaft das Geld bekommt. |
| earlyRepayment | boolean | Vorzeitige Rückzahlung jederzeit, ganz oder in Teilen, ohne Entschädigung (Standard true). |
| lenderRegister | string | Nur Unternehmen: Registergericht und Nummer. |
| borrowerAddress | string | Anschrift des Darlehensnehmers in einer Zeile: Straße und Hausnummer, PLZ und Ort. |
| borrowerPurpose | string | Bei business mit einer Person als Darlehensnehmer: private (Standard; privat, dann Verbraucherdarlehen) oder business (für ein bestehendes Geschäft oder eine selbständige Tätigkeit). |
| interestPayment | string | Wann Zinsen fällig sind, wenn das Darlehen endfällig oder unbefristet ist: monthly, quarterly, yearly (Standard) oder maturity, mit der Rückzahlung. Bei Raten sind sie mit jeder Rate fällig. |
| borrowerRegister | string | Nur Unternehmen: Registergericht und Nummer. |
| disbursementDate | string | Bei transfer: Auszahlung bis; bei paid: ausgezahlt am; bei onCall: abrufbar bis. Ab hier läuft der Plan. |
| managingDirector | boolean | Gesellschafter-Szenarien: Der Gesellschafter ist eine Person und zugleich Geschäftsführer der Gesellschaft (§ 181 BGB, § 43a GmbHG). |
| shareholderApproval | boolean | Die Gesellschafterversammlung hat dem Vertrag zugestimmt; nur angeben, wenn es den Beschluss gibt. |
| lenderRepresentative | string | Nur Unternehmen: wer für den Darlehensgeber unterschreibt, mit Funktion. |
| borrowerRepresentative | string | Nur Unternehmen: wer für den Darlehensnehmer unterschreibt, mit Funktion. |
{
"type": "object",
"examples": [
{
"amount": 50000,
"lender": {
"name": "Anna Schmidt",
"address": "Kastanienallee 12, 10435 Berlin"
},
"signing": {
"date": "2026-11-10",
"place": "Berlin"
},
"borrower": {
"name": "Lumio GmbH",
"address": "Rosenthaler Straße 40, 10178 Berlin",
"register": "Amtsgericht Berlin (Charlottenburg), HRB 123456",
"representative": "Anna Schmidt, Geschäftsführerin"
},
"interest": {
"mode": "fixed",
"rate": 5,
"payment": "yearly"
},
"relation": {
"managingDirector": true
},
"scenario": "shareholderLoan",
"repayment": {
"mode": "bullet",
"maturityDate": "2029-11-15"
},
"disbursement": {
"date": "2026-11-15",
"mode": "transfer"
},
"subordination": true
}
],
"properties": {
"date": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Datum der Unterschrift; ohne Angabe heute (Europe/Berlin)."
},
"iban": {
"type": "string",
"maxLength": 42,
"description": "Optional: IBAN des Darlehensnehmers für die Überweisung; sonst zahlt der Darlehensgeber auf ein benanntes Konto."
},
"rate": {
"type": [
"number",
"null"
],
"maximum": 20,
"minimum": 0,
"description": "Bei fixed: Zins in Prozent pro Jahr."
},
"count": {
"type": [
"integer",
"null"
],
"maximum": 600,
"minimum": 1,
"description": "Bei installments und annuity: Anzahl der Raten."
},
"draft": {
"type": [
"object",
"string"
],
"description": "Ein Link des Generators oder nur der Teil nach #dv= als Ausgangspunkt; weitere Parameter ändern ihn. In einer GET-Adresse das # als %23 schreiben, sonst kommt der Entwurf nicht an. Bei POST auch ein Entwurf als Objekt, etwa draft aus einer früheren Antwort."
},
"place": {
"type": "string",
"maxLength": 80,
"description": "Ort der Unterschrift."
},
"amount": {
"type": [
"number",
"null"
],
"maximum": 100000000,
"minimum": 1,
"description": "Darlehensbetrag in Euro."
},
"format": {
"enum": [
"md",
"json"
],
"type": "string",
"default": "md",
"description": "md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON."
},
"lender": {
"oneOf": [
{
"type": "string",
"maxLength": 120,
"description": "Name des Darlehensgebers: voller Name der Person oder Firma mit Rechtsform."
},
{
"type": "object",
"properties": {
"kind": {
"enum": [
"person",
"company"
],
"type": "string",
"description": "Art des Darlehensgebers. Das Szenario setzt sie; ändern lässt sie sich, wo das passt: bei shareholderLoan eine Holding als Gesellschafter, bei business jede Seite."
},
"name": {
"type": "string",
"maxLength": 120,
"description": "Name des Darlehensgebers: voller Name der Person oder Firma mit Rechtsform."
},
"address": {
"type": "string",
"maxLength": 200,
"description": "Anschrift des Darlehensgebers in einer Zeile: Straße und Hausnummer, PLZ und Ort."
},
"register": {
"type": "string",
"maxLength": 120,
"description": "Nur Unternehmen: Registergericht und Nummer."
},
"representative": {
"type": "string",
"maxLength": 160,
"description": "Nur Unternehmen: wer für den Darlehensgeber unterschreibt, mit Funktion."
}
}
}
]
},
"margin": {
"type": [
"number",
"null"
],
"maximum": 15,
"minimum": 0,
"description": "Bei variable: Prozentpunkte über dem Basiszinssatz nach § 247 BGB (derzeit 1,52 %)."
},
"notice": {
"type": "integer",
"maximum": 24,
"minimum": 1,
"description": "Bei open: Kündigungsfrist in Monaten für beide Seiten (Standard 3, § 488 Abs. 3 BGB)."
},
"signer": {
"enum": [
"sameExempt",
"otherDirector"
],
"type": "string",
"description": "Mit managingDirector: sameExempt, er unterschreibt auch für die Gesellschaft und ist von § 181 BGB befreit; otherDirector, ein anderer Geschäftsführer unterschreibt für sie."
},
"purpose": {
"type": "string",
"maxLength": 300,
"description": "Optional: wofür das Geld ist."
},
"signing": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Datum der Unterschrift; ohne Angabe heute (Europe/Berlin)."
},
"place": {
"type": "string",
"maxLength": 80,
"description": "Ort der Unterschrift."
}
}
},
"approval": {
"type": "boolean",
"description": "Die Gesellschafterversammlung hat dem Vertrag zugestimmt; nur angeben, wenn es den Beschluss gibt."
},
"borrower": {
"oneOf": [
{
"type": "string",
"maxLength": 120,
"description": "Name des Darlehensnehmers: voller Name der Person oder Firma mit Rechtsform."
},
{
"type": "object",
"properties": {
"kind": {
"enum": [
"person",
"company"
],
"type": "string",
"description": "Art des Darlehensnehmers. Das Szenario setzt sie; ändern lässt sie sich, wo das passt: bei loanToShareholder eine Holding als Gesellschafter, bei business jede Seite."
},
"name": {
"type": "string",
"maxLength": 120,
"description": "Name des Darlehensnehmers: voller Name der Person oder Firma mit Rechtsform."
},
"address": {
"type": "string",
"maxLength": 200,
"description": "Anschrift des Darlehensnehmers in einer Zeile: Straße und Hausnummer, PLZ und Ort."
},
"register": {
"type": "string",
"maxLength": 120,
"description": "Nur Unternehmen: Registergericht und Nummer."
},
"representative": {
"type": "string",
"maxLength": 160,
"description": "Nur Unternehmen: wer für den Darlehensnehmer unterschreibt, mit Funktion."
}
}
}
]
},
"interest": {
"oneOf": [
{
"enum": [
"none",
"fixed",
"variable"
],
"type": "string",
"description": "none, zinslos; fixed, fester Zins (Standard); variable, Basiszinssatz plus Aufschlag. margin ohne interest setzt variable."
},
{
"type": "object",
"properties": {
"mode": {
"enum": [
"none",
"fixed",
"variable"
],
"type": "string",
"description": "none, zinslos; fixed, fester Zins (Standard); variable, Basiszinssatz plus Aufschlag. margin ohne interest setzt variable."
},
"rate": {
"type": [
"number",
"null"
],
"maximum": 20,
"minimum": 0,
"description": "Bei fixed: Zins in Prozent pro Jahr."
},
"margin": {
"type": [
"number",
"null"
],
"maximum": 15,
"minimum": 0,
"description": "Bei variable: Prozentpunkte über dem Basiszinssatz nach § 247 BGB (derzeit 1,52 %)."
},
"payment": {
"enum": [
"monthly",
"quarterly",
"yearly",
"maturity"
],
"type": "string",
"description": "Wann Zinsen fällig sind, wenn das Darlehen endfällig oder unbefristet ist: monthly, quarterly, yearly (Standard) oder maturity, mit der Rückzahlung. Bei Raten sind sie mit jeder Rate fällig."
}
}
}
]
},
"maturity": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Bei bullet: Tag der Rückzahlung."
},
"relation": {
"type": "object",
"properties": {
"signer": {
"enum": [
"sameExempt",
"otherDirector"
],
"type": "string",
"description": "Mit managingDirector: sameExempt, er unterschreibt auch für die Gesellschaft und ist von § 181 BGB befreit; otherDirector, ein anderer Geschäftsführer unterschreibt für sie."
},
"formation": {
"type": "boolean",
"description": "Bei shareholderLoan: Die Gesellschaft ist notariell gegründet, aber noch nicht eingetragen (in Gründung)."
},
"relatives": {
"type": "boolean",
"description": "Bei private: Die Parteien sind Angehörige (§ 15 AO)."
},
"managingDirector": {
"type": "boolean",
"description": "Gesellschafter-Szenarien: Der Gesellschafter ist eine Person und zugleich Geschäftsführer der Gesellschaft (§ 181 BGB, § 43a GmbHG)."
}
}
},
"scenario": {
"enum": [
"shareholderLoan",
"loanToShareholder",
"private",
"business",
null
],
"type": [
"string",
"null"
],
"description": "Wer leiht wem. shareholderLoan: ein Gesellschafter (Person oder Holding) leiht seiner GmbH oder UG. loanToShareholder: die GmbH oder UG leiht ihrem Gesellschafter. private: Privatperson an Privatperson. business: zwischen Unternehmen oder zwischen Person und Unternehmen, ohne Gesellschafterbeziehung."
},
"security": {
"oneOf": [
{
"enum": [
"none",
"guarantee",
"assignment",
"other"
],
"type": "string",
"description": "Sicherheit: none (Standard); guarantee, Bürgschaft; assignment, Sicherungsabtretung; other, eine andere."
},
{
"type": "object",
"properties": {
"mode": {
"enum": [
"none",
"guarantee",
"assignment",
"other"
],
"type": "string",
"description": "Sicherheit: none (Standard); guarantee, Bürgschaft; assignment, Sicherungsabtretung; other, eine andere."
},
"text": {
"type": "string",
"maxLength": 300,
"description": "Bei guarantee: Name und Anschrift des Bürgen; bei assignment: die abgetretenen Forderungen; bei other: die Sicherheit in Worten."
}
}
}
]
},
"firstRate": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Bei installments und annuity: Fälligkeit der ersten Rate."
},
"formation": {
"type": "boolean",
"description": "Bei shareholderLoan: Die Gesellschaft ist notariell gegründet, aber noch nicht eingetragen (in Gründung)."
},
"frequency": {
"enum": [
"monthly",
"quarterly",
"yearly"
],
"type": "string",
"description": "Bei installments und annuity: wie oft eine Rate fällig ist (Standard monthly)."
},
"relatives": {
"type": "boolean",
"description": "Bei private: Die Parteien sind Angehörige (§ 15 AO)."
},
"repayment": {
"oneOf": [
{
"enum": [
"bullet",
"installments",
"annuity",
"open"
],
"type": "string",
"description": "bullet, auf einmal am Fälligkeitstag (Standard); installments, Raten mit gleicher Tilgung plus Zinsen; annuity, gleiche Raten mit Zinsen; open, unbefristet bis zur Kündigung."
},
{
"type": "object",
"properties": {
"mode": {
"enum": [
"bullet",
"installments",
"annuity",
"open"
],
"type": "string",
"description": "bullet, auf einmal am Fälligkeitstag (Standard); installments, Raten mit gleicher Tilgung plus Zinsen; annuity, gleiche Raten mit Zinsen; open, unbefristet bis zur Kündigung."
},
"count": {
"type": [
"integer",
"null"
],
"maximum": 600,
"minimum": 1,
"description": "Bei installments und annuity: Anzahl der Raten."
},
"firstDate": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Bei installments und annuity: Fälligkeit der ersten Rate."
},
"frequency": {
"enum": [
"monthly",
"quarterly",
"yearly"
],
"type": "string",
"description": "Bei installments und annuity: wie oft eine Rate fällig ist (Standard monthly)."
},
"maturityDate": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Bei bullet: Tag der Rückzahlung."
},
"noticeMonths": {
"type": "integer",
"maximum": 24,
"minimum": 1,
"description": "Bei open: Kündigungsfrist in Monaten für beide Seiten (Standard 3, § 488 Abs. 3 BGB)."
}
}
}
]
},
"reporting": {
"type": "boolean",
"description": "Die Gesellschaft, die das Geld bekommt, schickt dem Darlehensgeber jedes Jahr ihren Jahresabschluss."
},
"lenderKind": {
"enum": [
"person",
"company"
],
"type": "string",
"description": "Art des Darlehensgebers. Das Szenario setzt sie; ändern lässt sie sich, wo das passt: bei shareholderLoan eine Holding als Gesellschafter, bei business jede Seite."
},
"borrowerKind": {
"enum": [
"person",
"company"
],
"type": "string",
"description": "Art des Darlehensnehmers. Das Szenario setzt sie; ändern lässt sie sich, wo das passt: bei loanToShareholder eine Holding als Gesellschafter, bei business jede Seite."
},
"disbursement": {
"oneOf": [
{
"enum": [
"transfer",
"paid",
"onCall"
],
"type": "string",
"description": "Wie das Geld fließt: transfer, wird überwiesen; paid, ist schon ausgezahlt; onCall, auf Abruf."
},
{
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Bei transfer: Auszahlung bis; bei paid: ausgezahlt am; bei onCall: abrufbar bis. Ab hier läuft der Plan."
},
"iban": {
"type": "string",
"maxLength": 42,
"description": "Optional: IBAN des Darlehensnehmers für die Überweisung; sonst zahlt der Darlehensgeber auf ein benanntes Konto."
},
"mode": {
"enum": [
"transfer",
"paid",
"onCall"
],
"type": "string",
"description": "Wie das Geld fließt: transfer, wird überwiesen; paid, ist schon ausgezahlt; onCall, auf Abruf."
}
}
}
]
},
"jurisdiction": {
"type": "boolean",
"description": "Gerichtsstand am Sitz des Darlehensgebers; gilt nur zwischen Kaufleuten wie zwei GmbHs (§ 38 ZPO)."
},
"securityText": {
"type": "string",
"maxLength": 300,
"description": "Bei guarantee: Name und Anschrift des Bürgen; bei assignment: die abgetretenen Forderungen; bei other: die Sicherheit in Worten."
},
"lenderAddress": {
"type": "string",
"maxLength": 200,
"description": "Anschrift des Darlehensgebers in einer Zeile: Straße und Hausnummer, PLZ und Ort."
},
"subordination": {
"type": "boolean",
"description": "Qualifizierter Rangrücktritt des Darlehensgebers; nur wenn eine Gesellschaft das Geld bekommt."
},
"earlyRepayment": {
"type": "boolean",
"description": "Vorzeitige Rückzahlung jederzeit, ganz oder in Teilen, ohne Entschädigung (Standard true)."
},
"lenderRegister": {
"type": "string",
"maxLength": 120,
"description": "Nur Unternehmen: Registergericht und Nummer."
},
"borrowerAddress": {
"type": "string",
"maxLength": 200,
"description": "Anschrift des Darlehensnehmers in einer Zeile: Straße und Hausnummer, PLZ und Ort."
},
"borrowerPurpose": {
"enum": [
"private",
"business"
],
"type": "string",
"description": "Bei business mit einer Person als Darlehensnehmer: private (Standard; privat, dann Verbraucherdarlehen) oder business (für ein bestehendes Geschäft oder eine selbständige Tätigkeit)."
},
"interestPayment": {
"enum": [
"monthly",
"quarterly",
"yearly",
"maturity"
],
"type": "string",
"description": "Wann Zinsen fällig sind, wenn das Darlehen endfällig oder unbefristet ist: monthly, quarterly, yearly (Standard) oder maturity, mit der Rückzahlung. Bei Raten sind sie mit jeder Rate fällig."
},
"borrowerRegister": {
"type": "string",
"maxLength": 120,
"description": "Nur Unternehmen: Registergericht und Nummer."
},
"disbursementDate": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Bei transfer: Auszahlung bis; bei paid: ausgezahlt am; bei onCall: abrufbar bis. Ab hier läuft der Plan."
},
"managingDirector": {
"type": "boolean",
"description": "Gesellschafter-Szenarien: Der Gesellschafter ist eine Person und zugleich Geschäftsführer der Gesellschaft (§ 181 BGB, § 43a GmbHG)."
},
"shareholderApproval": {
"type": "boolean",
"description": "Die Gesellschafterversammlung hat dem Vertrag zugestimmt; nur angeben, wenn es den Beschluss gibt."
},
"lenderRepresentative": {
"type": "string",
"maxLength": 160,
"description": "Nur Unternehmen: wer für den Darlehensgeber unterschreibt, mit Funktion."
},
"borrowerRepresentative": {
"type": "string",
"maxLength": 160,
"description": "Nur Unternehmen: wer für den Darlehensnehmer unterschreibt, mit Funktion."
}
},
"description": "POST mit JSON in der Form des Entwurfs (wie draft in der Antwort): verschachtelt, etwa interest: { mode, rate }, oder mit denselben flachen Namen wie bei GET. Fehlende Felder und null lassen den Standard stehen, \"\" leert ein Text-, Datums- oder Zahlenfeld. format und draft gehen auch hier; draft darf ein Generator-Link oder ein Entwurf als Objekt sein, etwa draft aus einer früheren Antwort."
}| Rechnungsnummer (BT-1). |
| seller | object |
| payment | object |
| service | object |
| taxCase | string | taxCase: standard (19 %, 7 % oder 0 % je Position), smallBusiness (Kleinunternehmer nach § 19 UStG, ohne Umsatzsteuer), reverseCharge (Steuerschuldnerschaft des Leistungsempfängers, § 13b UStG oder Leistungen an Unternehmen im EU-Ausland, nicht außerhalb der EU und nicht an Privatkunden; USt-IdNr. des Kunden nötig, bei Kunden im EU-Ausland auch deine), intraEu (innergemeinschaftliche Lieferung an ein Unternehmen, beide USt-IdNrn. nötig). Eine Rechnung, ein Steuerfall. Bis 250 € brutto braucht es meist keine E-Rechnung (Kleinbetragsrechnung), die API erzeugt sie trotzdem. |
| issueDate | string | Rechnungsdatum (BT-2); Standard heute. |
| cashAccounting | boolean | Ist-Versteuerung: druckt „Versteuerung nach vereinnahmten Entgelten“ (ab 2028 Pflicht). |
{
"type": "object",
"examples": [
{
"buyer": {
"city": "Berlin",
"name": "Beispiel Handels GmbH",
"email": "[email protected]",
"street": "Beispielweg 22",
"country": "DE",
"postcode": "10115",
"reference": "Bestellung 4711"
},
"lines": [
{
"unit": "HUR",
"price": 120,
"vatRate": 19,
"quantity": 4,
"description": "Beratung Buchhaltungssoftware"
},
{
"unit": "H87",
"price": 24.3,
"vatRate": 7,
"quantity": 1,
"description": "Fachbuch"
}
],
"number": "RE-2026-001",
"seller": {
"city": "München",
"iban": "DE89 3704 0044 0532 0130 00",
"name": "Muster Software GmbH",
"vatId": "DE123456789",
"street": "Musterstraße 1",
"contact": {
"name": "Erika Musterfrau",
"email": "[email protected]",
"phone": "+49 89 1234567"
},
"postcode": "80331"
},
"payment": {
"terms": "days",
"dueDays": 14
},
"service": {
"date": "2026-11-02",
"mode": "date"
},
"taxCase": "standard",
"issueDate": "2026-11-04"
}
],
"properties": {
"note": {
"type": "string",
"maxLength": 500,
"description": "Freier Hinweis auf der Rechnung (BT-22)."
},
"buyer": {
"type": "object",
"properties": {
"city": {
"type": "string",
"maxLength": 80,
"description": "Ort des Kunden"
},
"name": {
"type": "string",
"maxLength": 120,
"description": "Name oder Firma des Kunden"
},
"type": {
"enum": [
"business",
"public",
"private"
],
"type": "string",
"description": "business (Standard), public (Behörde) oder private."
},
"email": {
"type": "string",
"maxLength": 120,
"description": "E-Mail-Adresse des Kunden für Rechnungen (BT-49, Schema EM)."
},
"vatId": {
"type": "string",
"maxLength": 20,
"description": "USt-IdNr. des Kunden; nötig bei reverseCharge und intraEu."
},
"street": {
"type": "string",
"maxLength": 120,
"description": "Straße und Hausnummer des Kunden"
},
"country": {
"enum": [
"AD",
"AE",
"AF",
"AG",
"AI",
"AL",
"AM",
"AO",
"AQ",
"AR",
"AS",
"AT",
"AU",
"AW",
"AX",
"AZ",
"BA",
"BB",
"BD",
"BE",
"BF",
"BG",
"BH",
"BI",
"BJ",
"BL",
"BM",
"BN",
"BO",
"BQ",
"BR",
"BS",
"BT",
"BV",
"BW",
"BY",
"BZ",
"CA",
"CC",
"CD",
"CF",
"CG",
"CH",
"CI",
"CK",
"CL",
"CM",
"CN",
"CO",
"CR",
"CU",
"CV",
"CW",
"CX",
"CY",
"CZ",
"DE",
"DJ",
"DK",
"DM",
"DO",
"DZ",
"EC",
"EE",
"EG",
"EH",
"ER",
"ES",
"ET",
"FI",
"FJ",
"FK",
"FM",
"FO",
"FR",
"GA",
"GB",
"GD",
"GE",
"GF",
"GG",
"GH",
"GI",
"GL",
"GM",
"GN",
"GP",
"GQ",
"GR",
"GS",
"GT",
"GU",
"GW",
"GY",
"HK",
"HM",
"HN",
"HR",
"HT",
"HU",
"ID",
"IE",
"IL",
"IM",
"IN",
"IO",
"IQ",
"IR",
"IS",
"IT",
"JE",
"JM",
"JO",
"JP",
"KE",
"KG",
"KH",
"KI",
"KM",
"KN",
"KP",
"KR",
"KW",
"KY",
"KZ",
"LA",
"LB",
"LC",
"LI",
"LK",
"LR",
"LS",
"LT",
"LU",
"LV",
"LY",
"MA",
"MC",
"MD",
"ME",
"MF",
"MG",
"MH",
"MK",
"ML",
"MM",
"MN",
"MO",
"MP",
"MQ",
"MR",
"MS",
"MT",
"MU",
"MV",
"MW",
"MX",
"MY",
"MZ",
"NA",
"NC",
"NE",
"NF",
"NG",
"NI",
"NL",
"NO",
"NP",
"NR",
"NU",
"NZ",
"OM",
"PA",
"PE",
"PF",
"PG",
"PH",
"PK",
"PL",
"PM",
"PN",
"PR",
"PS",
"PT",
"PW",
"PY",
"QA",
"RE",
"RO",
"RS",
"RU",
"RW",
"SA",
"SB",
"SC",
"SD",
"SE",
"SG",
"SH",
"SI",
"SJ",
"SK",
"SL",
"SM",
"SN",
"SO",
"SR",
"SS",
"ST",
"SV",
"SX",
"SY",
"SZ",
"TC",
"TD",
"TF",
"TG",
"TH",
"TJ",
"TK",
"TL",
"TM",
"TN",
"TO",
"TR",
"TT",
"TV",
"TW",
"TZ",
"UA",
"UG",
"UM",
"US",
"UY",
"UZ",
"VA",
"VC",
"VE",
"VG",
"VI",
"VN",
"VU",
"WF",
"WS",
"XI",
"YE",
"YT",
"ZA",
"ZM",
"ZW"
],
"type": "string",
"description": "Land des Kunden, ISO 3166-1 alpha-2; Standard DE."
},
"postcode": {
"type": "string",
"maxLength": 10,
"description": "PLZ des Kunden"
},
"leitwegId": {
"type": "string",
"maxLength": 50,
"description": "Leitweg-ID einer Behörde (BT-10), mit Prüfziffer."
},
"reference": {
"type": "string",
"maxLength": 60,
"description": "Bestellnummer oder Referenz des Kunden (BT-13, sonst BT-10)."
}
},
"additionalProperties": false
},
"lines": {
"type": "array",
"items": {
"type": "object",
"properties": {
"unit": {
"enum": [
"H87",
"HUR",
"DAY",
"MON",
"LS",
"C62",
"KGM",
"LTR",
"MTR",
"KMT"
],
"type": "string",
"description": "Einheit (UN/ECE Rec. 20): H87 Stück, HUR Stunde, DAY Tag, MON Monat, LS Pauschale, C62 Einheit, KGM, LTR, MTR, KMT."
},
"price": {
"type": [
"number",
"string",
"null"
],
"description": "Einzelpreis netto in Euro, bis 4 Nachkommastellen, 0 bis 1000000."
},
"vatRate": {
"enum": [
19,
7,
0
],
"type": [
"integer",
"string"
],
"description": "Steuersatz, nur bei taxCase standard: 19, 7 oder 0 (Photovoltaik)."
},
"quantity": {
"type": [
"number",
"string",
"null"
],
"description": "Menge, mehr als 0, bis 3 Nachkommastellen."
},
"description": {
"type": "string",
"maxLength": 300,
"description": "Was geliefert oder geleistet wurde (BT-153)."
}
},
"additionalProperties": false
},
"maxItems": 50,
"description": "Positionen, höchstens 50."
},
"format": {
"enum": [
"md",
"json",
"xml"
],
"type": "string",
"default": "md",
"description": "md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON. xml: nur die E-Rechnung als XML."
},
"number": {
"type": "string",
"maxLength": 40,
"description": "Rechnungsnummer (BT-1)."
},
"seller": {
"type": "object",
"properties": {
"bic": {
"type": "string",
"description": "BIC (optional)."
},
"city": {
"type": "string",
"maxLength": 80,
"description": "Ort des Rechnungsstellers"
},
"iban": {
"type": "string",
"maxLength": 42,
"description": "IBAN für die SEPA-Überweisung (Pflicht, mit Prüfziffer)."
},
"name": {
"type": "string",
"maxLength": 120,
"description": "Name oder Firma des Rechnungsstellers"
},
"vatId": {
"type": "string",
"maxLength": 20,
"description": "USt-IdNr. (BT-31), DE und neun Ziffern; nötig bei intraEu und bei reverseCharge an Kunden im EU-Ausland."
},
"street": {
"type": "string",
"maxLength": 120,
"description": "Straße und Hausnummer des Rechnungsstellers"
},
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"description": "Name"
},
"email": {
"type": "string",
"maxLength": 120,
"description": "E-Mail-Adresse"
},
"phone": {
"type": "string",
"maxLength": 40,
"description": "Telefonnummer"
}
},
"description": "Ansprechpartner (BG-6); bei xrechnung Pflicht. Die E-Mail ist auch die elektronische Adresse (BT-34).",
"additionalProperties": false
},
"postcode": {
"type": "string",
"maxLength": 10,
"description": "PLZ des Rechnungsstellers"
},
"register": {
"type": "object",
"properties": {
"court": {
"type": "string",
"maxLength": 80,
"description": "Registergericht, etwa Amtsgericht München."
},
"number": {
"type": "string",
"maxLength": 40,
"description": "Registernummer, etwa HRB 123456 (BT-30)."
}
},
"additionalProperties": false
},
"taxNumber": {
"type": "string",
"maxLength": 30,
"description": "Steuernummer (BT-32); sie oder die USt-IdNr. ist Pflicht."
},
"accountHolder": {
"type": "string",
"maxLength": 120,
"description": "Kontoinhaber, Standard der Name."
}
},
"additionalProperties": false
},
"payment": {
"type": "object",
"properties": {
"terms": {
"enum": [
"days",
"date"
],
"type": "string",
"description": "days (Standard) oder date."
},
"dueDate": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Fällig am, bei terms date (BT-9)."
},
"dueDays": {
"type": [
"integer",
"string",
"null"
],
"description": "Zahlungsziel in Tagen ab Rechnungsdatum, bei terms days; 0 = sofort. Standard 14."
},
"skontoDays": {
"type": [
"integer",
"string",
"null"
],
"description": "Skontofrist in Tagen (optional)."
},
"skontoPercent": {
"type": [
"number",
"string",
"null"
],
"description": "Skonto in Prozent, bis 2 Nachkommastellen (optional; BT-20 im Format von BR-DE-18)."
}
},
"additionalProperties": false
},
"service": {
"type": "object",
"properties": {
"end": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Ende des Leistungszeitraums (BG-14)."
},
"date": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Leistungsdatum (BT-72); leer = Rechnungsdatum."
},
"mode": {
"enum": [
"date",
"period"
],
"type": "string",
"description": "date (Leistungsdatum, Standard) oder period (Leistungszeitraum)."
},
"start": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Beginn des Leistungszeitraums (BG-14)."
}
},
"additionalProperties": false
},
"taxCase": {
"enum": [
"standard",
"smallBusiness",
"reverseCharge",
"intraEu"
],
"type": "string",
"description": "taxCase: standard (19 %, 7 % oder 0 % je Position), smallBusiness (Kleinunternehmer nach § 19 UStG, ohne Umsatzsteuer), reverseCharge (Steuerschuldnerschaft des Leistungsempfängers, § 13b UStG oder Leistungen an Unternehmen im EU-Ausland, nicht außerhalb der EU und nicht an Privatkunden; USt-IdNr. des Kunden nötig, bei Kunden im EU-Ausland auch deine), intraEu (innergemeinschaftliche Lieferung an ein Unternehmen, beide USt-IdNrn. nötig). Eine Rechnung, ein Steuerfall. Bis 250 € brutto braucht es meist keine E-Rechnung (Kleinbetragsrechnung), die API erzeugt sie trotzdem."
},
"issueDate": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Rechnungsdatum (BT-2); Standard heute."
},
"cashAccounting": {
"type": "boolean",
"description": "Ist-Versteuerung: druckt „Versteuerung nach vereinnahmten Entgelten“ (ab 2028 Pflicht)."
}
},
"description": "POST mit JSON in der Form des Entwurfs (wie draft in der Antwort): seller, buyer, lines (höchstens 50), number, issueDate, service, payment, taxCase, format, note, cashAccounting. Fehlende Felder und null lassen den Standard stehen, \"\" leert ein Feld. Ungültige Werte und unbekannte Felder geben 400 mit problems je Feld.",
"additionalProperties": false
}| Kirchensteuerpflichtig (bei filing=joint beide). Standard false. |
| filing | string | null | Veranlagung: single (Einzelveranlagung, Grundtabelle; Standard) oder joint (Zusammenveranlagung von Ehe- oder eingetragenen Lebenspartnern, Splittingtabelle). |
| format | string | md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON. |
| health | string | null | Krankenversicherung: gkv (freiwillig gesetzlich versichert; Standard), pkv (privat, mit pkvMonthly) oder none (keine Beiträge hier, etwa familienversichert oder über eine Anstellung). |
| profit | integer | null | Gewinn aus der Selbstständigkeit im Jahr in ganzen Euro (Einnahmen minus Betriebsausgaben), vor Gewerbesteuer; negativ bei Verlust. Standard 60.000. |
| values | object | string | Nur POST: die Felder als Objekt, statt sie flach zu schreiben. |
| pension | integer | null | Altersvorsorge im Jahr (gesetzliche Rentenversicherung, Versorgungswerk, Rürup) in ganzen Euro; abziehbar bis zum Höchstbetrag (2026: 30.826 €, bei filing=joint doppelt). Standard 0. |
| sickPay | boolean | null | Nur bei health=gkv: mit Anspruch auf Krankengeld (allgemeiner Beitragssatz 14,6 % statt ermäßigt 14,0 %). Standard false. |
| activity | string | null | Tätigkeit: freiberuflich (§ 18 EStG, keine Gewerbesteuer; Standard) oder gewerblich (§ 15 EStG, mit Gewerbesteuer und ihrer Anrechnung nach § 35 EStG). |
| children | integer | null | Kinder mit Kindergeld, 0 bis 10. Die Berechnung prüft je Kind, ob Kindergeld oder Kinderfreibeträge günstiger sind. Standard 0. |
| hebesatz | integer | null | Nur bei activity=gewerblich: Hebesatz der Gemeinde für die Gewerbesteuer in Prozent, ganze Zahl von 200 bis 1000, etwa 490 für München. Standard 400. |
| extraRate | number | null | Nur bei health=gkv: Zusatzbeitrag deiner Kasse in Prozent, 0 bis 5. Ohne Angabe der durchschnittliche Zusatzbeitrag des Jahres (2026: 2,9 %). |
| pkvMonthly | integer | null | Nur bei health=pkv: Beitrag für die Basisabsicherung samt Pflegeversicherung im Monat in ganzen Euro, laut Bescheinigung der Versicherung. Standard 600. |
| otherIncome | integer | null | Weitere eigene Einkünfte im Jahr nach Werbungskosten, etwa Arbeitslohn oder Vermietung, in ganzen Euro; darf negativ sein. Bei health=gkv zählen positive Einkünfte auch für die Beitragsbemessung, ein Verlust mindert sie nicht. Einbehaltene Lohnsteuer rechnet die API nicht an. Standard 0. |
| singleParent | boolean | null | Nur bei filing=single mit children ab 1: alleinerziehend, mit dem Entlastungsbetrag nach § 24b EStG. Standard false. |
| partnerIncome | integer | null | Nur bei filing=joint: Einkünfte des Partners im Jahr nach Werbungskosten in ganzen Euro; darf negativ sein. Standard 0. |
| otherDeductions | integer | null | Abziehbare Sonderausgaben im Jahr in ganzen Euro, etwa Spenden, gezahlte Kirchensteuer oder 80 % der Kinderbetreuungskosten; außergewöhnliche Belastungen nur mit dem Teil über der zumutbaren Belastung. Abgezogen wie angegeben, darunter zählt der Pauschbetrag (36 €, bei filing=joint doppelt). Standard 0. |
| partnerDeductions | integer | null | Nur bei filing=joint: abziehbare Vorsorgeaufwendungen des Partners im Jahr in ganzen Euro (Renten- und Pflegebeitrag, Krankenbeitrag ohne den Anteil für das Krankengeld); abgezogen wie angegeben. Standard 0. |
{
"type": "object",
"examples": [
{
"year": 2026,
"values": {
"health": "pkv",
"profit": 90000,
"pension": 6000,
"activity": "gewerblich",
"hebesatz": 450,
"pkvMonthly": 650
}
}
],
"properties": {
"land": {
"type": [
"string",
"null"
],
"default": null,
"description": "Nur bei church=true: Bundesland für den Kirchensteuersatz, 8 % in Bayern und Baden-Württemberg, sonst 9 %; Kürzel wie by, Name wie Bayern oder NRW. Ohne Angabe 9 %.",
"x-only-when": "church=true"
},
"year": {
"enum": [
2025,
2026,
2027,
null
],
"type": [
"integer",
"null"
],
"default": 2026,
"description": "Steuerjahr: 2025, 2026, 2027. Standard 2026. 2027 rechnet mit dem Regierungsentwurf, der noch nicht beschlossen ist."
},
"church": {
"type": [
"boolean",
"null"
],
"default": false,
"description": "Kirchensteuerpflichtig (bei filing=joint beide). Standard false."
},
"filing": {
"enum": [
"single",
"joint",
null
],
"type": [
"string",
"null"
],
"default": "single",
"description": "Veranlagung: single (Einzelveranlagung, Grundtabelle; Standard) oder joint (Zusammenveranlagung von Ehe- oder eingetragenen Lebenspartnern, Splittingtabelle)."
},
"format": {
"enum": [
"md",
"json"
],
"type": "string",
"default": "md",
"description": "md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON."
},
"health": {
"enum": [
"gkv",
"pkv",
"none",
null
],
"type": [
"string",
"null"
],
"default": "gkv",
"description": "Krankenversicherung: gkv (freiwillig gesetzlich versichert; Standard), pkv (privat, mit pkvMonthly) oder none (keine Beiträge hier, etwa familienversichert oder über eine Anstellung)."
},
"profit": {
"type": [
"integer",
"null"
],
"default": 60000,
"maximum": 5000000,
"minimum": -1000000,
"description": "Gewinn aus der Selbstständigkeit im Jahr in ganzen Euro (Einnahmen minus Betriebsausgaben), vor Gewerbesteuer; negativ bei Verlust. Standard 60.000."
},
"values": {
"type": [
"object",
"string"
],
"description": "Nur POST: die Felder als Objekt, statt sie flach zu schreiben."
},
"pension": {
"type": [
"integer",
"null"
],
"default": 0,
"maximum": 5000000,
"minimum": 0,
"description": "Altersvorsorge im Jahr (gesetzliche Rentenversicherung, Versorgungswerk, Rürup) in ganzen Euro; abziehbar bis zum Höchstbetrag (2026: 30.826 €, bei filing=joint doppelt). Standard 0."
},
"sickPay": {
"type": [
"boolean",
"null"
],
"default": false,
"description": "Nur bei health=gkv: mit Anspruch auf Krankengeld (allgemeiner Beitragssatz 14,6 % statt ermäßigt 14,0 %). Standard false.",
"x-only-when": "health=gkv"
},
"activity": {
"enum": [
"freiberuflich",
"gewerblich",
null
],
"type": [
"string",
"null"
],
"default": "freiberuflich",
"description": "Tätigkeit: freiberuflich (§ 18 EStG, keine Gewerbesteuer; Standard) oder gewerblich (§ 15 EStG, mit Gewerbesteuer und ihrer Anrechnung nach § 35 EStG)."
},
"children": {
"type": [
"integer",
"null"
],
"default": 0,
"maximum": 10,
"minimum": 0,
"description": "Kinder mit Kindergeld, 0 bis 10. Die Berechnung prüft je Kind, ob Kindergeld oder Kinderfreibeträge günstiger sind. Standard 0."
},
"hebesatz": {
"type": [
"integer",
"null"
],
"default": 400,
"maximum": 1000,
"minimum": 200,
"description": "Nur bei activity=gewerblich: Hebesatz der Gemeinde für die Gewerbesteuer in Prozent, ganze Zahl von 200 bis 1000, etwa 490 für München. Standard 400.",
"x-only-when": "activity=gewerblich"
},
"extraRate": {
"type": [
"number",
"null"
],
"default": null,
"maximum": 5,
"minimum": 0,
"description": "Nur bei health=gkv: Zusatzbeitrag deiner Kasse in Prozent, 0 bis 5. Ohne Angabe der durchschnittliche Zusatzbeitrag des Jahres (2026: 2,9 %).",
"x-only-when": "health=gkv"
},
"pkvMonthly": {
"type": [
"integer",
"null"
],
"default": 600,
"maximum": 5000,
"minimum": 0,
"description": "Nur bei health=pkv: Beitrag für die Basisabsicherung samt Pflegeversicherung im Monat in ganzen Euro, laut Bescheinigung der Versicherung. Standard 600.",
"x-only-when": "health=pkv"
},
"otherIncome": {
"type": [
"integer",
"null"
],
"default": 0,
"maximum": 5000000,
"minimum": -1000000,
"description": "Weitere eigene Einkünfte im Jahr nach Werbungskosten, etwa Arbeitslohn oder Vermietung, in ganzen Euro; darf negativ sein. Bei health=gkv zählen positive Einkünfte auch für die Beitragsbemessung, ein Verlust mindert sie nicht. Einbehaltene Lohnsteuer rechnet die API nicht an. Standard 0."
},
"singleParent": {
"type": [
"boolean",
"null"
],
"default": false,
"description": "Nur bei filing=single mit children ab 1: alleinerziehend, mit dem Entlastungsbetrag nach § 24b EStG. Standard false.",
"x-only-when": "filing=single und children ab 1"
},
"partnerIncome": {
"type": [
"integer",
"null"
],
"default": 0,
"maximum": 5000000,
"minimum": -1000000,
"description": "Nur bei filing=joint: Einkünfte des Partners im Jahr nach Werbungskosten in ganzen Euro; darf negativ sein. Standard 0.",
"x-only-when": "filing=joint"
},
"otherDeductions": {
"type": [
"integer",
"null"
],
"default": 0,
"maximum": 5000000,
"minimum": 0,
"description": "Abziehbare Sonderausgaben im Jahr in ganzen Euro, etwa Spenden, gezahlte Kirchensteuer oder 80 % der Kinderbetreuungskosten; außergewöhnliche Belastungen nur mit dem Teil über der zumutbaren Belastung. Abgezogen wie angegeben, darunter zählt der Pauschbetrag (36 €, bei filing=joint doppelt). Standard 0."
},
"partnerDeductions": {
"type": [
"integer",
"null"
],
"default": 0,
"maximum": 5000000,
"minimum": 0,
"description": "Nur bei filing=joint: abziehbare Vorsorgeaufwendungen des Partners im Jahr in ganzen Euro (Renten- und Pflegebeitrag, Krankenbeitrag ohne den Anteil für das Krankengeld); abgezogen wie angegeben. Standard 0.",
"x-only-when": "filing=joint"
}
},
"description": "POST mit JSON: die Felder flach wie bei GET oder unter values, etwa { \"year\": 2026, \"values\": { \"profit\": 60000, \"filing\": \"joint\" } }. So passt auch input aus einer früheren Antwort: die Felder von input unverändert. Fehlende Felder und null behalten den Standard des Rechners. format geht auch hier, ebenso ?format=md in der Adresse."
}| Argument | Type | Description |
|---|---|---|
| land | string | null | Nur bei church=true, Sozialversicherungspflicht oder employerSubsidy=true: Bundesland, für den Kirchensteuersatz (8 % in Bayern und Baden-Württemberg, sonst 9 %) und die Aufteilung der Pflegeversicherung zwischen GmbH und dir in Sachsen; Kürzel wie by, Name wie Bayern oder NRW. Ohne Angabe 9 % und nicht Sachsen. |
| year | integer | null | Steuerjahr: 2025, 2026, 2027. Standard 2026. 2027 rechnet den Einkommensteuertarif und den Arbeitnehmer-Pauschbetrag (1.430 € statt 1.230 €) mit dem Regierungsentwurf und die Rechengrößen der Sozialversicherung mit dem Kabinettsentwurf, die noch nicht beschlossen sind. |
| share | number | null | Dein Anteil an der GmbH in Prozent, 1 bis 100, bis zu zwei Nachkommastellen (33,33). Bestimmt deinen Teil der Ausschüttung und den Sozialversicherungsstatus: ab 50 % nach der Regel des BSG in der Regel sozialversicherungsfrei. Standard 100. |
| church | boolean | null | Kirchensteuerpflichtig (bei joint beide). Standard false. |
| filing | string | null | Veranlagung: single (Einzelveranlagung, Grundtabelle; Standard) oder joint (Zusammenveranlagung, Splittingtabelle, doppelte Pauschbeträge und Höchstbeträge). |
| format | string | md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON. |
| health | string | null | Krankenversicherung: pkv (privat; Standard) oder gkv (gesetzlich). Bei Sozialversicherungspflicht und einem Gehalt bis zur Jahresarbeitsentgeltgrenze (2025: 73.800 €, 2026: 77.400 €, 2027: 84.150 €) rechnet die API gesetzlich pflichtversichert, auch bei pkv, und sagt es in checks. Freiwillig gesetzlich Versicherte zahlen Kranken- und Pflegeversicherung auch auf die Ausschüttung. |
| method | string | null | Besteuerung der Ausschüttung: auto (die günstigste; Standard), abgeltung (Abgeltungsteuer 25 %), guenstiger (Günstigerprüfung: dein Tarif, wenn er niedriger ist) oder teileinkuenfte (Teileinkünfteverfahren auf Antrag: 60 % zum Tarif, für einen Geschäftsführer mit mindestens 1 % möglich; der Antrag bindet 5 Jahre). |
| payout | integer | null | Ausschüttungsquote: wie viel Prozent des ausschüttbaren Jahresüberschusses an die Gesellschafter gehen, ganze Zahl von 0 bis 100; der Rest bleibt in der GmbH. Standard 100. |
| salary | integer | null | Dein Bruttojahresgehalt als Geschäftsführer (Festgehalt, zwölf gleiche Monate) in ganzen Euro, 0 bis 5.000.000; ein Monatsgehalt mal 12. Über dem Gewinn vor Gehalt macht die GmbH Verlust, die API rechnet es und sagt es in checks. Standard 60.000. |
| values | object | string | Nur POST: die Felder als Objekt, statt sie flach zu schreiben. |
| revenue | integer | null | Umsatz der GmbH im Jahr in ganzen Euro, für die Größenklasse der Karlsruher Tabelle (bis 2,5, 5, 25 und 50 Mio. €), 0 bis 1.000.000.000. Ändert keinen Betrag. Ohne Angabe null. |
| sickPay | boolean | null | Nur bei health=gkv und Sozialversicherungsfreiheit: freiwillig versichert mit Anspruch auf Krankengeld (allgemeiner Beitragssatz 14,6 % auf das Gehalt), sonst ermäßigter Beitragssatz (14 %). Auf die Ausschüttung gilt immer der ermäßigte Satz; ohne Gehalt ändert das Feld nichts. Standard true. |
| hebesatz | integer | null | Hebesatz der Gemeinde für die Gewerbesteuer in Prozent, ganze Zahl von 200 bis 1000, etwa 490 für München. Unter dem Mindesthebesatz des Jahres (2025: 200 %, 2026: 200 %, 2027: 280 %) rechnet die API mit dem Mindesthebesatz und sagt es in checks. Standard 400. |
| industry | string | null | Branche für die grobe Orientierung der Karlsruher Tabelle 2009: industrie, grosshandel, einzelhandel, freieBerufe, dienstleistung (sonstige Dienstleistung) oder handwerk. Nur zusammen mit revenue oder employees; ändert keinen Betrag. Ohne Angabe null. |
| childless | boolean | null | Nur bei health=gkv oder Sozialversicherungspflicht: ohne Kinder, mit dem Zuschlag zur Pflegeversicherung (0,6 Prozentpunkte, nur dein Anteil). Standard true. |
| employees | integer | null | Mitarbeiter der GmbH, für die Größenklasse der Karlsruher Tabelle (bis 20, 50, 100 und 500), ganze Zahl von 0 bis 100.000. Ändert keinen Betrag. Ohne Angabe null. |
| extraRate | number | null | Nur bei health=gkv oder Sozialversicherungspflicht: Zusatzbeitrag deiner Krankenkasse in Prozent, 0 bis 5, bis zu zwei Nachkommastellen. null oder ohne Angabe: der durchschnittliche Zusatzbeitrag des Jahres (2025: 2,5 %, 2026: 2,9 %, 2027: 2,9 %). |
| legalForm | string | null | Rechtsform: gmbh (Standard) oder ug (Unternehmergesellschaft haftungsbeschränkt; ein Viertel des Jahresüberschusses geht in die gesetzliche Rücklage nach § 5a Abs. 3 GmbHG und wird nicht ausgeschüttet, das Gehalt mindert sie mit). |
| pkvMonthly | integer | null | Nur bei health=pkv: dein Monatsbeitrag zur privaten Kranken- und Pflegeversicherung in ganzen Euro, als Basisabsicherung gerechnet, 0 bis 5.000. Standard 600. |
| otherIncome | integer | null | Dein übriges zu versteuerndes Einkommen im Jahr ohne Gehalt und Ausschüttung in ganzen Euro, bei joint etwa das deines Partners; ein zu versteuerndes Einkommen, keine Einnahmen, 0 bis 5.000.000. Standard 0. |
| employerSubsidy | boolean | null | Nur bei Sozialversicherungsfreiheit: die GmbH zahlt dir vertraglich einen Zuschuss zur Kranken- und Pflegeversicherung in Höhe des gesetzlichen Arbeitgeberzuschusses (höchstens die Hälfte des Beitrags). Er ist dann steuerpflichtiger Arbeitslohn und Betriebsausgabe der GmbH. Bei Sozialversicherungspflicht zahlt die GmbH den Zuschuss ohnehin steuerfrei, das Feld zählt dann nicht. Standard false. |
| blockingMinority | boolean | null | Nur bei share unter 50: eine umfassende Sperrminorität im Gesellschaftsvertrag (Satzung), mit der du jeden Beschluss verhindern kannst; nach der Regel des BSG dann in der Regel sozialversicherungsfrei. Eine Stimmrechtsvereinbarung außerhalb der Satzung zählt nicht. Standard false. |
| profitBeforeSalary | integer | null | Gewinn der GmbH im Jahr vor deinem Gehalt und vor Körperschaft- und Gewerbesteuer, alle übrigen Kosten schon abgezogen, in ganzen Euro; negativ bei Verlust, -5.000.000 bis 50.000.000. Standard 150.000. |
{
"type": "object",
"examples": [
{
"year": 2026,
"values": {
"land": "by",
"church": true,
"filing": "joint",
"health": "gkv",
"salary": 90000,
"sickPay": false,
"profitBeforeSalary": 200000
}
}
],
"properties": {
"land": {
"type": [
"string",
"null"
],
"default": null,
"description": "Nur bei church=true, Sozialversicherungspflicht oder employerSubsidy=true: Bundesland, für den Kirchensteuersatz (8 % in Bayern und Baden-Württemberg, sonst 9 %) und die Aufteilung der Pflegeversicherung zwischen GmbH und dir in Sachsen; Kürzel wie by, Name wie Bayern oder NRW. Ohne Angabe 9 % und nicht Sachsen.",
"x-only-when": "church=true, Sozialversicherungspflicht (share unter 50 ohne blockingMinority) oder employerSubsidy=true"
},
"year": {
"enum": [
2025,
2026,
2027,
null
],
"type": [
"integer",
"null"
],
"default": 2026,
"description": "Steuerjahr: 2025, 2026, 2027. Standard 2026. 2027 rechnet den Einkommensteuertarif und den Arbeitnehmer-Pauschbetrag (1.430 € statt 1.230 €) mit dem Regierungsentwurf und die Rechengrößen der Sozialversicherung mit dem Kabinettsentwurf, die noch nicht beschlossen sind."
},
"share": {
"type": [
"number",
"null"
],
"default": 100,
"maximum": 100,
"minimum": 1,
"description": "Dein Anteil an der GmbH in Prozent, 1 bis 100, bis zu zwei Nachkommastellen (33,33). Bestimmt deinen Teil der Ausschüttung und den Sozialversicherungsstatus: ab 50 % nach der Regel des BSG in der Regel sozialversicherungsfrei. Standard 100."
},
"church": {
"type": [
"boolean",
"null"
],
"default": false,
"description": "Kirchensteuerpflichtig (bei joint beide). Standard false."
},
"filing": {
"enum": [
"single",
"joint",
null
],
"type": [
"string",
"null"
],
"default": "single",
"description": "Veranlagung: single (Einzelveranlagung, Grundtabelle; Standard) oder joint (Zusammenveranlagung, Splittingtabelle, doppelte Pauschbeträge und Höchstbeträge)."
},
"format": {
"enum": [
"md",
"json"
],
"type": "string",
"default": "md",
"description": "md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON."
},
"health": {
"enum": [
"gkv",
"pkv",
null
],
"type": [
"string",
"null"
],
"default": "pkv",
"description": "Krankenversicherung: pkv (privat; Standard) oder gkv (gesetzlich). Bei Sozialversicherungspflicht und einem Gehalt bis zur Jahresarbeitsentgeltgrenze (2025: 73.800 €, 2026: 77.400 €, 2027: 84.150 €) rechnet die API gesetzlich pflichtversichert, auch bei pkv, und sagt es in checks. Freiwillig gesetzlich Versicherte zahlen Kranken- und Pflegeversicherung auch auf die Ausschüttung."
},
"method": {
"enum": [
"auto",
"abgeltung",
"guenstiger",
"teileinkuenfte",
null
],
"type": [
"string",
"null"
],
"default": "auto",
"description": "Besteuerung der Ausschüttung: auto (die günstigste; Standard), abgeltung (Abgeltungsteuer 25 %), guenstiger (Günstigerprüfung: dein Tarif, wenn er niedriger ist) oder teileinkuenfte (Teileinkünfteverfahren auf Antrag: 60 % zum Tarif, für einen Geschäftsführer mit mindestens 1 % möglich; der Antrag bindet 5 Jahre)."
},
"payout": {
"type": [
"integer",
"null"
],
"default": 100,
"maximum": 100,
"minimum": 0,
"description": "Ausschüttungsquote: wie viel Prozent des ausschüttbaren Jahresüberschusses an die Gesellschafter gehen, ganze Zahl von 0 bis 100; der Rest bleibt in der GmbH. Standard 100."
},
"salary": {
"type": [
"integer",
"null"
],
"default": 60000,
"maximum": 5000000,
"minimum": 0,
"description": "Dein Bruttojahresgehalt als Geschäftsführer (Festgehalt, zwölf gleiche Monate) in ganzen Euro, 0 bis 5.000.000; ein Monatsgehalt mal 12. Über dem Gewinn vor Gehalt macht die GmbH Verlust, die API rechnet es und sagt es in checks. Standard 60.000."
},
"values": {
"type": [
"object",
"string"
],
"description": "Nur POST: die Felder als Objekt, statt sie flach zu schreiben."
},
"revenue": {
"type": [
"integer",
"null"
],
"default": null,
"maximum": 1000000000,
"minimum": 0,
"description": "Umsatz der GmbH im Jahr in ganzen Euro, für die Größenklasse der Karlsruher Tabelle (bis 2,5, 5, 25 und 50 Mio. €), 0 bis 1.000.000.000. Ändert keinen Betrag. Ohne Angabe null."
},
"sickPay": {
"type": [
"boolean",
"null"
],
"default": true,
"description": "Nur bei health=gkv und Sozialversicherungsfreiheit: freiwillig versichert mit Anspruch auf Krankengeld (allgemeiner Beitragssatz 14,6 % auf das Gehalt), sonst ermäßigter Beitragssatz (14 %). Auf die Ausschüttung gilt immer der ermäßigte Satz; ohne Gehalt ändert das Feld nichts. Standard true.",
"x-only-when": "health=gkv und Sozialversicherungsfreiheit (share ab 50 oder blockingMinority=true)"
},
"hebesatz": {
"type": [
"integer",
"null"
],
"default": 400,
"maximum": 1000,
"minimum": 200,
"description": "Hebesatz der Gemeinde für die Gewerbesteuer in Prozent, ganze Zahl von 200 bis 1000, etwa 490 für München. Unter dem Mindesthebesatz des Jahres (2025: 200 %, 2026: 200 %, 2027: 280 %) rechnet die API mit dem Mindesthebesatz und sagt es in checks. Standard 400."
},
"industry": {
"enum": [
"industrie",
"grosshandel",
"einzelhandel",
"freieBerufe",
"dienstleistung",
"handwerk",
null
],
"type": [
"string",
"null"
],
"default": null,
"description": "Branche für die grobe Orientierung der Karlsruher Tabelle 2009: industrie, grosshandel, einzelhandel, freieBerufe, dienstleistung (sonstige Dienstleistung) oder handwerk. Nur zusammen mit revenue oder employees; ändert keinen Betrag. Ohne Angabe null."
},
"childless": {
"type": [
"boolean",
"null"
],
"default": true,
"description": "Nur bei health=gkv oder Sozialversicherungspflicht: ohne Kinder, mit dem Zuschlag zur Pflegeversicherung (0,6 Prozentpunkte, nur dein Anteil). Standard true.",
"x-only-when": "health=gkv oder Sozialversicherungspflicht (share unter 50 ohne blockingMinority)"
},
"employees": {
"type": [
"integer",
"null"
],
"default": null,
"maximum": 100000,
"minimum": 0,
"description": "Mitarbeiter der GmbH, für die Größenklasse der Karlsruher Tabelle (bis 20, 50, 100 und 500), ganze Zahl von 0 bis 100.000. Ändert keinen Betrag. Ohne Angabe null."
},
"extraRate": {
"type": [
"number",
"null"
],
"default": null,
"maximum": 5,
"minimum": 0,
"description": "Nur bei health=gkv oder Sozialversicherungspflicht: Zusatzbeitrag deiner Krankenkasse in Prozent, 0 bis 5, bis zu zwei Nachkommastellen. null oder ohne Angabe: der durchschnittliche Zusatzbeitrag des Jahres (2025: 2,5 %, 2026: 2,9 %, 2027: 2,9 %).",
"x-only-when": "health=gkv oder Sozialversicherungspflicht (share unter 50 ohne blockingMinority)"
},
"legalForm": {
"enum": [
"gmbh",
"ug",
null
],
"type": [
"string",
"null"
],
"default": "gmbh",
"description": "Rechtsform: gmbh (Standard) oder ug (Unternehmergesellschaft haftungsbeschränkt; ein Viertel des Jahresüberschusses geht in die gesetzliche Rücklage nach § 5a Abs. 3 GmbHG und wird nicht ausgeschüttet, das Gehalt mindert sie mit)."
},
"pkvMonthly": {
"type": [
"integer",
"null"
],
"default": 600,
"maximum": 5000,
"minimum": 0,
"description": "Nur bei health=pkv: dein Monatsbeitrag zur privaten Kranken- und Pflegeversicherung in ganzen Euro, als Basisabsicherung gerechnet, 0 bis 5.000. Standard 600.",
"x-only-when": "health=pkv"
},
"otherIncome": {
"type": [
"integer",
"null"
],
"default": 0,
"maximum": 5000000,
"minimum": 0,
"description": "Dein übriges zu versteuerndes Einkommen im Jahr ohne Gehalt und Ausschüttung in ganzen Euro, bei joint etwa das deines Partners; ein zu versteuerndes Einkommen, keine Einnahmen, 0 bis 5.000.000. Standard 0."
},
"employerSubsidy": {
"type": [
"boolean",
"null"
],
"default": false,
"description": "Nur bei Sozialversicherungsfreiheit: die GmbH zahlt dir vertraglich einen Zuschuss zur Kranken- und Pflegeversicherung in Höhe des gesetzlichen Arbeitgeberzuschusses (höchstens die Hälfte des Beitrags). Er ist dann steuerpflichtiger Arbeitslohn und Betriebsausgabe der GmbH. Bei Sozialversicherungspflicht zahlt die GmbH den Zuschuss ohnehin steuerfrei, das Feld zählt dann nicht. Standard false.",
"x-only-when": "Sozialversicherungsfreiheit (share ab 50 oder blockingMinority=true)"
},
"blockingMinority": {
"type": [
"boolean",
"null"
],
"default": false,
"description": "Nur bei share unter 50: eine umfassende Sperrminorität im Gesellschaftsvertrag (Satzung), mit der du jeden Beschluss verhindern kannst; nach der Regel des BSG dann in der Regel sozialversicherungsfrei. Eine Stimmrechtsvereinbarung außerhalb der Satzung zählt nicht. Standard false.",
"x-only-when": "share unter 50"
},
"profitBeforeSalary": {
"type": [
"integer",
"null"
],
"default": 150000,
"maximum": 50000000,
"minimum": -5000000,
"description": "Gewinn der GmbH im Jahr vor deinem Gehalt und vor Körperschaft- und Gewerbesteuer, alle übrigen Kosten schon abgezogen, in ganzen Euro; negativ bei Verlust, -5.000.000 bis 50.000.000. Standard 150.000."
}
},
"description": "POST mit JSON: die Felder flach wie bei GET oder unter values, etwa { \"year\": 2026, \"values\": { \"profitBeforeSalary\": 200000, \"salary\": 90000, \"health\": \"gkv\" } }. So passt auch input aus einer früheren Antwort: die Felder von input unverändert. Fehlende Felder und null behalten den Standard des Rechners. format geht auch hier, ebenso ?format=md in der Adresse."
}| year | integer | null | Steuerjahr: 2025, 2026, 2027. Standard 2026. 2027 rechnet die Einkommensteuer des Gesellschafters mit dem Regierungsentwurf, der noch nicht beschlossen ist. |
| share | number | null | Dein Anteil an der GmbH in Prozent, 1 bis 100, bis zu zwei Nachkommastellen (33,33). Bestimmt deinen Teil der Ausschüttung, ob das Teileinkünfteverfahren möglich ist (ab 25 %, mit beruflicher Tätigkeit und maßgeblichem unternehmerischem Einfluss, etwa als Geschäftsführer, ab 1 %) und bei einer Holding, ob § 8b KStG greift (ab 10 %, für die Gewerbesteuer ab 15 %). Standard 100. |
| church | boolean | null | Nur bei recipient=person: kirchensteuerpflichtig (bei joint beide). Standard false. |
| filing | string | null | Nur bei recipient=person: Veranlagung, single (Einzelveranlagung, Grundtabelle; Standard) oder joint (Zusammenveranlagung, Splittingtabelle, doppelter Sparer-Pauschbetrag). |
| format | string | md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON. |
| health | string | null | Nur bei recipient=person: Krankenversicherung. other (privat versichert oder pflichtversichert über eine Anstellung, keine Beiträge auf die Ausschüttung; Standard) oder gkv (freiwillig gesetzlich versichert: Kranken- und Pflegeversicherung auch auf die Ausschüttung, bis zur Beitragsbemessungsgrenze). |
| method | string | null | Nur bei recipient=person: Besteuerung der Ausschüttung. auto (die günstigste der möglichen; Standard), abgeltung (Abgeltungsteuer 25 %), guenstiger (Günstigerprüfung: dein Tarif, wenn er niedriger ist, sonst Abgeltungsteuer) oder teileinkuenfte (Teileinkünfteverfahren auf Antrag: 60 % zum Tarif; nicht möglich, rechnet die API die günstigste und sagt es in checks). |
| payout | integer | null | Ausschüttungsquote: wie viel Prozent des ausschüttbaren Jahresüberschusses an die Gesellschafter gehen, ganze Zahl von 0 bis 100; der Rest bleibt in der GmbH. Standard 100. |
| profit | integer | null | Gewinn der GmbH vor Körperschaft- und Gewerbesteuer im Jahr in ganzen Euro, nach dem Gehalt des Geschäftsführers; negativ bei Verlust, -5.000.000 bis 50.000.000. Standard 100.000. |
| values | object | string | Nur POST: die Felder als Objekt, statt sie flach zu schreiben. |
| hebesatz | integer | null | Hebesatz der Gemeinde für die Gewerbesteuer in Prozent, ganze Zahl von 200 bis 1000, etwa 490 für München. Unter dem Mindesthebesatz des Jahres (2025: 200 %, 2026: 200 %, 2027: 280 %) rechnet die API mit dem Mindesthebesatz und sagt es in checks. Standard 400. |
| childless | boolean | null | Nur bei recipient=person und health=gkv: ohne Kinder, mit dem Zuschlag zur Pflegeversicherung. Standard true. |
| legalForm | string | null | Rechtsform: gmbh (Standard) oder ug (Unternehmergesellschaft haftungsbeschränkt; ein Viertel des Jahresüberschusses abzüglich Verlustvortrag geht in die gesetzliche Rücklage nach § 5a Abs. 3 GmbHG und wird nicht ausgeschüttet). |
| recipient | string | null | Wer die Anteile hält: person (du privat; Standard) oder holding (deine Holding-GmbH; ab 10 % Anteil 95 % der Ausschüttung körperschaftsteuerfrei nach § 8b KStG, ab 15 % auch gewerbesteuerfrei; gerechnet mit demselben Hebesatz). |
| otherIncome | integer | null | Nur bei recipient=person: dein übriges zu versteuerndes Einkommen im Jahr ohne die Ausschüttung in ganzen Euro, etwa aus deinem Geschäftsführergehalt nach allen Abzügen; bei joint das gemeinsame. Ein zu versteuerndes Einkommen, keine Einnahmen, 0 bis 5.000.000. Standard 0. |
| saverAllowance | boolean | null | Nur bei recipient=person: der Sparer-Pauschbetrag (1.000 €, bei joint 2.000 €) ist noch frei. Die GmbH behält trotzdem auf die ganze Ausschüttung Kapitalertragsteuer ein; der Pauschbetrag wirkt erst mit der Steuererklärung, nicht beim Teileinkünfteverfahren. Standard true. |
| activeInCompany | boolean | null | Nur bei recipient=person: du arbeitest für die GmbH und hast dadurch maßgeblichen unternehmerischen Einfluss, etwa als Geschäftsführer; dann ist das Teileinkünfteverfahren schon ab 1 % Anteil möglich, sonst ab 25 %. Standard true. |
| lossCarryforward | integer | null | Verlustvortrag aus Vorjahren in ganzen Euro, ein Betrag für Körperschaft- und Gewerbesteuer; über 1.000.000 € Gewinn nur teilweise verrechenbar (Mindestbesteuerung). Mindert vereinfacht auch den ausschüttbaren Betrag. Standard 0. |
{
"type": "object",
"examples": [
{
"year": 2026,
"values": {
"land": "by",
"share": 50,
"church": true,
"filing": "joint",
"health": "gkv",
"profit": 150000,
"hebesatz": 450,
"otherIncome": 60000
}
}
],
"properties": {
"land": {
"type": [
"string",
"null"
],
"default": null,
"description": "Nur bei recipient=person und church=true: Bundesland für den Kirchensteuersatz, 8 % in Bayern und Baden-Württemberg, sonst 9 %; Kürzel wie by, Name wie Bayern oder NRW. Ohne Angabe 9 %.",
"x-only-when": "recipient=person und church=true"
},
"year": {
"enum": [
2025,
2026,
2027,
null
],
"type": [
"integer",
"null"
],
"default": 2026,
"description": "Steuerjahr: 2025, 2026, 2027. Standard 2026. 2027 rechnet die Einkommensteuer des Gesellschafters mit dem Regierungsentwurf, der noch nicht beschlossen ist."
},
"share": {
"type": [
"number",
"null"
],
"default": 100,
"maximum": 100,
"minimum": 1,
"description": "Dein Anteil an der GmbH in Prozent, 1 bis 100, bis zu zwei Nachkommastellen (33,33). Bestimmt deinen Teil der Ausschüttung, ob das Teileinkünfteverfahren möglich ist (ab 25 %, mit beruflicher Tätigkeit und maßgeblichem unternehmerischem Einfluss, etwa als Geschäftsführer, ab 1 %) und bei einer Holding, ob § 8b KStG greift (ab 10 %, für die Gewerbesteuer ab 15 %). Standard 100."
},
"church": {
"type": [
"boolean",
"null"
],
"default": false,
"description": "Nur bei recipient=person: kirchensteuerpflichtig (bei joint beide). Standard false.",
"x-only-when": "recipient=person"
},
"filing": {
"enum": [
"single",
"joint",
null
],
"type": [
"string",
"null"
],
"default": "single",
"description": "Nur bei recipient=person: Veranlagung, single (Einzelveranlagung, Grundtabelle; Standard) oder joint (Zusammenveranlagung, Splittingtabelle, doppelter Sparer-Pauschbetrag).",
"x-only-when": "recipient=person"
},
"format": {
"enum": [
"md",
"json"
],
"type": "string",
"default": "md",
"description": "md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON."
},
"health": {
"enum": [
"other",
"gkv",
null
],
"type": [
"string",
"null"
],
"default": "other",
"description": "Nur bei recipient=person: Krankenversicherung. other (privat versichert oder pflichtversichert über eine Anstellung, keine Beiträge auf die Ausschüttung; Standard) oder gkv (freiwillig gesetzlich versichert: Kranken- und Pflegeversicherung auch auf die Ausschüttung, bis zur Beitragsbemessungsgrenze).",
"x-only-when": "recipient=person"
},
"method": {
"enum": [
"auto",
"abgeltung",
"guenstiger",
"teileinkuenfte",
null
],
"type": [
"string",
"null"
],
"default": "auto",
"description": "Nur bei recipient=person: Besteuerung der Ausschüttung. auto (die günstigste der möglichen; Standard), abgeltung (Abgeltungsteuer 25 %), guenstiger (Günstigerprüfung: dein Tarif, wenn er niedriger ist, sonst Abgeltungsteuer) oder teileinkuenfte (Teileinkünfteverfahren auf Antrag: 60 % zum Tarif; nicht möglich, rechnet die API die günstigste und sagt es in checks).",
"x-only-when": "recipient=person"
},
"payout": {
"type": [
"integer",
"null"
],
"default": 100,
"maximum": 100,
"minimum": 0,
"description": "Ausschüttungsquote: wie viel Prozent des ausschüttbaren Jahresüberschusses an die Gesellschafter gehen, ganze Zahl von 0 bis 100; der Rest bleibt in der GmbH. Standard 100."
},
"profit": {
"type": [
"integer",
"null"
],
"default": 100000,
"maximum": 50000000,
"minimum": -5000000,
"description": "Gewinn der GmbH vor Körperschaft- und Gewerbesteuer im Jahr in ganzen Euro, nach dem Gehalt des Geschäftsführers; negativ bei Verlust, -5.000.000 bis 50.000.000. Standard 100.000."
},
"values": {
"type": [
"object",
"string"
],
"description": "Nur POST: die Felder als Objekt, statt sie flach zu schreiben."
},
"hebesatz": {
"type": [
"integer",
"null"
],
"default": 400,
"maximum": 1000,
"minimum": 200,
"description": "Hebesatz der Gemeinde für die Gewerbesteuer in Prozent, ganze Zahl von 200 bis 1000, etwa 490 für München. Unter dem Mindesthebesatz des Jahres (2025: 200 %, 2026: 200 %, 2027: 280 %) rechnet die API mit dem Mindesthebesatz und sagt es in checks. Standard 400."
},
"childless": {
"type": [
"boolean",
"null"
],
"default": true,
"description": "Nur bei recipient=person und health=gkv: ohne Kinder, mit dem Zuschlag zur Pflegeversicherung. Standard true.",
"x-only-when": "recipient=person und health=gkv"
},
"legalForm": {
"enum": [
"gmbh",
"ug",
null
],
"type": [
"string",
"null"
],
"default": "gmbh",
"description": "Rechtsform: gmbh (Standard) oder ug (Unternehmergesellschaft haftungsbeschränkt; ein Viertel des Jahresüberschusses abzüglich Verlustvortrag geht in die gesetzliche Rücklage nach § 5a Abs. 3 GmbHG und wird nicht ausgeschüttet)."
},
"recipient": {
"enum": [
"person",
"holding",
null
],
"type": [
"string",
"null"
],
"default": "person",
"description": "Wer die Anteile hält: person (du privat; Standard) oder holding (deine Holding-GmbH; ab 10 % Anteil 95 % der Ausschüttung körperschaftsteuerfrei nach § 8b KStG, ab 15 % auch gewerbesteuerfrei; gerechnet mit demselben Hebesatz)."
},
"otherIncome": {
"type": [
"integer",
"null"
],
"default": 0,
"maximum": 5000000,
"minimum": 0,
"description": "Nur bei recipient=person: dein übriges zu versteuerndes Einkommen im Jahr ohne die Ausschüttung in ganzen Euro, etwa aus deinem Geschäftsführergehalt nach allen Abzügen; bei joint das gemeinsame. Ein zu versteuerndes Einkommen, keine Einnahmen, 0 bis 5.000.000. Standard 0.",
"x-only-when": "recipient=person"
},
"saverAllowance": {
"type": [
"boolean",
"null"
],
"default": true,
"description": "Nur bei recipient=person: der Sparer-Pauschbetrag (1.000 €, bei joint 2.000 €) ist noch frei. Die GmbH behält trotzdem auf die ganze Ausschüttung Kapitalertragsteuer ein; der Pauschbetrag wirkt erst mit der Steuererklärung, nicht beim Teileinkünfteverfahren. Standard true.",
"x-only-when": "recipient=person"
},
"activeInCompany": {
"type": [
"boolean",
"null"
],
"default": true,
"description": "Nur bei recipient=person: du arbeitest für die GmbH und hast dadurch maßgeblichen unternehmerischen Einfluss, etwa als Geschäftsführer; dann ist das Teileinkünfteverfahren schon ab 1 % Anteil möglich, sonst ab 25 %. Standard true.",
"x-only-when": "recipient=person"
},
"lossCarryforward": {
"type": [
"integer",
"null"
],
"default": 0,
"maximum": 50000000,
"minimum": 0,
"description": "Verlustvortrag aus Vorjahren in ganzen Euro, ein Betrag für Körperschaft- und Gewerbesteuer; über 1.000.000 € Gewinn nur teilweise verrechenbar (Mindestbesteuerung). Mindert vereinfacht auch den ausschüttbaren Betrag. Standard 0."
}
},
"description": "POST mit JSON: die Felder flach wie bei GET oder unter values, etwa { \"year\": 2026, \"values\": { \"profit\": 150000, \"hebesatz\": 450, \"share\": 50 } }. So passt auch input aus einer früheren Antwort: die Felder von input unverändert. Fehlende Felder und null behalten den Standard des Rechners. format geht auch hier, ebenso ?format=md in der Adresse."
}| vatMode |
| string |
| Umsatzsteuer: regel (Regelbesteuerung) oder klein (Kleinunternehmer). |
| vatRate | string | Umsatzsteuersatz auf den Umsatz bei Regelbesteuerung: 19 oder 7. |
| venture | string | Kurzer Name des Vorhabens, z. B. „Yogastudio in München“. |
| founders | integer | Anzahl der Gründer. |
| industry | string | Branche; sie bestimmt die Richtwerte für Kosten, Umsatz und Anlauf. |
| committed | number | Zugesagte Finanzierung (Kredit, Förderung, Investor) in Euro. |
| employees | integer | Geplante Mitarbeiter (GET-Kurzform; POST nimmt hires). |
| growthPct | number | Umsatzwachstum nach der Anlaufzeit in Prozent pro Jahr. |
| legalForm | string | Rechtsform: einzel, freiberuf, gbr, ug, gmbh. Ohne Angabe die übliche der Branche. |
| workplace | string | Arbeitsplatz; bestimmt Miete, Kaution und Einrichtung. |
| rampMonths | integer | Monate von der ersten Rechnung bis zum vollen Umsatz. |
| reservePct | number | Reserve in Prozent auf die größte Finanzierungslücke. |
| startMonth | string | Erster Geschäftsmonat als YYYY-MM. Ohne Angabe der nächste Monat. |
| otherIncome | number | Davon gedeckt durch weiteres Einkommen pro Monat (Gründungszuschuss, Teilzeitjob, Partner). |
| variablePct | number | Variable Kosten (Ware, Material, Versand, Gebühren) in Prozent vom Nettoumsatz. |
| paymentDelay | integer | Monate zwischen Rechnung und Zahlung. |
| employeeGross | number | Bruttogehalt pro Mitarbeiter und Monat in Euro (zu employees). |
| livingMonthly | number | Privater Bedarf aller Gründer zusammen pro Monat in Euro, inkl. Krankenversicherung. |
| openFinancing | number | Beantragte, noch nicht zugesagte Finanzierung in Euro; wird gezeigt, nicht gezählt. |
| revenueMonthly | number | Geplanter Nettoumsatz pro Monat, sobald es normal läuft, in Euro. |
| firstRevenueMonth | string | Monat der ersten Rechnung als YYYY-MM. |
{
"type": "object",
"examples": [
{
"city": "koeln",
"items": [
{
"key": "miete",
"label": "Miete",
"amount": 2400,
"category": "betrieb"
}
],
"equity": 30000,
"venture": "Café in Köln",
"founders": 2,
"industry": "gastro",
"legalForm": "ug",
"startMonth": "2027-03"
}
],
"properties": {
"city": {
"enum": [
"andere",
"berlin",
"duesseldorf",
"frankfurt",
"hamburg",
"hannover",
"koeln",
"leipzig",
"muenchen",
"stuttgart",
"wiesbaden"
],
"type": "string",
"description": "Ort für die Gebühren der Gewerbeanmeldung; andere = jede andere Stadt."
},
"hires": {
"type": "array",
"items": {
"type": "object",
"properties": {
"count": {
"type": "integer",
"minimum": 1
},
"gross": {
"type": "number",
"minimum": 0,
"description": "Bruttogehalt pro Person und Monat."
},
"label": {
"type": "string",
"maxLength": 48
},
"startMonth": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}$"
}
}
}
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"amount",
"category"
],
"properties": {
"key": {
"enum": [
"notar",
"register",
"gewerbe",
"hardware",
"einrichtung",
"geraete",
"umbau",
"fahrzeug",
"website",
"content",
"kasse",
"kaution",
"warenbestand",
"material",
"miete",
"nebenkosten",
"adresse",
"software",
"hosting",
"versicherung",
"buchhaltung",
"bank",
"telefon",
"marketing",
"freelancer",
"leasing",
"kammer",
"reinigung",
"lager",
"custom"
],
"type": "string",
"description": "Ersetzt die geschätzte Position mit diesem Schlüssel; sonst custom."
},
"label": {
"type": "string",
"maxLength": 48
},
"amount": {
"type": "number",
"minimum": 0
},
"category": {
"enum": [
"investition",
"gebunden",
"betrieb"
],
"type": "string"
}
}
},
"description": "Bekannte Kostenpositionen; ersetzen geschätzte mit gleichem key."
},
"equity": {
"type": "number",
"maximum": 5000000,
"minimum": 0,
"description": "Eigenkapital der Gründer in Euro (Stammkapital eingeschlossen)."
},
"format": {
"enum": [
"md",
"json"
],
"type": "string",
"default": "md",
"description": "md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON."
},
"capital": {
"type": "number",
"maximum": 5000000,
"minimum": 1,
"description": "Stammkapital einer UG oder GmbH in Euro (Finanzierung, keine Ausgabe)."
},
"vatMode": {
"enum": [
"regel",
"klein"
],
"type": "string",
"description": "Umsatzsteuer: regel (Regelbesteuerung) oder klein (Kleinunternehmer)."
},
"vatRate": {
"enum": [
"19",
"7"
],
"type": "string",
"description": "Umsatzsteuersatz auf den Umsatz bei Regelbesteuerung: 19 oder 7."
},
"venture": {
"type": "string",
"maxLength": 48,
"description": "Kurzer Name des Vorhabens, z. B. „Yogastudio in München“."
},
"founders": {
"type": "integer",
"maximum": 6,
"minimum": 1,
"description": "Anzahl der Gründer."
},
"industry": {
"enum": [
"beratung",
"it",
"agentur",
"kreativ",
"onlineshop",
"einzelhandel",
"gastro",
"handwerk",
"studio",
"saas",
"sonstiges"
],
"type": "string",
"description": "Branche; sie bestimmt die Richtwerte für Kosten, Umsatz und Anlauf."
},
"committed": {
"type": "number",
"maximum": 5000000,
"minimum": 0,
"description": "Zugesagte Finanzierung (Kredit, Förderung, Investor) in Euro."
},
"employees": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Geplante Mitarbeiter (GET-Kurzform; POST nimmt hires)."
},
"growthPct": {
"type": "number",
"maximum": 300,
"minimum": 0,
"description": "Umsatzwachstum nach der Anlaufzeit in Prozent pro Jahr."
},
"legalForm": {
"enum": [
"einzel",
"freiberuf",
"gbr",
"ug",
"gmbh"
],
"type": "string",
"description": "Rechtsform: einzel, freiberuf, gbr, ug, gmbh. Ohne Angabe die übliche der Branche."
},
"workplace": {
"enum": [
"home",
"adresse",
"buero",
"laden",
"werkstatt"
],
"type": "string",
"description": "Arbeitsplatz; bestimmt Miete, Kaution und Einrichtung."
},
"rampMonths": {
"type": "integer",
"maximum": 24,
"minimum": 1,
"description": "Monate von der ersten Rechnung bis zum vollen Umsatz."
},
"reservePct": {
"type": "number",
"maximum": 50,
"minimum": 0,
"description": "Reserve in Prozent auf die größte Finanzierungslücke."
},
"startMonth": {
"type": "string",
"pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
"description": "Erster Geschäftsmonat als YYYY-MM. Ohne Angabe der nächste Monat."
},
"otherIncome": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Davon gedeckt durch weiteres Einkommen pro Monat (Gründungszuschuss, Teilzeitjob, Partner)."
},
"variablePct": {
"type": "number",
"maximum": 95,
"minimum": 0,
"description": "Variable Kosten (Ware, Material, Versand, Gebühren) in Prozent vom Nettoumsatz."
},
"paymentDelay": {
"type": "integer",
"maximum": 6,
"minimum": 0,
"description": "Monate zwischen Rechnung und Zahlung."
},
"employeeGross": {
"type": "number",
"maximum": 50000,
"minimum": 0,
"description": "Bruttogehalt pro Mitarbeiter und Monat in Euro (zu employees)."
},
"livingMonthly": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Privater Bedarf aller Gründer zusammen pro Monat in Euro, inkl. Krankenversicherung."
},
"openFinancing": {
"type": "number",
"maximum": 5000000,
"minimum": 0,
"description": "Beantragte, noch nicht zugesagte Finanzierung in Euro; wird gezeigt, nicht gezählt."
},
"revenueMonthly": {
"type": "number",
"maximum": 5000000,
"minimum": 0,
"description": "Geplanter Nettoumsatz pro Monat, sobald es normal läuft, in Euro."
},
"firstRevenueMonth": {
"type": "string",
"pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
"description": "Monat der ersten Rechnung als YYYY-MM."
}
}
}| deed | string | null | Gründungsurkunde: muster (Musterprotokoll; Standard) oder satzung (eigener Gesellschaftsvertrag). Fall: gmbh. |
| form | string | null | case=vollmacht: Form: beurkundung (der Notar entwirft und beurkundet; Standard) oder beglaubigung (der Notar beglaubigt die Unterschrift unter deinem Text). case=gmbh: Rechtsform: ug oder gmbh. case=gmbh rechnet ohne form eine GmbH, case=ug eine UG. |
| kind | string | null | case=testament: Art: einzel (Einzeltestament; Standard), gemeinschaftlich (Ehegatten, etwa Berliner Testament), erbvertrag (beide setzen Erben ein) oder erbvertragEinseitig (nur Person 1 setzt ein, auch einseitig). case=beglaubigung: Was der Notar tun soll: signature (die Unterschrift unter deinem fertigen Text beglaubigen; Standard), draft (Entwurf und Beglaubigung) oder copies (Kopien beglaubigen). |
| land | string | null | Bundesland, in dem das Grundstück liegt, nicht der Sitz des Notars: Kürzel wie be, Name wie Berlin oder NRW. Davon hängt nur die Grunderwerbsteuer ab; ohne land nennt die Antwort die Spanne von 3,5 bis 6,5 %. Fall: kauf, schenkung. |
| debts | integer | null | Schulden des Erblassers selbst in ganzen Euro; Beerdigungskosten und Pflichtteile zählen nicht ab (§ 40 GNotKG). Fall: erbschein. |
| minor | boolean | null | Die beschenkte Person ist minderjährig: Der Notar holt meist die Genehmigung des Familiengerichts ein (Vollzug). Fall: schenkung. |
| pages | integer | null | Nur bei kind=copies: Seiten je Dokument; jede angefangene Seite zählt. Standard 10. Fall: beglaubigung. |
| price | integer | null | Kaufpreis in ganzen Euro. Fall: kauf. |
| right | string | null | Recht, das sich der Schenker vorbehält: niessbrauch (Standard), wohnrecht oder none. Es mindert den Wert für den Notar nicht und wird im Grundbuch eigens eingetragen. Fall: schenkung. |
| route | string | null | Wo die eidesstattliche Versicherung abgegeben wird: notar (Standard) oder gericht (beim Nachlassgericht). Fall: erbschein. |
| scope | string | null | case=vollmacht: Umfang: general (Vorsorge- oder Generalvollmacht; Standard) oder health (nur Gesundheit und persönliche Angelegenheiten). case=ehevertrag: Umfang: full (das ganze Vermögen; Standard) oder specific (nur bestimmtes Vermögen, mit specificValue). |
| value | integer | null | case=schenkung: Verkehrswert der Immobilie in ganzen Euro. case=beglaubigung: Nur bei kind=signature oder draft: Geschäftswert der Erklärung in ganzen Euro, etwa der Betrag einer Grundschuld. |
| agents | integer | null | Anzahl der Bevollmächtigten, im Vorsorgeregister Vertrauenspersonen genannt. Standard 1. Fall: vollmacht. |
| amount | integer | null | case=grundschuld: Betrag der neuen Grundschuld in ganzen Euro, meist so hoch wie der Kredit. Gerechnet ist eine neue Buchgrundschuld. case=loeschung: Nennbetrag der Grundschuld im Grundbuch in ganzen Euro, nicht die Restschuld. |
| assets | integer | null | Vermögen des Vollmachtgebers ohne Abzug von Schulden in ganzen Euro; bei couple=true je Person. Fall: vollmacht. |
| couple | boolean | null | Für ein Paar: zwei Vollmachten in zwei Urkunden, je eine pro Person, jede mit assets. Fall: vollmacht. |
| debts1 | integer | null | Schulden von Person 1 oder Ehegatte 1 in ganzen Euro; sie zählen höchstens bis zur Hälfte des Vermögens (§§ 100, 102 GNotKG). Fall: testament, ehevertrag. |
| debts2 | integer | null | Schulden von Person 2 oder Ehegatte 2 in ganzen Euro; beim Testament nur bei kind=gemeinschaftlich oder erbvertrag. Fall: testament, ehevertrag. |
| escrow | boolean | null | case=kauf: Notaranderkonto: Der Kaufpreis läuft über ein Konto des Notars, was ein berechtigtes Sicherungsinteresse braucht (§ 57 BeurkG); jede Auszahlung kostet gesondert. Standard false. case=gmbh: Betreuung: Der Notar reicht die Anmeldung erst ein, wenn die Einzahlung nachgewiesen ist. Ohne Angabe wie im Gründungskosten-Rechner: an bei eigener Satzung, aus beim Musterprotokoll. |
| estate | integer | null | Nachlass: alles, was der Erblasser hinterlassen hat, zum Wert am Todestag, in ganzen Euro. Fall: erbschein. |
| filing | string | null | Nur bei form=beglaubigung: wer die Vollmacht im Zentralen Vorsorgeregister registriert, notar (Standard) oder selbst (online). Nach einer Beurkundung meldet der Notar an. Fall: vollmacht. |
| format | string | md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON. |
| online | boolean | null | Beurkundung per Video über das System der Bundesnotarkammer. Fall: gmbh. |
| payoff | integer | null | Nur mit sellerCharge: Ablösebetrag, den die Bank des Verkäufers noch bekommt, in ganzen Euro. Ohne Angabe ist der Treuhandauftrag ein Posten, der zusätzlich anfallen kann, geschätzt mit dem Nennbetrag. Fall: kauf. |
| regime | string | null | Was der Vertrag regelt: guetertrennung (Standard), guetergemeinschaft, modifiziert (modifizierte Zugewinngemeinschaft) oder sonstiges. Fall: ehevertrag. |
| values | object | string | Nur POST: die Felder des Falls als Objekt, statt sie flach neben case zu schreiben. |
| assets1 | integer | null | Vermögen von Person 1 (testament) oder Ehegatte 1 (ehevertrag) in ganzen Euro, zum heutigen Wert. Fall: testament, ehevertrag. |
| assets2 | integer | null | Vermögen von Person 2 oder Ehegatte 2 in ganzen Euro; beim Testament nur bei kind=gemeinschaftlich oder erbvertrag. Fall: testament, ehevertrag. |
| capital | integer | null | Stammkapital in ganzen Euro: UG 1 bis 24.999, GmbH 25.000 bis 10.000.000, mindestens 1 € je Gesellschafter. Ohne Angabe 1.000 € bei der UG und 25.000 € bei der GmbH. Fall: gmbh. |
| variant | string | null | Wer die Löschungszustimmung entwirft: beglaubigung (Formular der Bank, der Notar beglaubigt nur; Standard) oder entwurf (der Notar entwirft sie und holt die Bewilligung der Bank). Fall: loeschung. |
| mortgage | integer | null | Grundschuld für den Kredit des Käufers in ganzen Euro, eine eigene Urkunde; 0 (Standard) ohne Kredit. Fall: kauf. |
| movables | integer | null | Davon Einbauküche, Möbel und Inventar in ganzen Euro: mindert die Grunderwerbsteuer; Notar und Grundbuch sind mit dem vollen Kaufpreis gerechnet. Fall: kauf. |
| property | string | null | Objekt: haus (Standard), wohnung (Eigentumswohnung, mit verwalter) oder grundstueck. Bei Haus und Grundstück fragt der Notar die Gemeinde nach ihrem Vorkaufsrecht, bei einer Wohnung nicht. Fall: kauf. |
| relation | string | null | Verwandtschaft zwischen Käufer und Verkäufer (kauf) oder zwischen Beschenktem und Schenker (schenkung), für die Befreiungen von der Grunderwerbsteuer (§ 3 GrEStG): none (nicht verwandt; Standard beim Kauf), spouse (Ehegatte oder eingetragener Lebenspartner), lineal (Kind, Enkel oder Eltern, auch Stief- und Schwiegerkinder; Standard bei der Schenkung), exSpouse (früherer Ehegatte, bei der Vermögensauseinandersetzung nach der Scheidung), coHeir (Miterbe, zur Teilung des Nachlasses), sibling (Geschwister) oder partner (unverheirateter Partner). Fall: kauf, schenkung. |
| documents | integer | null | Nur bei kind=copies: Anzahl der Dokumente. Standard 1. Fall: beglaubigung. |
| draftRate | string | null | Nur bei kind=draft: contract (Vertrag, 2,0), declaration (einseitige Erklärung, 1,0; Standard) oder consent (Zustimmung oder Antrag, 0,5). Fall: beglaubigung. |
| holderAge | integer | null | Nur mit right: Alter des jüngsten Berechtigten in Jahren; je jünger, desto länger zählt das Recht (§ 52 Abs. 4 GNotKG). Standard 68. Fall: schenkung. |
| homeVisit | boolean | null | case=testament: Der Notar kommt nach Hause oder ins Krankenhaus; dafür fällt eine Zusatzgebühr je Person an (KV 26003 GNotKG). case=vollmacht: Der Notar kommt nach Hause oder ins Krankenhaus; dafür fällt eine Zusatzgebühr je Urkunde an (KV 26003 GNotKG). |
| reversion | boolean | null | Rückforderungsrecht, gesichert durch eine Rückauflassungsvormerkung im Grundbuch. Standard true. Fall: schenkung. |
| verwalter | boolean | null | Nur bei property=wohnung: Der WEG-Verwalter muss dem Verkauf zustimmen (§ 12 WEG). Standard true. Fall: kauf. |
| annualValue | integer | null | Nur mit right: Jahreswert des Rechts in ganzen Euro, etwa die ortsübliche Jahresmiete dessen, was es umfasst. Ohne Angabe 5 % des Verkehrswerts im Jahr (§ 52 Abs. 5 GNotKG). Fall: schenkung. |
| marketValue | integer | null | Verkehrswert in ganzen Euro, nur wenn er über dem Kaufpreis liegt, etwa bei einem Freundschaftspreis: Dann rechnen Notar und Grundbuch mit ihm (§ 47 GNotKG). Fall: kauf. |
| contractDate | string | null | Tag des Vertrags, für den Steuersatz an diesem Tag; ab 01.01.2024. Ohne Angabe heute (Europe/Berlin). Fall: kauf, schenkung. |
| sellerCharge | integer | null | Nennbetrag der Grundschuld des Verkäufers, die gelöscht wird, in ganzen Euro; 0 (Standard), wenn das Objekt lastenfrei ist. Fall: kauf. |
| shareholders | integer | null | Anzahl der Gesellschafter; mit Musterprotokoll höchstens 3. Standard 1. Fall: gmbh. |
| consideration | integer | null | Gegenleistung in ganzen Euro: übernommene Schulden und Ausgleichszahlungen, etwa an Geschwister. Außerhalb der Familie fällt darauf Grunderwerbsteuer an. Fall: schenkung. |
| patientDecree | boolean | null | Mit Patienten- und Betreuungsverfügung. Standard true. Fall: vollmacht. |
| propertyValue | integer | null | Wert einer Immobilie, die auf die Erben umgeschrieben wird, in ganzen Euro; 0 (Standard), wenn keine. Fall: erbschein. |
| specificValue | integer | null | Nur bei scope=specific: Wert des erfassten Vermögens in ganzen Euro. Gerechnet wird höchstens mit dem ganzen Vermögen nach Abzug der Schulden (§ 100 Abs. 2 GNotKG). Fall: ehevertrag. |
| withinTwoYears | boolean | null | Nur mit propertyValue: Die Berichtigung des Grundbuchs wird binnen zwei Jahren nach dem Erbfall beantragt und ist dann für Erben gebührenfrei. Standard true. Fall: erbschein. |
| officialCustody | boolean | null | Nur bei kind=erbvertrag oder erbvertragEinseitig: besondere amtliche Verwahrung beim Nachlassgericht (82 €) statt beim Notar. Ein Testament kommt immer in die amtliche Verwahrung. Fall: testament. |
{
"type": "object",
"examples": [
{
"case": "kauf",
"land": "be",
"values": {
"price": 420000,
"payoff": 90000,
"mortgage": 350000,
"property": "wohnung",
"sellerCharge": 150000
}
}
],
"required": [
"case"
],
"properties": {
"case": {
"enum": [
"kauf",
"grundschuld",
"loeschung",
"schenkung",
"testament",
"erbschein",
"vollmacht",
"ehevertrag",
"beglaubigung",
"gmbh"
],
"type": "string",
"description": "Der Fall: kauf (Immobilienkauf), grundschuld (neue Grundschuld bestellen), loeschung (Grundschuld löschen), schenkung (Schenkung einer Immobilie), testament (Einzeltestament, gemeinschaftliches Testament, Erbvertrag), erbschein (Erbscheinsantrag), vollmacht (Vorsorgevollmacht), ehevertrag, beglaubigung (Unterschrift, Entwurf oder Kopien) oder gmbh (GmbH- oder UG-Gründung). Deutsche Wörter gehen auch, etwa hauskauf, wohnungskauf, schenkung, berlinertestament, erbvertrag, vorsorgevollmacht, unterschriftsbeglaubigung, ug. Ein Wort, das eine Variante nennt, setzt sie, wenn der Aufruf das Feld nicht selbst angibt: wohnungskauf rechnet eine Wohnung, berlinertestament ein gemeinschaftliches Testament, erbvertrag einen Erbvertrag, gmbh eine GmbH, ug eine UG."
},
"deed": {
"enum": [
"muster",
"satzung",
null
],
"type": [
"string",
"null"
],
"x-cases": [
"gmbh"
],
"description": "Gründungsurkunde: muster (Musterprotokoll; Standard) oder satzung (eigener Gesellschaftsvertrag). Fall: gmbh."
},
"form": {
"enum": [
"beurkundung",
"beglaubigung",
"ug",
"gmbh",
null
],
"type": [
"string",
"null"
],
"x-cases": [
"vollmacht",
"gmbh"
],
"description": "case=vollmacht: Form: beurkundung (der Notar entwirft und beurkundet; Standard) oder beglaubigung (der Notar beglaubigt die Unterschrift unter deinem Text).\ncase=gmbh: Rechtsform: ug oder gmbh. case=gmbh rechnet ohne form eine GmbH, case=ug eine UG."
},
"kind": {
"enum": [
"einzel",
"gemeinschaftlich",
"erbvertrag",
"erbvertragEinseitig",
"signature",
"draft",
"copies",
null
],
"type": [
"string",
"null"
],
"x-cases": [
"testament",
"beglaubigung"
],
"description": "case=testament: Art: einzel (Einzeltestament; Standard), gemeinschaftlich (Ehegatten, etwa Berliner Testament), erbvertrag (beide setzen Erben ein) oder erbvertragEinseitig (nur Person 1 setzt ein, auch einseitig).\ncase=beglaubigung: Was der Notar tun soll: signature (die Unterschrift unter deinem fertigen Text beglaubigen; Standard), draft (Entwurf und Beglaubigung) oder copies (Kopien beglaubigen)."
},
"land": {
"type": [
"string",
"null"
],
"x-cases": [
"kauf",
"schenkung"
],
"description": "Bundesland, in dem das Grundstück liegt, nicht der Sitz des Notars: Kürzel wie be, Name wie Berlin oder NRW. Davon hängt nur die Grunderwerbsteuer ab; ohne land nennt die Antwort die Spanne von 3,5 bis 6,5 %. Fall: kauf, schenkung."
},
"debts": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 0,
"x-cases": [
"erbschein"
],
"description": "Schulden des Erblassers selbst in ganzen Euro; Beerdigungskosten und Pflichtteile zählen nicht ab (§ 40 GNotKG). Fall: erbschein."
},
"minor": {
"type": [
"boolean",
"null"
],
"x-cases": [
"schenkung"
],
"description": "Die beschenkte Person ist minderjährig: Der Notar holt meist die Genehmigung des Familiengerichts ein (Vollzug). Fall: schenkung."
},
"pages": {
"type": [
"integer",
"null"
],
"maximum": 1000,
"minimum": 1,
"x-cases": [
"beglaubigung"
],
"description": "Nur bei kind=copies: Seiten je Dokument; jede angefangene Seite zählt. Standard 10. Fall: beglaubigung."
},
"price": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 1,
"x-cases": [
"kauf"
],
"description": "Kaufpreis in ganzen Euro. Fall: kauf."
},
"right": {
"enum": [
"none",
"niessbrauch",
"wohnrecht",
null
],
"type": [
"string",
"null"
],
"x-cases": [
"schenkung"
],
"description": "Recht, das sich der Schenker vorbehält: niessbrauch (Standard), wohnrecht oder none. Es mindert den Wert für den Notar nicht und wird im Grundbuch eigens eingetragen. Fall: schenkung."
},
"route": {
"enum": [
"notar",
"gericht",
null
],
"type": [
"string",
"null"
],
"x-cases": [
"erbschein"
],
"description": "Wo die eidesstattliche Versicherung abgegeben wird: notar (Standard) oder gericht (beim Nachlassgericht). Fall: erbschein."
},
"scope": {
"enum": [
"general",
"health",
"full",
"specific",
null
],
"type": [
"string",
"null"
],
"x-cases": [
"vollmacht",
"ehevertrag"
],
"description": "case=vollmacht: Umfang: general (Vorsorge- oder Generalvollmacht; Standard) oder health (nur Gesundheit und persönliche Angelegenheiten).\ncase=ehevertrag: Umfang: full (das ganze Vermögen; Standard) oder specific (nur bestimmtes Vermögen, mit specificValue)."
},
"value": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 1,
"x-cases": [
"schenkung",
"beglaubigung"
],
"description": "case=schenkung: Verkehrswert der Immobilie in ganzen Euro.\ncase=beglaubigung: Nur bei kind=signature oder draft: Geschäftswert der Erklärung in ganzen Euro, etwa der Betrag einer Grundschuld."
},
"agents": {
"type": [
"integer",
"null"
],
"maximum": 10,
"minimum": 0,
"x-cases": [
"vollmacht"
],
"description": "Anzahl der Bevollmächtigten, im Vorsorgeregister Vertrauenspersonen genannt. Standard 1. Fall: vollmacht."
},
"amount": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 1,
"x-cases": [
"grundschuld",
"loeschung"
],
"description": "case=grundschuld: Betrag der neuen Grundschuld in ganzen Euro, meist so hoch wie der Kredit. Gerechnet ist eine neue Buchgrundschuld.\ncase=loeschung: Nennbetrag der Grundschuld im Grundbuch in ganzen Euro, nicht die Restschuld."
},
"assets": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 0,
"x-cases": [
"vollmacht"
],
"description": "Vermögen des Vollmachtgebers ohne Abzug von Schulden in ganzen Euro; bei couple=true je Person. Fall: vollmacht."
},
"couple": {
"type": [
"boolean",
"null"
],
"x-cases": [
"vollmacht"
],
"description": "Für ein Paar: zwei Vollmachten in zwei Urkunden, je eine pro Person, jede mit assets. Fall: vollmacht."
},
"debts1": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 0,
"x-cases": [
"testament",
"ehevertrag"
],
"description": "Schulden von Person 1 oder Ehegatte 1 in ganzen Euro; sie zählen höchstens bis zur Hälfte des Vermögens (§§ 100, 102 GNotKG). Fall: testament, ehevertrag."
},
"debts2": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 0,
"x-cases": [
"testament",
"ehevertrag"
],
"description": "Schulden von Person 2 oder Ehegatte 2 in ganzen Euro; beim Testament nur bei kind=gemeinschaftlich oder erbvertrag. Fall: testament, ehevertrag."
},
"escrow": {
"type": [
"boolean",
"null"
],
"x-cases": [
"kauf",
"gmbh"
],
"description": "case=kauf: Notaranderkonto: Der Kaufpreis läuft über ein Konto des Notars, was ein berechtigtes Sicherungsinteresse braucht (§ 57 BeurkG); jede Auszahlung kostet gesondert. Standard false.\ncase=gmbh: Betreuung: Der Notar reicht die Anmeldung erst ein, wenn die Einzahlung nachgewiesen ist. Ohne Angabe wie im Gründungskosten-Rechner: an bei eigener Satzung, aus beim Musterprotokoll."
},
"estate": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 1,
"x-cases": [
"erbschein"
],
"description": "Nachlass: alles, was der Erblasser hinterlassen hat, zum Wert am Todestag, in ganzen Euro. Fall: erbschein."
},
"filing": {
"enum": [
"notar",
"selbst",
null
],
"type": [
"string",
"null"
],
"x-cases": [
"vollmacht"
],
"description": "Nur bei form=beglaubigung: wer die Vollmacht im Zentralen Vorsorgeregister registriert, notar (Standard) oder selbst (online). Nach einer Beurkundung meldet der Notar an. Fall: vollmacht."
},
"format": {
"enum": [
"md",
"json"
],
"type": "string",
"default": "md",
"description": "md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON."
},
"online": {
"type": [
"boolean",
"null"
],
"x-cases": [
"gmbh"
],
"description": "Beurkundung per Video über das System der Bundesnotarkammer. Fall: gmbh."
},
"payoff": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 0,
"x-cases": [
"kauf"
],
"description": "Nur mit sellerCharge: Ablösebetrag, den die Bank des Verkäufers noch bekommt, in ganzen Euro. Ohne Angabe ist der Treuhandauftrag ein Posten, der zusätzlich anfallen kann, geschätzt mit dem Nennbetrag. Fall: kauf."
},
"regime": {
"enum": [
"guetertrennung",
"guetergemeinschaft",
"modifiziert",
"sonstiges",
null
],
"type": [
"string",
"null"
],
"x-cases": [
"ehevertrag"
],
"description": "Was der Vertrag regelt: guetertrennung (Standard), guetergemeinschaft, modifiziert (modifizierte Zugewinngemeinschaft) oder sonstiges. Fall: ehevertrag."
},
"values": {
"type": [
"object",
"string"
],
"description": "Nur POST: die Felder des Falls als Objekt, statt sie flach neben case zu schreiben."
},
"assets1": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 0,
"x-cases": [
"testament",
"ehevertrag"
],
"description": "Vermögen von Person 1 (testament) oder Ehegatte 1 (ehevertrag) in ganzen Euro, zum heutigen Wert. Fall: testament, ehevertrag."
},
"assets2": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 0,
"x-cases": [
"testament",
"ehevertrag"
],
"description": "Vermögen von Person 2 oder Ehegatte 2 in ganzen Euro; beim Testament nur bei kind=gemeinschaftlich oder erbvertrag. Fall: testament, ehevertrag."
},
"capital": {
"type": [
"integer",
"null"
],
"maximum": 10000000,
"minimum": 1,
"x-cases": [
"gmbh"
],
"description": "Stammkapital in ganzen Euro: UG 1 bis 24.999, GmbH 25.000 bis 10.000.000, mindestens 1 € je Gesellschafter. Ohne Angabe 1.000 € bei der UG und 25.000 € bei der GmbH. Fall: gmbh."
},
"variant": {
"enum": [
"beglaubigung",
"entwurf",
null
],
"type": [
"string",
"null"
],
"x-cases": [
"loeschung"
],
"description": "Wer die Löschungszustimmung entwirft: beglaubigung (Formular der Bank, der Notar beglaubigt nur; Standard) oder entwurf (der Notar entwirft sie und holt die Bewilligung der Bank). Fall: loeschung."
},
"mortgage": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 0,
"x-cases": [
"kauf"
],
"description": "Grundschuld für den Kredit des Käufers in ganzen Euro, eine eigene Urkunde; 0 (Standard) ohne Kredit. Fall: kauf."
},
"movables": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 0,
"x-cases": [
"kauf"
],
"description": "Davon Einbauküche, Möbel und Inventar in ganzen Euro: mindert die Grunderwerbsteuer; Notar und Grundbuch sind mit dem vollen Kaufpreis gerechnet. Fall: kauf."
},
"property": {
"enum": [
"haus",
"wohnung",
"grundstueck",
null
],
"type": [
"string",
"null"
],
"x-cases": [
"kauf"
],
"description": "Objekt: haus (Standard), wohnung (Eigentumswohnung, mit verwalter) oder grundstueck. Bei Haus und Grundstück fragt der Notar die Gemeinde nach ihrem Vorkaufsrecht, bei einer Wohnung nicht. Fall: kauf."
},
"relation": {
"enum": [
"none",
"spouse",
"lineal",
"exSpouse",
"coHeir",
"sibling",
"partner",
null
],
"type": [
"string",
"null"
],
"x-cases": [
"kauf",
"schenkung"
],
"description": "Verwandtschaft zwischen Käufer und Verkäufer (kauf) oder zwischen Beschenktem und Schenker (schenkung), für die Befreiungen von der Grunderwerbsteuer (§ 3 GrEStG): none (nicht verwandt; Standard beim Kauf), spouse (Ehegatte oder eingetragener Lebenspartner), lineal (Kind, Enkel oder Eltern, auch Stief- und Schwiegerkinder; Standard bei der Schenkung), exSpouse (früherer Ehegatte, bei der Vermögensauseinandersetzung nach der Scheidung), coHeir (Miterbe, zur Teilung des Nachlasses), sibling (Geschwister) oder partner (unverheirateter Partner). Fall: kauf, schenkung."
},
"documents": {
"type": [
"integer",
"null"
],
"maximum": 50,
"minimum": 1,
"x-cases": [
"beglaubigung"
],
"description": "Nur bei kind=copies: Anzahl der Dokumente. Standard 1. Fall: beglaubigung."
},
"draftRate": {
"enum": [
"contract",
"declaration",
"consent",
null
],
"type": [
"string",
"null"
],
"x-cases": [
"beglaubigung"
],
"description": "Nur bei kind=draft: contract (Vertrag, 2,0), declaration (einseitige Erklärung, 1,0; Standard) oder consent (Zustimmung oder Antrag, 0,5). Fall: beglaubigung."
},
"holderAge": {
"type": [
"integer",
"null"
],
"maximum": 110,
"minimum": 0,
"x-cases": [
"schenkung"
],
"description": "Nur mit right: Alter des jüngsten Berechtigten in Jahren; je jünger, desto länger zählt das Recht (§ 52 Abs. 4 GNotKG). Standard 68. Fall: schenkung."
},
"homeVisit": {
"type": [
"boolean",
"null"
],
"x-cases": [
"testament",
"vollmacht"
],
"description": "case=testament: Der Notar kommt nach Hause oder ins Krankenhaus; dafür fällt eine Zusatzgebühr je Person an (KV 26003 GNotKG).\ncase=vollmacht: Der Notar kommt nach Hause oder ins Krankenhaus; dafür fällt eine Zusatzgebühr je Urkunde an (KV 26003 GNotKG)."
},
"reversion": {
"type": [
"boolean",
"null"
],
"x-cases": [
"schenkung"
],
"description": "Rückforderungsrecht, gesichert durch eine Rückauflassungsvormerkung im Grundbuch. Standard true. Fall: schenkung."
},
"verwalter": {
"type": [
"boolean",
"null"
],
"x-cases": [
"kauf"
],
"description": "Nur bei property=wohnung: Der WEG-Verwalter muss dem Verkauf zustimmen (§ 12 WEG). Standard true. Fall: kauf."
},
"annualValue": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 0,
"x-cases": [
"schenkung"
],
"description": "Nur mit right: Jahreswert des Rechts in ganzen Euro, etwa die ortsübliche Jahresmiete dessen, was es umfasst. Ohne Angabe 5 % des Verkehrswerts im Jahr (§ 52 Abs. 5 GNotKG). Fall: schenkung."
},
"marketValue": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 0,
"x-cases": [
"kauf"
],
"description": "Verkehrswert in ganzen Euro, nur wenn er über dem Kaufpreis liegt, etwa bei einem Freundschaftspreis: Dann rechnen Notar und Grundbuch mit ihm (§ 47 GNotKG). Fall: kauf."
},
"contractDate": {
"type": [
"string",
"null"
],
"format": "date",
"x-cases": [
"kauf",
"schenkung"
],
"description": "Tag des Vertrags, für den Steuersatz an diesem Tag; ab 01.01.2024. Ohne Angabe heute (Europe/Berlin). Fall: kauf, schenkung."
},
"sellerCharge": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 0,
"x-cases": [
"kauf"
],
"description": "Nennbetrag der Grundschuld des Verkäufers, die gelöscht wird, in ganzen Euro; 0 (Standard), wenn das Objekt lastenfrei ist. Fall: kauf."
},
"shareholders": {
"type": [
"integer",
"null"
],
"maximum": 50,
"minimum": 1,
"x-cases": [
"gmbh"
],
"description": "Anzahl der Gesellschafter; mit Musterprotokoll höchstens 3. Standard 1. Fall: gmbh."
},
"consideration": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 0,
"x-cases": [
"schenkung"
],
"description": "Gegenleistung in ganzen Euro: übernommene Schulden und Ausgleichszahlungen, etwa an Geschwister. Außerhalb der Familie fällt darauf Grunderwerbsteuer an. Fall: schenkung."
},
"patientDecree": {
"type": [
"boolean",
"null"
],
"x-cases": [
"vollmacht"
],
"description": "Mit Patienten- und Betreuungsverfügung. Standard true. Fall: vollmacht."
},
"propertyValue": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 0,
"x-cases": [
"erbschein"
],
"description": "Wert einer Immobilie, die auf die Erben umgeschrieben wird, in ganzen Euro; 0 (Standard), wenn keine. Fall: erbschein."
},
"specificValue": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 0,
"x-cases": [
"ehevertrag"
],
"description": "Nur bei scope=specific: Wert des erfassten Vermögens in ganzen Euro. Gerechnet wird höchstens mit dem ganzen Vermögen nach Abzug der Schulden (§ 100 Abs. 2 GNotKG). Fall: ehevertrag."
},
"withinTwoYears": {
"type": [
"boolean",
"null"
],
"x-cases": [
"erbschein"
],
"description": "Nur mit propertyValue: Die Berichtigung des Grundbuchs wird binnen zwei Jahren nach dem Erbfall beantragt und ist dann für Erben gebührenfrei. Standard true. Fall: erbschein."
},
"officialCustody": {
"type": [
"boolean",
"null"
],
"x-cases": [
"testament"
],
"description": "Nur bei kind=erbvertrag oder erbvertragEinseitig: besondere amtliche Verwahrung beim Nachlassgericht (82 €) statt beim Notar. Ein Testament kommt immer in die amtliche Verwahrung. Fall: testament."
}
},
"description": "POST mit JSON: case und die Felder des Falls, flach wie bei GET oder unter values, etwa { \"case\": \"kauf\", \"land\": \"be\", \"values\": { \"price\": 420000 } }. So passt auch input aus einer früheren Antwort: case dazu, die Felder von input unverändert. Fehlende Felder und null behalten den Standard des Rechners. format geht auch hier, ebenso ?format=md in der Adresse."
}| string |
| Ausstellungsdatum; ohne Angabe heute (Europe/Berlin). |
| draft | object | string | Ein Link des Generators oder nur der Teil nach #q= als Ausgangspunkt; weitere Parameter ändern ihn. In einer GET-Adresse das # als %23 schreiben, sonst kommt der Entwurf nicht an. Bei POST auch ein Entwurf als Objekt, etwa draft aus einer früheren Antwort. |
| payer | any |
| place | string | Optional: Ort der Ausstellung. |
| topic | string | Optional, worum es geht; bringt die passenden Hinweise: general (Standard), sale (Verkauf), vehicle (Auto), rent (Miete), deposit (Kaution), loanRepayment (Darlehensrückzahlung), homeService (Arbeiten an Haus, Wohnung oder Grundstück: Handwerker, Garten, Reinigung), realEstate (Kaufpreis einer Immobilie oder Anteile daran), donation (Spende: dafür gibt es keine Quittung, nur die amtliche Zuwendungsbestätigung). Kaution, Darlehen und Spende sind kein Entgelt: keine Umsatzsteuer. |
| amount | number | null | Betrag in Euro brutto, mit Cent; mindestens 0,01. Auf den Cent gerundet. |
| format | string | md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON. |
| method | string | Zahlungsart: cash (bar, Standard), transfer (Überweisung), card (Karte), cheque (Scheck) oder other. |
| number | string | Optional: Quittungs- oder Belegnummer, etwa 2026-014. |
| paidOn | string | Optional: Tag, an dem das Geld kam, wenn er vom Ausstellungsdatum abweicht (etwa eine Überweisung, die vorher einging). |
| invoice | any |
| partial | boolean | Teilzahlung: Die Quittung sagt, dass ein Restbetrag offen bleibt. |
| purpose | string | Wofür das Geld ist: Menge und Art der Ware oder Leistung oder der Grund der Zahlung. Keine Steuerangaben und kein Verzicht auf weitere Ansprüche hineinschreiben. Bei invoicePayment optional. |
| vatRate | integer | string | null | Nur case=business, nicht bei Kaution, Darlehen oder Spende: 19, 7, 0 (Nullsteuersatz für Photovoltaik, § 12 Abs. 3 UStG), exempt (steuerfrei, mit exemption) oder margin (Differenzbesteuerung nach § 25a UStG, ohne Steuerausweis). Der Betrag enthält die Steuer. |
| exemption | string | Bei vatRate=exempt: der Grund, etwa „Heilbehandlung (§ 4 Nr. 14 UStG)“. |
| recipient | any |
| taxNumber | string | Nicht bei private: Steuernummer oder USt-IdNr. des Zahlungsempfängers; nötig bei smallBusiness über 250 € (§ 34a UStDV). |
| invoiceDate | string | Bei invoicePayment, optional: Datum der Rechnung. |
| payerAddress | string | Anschrift des Zahlers in einer Zeile; nötig bei smallBusiness über 250 € (§ 34a UStDV). |
| invoiceNumber | string | Bei invoicePayment: Nummer der bezahlten Rechnung. |
| payerIsBusiness | boolean | Bei business und smallBusiness: Der Kunde ist ein Unternehmen, das für sein Unternehmen kauft, ein Verein oder eine Behörde. Bei business über 250 € braucht es dann eine Rechnung (blocked). |
| recipientAddress | string | Anschrift des Zahlungsempfängers in einer Zeile; nötig bei business, smallBusiness und invoicePayment. |
{
"type": "object",
"examples": [
{
"vat": {
"rate": 19
},
"case": "business",
"date": "2026-10-27",
"place": "Berlin",
"amount": 119,
"method": "cash",
"number": "2026-014",
"purpose": "Fahrradreparatur: Inspektion und neue Bremsbeläge",
"recipient": {
"name": "Radwerk Lumio GmbH",
"address": "Torstraße 12, 10119 Berlin"
}
}
],
"properties": {
"vat": {
"oneOf": [
{
"enum": [
19,
7,
0,
"exempt",
"margin",
null
],
"type": [
"integer",
"string",
"null"
],
"description": "Nur case=business, nicht bei Kaution, Darlehen oder Spende: 19, 7, 0 (Nullsteuersatz für Photovoltaik, § 12 Abs. 3 UStG), exempt (steuerfrei, mit exemption) oder margin (Differenzbesteuerung nach § 25a UStG, ohne Steuerausweis). Der Betrag enthält die Steuer."
},
{
"type": "object",
"properties": {
"rate": {
"enum": [
19,
7,
0,
"exempt",
"margin",
null
],
"type": [
"integer",
"string",
"null"
],
"description": "Nur case=business, nicht bei Kaution, Darlehen oder Spende: 19, 7, 0 (Nullsteuersatz für Photovoltaik, § 12 Abs. 3 UStG), exempt (steuerfrei, mit exemption) oder margin (Differenzbesteuerung nach § 25a UStG, ohne Steuerausweis). Der Betrag enthält die Steuer."
},
"exemption": {
"type": "string",
"maxLength": 200,
"description": "Bei vatRate=exempt: der Grund, etwa „Heilbehandlung (§ 4 Nr. 14 UStG)“."
}
}
}
]
},
"case": {
"enum": [
"private",
"business",
"smallBusiness",
"invoicePayment",
null
],
"type": [
"string",
"null"
],
"description": "Wer quittiert. private: eine Privatperson, nie mit Umsatzsteuer. business: ein umsatzsteuerpflichtiges Unternehmen (regelbesteuert); bis 250 € brutto ist die Quittung eine Kleinbetragsrechnung. smallBusiness: ein Kleinunternehmer nach § 19 UStG, ohne Umsatzsteuer, mit Befreiungshinweis. invoicePayment: bestätigt die Zahlung auf eine bestehende Rechnung, ohne Steuerangaben (die stehen in der Rechnung)."
},
"date": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Ausstellungsdatum; ohne Angabe heute (Europe/Berlin)."
},
"draft": {
"type": [
"object",
"string"
],
"description": "Ein Link des Generators oder nur der Teil nach #q= als Ausgangspunkt; weitere Parameter ändern ihn. In einer GET-Adresse das # als %23 schreiben, sonst kommt der Entwurf nicht an. Bei POST auch ein Entwurf als Objekt, etwa draft aus einer früheren Antwort."
},
"payer": {
"oneOf": [
{
"type": "string",
"maxLength": 120,
"description": "Wer gezahlt hat: voller Name der Person oder Firma. Bei business und bei smallBusiness bis 250 € optional."
},
{
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"description": "Wer gezahlt hat: voller Name der Person oder Firma. Bei business und bei smallBusiness bis 250 € optional."
},
"address": {
"type": "string",
"maxLength": 200,
"description": "Anschrift des Zahlers in einer Zeile; nötig bei smallBusiness über 250 € (§ 34a UStDV)."
}
}
}
]
},
"place": {
"type": "string",
"maxLength": 80,
"description": "Optional: Ort der Ausstellung."
},
"topic": {
"enum": [
"general",
"sale",
"vehicle",
"rent",
"deposit",
"loanRepayment",
"homeService",
"realEstate",
"donation"
],
"type": "string",
"description": "Optional, worum es geht; bringt die passenden Hinweise: general (Standard), sale (Verkauf), vehicle (Auto), rent (Miete), deposit (Kaution), loanRepayment (Darlehensrückzahlung), homeService (Arbeiten an Haus, Wohnung oder Grundstück: Handwerker, Garten, Reinigung), realEstate (Kaufpreis einer Immobilie oder Anteile daran), donation (Spende: dafür gibt es keine Quittung, nur die amtliche Zuwendungsbestätigung). Kaution, Darlehen und Spende sind kein Entgelt: keine Umsatzsteuer."
},
"amount": {
"type": [
"number",
"null"
],
"maximum": 10000000,
"minimum": 0.01,
"description": "Betrag in Euro brutto, mit Cent; mindestens 0,01. Auf den Cent gerundet."
},
"format": {
"enum": [
"md",
"json"
],
"type": "string",
"default": "md",
"description": "md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON."
},
"method": {
"enum": [
"cash",
"transfer",
"card",
"cheque",
"other"
],
"type": "string",
"description": "Zahlungsart: cash (bar, Standard), transfer (Überweisung), card (Karte), cheque (Scheck) oder other."
},
"number": {
"type": "string",
"maxLength": 40,
"description": "Optional: Quittungs- oder Belegnummer, etwa 2026-014."
},
"paidOn": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Optional: Tag, an dem das Geld kam, wenn er vom Ausstellungsdatum abweicht (etwa eine Überweisung, die vorher einging)."
},
"invoice": {
"oneOf": [
{
"type": "string",
"maxLength": 40,
"description": "Bei invoicePayment: Nummer der bezahlten Rechnung."
},
{
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Bei invoicePayment, optional: Datum der Rechnung."
},
"number": {
"type": "string",
"maxLength": 40,
"description": "Bei invoicePayment: Nummer der bezahlten Rechnung."
}
}
}
]
},
"partial": {
"type": "boolean",
"description": "Teilzahlung: Die Quittung sagt, dass ein Restbetrag offen bleibt."
},
"purpose": {
"type": "string",
"maxLength": 300,
"description": "Wofür das Geld ist: Menge und Art der Ware oder Leistung oder der Grund der Zahlung. Keine Steuerangaben und kein Verzicht auf weitere Ansprüche hineinschreiben. Bei invoicePayment optional."
},
"vatRate": {
"enum": [
19,
7,
0,
"exempt",
"margin",
null
],
"type": [
"integer",
"string",
"null"
],
"description": "Nur case=business, nicht bei Kaution, Darlehen oder Spende: 19, 7, 0 (Nullsteuersatz für Photovoltaik, § 12 Abs. 3 UStG), exempt (steuerfrei, mit exemption) oder margin (Differenzbesteuerung nach § 25a UStG, ohne Steuerausweis). Der Betrag enthält die Steuer."
},
"exemption": {
"type": "string",
"maxLength": 200,
"description": "Bei vatRate=exempt: der Grund, etwa „Heilbehandlung (§ 4 Nr. 14 UStG)“."
},
"recipient": {
"oneOf": [
{
"type": "string",
"maxLength": 120,
"description": "Wer das Geld erhalten hat und die Quittung unterschreibt: voller Name der Person oder Firma mit Rechtsform."
},
{
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"description": "Wer das Geld erhalten hat und die Quittung unterschreibt: voller Name der Person oder Firma mit Rechtsform."
},
"address": {
"type": "string",
"maxLength": 200,
"description": "Anschrift des Zahlungsempfängers in einer Zeile; nötig bei business, smallBusiness und invoicePayment."
},
"taxNumber": {
"type": "string",
"maxLength": 40,
"description": "Nicht bei private: Steuernummer oder USt-IdNr. des Zahlungsempfängers; nötig bei smallBusiness über 250 € (§ 34a UStDV)."
}
}
}
]
},
"taxNumber": {
"type": "string",
"maxLength": 40,
"description": "Nicht bei private: Steuernummer oder USt-IdNr. des Zahlungsempfängers; nötig bei smallBusiness über 250 € (§ 34a UStDV)."
},
"invoiceDate": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Bei invoicePayment, optional: Datum der Rechnung."
},
"payerAddress": {
"type": "string",
"maxLength": 200,
"description": "Anschrift des Zahlers in einer Zeile; nötig bei smallBusiness über 250 € (§ 34a UStDV)."
},
"invoiceNumber": {
"type": "string",
"maxLength": 40,
"description": "Bei invoicePayment: Nummer der bezahlten Rechnung."
},
"payerIsBusiness": {
"type": "boolean",
"description": "Bei business und smallBusiness: Der Kunde ist ein Unternehmen, das für sein Unternehmen kauft, ein Verein oder eine Behörde. Bei business über 250 € braucht es dann eine Rechnung (blocked)."
},
"recipientAddress": {
"type": "string",
"maxLength": 200,
"description": "Anschrift des Zahlungsempfängers in einer Zeile; nötig bei business, smallBusiness und invoicePayment."
}
},
"description": "POST mit JSON in der Form des Entwurfs (wie draft in der Antwort): verschachtelt, etwa payer: { name, address } und vat: { rate }, oder mit denselben flachen Namen wie bei GET. Fehlende Felder und null lassen den Standard stehen, \"\" leert ein Text-, Datums- oder Betragsfeld. format und draft gehen auch hier; draft darf ein Generator-Link oder ein Entwurf als Objekt sein, etwa draft aus einer früheren Antwort."
}| date |
| string |
| Bei mode=transferred: Tag der Überweisung; bei cashHandover=past: Tag der Übergabe. |
| iban | string | IBAN des Beschenkten (optional). Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. |
| item | any |
| keys | integer | null | Anzahl der Fahrzeugschlüssel. |
| make | string | Marke des Fahrzeugs. |
| mode | string | null | Bei subject=money: transferred (schon überwiesen, Standard), transferSoon (wird überwiesen, höchstens 30 Tage nach der Unterschrift) oder cash (bar); auch ueberwiesen, wirdueberwiesen, bar. |
| donee | any |
| donor | string | Name des (ersten) Schenkers. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. |
| draft | object | string | Ein Link des Generators (…/schenkungsvertrag/#sv=…) oder nur der Teil nach #sv= als Ausgangspunkt; weitere Parameter ändern ihn. In einer GET-Adresse das # als %23 schreiben, sonst kommt der Entwurf nicht an. Ein Link mit persönlichen Angaben geht nur per POST, dort auch ein Entwurf als Objekt, etwa draft aus einer früheren Antwort. |
| model | string | Modell des Fahrzeugs. |
| money | object |
| place | string | Ort der Unterschrift. |
| plate | string | Kennzeichen; beim E-Bike das Versicherungskennzeichen eines S-Pedelecs, bei other ein Kennzeichen der Zulassungsbehörde (dann wie ein zugelassenes Fahrzeug, mit FIN) oder ein Versicherungskennzeichen, etwa eines Mofas. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. |
| right | string | null | Nur bei subject=property: none (Standard), niessbrauch oder wohnrecht, das der Schenker behält. |
| value | integer | null | Verkehrswert des Fahrzeugs oder Gegenstands in ganzen Euro. |
| amount | number | null | Geldbetrag in Euro, 1 € bis 100.000.000 €. |
| donor2 | string | Name des zweiten Schenkers; setzt zwei Schenker. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. |
| donors | object |
| estate | string | null | Nur bei marriage=guetergemeinschaft: jointAdmin (gemeinsam verwaltetes Gesamtgut, Standard: beide Ehegatten schenken je zur Hälfte), soleAdmin (der Schenker verwaltet allein, der Ehegatte stimmt zu) oder reserved (Vorbehaltsgut); auch gemeinsam, allein, vorbehaltsgut. |
| format | string | md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON. |
| clauses | object |
| custody | string | null | Bei Minderjährigen: joint (beide Eltern, Standard) oder sole (ein Elternteil allein). |
| dueDate | string | Bei mode=transferSoon: spätester Tag der Überweisung, höchstens 30 Tage nach der Unterschrift; später ist es ein Versprechen für den Notar (blocked). |
| mileage | integer | null | Kilometerstand (optional). |
| ownHalf | boolean | Zwei Schenker außerhalb des Gesamtguts: Die Hälfte des ersten Schenkers stammt aus seinem eigenen Vermögen. Ohne beide Bestätigungen ist der Vertrag nicht vollständig, und der Steuer-Check ist eine grobe Schätzung. |
| purpose | string | null | Nur bei Geld: none (Standard), wish (Verwendungswunsch) oder auflage (verpflichtend). Eine Auflage, eine Wohnung, ein Haus oder ein Grundstück zu kaufen, wird zum Wunsch. |
| signing | object |
| special | string | null | none (Standard: die Schenkung wird jetzt vollzogen), future (erst später versprochen), recurring (regelmäßige Zahlungen), onDeath (erst nach dem Tod), wholeAssets (das ganze Vermögen oder ein Bruchteil) oder mixed (mit Gegenleistung). Alles außer none ist ein Fall für Notar oder Anwalt (blocked). |
| subject | string | null | Was verschenkt wird: money (Geld; bargeld setzt zugleich mode=cash), vehicle (Fahrzeug), item (beweglicher Gegenstand), property (Immobilie) oder shares (GmbH-Anteile). property und shares gehen nur beim Notar: Die Antwort kommt dann mit blocked: true und ohne Vertragstext. |
| vehicle | object |
| accident | any | Bekannte Unfallschäden eines Fahrzeugs mit Zulassung als Text; keine heißt: keine bekannt. |
| financed | boolean | Das Fahrzeug ist finanziert oder gehört als Sicherheit der Bank: blocked. |
| handover | any |
| itemKind | string | null | household (Hausrat), jewelry (Schmuck), preciousMetal (Gold, Silber, Münzen, Edelsteine), art (Kunst), watch (Uhr) oder other (Standard). |
| marriage | string | null | Güterstand des Schenkers: unknown (Standard), single, zugewinn, guetergemeinschaft oder guetertrennung. Entscheidet über die Zustimmung des Ehegatten und die Anrechnung auf den Zugewinn. |
| ownHalf2 | boolean | Wie ownHalf, für den zweiten Schenker. |
| property | object |
| relation | string | null | Was der Beschenkte für den Schenker ist: spouse, child, stepchild, grandchild, greatGrandchild, parent, grandparent, sibling, nieceNephew, stepParent, childInLaw, parentInLaw, exSpouse, auntUncle, partner oder other; auch deutsch als Bezeichnung des Beschenkten aus Sicht des Schenkers (ehefrau, tochter, sohn, enkel, urenkel, bruder, nichte, schwiegersohn, freundin …). Wörter für den Schenker (oma, vater, tante …) beantwortet die API mit 400 relationDirection: ‚Oma schenkt Enkel‘ heißt relation=grandchild. |
| zugewinn | string | null | none (Standard), anrechnen oder nichtAnrechnen; nur an den Ehepartner in der Zugewinngemeinschaft. |
| holderAge | integer | null | Bei subject=property mit right: Alter des Berechtigten, bei mehreren des Jüngsten. |
| relation2 | string | null | Was der Beschenkte für den zweiten Schenker ist, Werte wie relation; setzt zwei Schenker. |
| taxPaidBy | string | null | donee (Standard) oder donor: Der Schenker übernimmt die Steuer, die dann als weitere Schenkung mitzählt (§ 10 Abs. 2 ErbStG). |
| twoDonors | boolean |
| identifier | string | Seriennummer, Punze oder Zertifikat des Gegenstands (optional). Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. |
| priorGifts | array | Frühere Schenkungen des ersten Schenkers an den Beschenkten, für die 10-Jahres-Regel: per GET als YYYY-MM-DD:Wert[:gezahlte Steuer], mehrere mit ; getrennt (2018-03-15:450000:3500); per POST als Liste von { date, value, taxPaid }. Höchstens 5. Wert ist der steuerliche Wert von damals, vor dem Freibetrag. |
| revocation | any | Rückforderungsrecht als Liste mit Komma: resale, predecease, insolvency, auflage, divorce (auch verkauf, vorversterben, insolvenz, auflage, scheidung). Nicht für Minderjährige und nicht für eine schon vollzogene Schenkung ohne agreedBeforeExecution. |
| ausstattung | boolean | true: Das Geld ist eine Ausstattung (§ 1624 BGB); nur Geld an ein Kind. |
| pflichtteil | string | null | none (Standard), anrechnen oder nichtAnrechnen; nur wenn der Beschenkte einen Pflichtteil haben kann (Kind, Enkel, Urenkel, Ehepartner, Elternteil). |
| priorGifts2 | array | Wie priorGifts, für den zweiten Schenker. |
| signingDate | string | Datum der Unterschrift; ohne Angabe heute (Europe/Berlin). |
| vehicleKind | string | null | car (Standard), motorcycle, camper, ebike oder other. |
| ausgleichung | string | null | none (Standard), anordnen oder ausschliessen; nur bei Kindern, Enkeln und Urenkeln. |
| basicSupport | boolean | Der Schenker bezieht Grundsicherungsgeld (früher Bürgergeld), Grundsicherung im Alter, Hilfe zur Pflege oder Sozialhilfe oder wird sie voraussichtlich brauchen; nur für einen Hinweis. |
| cashHandover | string | null | Bei mode=cash: atSigning (bei der Unterschrift, Standard) oder past (schon früher, Tag in date). |
| deregistered | boolean | Das Fahrzeug ist abgemeldet (außer Betrieb gesetzt); nur bei car, motorcycle und camper. |
| doneeAddress | string | Anschrift des Beschenkten in einer Zeile. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. |
| donorAddress | string | Anschrift des Schenkers in einer Zeile. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. |
| handoverDate | string | Bei handover=past: Tag der Übergabe. |
| handoverTime | string | Uhrzeit der Übergabe als HH:MM (optional). |
| purposeLabel | string | Der Zweck in wenigen Worten, etwa Studium. Nennt er den Erlass eines Darlehens, ist die Antwort gesperrt (subjectNotCovered): Den deckt die API noch nicht ab. |
| donor2Address | string | Anschrift des zweiten Schenkers. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. |
| propertyValue | integer | null | Nur bei subject=property: Verkehrswert der Immobilie in ganzen Euro; damit nennt die Antwort die Kosten für Notar und Grundbuch. |
| spouseConsent | any | Zustimmung des Ehegatten des Schenkers: per GET true oder false (die Zeile mit leerem Namen), per POST sein Name. Name: Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. |
| doneeBirthDate | string | Geburtsdatum des Beschenkten, ab 1900; bei Minderjährigen nötig; es bestimmt das Alter am Vertragsdatum, ohne Vertragsdatum am heutigen Tag. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. |
| donorBirthDate | string | Geburtsdatum des Schenkers (optional), ab 1900. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. |
| parentDeceased | boolean | Nur bei relation=grandchild: Der Elternteil des Enkels, also das Kind des Schenkers, ist vor der Schenkung gestorben; dann gilt der Freibetrag eines Kindes. |
| toDoneeAccount | boolean | Das Geld geht auf ein Konto des Beschenkten (Standard true); bei Minderjährigen auf ein Konto auf den Namen des Kindes, dann Pflicht. |
| donor2BirthDate | string | Geburtsdatum des zweiten Schenkers (optional), ab 1900. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. |
| purposeDeadline | string | Bei purpose=auflage: bis wann das Geld verwendet wird (optional). |
| relationChanged | boolean | Das Verhältnis hat sich seit einer früheren Schenkung geändert, etwa durch Heirat: Der Steuer-Check ist dann eine grobe Schätzung. |
| representative1 | string | Bei Minderjährigen: der gesetzliche Vertreter. donor1 oder donor2 verknüpft einen Schenker, der Elternteil ist (geht per GET); ein Name nur per POST. |
| representative2 | string | Wie representative1, für den zweiten Elternteil bei gemeinsamem Sorgerecht. |
| firstRegistration | string | Erstzulassung als Datum, ab 1900 (optional). |
| agreedBeforeExecution | boolean | Bei einer schon vollzogenen Schenkung (transferred, cashHandover=past, handover=past): Die Vereinbarungen wurden vorher getroffen. Nur dann bleiben Rückforderungsrecht, Auflage und Anrechnungen stehen, und der Vertrag hält das fest. |
{
"type": "object",
"examples": [
{
"age": 8,
"mode": "cash",
"donee": "Paul Muster",
"donor": "Erika Muster",
"place": "Köln",
"amount": 5000,
"subject": "money",
"relation": "enkel",
"cashHandover": "atSigning",
"doneeBirthDate": "2018-05-01"
}
],
"properties": {
"age": {
"anyOf": [
{
"enum": [
"adult",
"under7",
"from7",
"7bis17",
"ab7",
"erwachsen",
"minderjaehrig7bis17",
"unter7",
"volljaehrig",
""
],
"type": "string"
},
{
"type": "integer",
"maximum": 130,
"minimum": 0
},
{
"type": "string",
"pattern": "^\\d{1,3}$"
},
{
"type": "null"
}
],
"description": "adult (Standard), under7 (unter 7 Jahren) oder from7 (7 bis 17); auch das Alter in Jahren von 0 bis 130: 0 bis 6 = under7, 7 bis 17 = from7, ab 18 = adult. Ein Geburtsdatum geht vor: Es zählt das Alter am Vertragsdatum, ohne Vertragsdatum das von heute."
},
"vin": {
"type": "string",
"maxLength": 30,
"description": "Fahrzeug-Identifizierungsnummer (FIN), beim E-Bike die Rahmennummer. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"date": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Bei mode=transferred: Tag der Überweisung; bei cashHandover=past: Tag der Übergabe."
},
"iban": {
"type": "string",
"maxLength": 42,
"description": "IBAN des Beschenkten (optional). Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"item": {
"oneOf": [
{
"type": "string",
"maxLength": 300,
"description": "Beschreibung des Gegenstands, ohne Namen von Personen. Nennt sie eine Immobilie oder einen GmbH-Anteil, ist die Antwort gesperrt wie bei subject=property oder shares; Wertpapiere, Guthaben, andere Gesellschaftsanteile und den Erlass eines Darlehens deckt die API noch nicht ab (blocked, subjectNotCovered)."
},
{
"type": "object",
"properties": {
"kind": {
"enum": [
"household",
"jewelry",
"preciousMetal",
"art",
"watch",
"other",
"andere",
"edelmetall",
"gold",
"hausrat",
"kunst",
"muenzen",
"schmuck",
"silber",
"sonstige",
"uhr",
"",
null
],
"type": [
"string",
"null"
],
"description": "household (Hausrat), jewelry (Schmuck), preciousMetal (Gold, Silber, Münzen, Edelsteine), art (Kunst), watch (Uhr) oder other (Standard)."
},
"defects": {
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 500
},
"known": {
"type": [
"boolean",
"null"
],
"description": "null: noch nicht beantwortet."
}
},
"description": "Bekannte Mängel des Fahrzeugs oder Gegenstands als Text; keine heißt: keine bekannt.",
"additionalProperties": false
},
"identifier": {
"type": "string",
"maxLength": 80,
"description": "Seriennummer, Punze oder Zertifikat des Gegenstands (optional). Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"description": {
"type": "string",
"maxLength": 300,
"description": "Beschreibung des Gegenstands, ohne Namen von Personen. Nennt sie eine Immobilie oder einen GmbH-Anteil, ist die Antwort gesperrt wie bei subject=property oder shares; Wertpapiere, Guthaben, andere Gesellschaftsanteile und den Erlass eines Darlehens deckt die API noch nicht ab (blocked, subjectNotCovered)."
}
},
"additionalProperties": false
}
]
},
"keys": {
"type": [
"integer",
"null"
],
"maximum": 10,
"minimum": 0,
"description": "Anzahl der Fahrzeugschlüssel."
},
"make": {
"type": "string",
"maxLength": 60,
"description": "Marke des Fahrzeugs."
},
"mode": {
"enum": [
"transferred",
"transferSoon",
"cash",
"bar",
"bargeld",
"ueberwiesen",
"wirdueberwiesen",
"",
null
],
"type": [
"string",
"null"
],
"description": "Bei subject=money: transferred (schon überwiesen, Standard), transferSoon (wird überwiesen, höchstens 30 Tage nach der Unterschrift) oder cash (bar); auch ueberwiesen, wirdueberwiesen, bar."
},
"donee": {
"oneOf": [
{
"type": "string",
"maxLength": 120,
"description": "Name des Beschenkten. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
{
"type": "object",
"properties": {
"age": {
"anyOf": [
{
"enum": [
"adult",
"under7",
"from7",
"7bis17",
"ab7",
"erwachsen",
"minderjaehrig7bis17",
"unter7",
"volljaehrig",
""
],
"type": "string"
},
{
"type": "integer",
"maximum": 130,
"minimum": 0
},
{
"type": "string",
"pattern": "^\\d{1,3}$"
},
{
"type": "null"
}
],
"description": "adult (Standard), under7 (unter 7 Jahren) oder from7 (7 bis 17); auch das Alter in Jahren von 0 bis 130: 0 bis 6 = under7, 7 bis 17 = from7, ab 18 = adult. Ein Geburtsdatum geht vor: Es zählt das Alter am Vertragsdatum, ohne Vertragsdatum das von heute."
},
"name": {
"type": "string",
"maxLength": 120,
"description": "Name des Beschenkten. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"address": {
"type": "string",
"maxLength": 200,
"description": "Anschrift des Beschenkten in einer Zeile. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"custody": {
"enum": [
"joint",
"sole",
"allein",
"alleinig",
"gemeinsam",
"",
null
],
"type": [
"string",
"null"
],
"description": "Bei Minderjährigen: joint (beide Eltern, Standard) oder sole (ein Elternteil allein)."
},
"birthDate": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Geburtsdatum des Beschenkten, ab 1900; bei Minderjährigen nötig; es bestimmt das Alter am Vertragsdatum, ohne Vertragsdatum am heutigen Tag. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"parentDeceased": {
"type": "boolean",
"description": "Nur bei relation=grandchild: Der Elternteil des Enkels, also das Kind des Schenkers, ist vor der Schenkung gestorben; dann gilt der Freibetrag eines Kindes."
},
"representatives": {
"type": "object",
"properties": {
"rep1": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 120
},
"donor": {
"enum": [
"donor1",
"donor2",
"",
null
],
"type": [
"string",
"null"
]
}
},
"description": "Bei Minderjährigen: der gesetzliche Vertreter. donor1 oder donor2 verknüpft einen Schenker, der Elternteil ist (geht per GET); ein Name nur per POST.",
"additionalProperties": false
},
"rep2": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 120
},
"donor": {
"enum": [
"donor1",
"donor2",
"",
null
],
"type": [
"string",
"null"
]
}
},
"description": "Wie representative1, für den zweiten Elternteil bei gemeinsamem Sorgerecht.",
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
]
},
"donor": {
"type": "string",
"maxLength": 120,
"description": "Name des (ersten) Schenkers. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"draft": {
"type": [
"object",
"string"
],
"description": "Ein Link des Generators (…/schenkungsvertrag/#sv=…) oder nur der Teil nach #sv= als Ausgangspunkt; weitere Parameter ändern ihn. In einer GET-Adresse das # als %23 schreiben, sonst kommt der Entwurf nicht an. Ein Link mit persönlichen Angaben geht nur per POST, dort auch ein Entwurf als Objekt, etwa draft aus einer früheren Antwort."
},
"model": {
"type": "string",
"maxLength": 60,
"description": "Modell des Fahrzeugs."
},
"money": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Bei mode=transferred: Tag der Überweisung; bei cashHandover=past: Tag der Übergabe."
},
"iban": {
"type": "string",
"maxLength": 42,
"description": "IBAN des Beschenkten (optional). Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"mode": {
"enum": [
"transferred",
"transferSoon",
"cash",
"bar",
"bargeld",
"ueberwiesen",
"wirdueberwiesen",
"",
null
],
"type": [
"string",
"null"
],
"description": "Bei subject=money: transferred (schon überwiesen, Standard), transferSoon (wird überwiesen, höchstens 30 Tage nach der Unterschrift) oder cash (bar); auch ueberwiesen, wirdueberwiesen, bar."
},
"amount": {
"type": [
"number",
"null"
],
"maximum": 100000000,
"minimum": 1,
"description": "Geldbetrag in Euro, 1 € bis 100.000.000 €."
},
"dueDate": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Bei mode=transferSoon: spätester Tag der Überweisung, höchstens 30 Tage nach der Unterschrift; später ist es ein Versprechen für den Notar (blocked)."
},
"cashHandover": {
"enum": [
"atSigning",
"past",
"beiunterschrift",
"beiunterzeichnung",
"jetzt",
"frueher",
"vorher",
"",
null
],
"type": [
"string",
"null"
],
"description": "Bei mode=cash: atSigning (bei der Unterschrift, Standard) oder past (schon früher, Tag in date)."
},
"toDoneeAccount": {
"type": "boolean",
"description": "Das Geld geht auf ein Konto des Beschenkten (Standard true); bei Minderjährigen auf ein Konto auf den Namen des Kindes, dann Pflicht."
}
},
"additionalProperties": false
},
"place": {
"type": "string",
"maxLength": 80,
"description": "Ort der Unterschrift."
},
"plate": {
"type": "string",
"maxLength": 15,
"description": "Kennzeichen; beim E-Bike das Versicherungskennzeichen eines S-Pedelecs, bei other ein Kennzeichen der Zulassungsbehörde (dann wie ein zugelassenes Fahrzeug, mit FIN) oder ein Versicherungskennzeichen, etwa eines Mofas. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"right": {
"enum": [
"none",
"niessbrauch",
"wohnrecht",
"kein",
"keine",
"ohne",
"wohnungsrecht",
"",
null
],
"type": [
"string",
"null"
],
"description": "Nur bei subject=property: none (Standard), niessbrauch oder wohnrecht, das der Schenker behält."
},
"value": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 1,
"description": "Verkehrswert des Fahrzeugs oder Gegenstands in ganzen Euro."
},
"amount": {
"type": [
"number",
"null"
],
"maximum": 100000000,
"minimum": 1,
"description": "Geldbetrag in Euro, 1 € bis 100.000.000 €."
},
"donor2": {
"type": "string",
"maxLength": 120,
"description": "Name des zweiten Schenkers; setzt zwei Schenker. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"donors": {
"type": "object",
"properties": {
"donor1": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"description": "Name des (ersten) Schenkers. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"estate": {
"enum": [
"jointAdmin",
"soleAdmin",
"reserved",
"allein",
"gemeinsam",
"vorbehaltsgut",
"",
null
],
"type": [
"string",
"null"
],
"description": "Nur bei marriage=guetergemeinschaft: jointAdmin (gemeinsam verwaltetes Gesamtgut, Standard: beide Ehegatten schenken je zur Hälfte), soleAdmin (der Schenker verwaltet allein, der Ehegatte stimmt zu) oder reserved (Vorbehaltsgut); auch gemeinsam, allein, vorbehaltsgut."
},
"address": {
"type": "string",
"maxLength": 200,
"description": "Anschrift des Schenkers in einer Zeile. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"ownHalf": {
"type": "boolean",
"description": "Zwei Schenker außerhalb des Gesamtguts: Die Hälfte des ersten Schenkers stammt aus seinem eigenen Vermögen. Ohne beide Bestätigungen ist der Vertrag nicht vollständig, und der Steuer-Check ist eine grobe Schätzung."
},
"marriage": {
"enum": [
"unknown",
"single",
"zugewinn",
"guetergemeinschaft",
"guetertrennung",
"ledig",
"unbekannt",
"unverheiratet",
"zugewinngemeinschaft",
"",
null
],
"type": [
"string",
"null"
],
"description": "Güterstand des Schenkers: unknown (Standard), single, zugewinn, guetergemeinschaft oder guetertrennung. Entscheidet über die Zustimmung des Ehegatten und die Anrechnung auf den Zugewinn."
},
"relation": {
"enum": [
"spouse",
"child",
"stepchild",
"grandchild",
"greatGrandchild",
"parent",
"grandparent",
"sibling",
"nieceNephew",
"stepParent",
"childInLaw",
"parentInLaw",
"exSpouse",
"auntUncle",
"partner",
"other",
"bruder",
"ehefrau",
"ehegatte",
"ehegattin",
"ehemann",
"ehepartner",
"ehepartnerin",
"enkel",
"enkelin",
"enkelkind",
"exehefrau",
"exehemann",
"exfrau",
"exmann",
"freund",
"freundin",
"geschwister",
"kind",
"lebensgefaehrte",
"lebensgefaehrtin",
"neffe",
"nichte",
"partnerin",
"schwester",
"schwiegersohn",
"schwiegertochter",
"sohn",
"stiefkind",
"stiefsohn",
"stieftochter",
"tochter",
"urenkel",
"urenkelin",
"verlobte",
"verlobter",
"",
null
],
"type": [
"string",
"null"
],
"description": "Was der Beschenkte für den Schenker ist: spouse, child, stepchild, grandchild, greatGrandchild, parent, grandparent, sibling, nieceNephew, stepParent, childInLaw, parentInLaw, exSpouse, auntUncle, partner oder other; auch deutsch als Bezeichnung des Beschenkten aus Sicht des Schenkers (ehefrau, tochter, sohn, enkel, urenkel, bruder, nichte, schwiegersohn, freundin …). Wörter für den Schenker (oma, vater, tante …) beantwortet die API mit 400 relationDirection: ‚Oma schenkt Enkel‘ heißt relation=grandchild."
},
"birthDate": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Geburtsdatum des Schenkers (optional), ab 1900. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"priorGifts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$"
},
"value": {
"type": [
"integer",
"null"
],
"minimum": 1
},
"taxPaid": {
"type": [
"integer",
"null"
],
"minimum": 0
}
}
},
"maxItems": 5,
"description": "Frühere Schenkungen des ersten Schenkers an den Beschenkten, für die 10-Jahres-Regel: per GET als YYYY-MM-DD:Wert[:gezahlte Steuer], mehrere mit ; getrennt (2018-03-15:450000:3500); per POST als Liste von { date, value, taxPaid }. Höchstens 5. Wert ist der steuerliche Wert von damals, vor dem Freibetrag."
},
"relationChanged": {
"type": "boolean",
"description": "Das Verhältnis hat sich seit einer früheren Schenkung geändert, etwa durch Heirat: Der Steuer-Check ist dann eine grobe Schätzung."
}
},
"additionalProperties": false
},
"donor2": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"description": "Name des zweiten Schenkers; setzt zwei Schenker. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"estate": {
"enum": [
"jointAdmin",
"soleAdmin",
"reserved",
"allein",
"gemeinsam",
"vorbehaltsgut",
"",
null
],
"type": [
"string",
"null"
]
},
"address": {
"type": "string",
"maxLength": 200,
"description": "Anschrift des zweiten Schenkers. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"ownHalf": {
"type": "boolean",
"description": "Wie ownHalf, für den zweiten Schenker."
},
"marriage": {
"enum": [
"unknown",
"single",
"zugewinn",
"guetergemeinschaft",
"guetertrennung",
"ledig",
"unbekannt",
"unverheiratet",
"zugewinngemeinschaft",
"",
null
],
"type": [
"string",
"null"
]
},
"relation": {
"enum": [
"spouse",
"child",
"stepchild",
"grandchild",
"greatGrandchild",
"parent",
"grandparent",
"sibling",
"nieceNephew",
"stepParent",
"childInLaw",
"parentInLaw",
"exSpouse",
"auntUncle",
"partner",
"other",
"bruder",
"ehefrau",
"ehegatte",
"ehegattin",
"ehemann",
"ehepartner",
"ehepartnerin",
"enkel",
"enkelin",
"enkelkind",
"exehefrau",
"exehemann",
"exfrau",
"exmann",
"freund",
"freundin",
"geschwister",
"kind",
"lebensgefaehrte",
"lebensgefaehrtin",
"neffe",
"nichte",
"partnerin",
"schwester",
"schwiegersohn",
"schwiegertochter",
"sohn",
"stiefkind",
"stiefsohn",
"stieftochter",
"tochter",
"urenkel",
"urenkelin",
"verlobte",
"verlobter",
"",
null
],
"type": [
"string",
"null"
],
"description": "Was der Beschenkte für den zweiten Schenker ist, Werte wie relation; setzt zwei Schenker."
},
"birthDate": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Geburtsdatum des zweiten Schenkers (optional), ab 1900. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"priorGifts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$"
},
"value": {
"type": [
"integer",
"null"
],
"minimum": 1
},
"taxPaid": {
"type": [
"integer",
"null"
],
"minimum": 0
}
}
},
"maxItems": 5,
"description": "Wie priorGifts, für den zweiten Schenker."
},
"relationChanged": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"estate": {
"enum": [
"jointAdmin",
"soleAdmin",
"reserved",
"allein",
"gemeinsam",
"vorbehaltsgut",
"",
null
],
"type": [
"string",
"null"
],
"description": "Nur bei marriage=guetergemeinschaft: jointAdmin (gemeinsam verwaltetes Gesamtgut, Standard: beide Ehegatten schenken je zur Hälfte), soleAdmin (der Schenker verwaltet allein, der Ehegatte stimmt zu) oder reserved (Vorbehaltsgut); auch gemeinsam, allein, vorbehaltsgut."
},
"format": {
"enum": [
"md",
"json"
],
"type": "string",
"default": "md",
"description": "md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON."
},
"clauses": {
"type": "object",
"properties": {
"purpose": {
"type": "object",
"properties": {
"mode": {
"enum": [
"none",
"wish",
"auflage",
"keine",
"verwendungswunsch",
"wunsch",
"",
null
],
"type": [
"string",
"null"
],
"description": "Nur bei Geld: none (Standard), wish (Verwendungswunsch) oder auflage (verpflichtend). Eine Auflage, eine Wohnung, ein Haus oder ein Grundstück zu kaufen, wird zum Wunsch."
},
"label": {
"type": "string",
"maxLength": 80,
"description": "Der Zweck in wenigen Worten, etwa Studium. Nennt er den Erlass eines Darlehens, ist die Antwort gesperrt (subjectNotCovered): Den deckt die API noch nicht ab."
},
"deadline": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Bei purpose=auflage: bis wann das Geld verwendet wird (optional)."
}
},
"additionalProperties": false
},
"zugewinn": {
"enum": [
"none",
"anrechnen",
"nichtAnrechnen",
"keine",
"",
null
],
"type": [
"string",
"null"
],
"description": "none (Standard), anrechnen oder nichtAnrechnen; nur an den Ehepartner in der Zugewinngemeinschaft."
},
"taxPaidBy": {
"enum": [
"donee",
"donor",
"beschenkter",
"schenker",
"",
null
],
"type": [
"string",
"null"
],
"description": "donee (Standard) oder donor: Der Schenker übernimmt die Steuer, die dann als weitere Schenkung mitzählt (§ 10 Abs. 2 ErbStG)."
},
"revocation": {
"type": "object",
"properties": {
"resale": {
"type": "boolean"
},
"auflage": {
"type": "boolean"
},
"divorce": {
"type": "boolean"
},
"insolvency": {
"type": "boolean"
},
"predecease": {
"type": "boolean"
}
},
"description": "Rückforderungsrecht als Liste mit Komma: resale, predecease, insolvency, auflage, divorce (auch verkauf, vorversterben, insolvenz, auflage, scheidung). Nicht für Minderjährige und nicht für eine schon vollzogene Schenkung ohne agreedBeforeExecution.",
"additionalProperties": false
},
"ausstattung": {
"type": "boolean",
"description": "true: Das Geld ist eine Ausstattung (§ 1624 BGB); nur Geld an ein Kind."
},
"pflichtteil": {
"enum": [
"none",
"anrechnen",
"nichtAnrechnen",
"keine",
"",
null
],
"type": [
"string",
"null"
],
"description": "none (Standard), anrechnen oder nichtAnrechnen; nur wenn der Beschenkte einen Pflichtteil haben kann (Kind, Enkel, Urenkel, Ehepartner, Elternteil)."
},
"ausgleichung": {
"enum": [
"none",
"anordnen",
"ausschliessen",
"keine",
"",
null
],
"type": [
"string",
"null"
],
"description": "none (Standard), anordnen oder ausschliessen; nur bei Kindern, Enkeln und Urenkeln."
},
"spouseConsent": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 120
},
"enabled": {
"type": "boolean"
}
},
"description": "Zustimmung des Ehegatten des Schenkers: per GET true oder false (die Zeile mit leerem Namen), per POST sein Name. Name: Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData.",
"additionalProperties": false
},
"agreedBeforeExecution": {
"type": "boolean",
"description": "Bei einer schon vollzogenen Schenkung (transferred, cashHandover=past, handover=past): Die Vereinbarungen wurden vorher getroffen. Nur dann bleiben Rückforderungsrecht, Auflage und Anrechnungen stehen, und der Vertrag hält das fest."
}
},
"additionalProperties": false
},
"custody": {
"enum": [
"joint",
"sole",
"allein",
"alleinig",
"gemeinsam",
"",
null
],
"type": [
"string",
"null"
],
"description": "Bei Minderjährigen: joint (beide Eltern, Standard) oder sole (ein Elternteil allein)."
},
"dueDate": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Bei mode=transferSoon: spätester Tag der Überweisung, höchstens 30 Tage nach der Unterschrift; später ist es ein Versprechen für den Notar (blocked)."
},
"mileage": {
"type": [
"integer",
"null"
],
"maximum": 2000000,
"minimum": 0,
"description": "Kilometerstand (optional)."
},
"ownHalf": {
"type": "boolean",
"description": "Zwei Schenker außerhalb des Gesamtguts: Die Hälfte des ersten Schenkers stammt aus seinem eigenen Vermögen. Ohne beide Bestätigungen ist der Vertrag nicht vollständig, und der Steuer-Check ist eine grobe Schätzung."
},
"purpose": {
"enum": [
"none",
"wish",
"auflage",
"keine",
"verwendungswunsch",
"wunsch",
"",
null
],
"type": [
"string",
"null"
],
"description": "Nur bei Geld: none (Standard), wish (Verwendungswunsch) oder auflage (verpflichtend). Eine Auflage, eine Wohnung, ein Haus oder ein Grundstück zu kaufen, wird zum Wunsch."
},
"signing": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Datum der Unterschrift; ohne Angabe heute (Europe/Berlin)."
},
"place": {
"type": "string",
"maxLength": 80,
"description": "Ort der Unterschrift."
}
},
"additionalProperties": false
},
"special": {
"enum": [
"none",
"future",
"recurring",
"onDeath",
"wholeAssets",
"mixed",
"gegenleistung",
"gemischt",
"gesamtesvermoegen",
"jetzt",
"keine",
"monatlich",
"nachdemtod",
"raten",
"spaeter",
"todesfall",
"versprechen",
"",
null
],
"type": [
"string",
"null"
],
"description": "none (Standard: die Schenkung wird jetzt vollzogen), future (erst später versprochen), recurring (regelmäßige Zahlungen), onDeath (erst nach dem Tod), wholeAssets (das ganze Vermögen oder ein Bruchteil) oder mixed (mit Gegenleistung). Alles außer none ist ein Fall für Notar oder Anwalt (blocked)."
},
"subject": {
"enum": [
"money",
"vehicle",
"item",
"property",
"shares",
"anteile",
"auto",
"bargeld",
"ebike",
"fahrzeug",
"gegenstand",
"geld",
"geschaeftsanteile",
"gmbhanteile",
"grundstueck",
"haus",
"immobilie",
"motorrad",
"pedelec",
"sache",
"schmuck",
"uhr",
"wohnmobil",
"wohnung",
"",
null
],
"type": [
"string",
"null"
],
"description": "Was verschenkt wird: money (Geld; bargeld setzt zugleich mode=cash), vehicle (Fahrzeug), item (beweglicher Gegenstand), property (Immobilie) oder shares (GmbH-Anteile). property und shares gehen nur beim Notar: Die Antwort kommt dann mit blocked: true und ohne Vertragstext."
},
"vehicle": {
"type": "object",
"properties": {
"vin": {
"type": "string",
"maxLength": 30,
"description": "Fahrzeug-Identifizierungsnummer (FIN), beim E-Bike die Rahmennummer. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"keys": {
"type": [
"integer",
"null"
],
"maximum": 10,
"minimum": 0,
"description": "Anzahl der Fahrzeugschlüssel."
},
"kind": {
"enum": [
"car",
"motorcycle",
"camper",
"ebike",
"other",
"andere",
"auto",
"motorrad",
"pedelec",
"pkw",
"sonstige",
"spedelec",
"wohnmobil",
"",
null
],
"type": [
"string",
"null"
],
"description": "car (Standard), motorcycle, camper, ebike oder other."
},
"make": {
"type": "string",
"maxLength": 60,
"description": "Marke des Fahrzeugs."
},
"model": {
"type": "string",
"maxLength": 60,
"description": "Modell des Fahrzeugs."
},
"plate": {
"type": "string",
"maxLength": 15,
"description": "Kennzeichen; beim E-Bike das Versicherungskennzeichen eines S-Pedelecs, bei other ein Kennzeichen der Zulassungsbehörde (dann wie ein zugelassenes Fahrzeug, mit FIN) oder ein Versicherungskennzeichen, etwa eines Mofas. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"papers": {
"type": "object",
"properties": {
"serviceBook": {
"type": "boolean"
},
"registrationI": {
"type": "boolean"
},
"registrationII": {
"type": "boolean"
},
"inspectionReport": {
"type": "boolean"
}
},
"additionalProperties": false
},
"defects": {
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 500
},
"known": {
"type": [
"boolean",
"null"
],
"description": "null: noch nicht beantwortet."
}
},
"description": "Bekannte Mängel des Fahrzeugs oder Gegenstands als Text; keine heißt: keine bekannt.",
"additionalProperties": false
},
"mileage": {
"type": [
"integer",
"null"
],
"maximum": 2000000,
"minimum": 0,
"description": "Kilometerstand (optional)."
},
"accident": {
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 500
},
"known": {
"type": [
"boolean",
"null"
],
"description": "null: noch nicht beantwortet."
}
},
"description": "Bekannte Unfallschäden eines Fahrzeugs mit Zulassung als Text; keine heißt: keine bekannt.",
"additionalProperties": false
},
"financed": {
"type": "boolean",
"description": "Das Fahrzeug ist finanziert oder gehört als Sicherheit der Bank: blocked."
},
"deregistered": {
"type": "boolean",
"description": "Das Fahrzeug ist abgemeldet (außer Betrieb gesetzt); nur bei car, motorcycle und camper."
},
"firstRegistration": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Erstzulassung als Datum, ab 1900 (optional)."
}
},
"additionalProperties": false
},
"accident": {
"oneOf": [
{
"type": "string"
},
{
"type": "boolean"
}
],
"description": "Bekannte Unfallschäden eines Fahrzeugs mit Zulassung als Text; keine heißt: keine bekannt."
},
"financed": {
"type": "boolean",
"description": "Das Fahrzeug ist finanziert oder gehört als Sicherheit der Bank: blocked."
},
"handover": {
"oneOf": [
{
"enum": [
"atSigning",
"past",
"alreadyHeld",
"beiunterschrift",
"beiunterzeichnung",
"jetzt",
"bereitsimbesitz",
"frueher",
"schonimbesitz",
"schonuebergeben",
"",
null
],
"type": [
"string",
"null"
],
"description": "Bei Fahrzeug und Gegenstand: atSigning (bei der Unterschrift, Standard), past (schon übergeben) oder alreadyHeld (der Beschenkte hat es schon)."
},
{
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Bei handover=past: Tag der Übergabe."
},
"mode": {
"enum": [
"atSigning",
"past",
"alreadyHeld",
"beiunterschrift",
"beiunterzeichnung",
"jetzt",
"bereitsimbesitz",
"frueher",
"schonimbesitz",
"schonuebergeben",
"",
null
],
"type": [
"string",
"null"
],
"description": "Bei Fahrzeug und Gegenstand: atSigning (bei der Unterschrift, Standard), past (schon übergeben) oder alreadyHeld (der Beschenkte hat es schon)."
},
"time": {
"type": "string",
"pattern": "^(\\d{2}:\\d{2})?$",
"description": "Uhrzeit der Übergabe als HH:MM (optional)."
}
},
"additionalProperties": false
}
]
},
"itemKind": {
"enum": [
"household",
"jewelry",
"preciousMetal",
"art",
"watch",
"other",
"andere",
"edelmetall",
"gold",
"hausrat",
"kunst",
"muenzen",
"schmuck",
"silber",
"sonstige",
"uhr",
"",
null
],
"type": [
"string",
"null"
],
"description": "household (Hausrat), jewelry (Schmuck), preciousMetal (Gold, Silber, Münzen, Edelsteine), art (Kunst), watch (Uhr) oder other (Standard)."
},
"marriage": {
"enum": [
"unknown",
"single",
"zugewinn",
"guetergemeinschaft",
"guetertrennung",
"ledig",
"unbekannt",
"unverheiratet",
"zugewinngemeinschaft",
"",
null
],
"type": [
"string",
"null"
],
"description": "Güterstand des Schenkers: unknown (Standard), single, zugewinn, guetergemeinschaft oder guetertrennung. Entscheidet über die Zustimmung des Ehegatten und die Anrechnung auf den Zugewinn."
},
"ownHalf2": {
"type": "boolean",
"description": "Wie ownHalf, für den zweiten Schenker."
},
"property": {
"type": "object",
"properties": {
"right": {
"enum": [
"none",
"niessbrauch",
"wohnrecht",
"kein",
"keine",
"ohne",
"wohnungsrecht",
"",
null
],
"type": [
"string",
"null"
],
"description": "Nur bei subject=property: none (Standard), niessbrauch oder wohnrecht, das der Schenker behält."
},
"value": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 1,
"description": "Nur bei subject=property: Verkehrswert der Immobilie in ganzen Euro; damit nennt die Antwort die Kosten für Notar und Grundbuch."
},
"holderAge": {
"type": [
"integer",
"null"
],
"maximum": 110,
"minimum": 0,
"description": "Bei subject=property mit right: Alter des Berechtigten, bei mehreren des Jüngsten."
}
},
"additionalProperties": false
},
"relation": {
"enum": [
"spouse",
"child",
"stepchild",
"grandchild",
"greatGrandchild",
"parent",
"grandparent",
"sibling",
"nieceNephew",
"stepParent",
"childInLaw",
"parentInLaw",
"exSpouse",
"auntUncle",
"partner",
"other",
"bruder",
"ehefrau",
"ehegatte",
"ehegattin",
"ehemann",
"ehepartner",
"ehepartnerin",
"enkel",
"enkelin",
"enkelkind",
"exehefrau",
"exehemann",
"exfrau",
"exmann",
"freund",
"freundin",
"geschwister",
"kind",
"lebensgefaehrte",
"lebensgefaehrtin",
"neffe",
"nichte",
"partnerin",
"schwester",
"schwiegersohn",
"schwiegertochter",
"sohn",
"stiefkind",
"stiefsohn",
"stieftochter",
"tochter",
"urenkel",
"urenkelin",
"verlobte",
"verlobter",
"",
null
],
"type": [
"string",
"null"
],
"description": "Was der Beschenkte für den Schenker ist: spouse, child, stepchild, grandchild, greatGrandchild, parent, grandparent, sibling, nieceNephew, stepParent, childInLaw, parentInLaw, exSpouse, auntUncle, partner oder other; auch deutsch als Bezeichnung des Beschenkten aus Sicht des Schenkers (ehefrau, tochter, sohn, enkel, urenkel, bruder, nichte, schwiegersohn, freundin …). Wörter für den Schenker (oma, vater, tante …) beantwortet die API mit 400 relationDirection: ‚Oma schenkt Enkel‘ heißt relation=grandchild."
},
"zugewinn": {
"enum": [
"none",
"anrechnen",
"nichtAnrechnen",
"keine",
"",
null
],
"type": [
"string",
"null"
],
"description": "none (Standard), anrechnen oder nichtAnrechnen; nur an den Ehepartner in der Zugewinngemeinschaft."
},
"holderAge": {
"type": [
"integer",
"null"
],
"maximum": 110,
"minimum": 0,
"description": "Bei subject=property mit right: Alter des Berechtigten, bei mehreren des Jüngsten."
},
"relation2": {
"enum": [
"spouse",
"child",
"stepchild",
"grandchild",
"greatGrandchild",
"parent",
"grandparent",
"sibling",
"nieceNephew",
"stepParent",
"childInLaw",
"parentInLaw",
"exSpouse",
"auntUncle",
"partner",
"other",
"bruder",
"ehefrau",
"ehegatte",
"ehegattin",
"ehemann",
"ehepartner",
"ehepartnerin",
"enkel",
"enkelin",
"enkelkind",
"exehefrau",
"exehemann",
"exfrau",
"exmann",
"freund",
"freundin",
"geschwister",
"kind",
"lebensgefaehrte",
"lebensgefaehrtin",
"neffe",
"nichte",
"partnerin",
"schwester",
"schwiegersohn",
"schwiegertochter",
"sohn",
"stiefkind",
"stiefsohn",
"stieftochter",
"tochter",
"urenkel",
"urenkelin",
"verlobte",
"verlobter",
"",
null
],
"type": [
"string",
"null"
],
"description": "Was der Beschenkte für den zweiten Schenker ist, Werte wie relation; setzt zwei Schenker."
},
"taxPaidBy": {
"enum": [
"donee",
"donor",
"beschenkter",
"schenker",
"",
null
],
"type": [
"string",
"null"
],
"description": "donee (Standard) oder donor: Der Schenker übernimmt die Steuer, die dann als weitere Schenkung mitzählt (§ 10 Abs. 2 ErbStG)."
},
"twoDonors": {
"type": "boolean"
},
"identifier": {
"type": "string",
"maxLength": 80,
"description": "Seriennummer, Punze oder Zertifikat des Gegenstands (optional). Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"priorGifts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$"
},
"value": {
"type": [
"integer",
"null"
],
"minimum": 1
},
"taxPaid": {
"type": [
"integer",
"null"
],
"minimum": 0
}
}
},
"maxItems": 5,
"description": "Frühere Schenkungen des ersten Schenkers an den Beschenkten, für die 10-Jahres-Regel: per GET als YYYY-MM-DD:Wert[:gezahlte Steuer], mehrere mit ; getrennt (2018-03-15:450000:3500); per POST als Liste von { date, value, taxPaid }. Höchstens 5. Wert ist der steuerliche Wert von damals, vor dem Freibetrag."
},
"revocation": {
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"enum": [
"resale",
"predecease",
"insolvency",
"auflage",
"divorce"
]
}
}
],
"description": "Rückforderungsrecht als Liste mit Komma: resale, predecease, insolvency, auflage, divorce (auch verkauf, vorversterben, insolvenz, auflage, scheidung). Nicht für Minderjährige und nicht für eine schon vollzogene Schenkung ohne agreedBeforeExecution."
},
"ausstattung": {
"type": "boolean",
"description": "true: Das Geld ist eine Ausstattung (§ 1624 BGB); nur Geld an ein Kind."
},
"pflichtteil": {
"enum": [
"none",
"anrechnen",
"nichtAnrechnen",
"keine",
"",
null
],
"type": [
"string",
"null"
],
"description": "none (Standard), anrechnen oder nichtAnrechnen; nur wenn der Beschenkte einen Pflichtteil haben kann (Kind, Enkel, Urenkel, Ehepartner, Elternteil)."
},
"priorGifts2": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$"
},
"value": {
"type": [
"integer",
"null"
],
"minimum": 1
},
"taxPaid": {
"type": [
"integer",
"null"
],
"minimum": 0
}
}
},
"maxItems": 5,
"description": "Wie priorGifts, für den zweiten Schenker."
},
"signingDate": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Datum der Unterschrift; ohne Angabe heute (Europe/Berlin)."
},
"vehicleKind": {
"enum": [
"car",
"motorcycle",
"camper",
"ebike",
"other",
"andere",
"auto",
"motorrad",
"pedelec",
"pkw",
"sonstige",
"spedelec",
"wohnmobil",
"",
null
],
"type": [
"string",
"null"
],
"description": "car (Standard), motorcycle, camper, ebike oder other."
},
"ausgleichung": {
"enum": [
"none",
"anordnen",
"ausschliessen",
"keine",
"",
null
],
"type": [
"string",
"null"
],
"description": "none (Standard), anordnen oder ausschliessen; nur bei Kindern, Enkeln und Urenkeln."
},
"basicSupport": {
"type": "boolean",
"description": "Der Schenker bezieht Grundsicherungsgeld (früher Bürgergeld), Grundsicherung im Alter, Hilfe zur Pflege oder Sozialhilfe oder wird sie voraussichtlich brauchen; nur für einen Hinweis."
},
"cashHandover": {
"enum": [
"atSigning",
"past",
"beiunterschrift",
"beiunterzeichnung",
"jetzt",
"frueher",
"vorher",
"",
null
],
"type": [
"string",
"null"
],
"description": "Bei mode=cash: atSigning (bei der Unterschrift, Standard) oder past (schon früher, Tag in date)."
},
"deregistered": {
"type": "boolean",
"description": "Das Fahrzeug ist abgemeldet (außer Betrieb gesetzt); nur bei car, motorcycle und camper."
},
"doneeAddress": {
"type": "string",
"maxLength": 200,
"description": "Anschrift des Beschenkten in einer Zeile. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"donorAddress": {
"type": "string",
"maxLength": 200,
"description": "Anschrift des Schenkers in einer Zeile. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"handoverDate": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Bei handover=past: Tag der Übergabe."
},
"handoverTime": {
"type": "string",
"pattern": "^(\\d{2}:\\d{2})?$",
"description": "Uhrzeit der Übergabe als HH:MM (optional)."
},
"purposeLabel": {
"type": "string",
"maxLength": 80,
"description": "Der Zweck in wenigen Worten, etwa Studium. Nennt er den Erlass eines Darlehens, ist die Antwort gesperrt (subjectNotCovered): Den deckt die API noch nicht ab."
},
"donor2Address": {
"type": "string",
"maxLength": 200,
"description": "Anschrift des zweiten Schenkers. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"propertyValue": {
"type": [
"integer",
"null"
],
"maximum": 100000000,
"minimum": 1,
"description": "Nur bei subject=property: Verkehrswert der Immobilie in ganzen Euro; damit nennt die Antwort die Kosten für Notar und Grundbuch."
},
"spouseConsent": {
"oneOf": [
{
"type": "boolean"
},
{
"type": "string"
}
],
"description": "Zustimmung des Ehegatten des Schenkers: per GET true oder false (die Zeile mit leerem Namen), per POST sein Name. Name: Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"doneeBirthDate": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Geburtsdatum des Beschenkten, ab 1900; bei Minderjährigen nötig; es bestimmt das Alter am Vertragsdatum, ohne Vertragsdatum am heutigen Tag. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"donorBirthDate": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Geburtsdatum des Schenkers (optional), ab 1900. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"parentDeceased": {
"type": "boolean",
"description": "Nur bei relation=grandchild: Der Elternteil des Enkels, also das Kind des Schenkers, ist vor der Schenkung gestorben; dann gilt der Freibetrag eines Kindes."
},
"toDoneeAccount": {
"type": "boolean",
"description": "Das Geld geht auf ein Konto des Beschenkten (Standard true); bei Minderjährigen auf ein Konto auf den Namen des Kindes, dann Pflicht."
},
"donor2BirthDate": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Geburtsdatum des zweiten Schenkers (optional), ab 1900. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData."
},
"purposeDeadline": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Bei purpose=auflage: bis wann das Geld verwendet wird (optional)."
},
"relationChanged": {
"type": "boolean",
"description": "Das Verhältnis hat sich seit einer früheren Schenkung geändert, etwa durch Heirat: Der Steuer-Check ist dann eine grobe Schätzung."
},
"representative1": {
"type": "string",
"description": "Bei Minderjährigen: der gesetzliche Vertreter. donor1 oder donor2 verknüpft einen Schenker, der Elternteil ist (geht per GET); ein Name nur per POST."
},
"representative2": {
"type": "string",
"description": "Wie representative1, für den zweiten Elternteil bei gemeinsamem Sorgerecht."
},
"firstRegistration": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
"description": "Erstzulassung als Datum, ab 1900 (optional)."
},
"agreedBeforeExecution": {
"type": "boolean",
"description": "Bei einer schon vollzogenen Schenkung (transferred, cashHandover=past, handover=past): Die Vereinbarungen wurden vorher getroffen. Nur dann bleiben Rückforderungsrecht, Auflage und Anrechnungen stehen, und der Vertrag hält das fest."
}
},
"description": "POST mit JSON: flach mit denselben Namen wie bei GET oder verschachtelt wie draft in der Antwort (Schenker unter donors.donor1 und donors.donor2, nie als Liste). Fehlende Felder und null lassen den Standard stehen, \"\" leert ein Text- oder Datumsfeld. Persönliche Angaben gehen nur hier. format und draft gehen auch im Body."
}