Reference: Company car
Taxable benefit under the 1% rule, for electric and hybrid cars with a quarter or half of the list price.
Calculates the monthly taxable benefit (geldwerter Vorteil) of a company car (Dienstwagen) with the list price method: 1% for private trips and 0.03% per kilometer of distance for the commute, or 0.002% per trip with individual valuation. For electric and hybrid vehicles, the calculator applies the reduction that matches the acquisition date: a quarter or half of the list price, or the battery deduction for older vehicles. It deducts payments made by the employee.
Endpoints and calls
#| Access | Call |
|---|---|
| REST API | GET /hr/dienstwagen |
| SDK JavaScript | qk.hr.dienstwagen(…) |
| SDK Python | qk.hr.dienstwagen(…) |
| CLI | qk dienstwagen --listenpreis 58900 --antrieb elektro --anschaffung 2025-09-01 --entfernung-km 18 |
| MCP tool | hr_dienstwagen |
Parameters
#| Name | Type | Required | Default | Allowed | Description |
|---|---|---|---|---|---|
listenpreis | number | yes | 1 to 10000000 | Gross list price in euros at first registration, including optional extras and VAT | |
antrieb | text | no | verbrenner | verbrenner, elektro, hybrid | Drive type. elektro for fully electric vehicles, hybrid for plug-in hybrids. Default: verbrenner |
anschaffung | date (YYYY-MM-DD) | no | Date the employer acquired the car. Required for elektro and hybrid | ||
ueberlassung | date (YYYY-MM-DD) | no | Date the car was first provided to an employee for private use, if later than the acquisition (optional). For cars acquired by December 31, 2023, this date then counts (BMF circular of November 5, 2021, margin nos. 21 and 22). | ||
entfernung_km | number | no | 0 to 1000 | Distance between home and first place of work in full kilometers (optional) | |
fahrten_monat | integer | no | 0 to 31 | Days with trips to the first place of work in the month (optional). The API then calculates the commute with individual valuation at 0.002% per trip instead of 0.03% per month. Only together with entfernung_km | |
zuzahlung_monat | number | no | 0 to 100000 | Employee payment per month in euros, such as a usage fee (optional). Reduces the taxable benefit down to zero | |
co2_g_km | number | no | 0 to 1000 | CO2 emissions in grams per kilometer, only for hybrid (optional) | |
reichweite_km | number | no | 0 to 2000 | Purely electric range in kilometers, only for hybrid (optional) | |
batterie_kwh | number | no | 0 to 500 | Battery capacity in kWh, only for the battery deduction on older vehicles (optional) | |
datum | date (YYYY-MM-DD) | no | heute | Month of use as a date. Defaults to today. |
The API rejects unknown parameters with unbekannter_parameter. In addition there are format and trennzeichen, see CSV.
Response fields
#| Field | Type | Meaning |
|---|---|---|
datensatz | Text | Dataset id |
datum | Date | Requested effective date |
antrieb | Text | verbrenner (combustion engine), elektro (electric) or hybrid |
anschaffung | Date or null | Date the employer acquired the car |
listenpreis | Decimal | Gross list price in euros |
ueberlassung | Date or null | Date the car was first provided for private use, if given |
minderung | Object or null | Reduction applied for electric or hybrid vehicles, with legal basis and source |
batterie_abzug | Decimal | Deduction for the battery system in euros |
bemessungsgrundlage | Decimal | List price after reduction, rounded down to full €100 |
privatnutzung_monat | Decimal | Taxable benefit for private trips per month |
entfernung_km | Integer or null | Distance between home and first place of work in full kilometers |
co2_g_km | Decimal or null | CO2 emissions in grams per kilometer, as passed in |
reichweite_km | Decimal or null | Electric range in kilometers, as passed in |
batterie_kwh | Decimal or null | Battery capacity in kWh, as passed in |
fahrten_wohnung_monat | Decimal or null | Taxable benefit for the commute per month |
fahrten_monat | Integer or null | Trips to the first place of work in the month, when calculated with individual valuation |
fahrten_wohnung_monat_einzel | Decimal or null | Commute with individual valuation: 0.002% per kilometer of distance and trip |
arbeitsweg_methode | Text or null | pauschal (flat rate, 0.03%) or einzelbewertung (individual valuation), null without entfernung_km |
zuzahlung_monat | Decimal | Employee payment per month, deducted from the benefit |
geldwerter_vorteil_monat | Decimal | Total taxable benefit per month |
rechtsgrundlage | Text | Law or ordinance |
quelle | Object | Title and URL of the source the value is based on |
quellen | List | All legal provisions the response is based on, with title and URL |
regeln | List | Rules from the law in sentences, each with its legal provision |
hinweise | List | Limits of the values or the calculation, in sentences |
stand | Date | Date of the last check against the source |
lizenz | Text | Terms of use for the values |
zitat | Text | Ready-made sentence for citing, with value, validity, legal basis and source |
datenstand | Text | Id of the data snapshot: date and sequence number of the last changelog entry (/v1/aenderungen) affecting this dataset. The same datenstand means unchanged content, useful for auditors and for comparing two requests |
Components
#For each effective date, the response contains the components that apply, each with id, name, gruppe, einheit, wert, gueltig_ab, rechtsgrundlage, quelle, hinweis and naechster_wert. The werte object holds the same list in short form. A component is missing if it does not yet or no longer apply on that date.
| id | Component | Unit | First level | Current value | End |
|---|---|---|---|---|---|
privatnutzung | Private trips, flat rate per calendar month | percent of the gross list price | January 1, 2015 | 1% of the gross list price | open |
fahrten_wohnung_taetigkeitsstaette | Trips between home and first place of work, per kilometer of distance and calendar month | percent of the gross list price | January 1, 2015 | 0.03% of the gross list price | open |
einzelbewertung_je_fahrt | Individual valuation per trip between home and first place of work, per kilometer of distance | percent of the gross list price | January 1, 2015 | 0.002% of the gross list price | open |
einzelbewertung_hoechstens_fahrten | Individual valuation, maximum number of trips to count per calendar year | trips | January 1, 2015 | 180 trips | open |
familienheimfahrt | Trip home to the family with a second household for work, per kilometer of distance and trip | percent of the gross list price | January 1, 2015 | 0.002% of the gross list price | open |
Example
#Call with listenpreis = 58900, antrieb = elektro, anschaffung = 2025-09-01, entfernung_km = 18. The response is generated by the same code that answers the API.
Error cases
#| Status | Code | When |
|---|---|---|
| 400 | parameter_fehlt | if listenpreis is missing |
| 400 | ungueltiger_parameter | wrong format or a value outside: listenpreis (1 to 10000000); antrieb (verbrenner, elektro, hybrid); entfernung_km (0 to 1000); fahrten_monat (0 to 31); zuzahlung_monat (0 to 100000); co2_g_km (0 to 1000); reichweite_km (0 to 2000); batterie_kwh (0 to 500) |
| 400 | unbekannter_parameter | a parameter this dataset does not have |
| 404 | kein_wert | outside the coverage (use from 2015) or the value for this period has not been promulgated yet |
| 401, 429 | see errors | all error codes |
Schema for MCP
#This is how the MCP server describes the arguments of the tool hr_dienstwagen:
Source and freshness
#| Item | Content |
|---|---|
| Source | § 6 Abs. 1 Nr. 4 and § 8 Abs. 2 EStG, R 8.1 LStR, BMF circulars |
| License | Calculation under the cited provisions. Use under the Quellenkontor terms of use. |
| Updates | when the law changes |
| Coverage | Germany, use from 2015 |
| Last checked | September 24, 2026 |
| Next expected change | electric car rules apply to purchases until 2030, changes only by law |
Something missing or unclear? Write to us and we will extend the docs.