No open-source tool can file a German tax return

No open-source tool can file a German tax return

We run a small German holding on automation. Bank data, invoicing, receipt capture, correspondence and document rendering are scripted, and the marginal cost of most administrative work is close to zero. The corporate tax return is the exception, and the reason is a licence clause rather than a missing feature. ELSTER, the German tax administration's electronic filing system, is reachable from your own software only through ERiC, a closed C library supplied in machine-readable form whose terms forbid passing the usage right on. That puts it outside the GPL, and the one serious free ELSTER client has been archived since 28 January 2019.

Nothing here is legal or tax advice. Your Steuerberater and Anwalt decide before anything binds.

The decision

We keep the Steuerberater and put the automation into the document layer around them: receipt capture at the point of spend, e-invoice XML archiving under §14b UStG, CAMT bank feeds, and a DATEV export the adviser imports without re-keying. No self-hosted ledger, no self-filing, no payroll box. Two numbers carry the call. Self-filing a FY2025 corporate return moves the deadline from 1 March 2027 to 31 July 2026, because §149 Abs. 3 AO (the Abgabenordnung, the German fiscal code governing how tax is assessed and collected) grants the extension only where a tax adviser is engaged, and seven months of calendar is worth more than any licence fee saved. The §27 KStG declaration on the steuerliches Einlagekonto is the second: it fails silently, hardens permanently, and is caught by no accounting program at any price. If ERiC's current licence drops the sublicensing bar in §4 Abs. 2, or a maintained free ELSTER client appears with two filing seasons behind it, we reopen this.

The licence wall: ERiC and the GPL

Third-party programs do not talk to ELSTER directly. They link against ERiC, the ELSTER Rich Client, a C library the Bayerisches Landesamt für Steuern distributes free of charge to registered software makers, which validates the data, encrypts it and transmits it.

The received wisdom is that ERiC's licence forbids redistribution. That is wrong, and the correction changes which projects may legally use it. The Softwarehersteller-Lizenzvertrag grants, in §4 Abs. 1, an unlimited, non-exclusive right to integrate ERiC into your own software products and distribute them together as a single product. §4 Abs. 2 forbids the onward transfer of that right to third parties and any sublicensing beyond §4 Abs. 1. §2 Abs. 2 supplies ERiC "in maschinenlesbarer Form", in machine-readable form, with no source for the closed parts.

Those two clauses break copyleft. The GPL requires every downstream recipient to receive the same rights to redistribute and modify, ERiC's terms forbid granting them, and the absence of source defeats the source-offer requirement. So a GPL or AGPL project cannot ship ERiC, while a permissively licensed project (MIT, Apache-2.0) or a proprietary in-house tool can. The workable copyleft pattern is that each user registers as a software maker and fetches ERiC themselves, with the project shipping only the glue, which is friction enough to explain why the free ELSTER story is thin.

It is thin. Geierlein (AGPL-3.0, 129 stars) is the only serious free ELSTER client anybody names, and its owner archived it on 28 January 2019 with the notice: "This project is now abandoned. The reason for this is that the backend servers, which are used by this project, will no longer be available from mid January 2019 on." Seven and a half years later, kivitendo still documents Geierlein as its ELSTER path.

Less is blocked than people assume. Mein ELSTER, the free browser portal, carries the Umsatzsteuer-Voranmeldung (the advance VAT return), the annual VAT return, the Körperschaftsteuererklärung (KSt 1, corporate income tax) and the Gewerbesteuererklärung (GewSt 1 A, trade tax). We read the full form catalogue on 25 August 2026. For a small GmbH the advance VAT return is a manual re-key of numbers the accounting tool already computed. The E-Bilanz is the exception: §5b EStG requires the balance sheet and profit-and-loss account, "jeweils einschließlich der unverdichteten Kontennachweise mit Kontensalden", each including unaggregated account records with account balances, in an officially prescribed data set, and the portal offers only Anlage EÜR and Anlage 13a under profit determination. Closing that gap costs €0.00 with myebilanz BASIS, which is free and transmits, or €34.95 net per financial year for PLUS.

