Veröffentlicht 2026-08-01

Werbungskosten, § 35a & Co.: Find Tax Deductions in Your Bank Statements

Calculator, receipts and forms on a desk

Tax season comes around. And once again, the money you could deduct is hiding somewhere in twelve months of bank statements. Fifty euros here, a contractor bill there, the donation you set up and forgot about.

Pinke marks tax-relevant transactions while it imports your data. It also puts each one into a German deduction category — the box your tax form wants it in. Here is what those categories mean, and how you work through them.

What happens when you import your bank statements

Every transaction you import runs through the rules engine. A rule is a pattern plus what to do when it matches. Some of Pinke's built-in rules already know about taxes:

  • a payment to a charity → tax relevant, category Spenden
  • an invoice with "Handwerk" in the text → maybe relevant, Handwerkerleistungen
  • your pharmacy → maybe relevant, Krankheitskosten
  • a work software subscription → maybe relevant, Werbungskosten

The rule sets two things. A tax flag: "tax relevant" (pretty sure) or "maybe relevant" (worth a look). And a deduction category. Everything with a flag shows up on the Tax Overview, grouped by year.

Rules guess. They are right often, not always. So the overview is built for correcting them, not just for reading.

Walk through one year in the app

Say you paid a plumber €890 in March. The invoice says €600 labor, €290 parts. Here is the whole flow:

  1. Open Tax Overview. It opens on the last complete year. To switch, click the year buttons in the filter bar at the top.
  2. Find the row: 2026-03-14 · Sanitär Wagner · −890,00 €. It has an orange maybe badge.
  3. The badge means "Pinke thinks so, you decide". Click it once and it turns into a red tax badge — confirmed. If it does not belong here at all, click the ✕ at the end of the row and it drops out.
  4. Check the Deduction type dropdown. Pinke pre-selected Handwerkerleistungen. If that is wrong, pick another one from the list.
  5. Click the dash in the Tax-relevant € column. A small field opens. Type 600 — the labor part only, because material is not deductible. Click somewhere else and it saves.
  6. Click the dash under Note and type Rohrbruch Bad, Arbeitslohn lt. Rechnung. Your future self, sitting in front of the tax form in nine months, will thank you.
  7. Set Status to reviewed. The "Needs review" counter at the top goes down by one. When it hits zero, you are done for the year.

Above the table you now see a small table called By deduction type. Your €600 sits under Handwerkerleistungen, with an estimate of ≈ 120,00 €. That is the 20% the law gives you back.

The counters at the top do the rest of the bookkeeping: how many items are tagged, the original total, the tax-relevant total you entered, how many still need review.

The categories, in plain words

Werbungskosten (§ 9 EStG) — costs for doing your job: work software, tools, a work phone contract. Careful: the tax office already gives every employee €1,230 for free (the Arbeitnehmer-Pauschbetrag). Single receipts only pay off once you are above that.

Handwerkerleistungen (§ 35a Abs. 3 EStG) — 20% of a contractor's labor costs, materials excluded, up to €1,200 less tax per year. You must pay by bank transfer. Cash gets you nothing.

Haushaltsnahe Dienstleistungen (§ 35a Abs. 2 EStG) — cleaning, gardening, snow removal. Also 20%, here up to €4,000 per year.

Spenden (§ 10b EStG) — donations. Up to €300 per payment, your bank statement is proof enough. Above that, ask the organization for a donation receipt.

Kinderbetreuung (§ 10 Abs. 1 Nr. 5 EStG) — childcare. 80% counts, up to €4,800 per child per year.

Krankheitskosten (§ 33 EStG) — medical costs. They only start helping above your personal "reasonable burden", which depends on your income and family. Pinke collects them and shows no estimate.

Versicherungen / Vorsorge (§ 10 EStG) — liability, disability and similar insurance. There are caps, and your social insurance usually eats them up first. Again: collect yes, estimate no.

Sonstige — the catch-all. Something is clearly tax-related but fits nowhere above? Park it here and check it later.

Estimates only where the law does simple math

Pinke shows an estimated saving for three categories only: Handwerkerleistungen, haushaltsnahe Dienstleistungen and Kinderbetreuung. In those, the law is a formula — a percentage and a cap. Nothing to guess.

Everywhere else the result depends on lump sums, income thresholds or caps that a finance app cannot know. So we show a dash instead of a number. That is on purpose. A confident wrong number costs you more than an honest gap. 🤷

Note that estimates run on the amounts you typed, not on the full transaction. The plumber charged €890, you entered €600, the estimate uses €600.

Getting it out of Pinke

When the year is done, click Export CSV in the top right of the Tax Overview. You get one file per year: date, merchant, category, deduction type, original amount, the amount you entered, status and your notes, plus a totals row at the bottom. It is semicolon-separated with German number formatting, so Excel opens it without an import wizard.

Two columns come from somewhere else: Beleg no. and Beleg VAT. If you upload received e-invoices (XRechnung or ZUGFeRD files) on the Belege page and link them to the payment, their invoice number and VAT amount land in the export too. A small receipt icon then appears next to the merchant name in the table, and the "With Beleg" counter tells you how many deductions have a real invoice behind them and how many are still only a bank line.

What you actually get out of this

If the rules guessed wrong, fix them once for good: the Manage rules button in the transaction detail view on Ingest takes you to Rules, where you can set the deduction type for every future payment to that merchant.

The point is not that Pinke does your taxes. It does not. The point is that in March, when the tax form asks about household services, you do not go digging through statements. You open one page, filter for the year, and read off the number.

Your data stays in your account, by the way. Nothing is sold, nothing is handed on.

Pinke does not give tax advice. Categories and estimates are a rough guide — what counts is what your tax office or tax advisor says.

Häufig gestellte Fragen

How do I find tax deductible expenses in my bank statements?

Import your statements into Pinke and its rules engine flags tax-relevant lines as you go, marking each one "tax relevant" or "maybe relevant" and assigning a German deduction category. The Tax Overview page then lists them grouped by year, so you correct the guesses instead of searching twelve months of statements by hand.

Which German tax deduction categories does Pinke track?

Werbungskosten (§ 9 EStG), Handwerkerleistungen (§ 35a Abs. 3 EStG), haushaltsnahe Dienstleistungen (§ 35a Abs. 2 EStG), Spenden (§ 10b EStG), Kinderbetreuung (§ 10 Abs. 1 Nr. 5 EStG), Krankheitskosten (§ 33 EStG), Versicherungen/Vorsorge (§ 10 EStG) and a catch-all called Sonstige. Import rules set a first guess; you can change it per row.

How much of a contractor invoice is tax deductible in Germany?

20% of the labor costs (not materials) reduce your tax directly, up to €1,200 per year (§ 35a Abs. 3 EStG). You have to pay by bank transfer — cash does not count.

When do donations need a donation receipt?

For donations up to €300 per payment, your bank statement is enough proof. Above that you need a formal donation receipt (Zuwendungsbestätigung) from the organization (§ 10b EStG).

Why does Pinke not estimate tax savings for medical costs or insurance?

Those depend on your income (the reasonable burden threshold) or on caps that your social insurance often uses up already. Pinke collects the amounts but shows no estimate — a wrong number is worse than no number.

Verwandel deine Kontoauszüge in Erkenntnisse.