API Documentation
rechner-hub-api — Version 2026.1
Getting Started
Nine endpoints, all POST, all JSON. Send your input, get a calculation back. Every response follows the same envelope:
{
"success": true,
"data": { ... },
"input_echo": { ... },
"meta": {
"tax_year": 2026,
"disclaimer": "..."
}
}input_echo mirrors back the values that were actually used, including defaults you didn't send. Handy for debugging.
Money values come back as strings, not floats — "2372.83" instead of 2372.83. No floating-point rounding surprises when dealing with tax math.
Errors
If something goes wrong, you get:
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed.",
"details": [
{
"field": "bruttolohn",
"message": "Input should be greater than or equal to 0",
"type": "greater_than_equal"
}
]
}
}| Status | Meaning |
|---|---|
| 400 | Input didn't validate. Check details for specifics. |
| 403 | Auth problem. Shouldn't happen through RapidAPI. |
| 422 | JSON parsing failed or wrong content type. |
| 500 | Something broke on our end. |
POST /v1/brutto-netto
Gross-to-net salary calculation for Germany.
Request Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| bruttolohn | number | yes | — | Monthly gross salary in EUR (0–1,000,000) |
| steuerklasse | int | yes | — | Tax class (1–6) |
| bundesland | string | no | NRW | German state — matters for church tax rate |
| kirchensteuer | bool | no | false | Church tax member? |
| kinder | int | no | 0 | Number of children (nursing care insurance) |
| geburtsjahr | int | no | 1985 | Birth year (childless surcharge if born after 1967) |
| kv_zusatzbeitrag | number | no | 2.9 | Health insurance additional rate in % (2026 avg: 2.9%) |
| tax_year | int | no | 2026 | Tax year (2024–2026) |
Minimal Example
{"bruttolohn": 3500, "steuerklasse": 1}Response Fields
Employee side: brutto_monat, brutto_jahr, netto_monat, netto_jahr, abzuege_gesamt_monat. Tax breakdown: lohnsteuer_monat, soli_monat, kirchensteuer_monat. Social security: kv_an_monat, pv_an_monat, rv_an_monat, av_an_monat, sv_gesamt_monat.
Employer side: ag_kv, ag_pv, ag_rv, ag_av, ag_umlage, ag_gesamt, ag_kosten_gesamt.
Rates applied: kv_satz, pv_satz, rv_satz, av_satz.
Scenarios: 5 what-if calculations at different gross salary levels (±500, ±1,000, +5,000 EUR).
POST /v1/grunderwerbsteuer
Property transfer tax and closing costs for real estate purchases in Germany.
Request Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| kaufpreis | number | yes | — | Purchase price in EUR (1,000–100,000,000) |
| bundesland | string | yes | — | German state where the property is located |
| mit_makler | bool | no | false | Include broker commission? |
| makler_prozent | number | no | 3.57 | Broker commission in % incl. VAT |
Minimal Example
{"kaufpreis": 300000, "bundesland": "Bayern"}Response Fields
kaufpreis, bundesland, steuersatz, grunderwerbsteuer (the tax itself). notarkosten, notar_prozent, grundbuchkosten, grundbuch_prozent (notary + land registry). maklerkosten, makler_prozent (0 if no broker). nebenkosten_gesamt, nebenkosten_prozent, kaufpreis_gesamt (totals).
bundeslaender_vergleich — array of all 16 states with their tax rate and what the transfer tax would be for your purchase price. Sorted by rate.
POST /v1/minijob
Determines employment type (Minijob up to 556 EUR, Midijob 556–2,000 EUR, regular) and calculates social security contributions.
Request Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| bruttogehalt | number | yes | — | Monthly gross income in EUR (0–10,000) |
| kinderlos_ueber_23 | bool | no | false | Childless and over 23? (extra nursing insurance surcharge) |
| bundesland | string | no | Berlin | Only matters for Saxony (different nursing insurance split) |
Examples
{"bruttogehalt": 550}
{"bruttogehalt": 1200, "kinderlos_ueber_23": true, "bundesland": "Sachsen"}Response Fields
status ("minijob", "midijob", or "volle_sv"). brutto, netto, sv_abzuege. kv_beitrag, pv_beitrag, rv_beitrag, av_beitrag (contribution breakdown). stunden_mindestlohn — hours per month at minimum wage (13.90 EUR/h).
vergleich_plus_100, vergleich_minus_100 — what happens to your net at ±100 EUR gross. hinweis — German explanation text about the employment status.
POST /v1/abfindung
Calculates tax on severance pay with and without the “fifth rule” (§34 EStG German income tax code).
Request Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| abfindung | number | yes | — | Severance amount in EUR (0–10,000,000) |
| jahresbrutto | number | yes | — | Regular annual gross salary (without severance) in EUR |
| steuerklasse | int | no | 1 | Tax class (1–6) |
| bundesland | string | no | NRW | German state (for church tax rate) |
| kirchenmitglied | bool | no | false | Church tax member? |
| kinder | number | no | 0 | Child tax allowances (0, 0.5, 1, ...) |
Minimal Example
{"abfindung": 50000, "jahresbrutto": 60000}Response Fields
fuenftelregel: est, soli, kirchensteuer, steuer_gesamt, netto, effektiv_prozent — tax with the fifth rule (reduced taxation for extraordinary income).
normal: Same fields — regular taxation without the fifth rule.
ersparnis — Tax savings from applying the fifth rule in EUR.
POST /v1/erbschaftsteuer
Inheritance and gift tax under ErbStG. Tax classes I–III, personal allowances, and comparison across all relationship types.
Request Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| wert | number | yes | — | Value of inheritance/gift in EUR (0–1,000,000,000) |
| verwandtschaft | string | yes | — | Relationship, e.g. “Kind”, “Ehegatte / Lebenspartner”, “Geschwister” |
| modus | string | no | erbschaft | “erbschaft” (inheritance) or “schenkung” (gift) |
| alter_kind | int | no | null | Child’s age (0–27, for care allowance in inheritance) |
Minimal Example
{"wert": 500000, "verwandtschaft": "Kind"}Response Fields
steuerklasse (I/II/III), freibetrag (allowance), versorgungsfreibetrag (care allowance), freibetrag_gesamt, steuerpflichtiger_erwerb (taxable amount). steuersatz, steuer, effektiv_prozent, netto, modus_label.
vergleich — array with tax calculation for all 12 relationship types.
POST /v1/weihnachtsgeld
Calculates net bonus payment (Christmas bonus, annual bonus). Compares standard taxation vs. sixth-rule (§39b EStG).
Request Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| monatslohn | number | yes | — | Regular monthly gross salary in EUR |
| sonderzahlung | number | yes | — | Gross bonus payment in EUR |
| steuerklasse | int | no | 1 | Tax class (1–6) |
| kinder | number | no | 0 | Child tax allowances |
| kirchensteuer | bool | no | false | Church tax member? |
| bundesland | string | no | NRW | German state |
Minimal Example
{"monatslohn": 4000, "sonderzahlung": 4000}Response Fields
brutto_sonderzahlung.
regulaer: lohnsteuer, soli, kirchensteuer, sv_abzuege, netto — standard withholding (employer method since 2025).
sechstelregel: Same fields — recoverable via tax return.
ersparnis, sechstel_anwendbar.
POST /v1/steuerklassen
Compares tax class combinations III/V vs. IV/IV for married couples.
Request Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| brutto_partner_1 | number | yes | — | Monthly gross partner 1 in EUR |
| brutto_partner_2 | number | yes | — | Monthly gross partner 2 in EUR |
| bundesland | string | no | NRW | German state |
| kinder | int | no | 0 | Number of children |
| kirchensteuer | bool | no | false | Church tax member? |
Minimal Example
{"brutto_partner_1": 5000, "brutto_partner_2": 3000}Response Fields
variante_3_5: partner_1 and partner_2 each with steuerklasse, brutto, netto, lohnsteuer, soli, kirchensteuer, sv_gesamt. Plus haushalt_netto.
variante_4_4: Same structure.
differenz_monat, differenz_jahr, empfehlung (recommendation text in German), warnungen (warnings).
POST /v1/einkommensteuer
Calculates income tax from taxable income (zvE) according to §32a EStG. Supports spousal splitting, solidarity surcharge, and church tax.
Request Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| zve | number | yes | — | Taxable income in EUR (0–10,000,000) |
| zusammenveranlagung | bool | no | false | True for spousal splitting (§32a para. 5) |
| kirchensteuer | bool | no | false | Church tax member? |
| bundesland | string | no | NRW | German state (for church tax rate 8%/9%) |
| tax_year | int | no | 2026 | Tax year (2024–2026) |
Minimal Example
{"zve": 50000}Response Fields
einkommensteuer, solidaritaetszuschlag, kirchensteuer, steuer_gesamt — taxes in EUR. grenzsteuersatz — marginal tax rate on the next euro (percent). durchschnittssteuersatz — average tax rate (income tax / taxable income). belastungsquote — total tax burden (income tax + soli + church / taxable income).
tarifzone — zone (1–5), name, and satz of the current tax bracket.
grundfreibetrag — basic tax-free allowance in EUR (doubled for splitting).
POST /v1/sparplan
Savings plan and compound interest calculator with German capital gains tax (25% + 5.5% solidarity surcharge + optional church tax).
Request Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| startkapital | number | no | 0 | Lump sum investment at start in EUR |
| monatliche_sparrate | number | no | 0 | Monthly savings amount in EUR |
| laufzeit_jahre | int | no | 10 | Investment period in years (1–100) |
| rendite_pa | number | no | 7 | Expected annual return in percent |
| sparerpauschbetrag | number | no | 1000 | Annual tax-free allowance (1,000 single / 2,000 joint) |
| kirchensteuer_satz | number | no | 0 | 0 (none), 0.08 (BY/BW), 0.09 (other states) |
| dynamik_pa | number | no | 0 | Annual increase of savings rate in percent |
Minimal Example
{"monatliche_sparrate": 500, "laufzeit_jahre": 20}Response Fields
endkapital_brutto, endkapital_netto — final capital before/after taxes. einzahlungen_gesamt — total contributions. ertraege_brutto, ertraege_netto — returns before/after taxes. steuer_gesamt — total capital gains tax paid. steuersatz_effektiv — effective tax rate incl. solidarity surcharge and church tax.
jahresverlauf — array with yearly development (einzahlungen_kumuliert, ertraege_kumuliert, steuer_kumuliert, kapital_brutto, kapital_netto, sparrate_monat).
Bundesland Values
Use exact German spelling (case-sensitive):
Baden-WürttembergBayernBerlinBrandenburgBremenHamburgHessenMecklenburg-VorpommernNiedersachsenNordrhein-WestfalenRheinland-PfalzSaarlandSachsenSachsen-AnhaltSchleswig-HolsteinThüringenLegal
Calculations follow the official 2026 BMF tax formulas (Programmablaufpläne), SGB IV social security rates, GrEStG property tax rates, and ErbStG inheritance tax rates. This is a calculator, not tax advice. Always consult a tax professional (Steuerberater) for binding assessments.