One flag stays in the text. The licence copy we read is dated 19 April 2018, and the live ELSTER developer pages plus the current ElsterTransfer end-user agreement carry the same framing and an identically worded sublicensing bar today.

The certificate wall: payroll and the ITSG test

Payroll adds a second wall, and it is a certificate rather than a licence. German payroll reports run on two rails. Wage tax goes to the Finanzamt through ELSTER, so ERiC applies exactly as above. Social insurance goes down the DEÜV rail to the employee's health insurer, and §28a SGB IV permits that transmission only "aus systemgeprüften Programmen oder mittels systemgeprüfter maschinell erstellter Ausfüllhilfen", from system-tested programs or system-tested fill-in aids. There is no third channel.

The ITSG, the IT service body of the statutory health insurers, runs that test, and its own page sets the terms. The test is free of charge. It runs as an initial examination against a requirements catalogue, then a pilot phase in which at least two real users operate the program, then annual quality-assurance examinations. The certificate and its product-modification identifier are valid for one year, until the next examination. That annual treadmill is what a volunteer project cannot promise, and a lapsed certificate makes the software unlawful on the first day of the lapse, mid-month, for every employer running it.

The arithmetic itself is public. The Federal Ministry of Finance publishes the Programmablaufplan, the official wage-tax algorithm, every year, most recently on 12 November 2025 for 2026. Anyone may implement the maths. Nobody outside the certified set may transmit the result.

The market shows the cost of that barrier. PayFit, a French payroll company that raised €254 million and opened a Berlin office, could not hold the German market: PayFit GmbH, Berlin, has been in liquidation since 15 February 2023 per the commercial register, and payfit.com/de/ returned HTTP 404 when we checked it on 25 August 2026. The open-source negatives are clean. Odoo publishes no l10n_de_hr_payroll. OCA/l10n-germany holds thirteen modules and zero payroll modules. Frappe HR has a payroll engine with no German localisation.

One lawful path buys no payroll software at all. The SV-Meldeportal, run by the ITSG, is itself a certified fill-in aid at €36 net for a 36-month registration covering one employer number, and Mein ELSTER handles the wage-tax declaration free. Between them they transmit and compute nothing: no gross-to-net, no wage tax, no contribution shares, no payslip. Certified cloud payroll starts at €12.90 a month net, so the saving is under €150 a year against an unbounded error.

Tools that say open source and are not

Two of the tools most often recommended to a German owner asking for free accounting software are not open source, and the licence text is unambiguous once you read it instead of the README.

Tool What the licence file says The cap it carries Ledger
Akaunting 3.2 Business Source License 1.1, converting to GPLv3 four years after each version's publication Production use only up to 2 users or 1 company or 1,000 invoices, no white-label removal of branding, no use as an accounting service for third parties Double-entry bookkeeping is a separately paid app at USD 72 a year
Invoice Ninja v5 Elastic License 2.0 No hosted or managed service for third parties, and "you may not move, change, disable, or circumvent the license key functionality" None. No general ledger, no chart of accounts, no double entry
kivitendo 4.1.0 GPL-2.0-or-later in the file headers, no root licence file, so GitHub reports the repository as unlicensed None Full double entry, with SKR03 and SKR04
Kimai 2.65.0 AGPL-3.0 None Not applicable, time recording only

As of 25 August 2026, read from each project's own licence file and release tags on that date.

Invoice Ninja is the sharper case, because the gated feature is the compliance feature. It has the broadest e-invoicing coverage in this field, including XRechnung, ZUGFeRD and Peppol UBL, and on a self-hosted instance that support requires a paid licence key and prepaid credits, with e-invoices relayed through the vendor's own servers. The one capability a German company will legally need from 2028 sits behind the gate.

