This module provides the German VAT Statement (Umsatzsteuervoranmeldung). You can use the German VAT Statement report to declare your taxes on www.elster.de.
auto_awesome What this module does
AI-generated from the code · Odoo 18.0Create and manage German VAT advance returns (Umsatzsteuervoranmeldung) directly in Odoo, with automatic collection of tax-relevant journal entries, calculation of the VAT totals and a printable UstVA report.
This module adds a German VAT Statement feature under the Accounting reports. Users create a statement for a period (or pick a date range), choose the applicable form version (2018, 2019/2020 or 2021/2022), and Odoo automatically gathers the posted journal entries that carry German tax tags and fill the official VAT return lines.
- The statement screen shows the official line codes with base amounts and tax amounts, plus totals such as the remaining VAT prepayment.
- A button updates the statement from the accounting entries; another posts it, and a finalize action locks it as final.
- Posted or final statements cannot be modified or deleted; a posted statement must first be reset to draft.
- A statement cannot be posted while an earlier draft statement for the same company still exists.
- Journal entries that were not yet reported in a previous statement can be listed and included in the current one.
- A printable PDF report (UstVA-Report) is available from the statement.
- The module also adds a configuration screen that maps the German tax tags to the official return line codes.
It extends account.move and account.move.line with a link to the statement and an 'Include in VAT Statement' flag, and adds the new models l10n.de.tax.statement, l10n.de.tax.statement.line and l10n.de.tax.statement.config. Access is restricted per company.
Depends on
Required by other modules
Menus it adds
Models and fields (5)
- account.move · extends an existing modell10n_de_tax_statement_id, l10n_de_tax_statement_include (Include in VAT Statement)
- account.move.line · extends an existing modell10n_de_tax_statement_id (Related Move Statement), l10n_de_tax_statement_include
- l10n.de.tax.statement · new modelname (Tax Statement), state (Status), to_date, version, line_ids, from_date, tax_total (Verbl. Ust.-Vorauszahlung), company_id, currency_id, date_posted, date_update, date_range_id, move_line_ids (Entry Lines), format_tax_total, unreported_move_ids (Unreported Journal Entries), unreported_move_from_date
- l10n.de.tax.statement.line · new modeltax, base, code, name, is_group, is_total, format_tax, currency_id, format_base, is_readonly, statement_id
- l10n.de.tax.statement.config · new modelcompany_id, tag_36_tax, tag_47_tax, tag_53_tax, tag_59_tax, tag_61_tax, tag_62_tax, tag_63_tax, tag_64_tax, tag_65_tax, tag_66_tax, tag_67_tax, tag_69_tax, tag_74_tax, tag_79_tax, tag_80_tax, tag_81_tax, tag_85_tax, tag_86_tax, tag_89_tax, tag_93_tax, tag_96_tax, tag_98_tax, tag_21_base, tag_35_base, tag_41_base, tag_42_base, tag_43_base, tag_44_base, tag_45_base
Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 5 confirmed, 4 with no information of 9 versions.
Sources · Odoo 18.0
Confirmed on 2026-11-03 in branch 18.0 of OCA/l10n-germany.
terminal Installation and usage
OCA documentation · Odoo 18.0Configuration
Source · Odoo 18.0This module makes use of the tax tags (eg.: 81, 86, 91, 89, 93 ...) as prescribed by the German tax laws and represented by the tax declaration form "Umsatzsteuervoranmeldung".
If the default Odoo German chart of accounts is installed (module l10n_de) you are able to select in the settings if you want to use the skr03 or skr04 chart variant. By installing and configuring your favored german account chart the tax tags from the module l10n_de are automatically present in the database.
If a non-standard chart of accounts is installed, you have to manually create the tax tags and properly set them into the tax definition. If you create another german account chart (f.e. l10n_de_ikr) you can still depend on l10n_de module in order to benefit from the generic tax tags for germany. If you won't use l10n_de as a base module you have to configure at first your own tax tags. After that, go to go to menu: Invoicing -\> Configuration -\> Accounting -\> German Tax Tags, and manually set the tags in the configuration form; click Apply to confirm (for more information about the installation and configuration of that module, check the README file). The name of the tags must be formatted this way: "+81 base", "+81 tax", "-81 base", "-81 tax", "+41", "-41", etc...
The user must belong to the Show Full Accounting Features group, to be able to access the Invoicing -\> Configuration -\> Accounting -\> German Tax Tags menu.
Usage
Source · Odoo 18.0To create a statement you need to:
- Verify that you have enough permits. You need to belong to the Show Full Accounting Features group.
- Go to the menu: Invoicing -\> Reporting \> German Tax Statement
- Create a statement, providing a name and specifying start date and end date
- Press the Update button to calculate the report: the report lines will be displayed in the tab Statement
- Eventually you have to manually enter the tax base amounts of lines '20', '21', '22', '23', '24','26', '27', '28', '29', '30','32', '33', '34', '35', '36','38', '39', '40', '41', '42','48', '49', '50', '51', '52','64', '65', '67') if you want to change the values from float format to integer (in Edit mode, click on the amount of the line to be able to change the value).
- Press the Post button to set the status of the statement to Posted; the statements set to this state cannot be modified
To add past undeclared invoices:
- Open the tab Past Undeclared Invoices, available when the statement is in status Draft.
- Set an initial date (field From Date) from which the past undeclared invoices will be displayed.
- One by one, add the displayed undeclared invoices, by clicking on the Add Invoice button present in each line.
- Press the Update button in order to recompute the statement lines.
Extra info about the workflow:
- If you need to recalculate or modify or delete a statement already set to Posted status you need first to set it back to Draft status: press the button Reset to Draft
- Instead, if you send the statement to the Tax Authority, you may want to avoid that the statement is set back to Draft: to avoid this, press the button Final. If you then confirm, it will be not possible to modify this Statement or reset it back to draft anymore.
Printing a PDF report:
- If you need to print the report in PDF, open a statement form and click: Print -\> German Tax Statement
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.