Important This project has been discontinued
🇬🇧 Erica is a service to send tax declarations to ELSTER. It is a wrapper around the functionality of ERiC, ELSTER's own client to access their APIs. It provides functionality to send tax declarations, as well as request, activate and revoke unlock codes.
It was originally developed as part of the Tech4Germany Fellowship 2020. The fellowship is organized by DigitalService GmbH des Bundes.
🇩🇪 Erica ist ein Service, um Steuererklärungen an ELSTER zu senden. Es dient als Wrapper um die Funktionalität von ERiC, ELSTERs eigener Client um die APIs zu verwenden. Es stellt Funktionalität zum Absenden von Steuererklärungen sowie dem Beantragen, Freischalten und Stornieren von Freischaltcodes bereit.
Ursprünglich wurde es als Teil des Tech4Germany Fellowships 2020 entwickelt, das von der DigitalService GmbH des Bundes organisiert wird.
🇬🇧 Everyone is welcome to contribute the development of the Steuerlotse. You can contribute by opening pull request, providing documentation or answering questions or giving feedback. Please always follow the guidelines and our Code of Conduct.
🇩🇪
Jede:r ist herzlich eingeladen, die Entwicklung der Steuerlotse mitzugestalten. Du kannst einen Beitrag leisten,
indem du Pull-Requests eröffnest, die Dokumentation erweiterst, Fragen beantwortest oder Feedback gibst.
Bitte befolge immer die Richtlinien und unseren Verhaltenskodex.
🇬🇧 Open a pull request with your changes and it will be reviewed by someone from the team. When you submit a pull request, you declare that you have the right to license your contribution to the DigitalService and the community. By submitting the patch, you agree that your contributions are licensed under the MIT license.
Please make sure that your changes have been tested befor submitting a pull request.
🇩🇪
Nach dem Erstellen eines Pull Requests wird dieser von einer Person aus dem Team überprüft. Wenn du einen Pull-Request
einreichst, erklärst du dich damit einverstanden, deinen Beitrag an den DigitalService und die Community zu
lizenzieren. Durch das Einreichen des Patches erklärst du dich damit einverstanden, dass deine Beiträge unter der
MIT-Lizenz lizenziert sind.
Bitte stelle sicher, dass deine Änderungen getestet wurden, bevor du einen Pull-Request sendest.
The following prerequisites must be installed:
- python 3.11
- pipenv
- postgresql client >9.1
- docker and docker-dompose
pipenv install
Erica uses Pyeric, which is a wrapper around ERiC. For this to work you will need to download the latest ERiC library and a test certificate and copy the required files into the source tree.
You can download binaries and organisation-specific test certificates by running:
ERICA_BUCKET_NAME=xxx AWS_ACCESS_KEY_ID=xxx AWS_SECRET_ACCESS_KEY=xxx ENDPOINT_URL=xxx pipenv run download-eric
Contact the erica service owners for information on how to obtain the required credentials and secrets.
- Download
ERiC-35.2.8.0-Linux-x86_64.jar
(or a newer version) from the ELSTER developer portal. - Unpack the downloaded jar file
- Copy the following library files into
erica/worker/lib
such that it matches the given structure:
$ tree lib
lib
├── libericapi.so
├── libericxerces.so
├── libeSigner.so
└── plugins2
├── libcheckElsterDatenabholung.so
├── libcheckESt_2021.so
├── libcheckGrundsteuerwert.so
├── libcheckVaSt.so
└── libcommonData.so
NOTE: If you use a Mac, get the corresponding *.dylib
files
You also need to obtain a test certificate from ELSTER and place it under erica/worker/instances/blueprint/cert.pfx
.
docker-compose up -d
ERICA_ENV=development pipenv run invoke database-migrations
ERICA_ENV=development pipenv run invoke run-api
Note: Swagger UI will be available under: http://localhost:8000/docs
ERICA_ENV=development pipenv run invoke run-worker
You can run tests as follows:
pipenv run invoke test
If you are missing the ERiC library or a suitable certificate then the respective tests will be skipped