Akaunting's cap would not bite a one-person holding at two users and low double-digit invoices a year. The blocker there is that double entry, which a GmbH must keep, is the paid app, and there is no German localisation, no DATEV export, no e-invoicing and no ELSTER support at any tier.

What broke in November 2025

German banks switched off MT940 and MT942, the SWIFT statement formats every desktop finance tool has read for twenty years, during November 2025, replacing them with the ISO 20022 formats camt.053 and camt.052. The change was set by the lifecycle of Die Deutsche Kreditwirtschaft, the German banking industry's standardisation body, and each payment service provider picked its own switch day. The older camt version 02 went at the same time, replaced by version 08.

GnuCash holds its own FinTS product registration, so the user files no paperwork with the banking industry, which is why it is the tool most often recommended to a German user. That advantage survives. The claim that it works out of the box does not. From GnuCash's own German wiki, last edited 22 January 2026:

"Seit November 2025 ist es mit den Standardeinstellungen nicht mehr bei allen Banken möglich die Transaktionsdaten abzurufen, da sie das alte Datenformat 'MT940' eingestellt und durch CAMT.052.001.08 ersetzt haben."

Since November 2025 the default settings no longer retrieve transaction data at every bank. The remedy is AqBanking 6.7.9beta or later, a manual per-account toggle of "Prefer Statement Download as CAMT", and a re-run of step 17 of the setup wizard. There is no in-app prompt, and the symptom is an empty download, which is the failure a person notices last. Build against camt.053.001.08 and treat MT940 as dead, including any bank or fintech export still offering it as its DATEV-compatible format. Check the minimum AqBanking version your tool enforces: KMyMoney requires 6.8.4 and Gwenhywfar 5.14.1 in its build files, GnuCash pins no minimum. One date stays flagged: trade sources report 23 November 2025 as the day MT940 and MT942 ceased to be a Deutsche Kreditwirtschaft standard, and we could not confirm that on a Deutsche Kreditwirtschaft publication.

The tool nobody names

The strongest German-fit open-source accounting tool is one almost nobody outside Germany mentions. kivitendo is GPL-2.0-or-later, stated in each file's header, with no root licence file, which is why GitHub shows the repository as unlicensed. It carries 119 stars, which understates it badly, because its user base is German small and medium companies rather than GitHub. Release 4.1.0 landed on 14 August 2026, 4.0.0 on 17 November 2025.

What it ships in core, verified by reading the source tree rather than a feature page: SKR03 and SKR04 charts of accounts as SQL, a DATEV EXTF Buchungsstapel exporter, XRechnung 3.0 and ZUGFeRD 2.2 generation, incoming e-invoice ingestion with a validator (which is what the receiving duty in force since 1 January 2025 requires), CAMT.053 import, UStVA computation, and a GDPdU/IDEA audit-export module for the data handover a Betriebsprüfung asks for.

Tool Licence SKR03 / SKR04 DATEV export XRechnung / ZUGFeRD Files to ELSTER
kivitendo 4.1.0 GPL-2.0-or-later Both, in core Core, EXTF header version 510 Both, generate and ingest No
Odoo Community 19 LGPL-3.0 Both, in l10n_de No, community add-on at self-declared beta Peppol and the XRechnung CIUS, free No
ERPNext v16 GPL-3.0 Core Separate GPL-3 partner app Separate partner app, CII syntax only No
Dolibarr 24 GPL-3.0+ Present, SKR04 documented as broken Paid add-on Paid add-on No
GnuCash 5.16 GPL-2.0-or-later No No No No
Akaunting 3.2 BSL 1.1 No No No No
Invoice Ninja v5 Elastic 2.0 No ledger at all No Broadest coverage in the field, licence-key gated No

As of August 2026. The kivitendo, Akaunting and Invoice Ninja rows were re-read on 25 August 2026. The Odoo, ERPNext, Dolibarr and GnuCash rows come from our own tooling review of 24 August 2026, which decoded each licence file and read each capability from source. The last column is uniformly no, for the licence reason above.

