Taxel provides a GUI and command line interface (CLI) to generate the electronic balance sheet (eBilanz) in the XBRL format.
Generate a report in the XBRL standard with tax and accounting data; validate and send the XBRL document to the tax authorities.
Supported features:
- eBilanz
- What is eBilanz?
- Taxel GUI
- Taxel CLI
- Rust bindings and SDK for the ELSTER Rich Client (ERiC)
- Changelog
eBilanz (short for Elektronische Bilanz) is the electronic transmission of the company balance sheet and P&L in a standardized format (XBRL) to the tax authorities in the context of tax declaration.
Prebuilt binaries and releases are not provided in this repository. Releases will be published in the taxel-releases repo.
- Create new report
- Search for ID
genInfo.report.id.reportElementin the GCD report section, and select the relevant report elements (e.g. balance sheet and income statement) - Fill out GCD and selected report sections
- Validate report
- Send report (the report is sent to the respective tax authority, based on the 13-digit tax number in the GCD section).
Instead of creating a new report, you can also load an existing report via
button Import report. However, the taxonomy of the imported report is
preserved which might be outdated.
To import values from an existing report but using an up-to-date taxonomy,
create a new report first. Then, import values of the existing report via button
Import values.
git clone [email protected]:quambene/taxel.git
cd taxel
# Build and install taxel binary to ~/.cargo/bin
cargo install --path ./taxel-cliNote: Run cargo install --path ./taxel-cli again to update to the latest version. Uninstall the binary with cargo uninstall taxel.
taxel [OPTIONS] [SUBCOMMAND]OPTIONS:
-h, --help Print help information
-V, --version Print version information
--verbose Shows what is going onSUBCOMMANDS:
download Download and cache an eBilanz taxonomy
export Export fact values from an xml file to a csv file
help Print this message or the help of the given subcommand(s)
import Import fact values from a csv file exported via `taxel export`
merge Merge fact values from one xml file into another
new Build a new, taxonomy-valid eBilanz xml file from scratch
send Validate and send xml file
validate Validate xml file# Download and cache an eBilanz taxonomy
taxel download \
--taxonomy-version 6.8 \
--taxonomy-type core-fiscal
# Build a new, taxonomy-valid eBilanz xml file from scratch
taxel new \
--start-date 2024-01-01 \
--end-date 2024-12-31 \
--taxonomy-version 6.8 \
--taxonomy-type core-fiscal \
--output-file "my_ebilanz.xml"
# Merge fact values from one xml file into another
taxel merge \
--source-file "my_ebilanz_old.xml" \
--target-file "my_ebilanz_new.xml" \
--output-file "my_ebilanz_merged.xml"
# Export fact values from an xml file to a csv file
taxel export \
--xml-file "my_ebilanz.xml" \
--output-file "my_ebilanz.csv"
# Import fact values from a csv file exported via `taxel export`
taxel import \
--xml-file "my_ebilanz.xml" \
--csv-file "my_ebilanz.csv" \
--output-file "my_ebilanz_imported.xml"
# Validate xml file
taxel validate \
--tax-type "Bilanz" \
--tax-version 6.8 \
--xml-file "my_ebilanz.xml"
# Validate xml file and print confirmation as pdf file
taxel validate \
--tax-type "Bilanz" \
--tax-version 6.8 \
--xml-file "my_ebilanz.xml" \
--print "my_eBilanz.pdf"
# Send xml file to tax authorities
taxel send \
--tax-type "Bilanz" \
--tax-version 6.8 \
--xml-file "my_ebilanz.xml" \
# Send xml file to tax authorities and print confirmation as pdf file
taxel send \
--tax-type "Bilanz" \
--tax-version 6.8 \
--xml-file "my_ebilanz.xml" \
--print "my_eBilanz.pdf"# Run unit tests for taxel-cli
cargo test -p taxel-cli
# Run integration tests for taxel-cli (requires ERiC library)
cargo test -p taxel-cli --test '*' -- --test-threads=1
# Run external tests for taxel-cli (requires ERiC library and Elster certificate)
cargo test -p taxel-cli --release --test '*' --features external-test -- --test-threads=1
# Run unit tests for taxel
cargo test --lib -p taxel
# Run unit tests for taxel-py
cd taxel-py
pytest -v -m unitRust bindings and SDK for ERiC were moved to https://github.com/quambene/eric-rs.
The taxel repository contains multiple crates with separate changelogs:
- workspace: view changelog
taxel: view changelogtaxel-cli: view changelogtaxel-gui: view changelog