The weaknesses, stated plainly. kivitendo has a period lock and not a true Festschreibung, the write-once property §146 Abs. 4 AO requires so that a booking cannot be altered without the original staying visible. Its ELSTER path is the archived Geierlein, it does no E-Bilanz, and its 447 KB of documentation returns zero hits for GoBD, Festschreibung, IDEA or GDPdU although the code implements the audit export. The stack is PostgreSQL, Perl and Apache FastCGI, with an Ansible playbook and no official Docker image. Its DATEV header is written as version 510 against a current 700, which nobody in our research confirmed as still accepted.

The project makes no GoBD compliance claim of its own. Its developers describe the scope as Buchungsvorbereitung für die Fibu, booking preparation for the accounting, with the remainder solved by a DATEV export plus a Steuerberater. That is the accurate frame for every tool in the table: the good German open-source accounting tool exists, its own authors scope it correctly, and they put the adviser at the end of the chain.

Where open source wins: time recording

One category has no government gate, and open source wins it cleanly. The duty is real. In case C-55/18 (14 May 2019) the Court of Justice of the European Union held that member states must require an objective, reliable and accessible system for measuring each worker's daily working time. Germany passed no implementing law, so on 13 September 2022, in case 1 ABR 22/21, the Bundesarbeitsgericht held that German employers are already obliged to record working time under §3 Abs. 2 Nr. 1 ArbSchG. §16 Abs. 2 ArbZG adds a two-year retention for hours beyond the ordinary eight-hour day. None of it names a technology, and nothing is transmitted to a government system, so no certificate exists to expire.

Electronic recording is still not mandatory. The Federal Ministry of Labour published a draft on 18 June 2026 that would require it, with fines up to €50,000, and as of today the draft has not reached cabinet or the Bundestag. As drafted it permanently exempts employers with up to ten employees, so a 5-to-10-person firm in Rhein-Main keeps the paper option even if the bill passes unchanged.

Kimai is the pick. AGPL-3.0, 4,939 stars, version 2.65.0 released 11 August 2026, releases roughly every one to two weeks. Official Docker images, a documented compose file, a JSON REST API with Bearer-token authentication and a public OpenAPI specification at /api/doc, so an agent can create a user, log time and pull a report without a human touching the interface. Self-hosted it costs €0.00, and the Working Time plugin at €299 a year net adds overtime accounts, absences and a monthly per-user PDF sign-off, which turns a log into a record somebody approved.

The bus factor belongs in the open. Kimai has been effectively one maintainer, Kevin Papst in Vienna, since 2018. The mitigation is that the data sits in a MariaDB you own and the API exports all of it, so leaving is a script rather than a migration project. solidtime (AGPL-3.0) is the runner-up on API quality, with a published OpenAPI 3.1 specification, and it is still pre-1.0 after two and a half years with no overtime, break-deduction or monthly sign-off module.

The reason that has nothing to do with software

A GmbH may lawfully file its own returns. §2 Abs. 2 StBerG regulates assistance in tax matters "in fremden Angelegenheiten", in the affairs of others, so a company's own return never engages the prohibition, and §34 Abs. 1 AO makes the legal representative responsible for the company's own tax duties. Permission is not the interesting part.

The deadline is. §149 Abs. 2 AO gives seven months after the end of the calendar year. §149 Abs. 3 AO extends that to "spätestens bis zum letzten Tag des Monats Februar ... des zweiten auf den Besteuerungszeitraum folgenden Kalenderjahres", the last day of February of the second following calendar year, and grants the extension only where a person within §§3 and 4 StBerG, meaning a tax adviser, prepares the return. For FY2025 the two dates are 31 July 2026 self-filed and 28 February 2027 with an adviser, and because 28 February 2027 is a Sunday the general rule in §108 Abs. 3 AO moves it to Monday 1 March 2027. Seven months of calendar, forfeited by a software decision.

The wall What blocks it What it costs to get past
VAT, corporate tax and trade tax returns ERiC licence, no maintained free client €0.00, re-keyed by hand into Mein ELSTER
E-Bilanz under §5b EStG ERiC, plus no E-Bilanz form in the browser portal €0.00 (myebilanz BASIS) to €34.95 net per financial year (PLUS)
Offenlegung under §325 HGB §11 Abs. 2 URV prescribes XML €25.00 statutory for a small company, plus 1.75 ct per visible character if you deliver anything else
Payroll on the DEÜV rail §28a SGB IV, certified programs only From €12.90 a month net for certified cloud payroll, or an adviser at €25 to €30 per employee per month
Working-time record Nothing. No certification gate €0.00 self-hosted

As of 25 August 2026. Statutory fee from the Kostenverzeichnis to §4 JVKostG (no. 1421). Conversion charge from the Unternehmensregister operator's own price list, plus VAT. Payroll prices are list prices net of VAT, and the adviser range is market practice against the §34 StBVV bands, our estimate.

The §27 KStG trap is the one that would cost real money. When a shareholder puts money into a GmbH beyond the registered share capital, that is the shareholder's own money going in rather than profit, and paying it back out later should not be taxed as a dividend. German law tracks this with a running tally called the steuerliches Einlagekonto, the tax contribution account, a ledger of shareholder money that went in and can come back out tax-free. §27 Abs. 2 KStG requires a declaration for the separate assessment of that account at the end of every financial year, and each year's assessment is the basis for the next, so an error propagates forward and hardens as each year becomes final. §27 Abs. 5 Satz 2 provides that where no certificate was issued by the day the assessment is announced, the capital repayment is deemed certified at zero euros, and Satz 3 states that correcting or issuing such certificates afterwards is not permitted. Nothing goes wrong at the time. It surfaces years later, when what the owner believed was a tax-free return of his own capital is reclassified as a taxable distribution and withholding tax is collected after the fact. No accounting software of any licence catches it.

The publication duty is cheaper and purely mechanical. §325 HGB sends the annual accounts to the Unternehmensregister within one year of the balance-sheet date, and §11 Abs. 2 URV prescribes XML as the transmission format. §15 Abs. 1 URV lets the register operator convert anything else for you and bill for it, at 1.75 cents per visible character excluding spaces plus €20.00 per graphic plus VAT, on top of a statutory fee of €18.50 for a micro-entity, €25.00 for a small company and €55.00 for a medium one. A 7,000-character filing delivered as PDF therefore costs about €122.50 of conversion on top of €25.00, where XML costs the €25.00 alone. Missing the deadline triggers an Ordnungsgeld of €2,500 to €25,000 under §335 HGB after a six-week warning, reduced on late compliance to €500 for a micro-entity and €1,000 for a small company.

What this means for you

For an owner running a 5-to-150-person company in Frankfurt or the wider Rhein-Main region:

  • Nobody sells you a legal replacement for your Steuerberater at any licence. Every free tool computes the numbers and stops at the transmission, and the certified commercial tools cost €12.90 to €35 a month rather than a salary, so the software line was never the expensive one.
  • Check what your bank feed reads before your next month-end. A desktop tool quietly returning empty statement downloads since late 2025 is showing the MT940 switch-off, and the fix is one setting per account.
  • The automation that pays in a German company sits around the adviser: receipts captured at the point of spend, incoming e-invoice XML archived unaltered, bank data on camt.053, and one clean export the adviser imports without re-keying. We build that layer from €4,900 net, fixed price with the scope agreed first: Process automation.
  • Where the question runs wider than the finance function, the operating-model review that maps every recurring administrative process and rebuilds the ones AI can carry starts at €9,500 net: AI in operations.

For a Steuerberater or a bank contact reading over the owner's shoulder:

  • A client asking about kivitendo is not asking to leave you. Its developers scope it as Buchungsvorbereitung and its DATEV export writes header version 510. Whether your system accepts that version is the first question, and it settles the conversation faster than a feature comparison.
  • The §27 KStG declaration and the §325 HGB publication are the two obligations no client-side software raises. Both fail quietly and one of them fails permanently.

For an operator or founder weighing a self-hosted stack:

  • Time recording is a genuine win at €0.00, and e-invoice generation and validation are solved in permissively licensed open source under Apache-2.0 and MIT, independent of any accounting tool.
  • Everything upstream of a transmission is fair game. Everything at a transmission is licensed, certified, or both.

Where we could be wrong

  • The ERiC licence copy we read is dated 19 April 2018. If the current Softwarehersteller-Lizenzvertrag has dropped the §4 Abs. 2 sublicensing bar, a GPL project could ship ERiC and the central claim here falls. The live ElsterTransfer end-user agreement still carries an identical bar, which is why we read it as unchanged.
  • The 23 November 2025 date for the formal withdrawal of MT940 and MT942 as a Deutsche Kreditwirtschaft standard is trade-sourced and unconfirmed on a Deutsche Kreditwirtschaft publication. The November 2025 switch itself is confirmed by GnuCash's own documentation and by multiple bank notices.
  • kivitendo writes DATEV header version 510 against a current 700. If advisers' systems have stopped accepting 510, the tool with the strongest German feature set here loses its main practical claim, and anyone bringing books in-house lands on Odoo Community plus community add-ons at self-declared beta.
  • If the working-time bill passes without the permanent exemption for employers up to ten employees, the €0.00 answer in time recording becomes €299 a year for the plugin that produces a signed monthly record.

FAQ

Can a GmbH file its own tax return?

Yes, and it usually should not. §2 Abs. 2 StBerG regulates assistance in the tax affairs of others, so a company's own return is outside the prohibition, and §34 Abs. 1 AO makes the Geschäftsführer responsible for discharging the company's tax duties. The cost is the deadline: §149 Abs. 3 AO grants the extension to the last day of February of the second following year only where a tax adviser prepares the return, so a self-filed FY2025 return falls due 31 July 2026 instead of 1 March 2027. The E-Bilanz also cannot be filed from the browser portal, so a separate program is needed regardless.

Is GnuCash usable with a German bank in 2026?

Yes, after one manual change per account. German banks switched MT940 off during November 2025 in favour of camt.052.001.08, and GnuCash's own German wiki records that the default settings no longer retrieve transaction data at every bank. The fix is AqBanking 6.7.9beta or later, ticking "Prefer Statement Download as CAMT" for each account, and re-running step 17 of the setup wizard. There is no in-app warning, so what most people see is a download that returns nothing.

Is there free payroll software for a small German company?

No, and none is coming. §28a SGB IV permits social-insurance reporting only from system-tested programs, the ITSG certificate is valid for one year and requires a pilot with at least two real users before it is issued, and wage tax runs through the same ERiC library that excludes copyleft. The SV-Meldeportal at €36 net for 36 months plus the free Mein ELSTER forms is a lawful transmission path that computes nothing: no gross-to-net, no contribution shares, no payslip. Certified cloud payroll starts at €12.90 a month net.

What is the steuerliches Einlagekonto?

It is a running tally of money a shareholder put into the company beyond the registered share capital, so that paying it back later is not taxed as a dividend. §27 Abs. 2 KStG requires a separate declaration at the end of every financial year, and each year's assessment is the basis for the next. If no certificate was issued by the day the assessment is announced, §27 Abs. 5 Satz 2 deems the repayment certified at zero euros, and Satz 3 forbids correcting or issuing the certificate afterwards. Nothing goes wrong at the time, which is why it is the obligation to hand to a professional.

Further reading

Sources

Nothing here is legal or tax advice. Your Steuerberater and Anwalt decide before anything binds.

← All posts