Skip to main content

RechnungsWerk - Releases

← App details

Nextcloud 34

RechnungsWerk 0.4.0
Release Details
UpdatedAug. 8, 2026, 4:18 p.m.
Changelog

Festgeschriebene Rechnungen sind jetzt wirklich unveränderlich. Bisher entstand jedes PDF bei jedem Zugriff neu, aus den zu diesem Zeitpunkt gültigen Einstellungen. Eine bereits ausgestellte E-Rechnung konnte sich dadurch nachträglich ändern und ungültig werden.

Changed

  • Der Beleg einer festgeschriebenen Rechnung wird beim Festschreiben abgelegt und ab dann ausgeliefert, statt bei jedem Zugriff neu zu entstehen. Damit bekommen Download, Kundenversand, DATEV-Übergabe und die Ablage in Nextcloud Files garantiert dieselbe Datei; vorher konnten zu einer Rechnung drei verschiedene Dokumente existieren. Der Beleg ist nur einmal beschreibbar, seine Prüfsumme steht am Datensatz, und der Dateiname ist mit eingefroren. Die Ablage liegt im app-eigenen Speicher und damit in jeder Instanz-Sicherung, nicht im Dateibaum des Nutzers, wo sie versehentlich zu ändern wäre (#181)
  • Der Kleinunternehmer-Fall steht jetzt an der Rechnung statt in den Einstellungen. Ein Wechsel zwischen Kleinunternehmerregelung und Regelbesteuerung ist ein völlig normaler, einmaliger Vorgang. Er machte vorher aus jeder älteren 19-%-Rechnung rückwirkend eine steuerfreie: das eingebettete XML wies CategoryCode E und 0,00 % aus, bei weiterhin ausgewiesenen 19,00 € Steuer. Ein solches Dokument widerspricht sich selbst und verletzt EN 16931 (#181)
  • Bestandsrechnungen werden im Hintergrund nachgezogen, in Häppchen und ohne Wartungsmodus. Nachträglich erzeugte Belege sind als solche gekennzeichnet und im Rechnungseditor ausgewiesen: sie stimmen inhaltlich, entsprechen im Aussehen aber dem heutigen Stand und nicht dem, was der Kunde damals bekommen hat. Für Bestandsrechnungen ist das Original-Aussehen nicht wiederherstellbar (#181)

Fixed

  • Einzelpreise werden serverseitig aus der Eingabe berechnet und geprüft. Bisher rechnete allein der Browser und schickte die fertige Zahl. Dem Server war nicht anzusehen, ob 95 als 0,0095 € oder als 95 € gemeint war. Betrifft Rechnungspositionen und den Standardpreis im Produktkatalog (#180)
  • Ein Storno übernimmt den Steuerfall der Original-Rechnung statt der aktuellen Einstellungen. Sonst hätte die Gutschrift zu einer 19-%-Rechnung nach einem Wechsel der Besteuerungsform 0 % ausgewiesen (#181)

Abhängigkeiten und Infrastruktur

  • phpmailer auf 7.1.1 angehoben. Der Mailversand wurde damit real geprüft, der Anhang bleibt der eingefrorene Beleg
  • Frontend-Werkzeuge und Bibliotheken aktualisiert: vite 8, @nextcloud/l10n 3, vue-router 5, pinia 4, @nextcloud/vue 9.9. Der Sprung auf vue-router 5 war ohne pinia 4 nicht möglich und beseitigt zugleich eine doppelte Router-Version im Abhängigkeitsbaum
  • GitHub-Actions auf checkout 7, setup-node 7 und github-script 9
  • Dependabot zielt jetzt auf develop und gruppiert Minor- und Patch-Updates
  • Der Workflow, der Issues beim Merge nach develop schließt, wertet Code in PR-Texten nicht mehr als Anweisung
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
Signaturekg15ifuNkkeQMOsP5v3QthE3KZvAghdIGVoEUZ0WySHi9mshrzqNhdoAtHfS00ZCQlmKuN/VXvX/CjQP2OWwvMYQB91s4ts3theFM6fE7UNwnc4RfF8GSO9XJNofCvnjKoGBMgeFkJr3VyvtCGYKvWXxqoxcsDgit7r71AAXMlKGxFfXuZO8+czcs0nwKBpMKuY4hvKoB/ls7ZpxLafSHUmBUjjLmMq3cEEuVgMCr0UYPID1DxETu2PupVFQ61gh8FMzo8jG3Bc0BEswToJHZJi+XRpNMOlesg/tovaT2WZOXXBagyxXb69e4YHMFavgu0nSIeBySKac0hKLumO3Tg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.3.1
Release Details
UpdatedAug. 7, 2026, 9:12 p.m.
Changelog

Fehlerbehebungen aus Rückmeldungen von Nutzern. Zwei der Fehler erzeugten stillschweigend falsche Werte auf Rechnungen, die an Kunden gehen.

Fixed

  • Kontakte aus dem Nextcloud-Adressbuch lassen sich wieder übernehmen. Das vCard-Feld für das Land enthält laut Standard einen frei geschriebenen Namen, iOS und Outlook tragen dort „Deutschland" oder „Germany" ein. Der Wert lief ungeprüft in eine Spalte für den zweistelligen Ländercode, wodurch das Speichern des Entwurfs mit einem Fehler 500 abbrach und keine Vorschau mehr erzeugt werden konnte. Ländernamen werden jetzt in beiden Sprachen erkannt und umgesetzt, inklusive Schreibvarianten wie „Oesterreich" (#167)
  • Mengen und Einzelpreise in deutscher Schreibweise werden korrekt gelesen. Bisher brach eine achtstellige Menge wie 99.999.999 mit einem Fehler 500 ab, und eine Eingabe von 1.000 wurde ohne jeden Hinweis als 1 gespeichert, was die Rechnung um den Faktor 1000 verfälschte. Dasselbe traf den Einzelpreis, dort ohne Fehlermeldung als Warnsignal. Nicht lesbare Eingaben werden jetzt mit einer verständlichen Meldung abgelehnt statt geraten (#157)
  • Die Spaltenbreiten der Positionstabelle passen wieder zum Inhalt. Seit 0.3.0 waren alle Spalten gleich breit, wodurch die Bezeichnung viel zu früh umbrach, während die USt-Spalte Platz verschwendete (#157)
  • Die Kopfzeile der Positionstabelle bleibt bei jeder Akzentfarbe lesbar. Die Schrift war fest weiß und verschwand auf hellen Firmenfarben; sie wechselt jetzt auf Schwarz, wenn Weiß nicht mehr trägt. Die gewählte Farbe selbst bleibt unverändert (#171)
  • Das Auswahlfeld für die Akzentfarbe öffnet nicht mehr den Farbdialog des Betriebssystems, der sich unter macOS nicht wieder schließen ließ (#171)
  • Das ausgelieferte JavaScript enthält keinen Entwicklungscode mehr. Das Bundle ist dadurch rund 100 KB kleiner und die Konsole bleibt frei von Hydrations- und Prop-Warnungen (#168)

Added

  • Ein Musterstreifen in den Einstellungen zeigt beim Wählen der Akzentfarbe, wie die Kopfzeile der Positionstabelle auf der Rechnung aussehen wird, inklusive der daraus folgenden Schriftfarbe (#171)
  • Die Spalte für die Bezeichnung heißt im PDF jetzt wie im Editor „Bezeichnung" statt „Beschreibung" (#157)

Security

  • dompdf auf 3.1.6 angehoben. Die Version schließt laut Release Notes gemeldete Sicherheitslücken; dompdf erzeugt das Rechnungs-PDF

Changed

  • Weitere Abhängigkeiten aktualisiert: dompurify, fast-xml-parser, immutable, postcss, fast-uri, brace-expansion, js-yaml
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureMfyGkAWLpC5IS7BOHlL1YVoOTLrh/IBR5gkLSv7hFwhB+0tQnp6uATLUlDD46Bf2dolSg5oeyL88GDPp/jOp9XIqn16w8PVMkhEVhjPZyo7K0GxFJNf1G8uhs/346/zOtyM3KQBFFt28JUns1p17OR2TyihOOa7cS9rP+A1ghML3L/DURiepOK8zNam0tPTvc3bJU6YShsSaOStdp6VEwcPR/dQqGuLggyzT5sXV3nWDOYGpHyPubgPgUmKQ5TvvdeD6lxQhhPQTX9WJNps1Qpi1xJRs8x78DUAKU5xg1gcNlLuWB9XCZUji9X1s5yiw6HBLcI3A++iNR4Rqkl1XSw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.3.0
Release Details
UpdatedJuly 23, 2026, 12:36 p.m.
Changelog

Added

  • Textbausteine: eine verwaltete Bibliothek wiederverwendbarer Anrede-/ Einleitungs- und Schlusstexte, getrennt für Rechnungen und Angebote. Je Dokumenttyp und Textbereich gibt es genau einen Standard-Baustein, der neue Dokumente vorbefüllt; weitere Bausteine lassen sich im Editor per Klick einfügen. Neuer Menüpunkt „Textbausteine" (#126, #141)
  • Kleinunternehmer-Hinweis (§ 19 UStG): der Hinweistext auf der Rechnung ist jetzt frei konfigurierbar (#141)
  • Datums-Variablen {MM} (Monat) und {DD} (Tag) für die Rechnungs- und Angebotsnummer, zusätzlich zu {YYYY}/{YY}/{####} (#143)
  • Weitere Einheiten zur Auswahl: kWh, Liter, Meter, Kilometer, m², Gramm, Tonne (gültige UN/ECE-Codes, E-Rechnung bleibt valide) (#146)
  • Einzelpreise mit bis zu 4 Nachkommastellen (z. B. Energie 0,3456 €/kWh); die Rundung auf ganze Cent erfolgt einmal beim Zeilenbetrag, Summen bleiben zweistellig (#147)
  • Freitext-Einheiten: frei benannte Einheiten (z. B. „Personen", „Sitzung") für Editor und PDF; die eingebettete E-Rechnung nutzt weiterhin einen gültigen generischen Einheitencode (#153)

Changed

  • Kleinunternehmer (§ 19 UStG): Rechnungen und Angebote zeigen keine „0 %"-USt- Spalte und keine „Steuerfrei 0,00 €"-Zeile mehr; da netto = brutto erscheint nur der Gesamtbetrag mit dem § 19-Hinweis. Die eingebettete XML bleibt unverändert korrekt (Kategorie „E") (#144)
  • Bei einem Angebot ist der Leistungszeitraum nicht mehr als § 14-UStG- Pflichtangabe ausgewiesen, sondern als optionaler „Geplanter Leistungszeitraum"
  • Einheitliche Bedienung der Verwaltungslisten (Textbausteine, Kunden, Produkte): Zeile anklickbar zum Bearbeiten, direkte Icon-Aktionen statt „…"-Menü

Fixed

  • Lange Produktnamen und Beschreibungen sprengen die Positionstabelle im PDF nicht mehr; die Spalten bleiben stabil und die Einheit bricht nicht mehr in eine neue Zeile um (#145)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
Signatureiz4D936PYC2hirNT+Gu01alqM2CG00jSDepS0W3no3KGsYHNuzeIFkvWuJ5bvi+GS2dz/4L/76JnC+p/hULNXubNHJR181yt2yN/B4yK2HhK8QYJDjD0UAQjePNt/8424fT4nYw4hr6CsCrimhwb711WuoNE1lgGdQ6hgjeg2pf4uTturWl12ludMPseDlg/UBzejSx1gxDM1yy3RSVtNnE9KQqveRzMk7BUBtHBraVEEHFx4gpbVsVWvqaCKTEFsSb7HYPMKxFajdQhN5NX7BzilL0jtS+W2UHIEe+WWtbcmY55jfe9CkMxQeoreD4HcKdHfyaqU2kCXTcujnblGA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.2.0
Release Details
UpdatedJuly 18, 2026, 7:55 a.m.
Changelog

Added

  • Angebote: Angebote mit eigenem Nummernkreis erstellen, festschreiben und als PDF versenden. Ein eigener Menüpunkt „Angebote" führt zu einer eigenen Liste mit Status (Offen, Abgelaufen, Angenommen, Abgelehnt, Übernommen, Revidiert). Angebote haben ein „Gültig bis"-Datum (§ 148 BGB) und eine optionale Freibleibend-Kennzeichnung (§ 145 BGB), die als Hinweis auf dem PDF erscheint. Der Angebots-Nummernkreis (Standard AN-{YYYY}-{####}) ist in den Einstellungen unabhängig von den Rechnungen konfigurierbar (#111)
  • In Rechnung übernehmen: ein festgeschriebenes Angebot lässt sich per Knopfdruck in einen neuen Rechnungs-Entwurf überführen – Positionen und Empfänger werden übernommen, die Rechnung referenziert die Angebotsnummer, das Angebot wird als „übernommen" markiert (#111)
  • Angebot revidieren: aus einem festgeschriebenen Angebot lässt sich eine überarbeitbare Revision erstellen. Sie erhält beim Festschreiben eine Revisionsnummer (AN-…-1, -2, …), das Ursprungsangebot wird als „revidiert" markiert (#111)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureSut+zU8cXNarPEIMOdjzO6Vyt3zPfCjSliR6aqSC+JHI+CIm8DlB/lyeDsWuCLaG9K6AQ/43KaiWW1I9f4kqWlUU6t2sBnkafY9FC1F4Sl8j8Ku63t9rBmi9jpLaV5S4Lu6R4Tu8QzRF4ozFDnw9bB2N3+gRl5YfuAzAQa49q67qe+C5wN9ietNZoHicl1l5q9tpNuAs+Q2t9lva8OBNToqR1sKLjVdb3saAG1U+4MrmPTPz0EsU8vGo7oD3agYndSw9RaeXbxMTuDMSHSbLCOZEVf5P9Ns594IwKZ5JsAbCEkvtMQl64vKY7+SWLojj7+p3b7e31Wkhc/XUVmvIgg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.8
Release Details
UpdatedJuly 17, 2026, 8:28 a.m.
Changelog

Added

  • Zahlungsstatus verfolgen: Rechnungen lassen sich in der Liste als bezahlt markieren; der Status (offen, überfällig, bezahlt) ist auf einen Blick sichtbar – überfällige Rechnungen sind hervorgehoben, bezahlte gedämpft dargestellt. Eine Filterleiste (Alle/Offen/Überfällig/Bezahlt) zeigt zusätzlich die Summe der offenen Beträge. Ein Standard-Zahlungsziel in den Einstellungen belegt neue Rechnungen vor (#117)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignaturesXhEzBMcXpQoQRWbU5Ky7yfzsZEyH5Ll1kI7EJKXftrcsmh1YwvMGgtcbOfeFsPO6mrbq/jzFYuX2lWJazredJEeLSSspQeHTvcuCXSY4ne25hOpuVtTux7bD8fJLGAiyQSvuJzGWXfwp6TSlTM0wdlU1TyLdR8w/dWyVLsQf9367mbQE3yfefnI0CT1G0u+TTPQsDMiy0Ua5njgIJRhpl6giGwn9pjDzIJ5OmYDkdm70c7rFDS1VqUoXAvMo9oEjJthD2UQhoBQY0A+iHk4b8aRgsn6zbBTSxj+NcOA0Qk0ZeYspQJ4oRbSUT5DymHnREzSLMq9n0n17dM3R2TnVw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.7
Release Details
UpdatedJuly 15, 2026, 7:51 p.m.
Changelog

Added

  • Rechnung duplizieren: eine bestehende Rechnung lässt sich per Knopfdruck in der Rechnungsliste als Vorlage für eine neue, bearbeitbare Rechnung übernehmen. Empfänger, Positionen, Referenzen, Notizen und Textbausteine werden kopiert; die neue Rechnung startet als Entwurf ohne Nummer. Stornobelege sind davon ausgenommen (#124)

Fixed

  • Kunde anlegen: Das Speichern schlug fehl, sobald ein Zahlungsziel gesetzt war (#122)
  • Das DATEV-„gesendet"-Symbol in der Rechnungsliste wird nur noch angezeigt, wenn die DATEV-/IMAP-Anbindung eingerichtet ist. Ohne IMAP-Konfiguration lief der automatische Abgleich ohnehin nie, sodass der Status sonst dauerhaft ohne Wirkung sichtbar blieb (#127)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureJELX2endgOdkGdfh2w6fY8wd4eys440C0bemzaAVBhxT4m0sRnRYECDZMoUSv69nz6V5VOe5hTgg3l2bGFh0bzBJ0ucovrtDhy9+XXeLJUHTIgw+f/6R8OG6t+GrsJAglZMCgr1adEUMfhBa+bh09eNyPgvVQ8Jxqj0J7a99PIFQdhimYN+K4MscgCf820b/wFX1zUhT+4WxzXor9rl1Iw07q+4EZiBlT1sESS3dPvNcPYM94uyijiCa3kC+EhA4XiKXr/HkIQmLk0Plor+mQv/Gh0V9M6OkFOdOzNAUwxuDa8X2eWYUIPbE9P4bV/83gogZpUZIDMDUj4grSfB3Aw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.6
Release Details
UpdatedJuly 13, 2026, 8:39 a.m.
Changelog

Fixed

  • App-Installation auf Nextcloud 31 und 32 schlug fehl mit „Primary index name on 'oc_rechnungswerk_invoice_item' is too long". Die unterstützten Datenbanken (SQLite/MySQL/PostgreSQL) sind jetzt in der info.xml deklariert, wodurch Nextclouds Oracle-Namenslimit-Prüfung nicht mehr greift (#118)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignaturekXawEvTMN/MEksp8u2OB6KxiDpbGNZvPhivMAU2DbRzqmBrGxilRgMUJb6EExxAwJ6DU91Y/qU4iZy8FX1mqzd1ANjXFImD8bG43peKgDcAJwtQyFD/IQ1s9q9wNFNL2qjeTB9VcYDaGatAXLVE9W8zdFuJiqNNKGjcU190vB/S/i6SQgMryNKZrH87Pdd02ADgWcKIi3KyYjr3VvTruaiIrbRv3LgSns9UTXtUcpyvYKdWXQPsj1uc1tY5JpZGwKIOc4VHlxhSWXyTIPOvi5rZle2uVPsyBFT5iz48e+D8WIYidgyY5t2jaoLt7djJcYENcNAbcyz3s7BTmtC/84Q==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.5
Release Details
UpdatedJuly 11, 2026, 6:33 p.m.
Changelog

Added

  • Neue Referenzfelder auf der Rechnung: Vertragsnummer (BT-12) und Objekt-/Projektkennung (BT-18). Beide stehen strukturiert im E-Rechnungs-XML und als Meta-Zeilen im PDF (#41)
  • Notizen/Hinweise auf der Rechnung: frei formulierbare Textzeilen, sichtbar im PDF und als Notiz (BT-22) im E-Rechnungs-XML (#41)

Changed

  • Anrede/Einleitung und Schlusstext stehen jetzt auch im E-Rechnungs-XML (BT-22) und nicht mehr nur im PDF (#41)
  • Stornobelege übernehmen die Referenzen der Originalrechnung (Bestell-, Referenz-, Vertragsnummer, Leitweg-ID, Objektkennung)
  • Generische freie Felder (Key-Value) werden nicht weiterverfolgt; bestehende Einträge bleiben als Notizen lesbar (#41)

Fixed

  • Rechnungseditor übernimmt beim Wechsel von einer Rechnung zu „Neue Rechnung" keinen alten Formularzustand mehr (#109)
  • Esc schließt Modals auch dann, wenn der Fokus in einem Eingabefeld liegt (#107)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignaturefjPXXKL3vvb63vSpX/J8RT/tRxS0jbZyE8Sg8WN1xKKtQOZZxdQTFalX7Din8u8akVxvXup2V91d3GLfhB9x1yqNvZGRVa4kggAduDoCeO/IR6vVZxKweFw1X8KAo0Wt4ph1s7aQs8kMdsEQCfzBtwtORXG9hmmj4KUmvIWQpw9ipTvf14XvA60KEitNQf/VGSAxVIlowcq1bgvXf9CrOYMBRo7slEBcucL8fN9jfw3QgV0StjK5iemBpAJg/hMMnMhdgkSXkfEczisnVwe8u8vuz9bMXMIWhAQFWjT89IECY2UW4Lcv4Ai3A+7/tUk4b6W3pfOVggfOUTm54yeJ0w==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.4
Release Details
UpdatedJuly 11, 2026, 10:53 a.m.
Changelog

Added

  • Rechnungsvorschau für Entwürfe: Vorschau-Button im Editor zeigt das PDF vor dem Festschreiben. Deutlich als ENTWURF gekennzeichnet (Wasserzeichen, Banner, ohne E-Rechnungs-XML) (#94)
  • Konfigurierbares Dateinamen-Schema für erzeugte PDFs mit Platzhaltern {nummer}, {YYYY}/{MM}/{DD}, {kunde}, {typ}. Gilt einheitlich für Download, Kundenmail und DATEV-Mail, mit Live-Vorschau in den Einstellungen (#37)
  • Automatische Ablage festgeschriebener Rechnungen (inkl. Stornos) in einen Nextcloud-Ordner (auch Team-/Gruppenordner), optional mit Jahres-Unterordnern; Komfort-Ablage, kein revisionssicheres Archiv (#38)
  • Girocode: optionaler EPC-Bezahl-QR-Code (EPC069-12) neben der Bankverbindung. Banking-Apps übernehmen Empfänger, Betrag und Verwendungszweck automatisch; nie auf Stornos oder Entwurfs-Vorschauen (#79)

Changed

  • Neue Runtime-Abhängigkeit bacon/bacon-qr-code für das QR-Rendering
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureLZo7cCep3E7ce/8lmUohIZa6LI36+uaqF2y6wFukPeVjvCSxwqO84q3869FFhmq8QLYJUrysSHhVopd+5ULUtoeZ2CVUQwoKq09+BFTuxQPFRkeE9cwH94Rrp0tXCapDhEBgLaS3PEZYd4tMMzZw7Av7WwA89hH8Fy3b7JnVBk6LsZg5saPchA6ViX6Y+DW5wYHdYdp2wvZHhv9+FgMJrd19Q3n3n7dJ6XK89FUb5/Z/3K09+R0mkck7A0N2iR56C/sQr12tMPeEkyqlg+Bj3x7BVmDmawpSnwFI86TCTmvn5E5ehK0BrYufQlKuDkSgg48yRNRrldNnQ03M5Vtr/w==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.3
Release Details
UpdatedJuly 8, 2026, 7:11 a.m.
Changelog

Added

  • Nummernkreis-Modus: fortlaufend über Jahre vs. jährlicher Reset, umschaltbar in den Einstellungen (#39)
  • Persönlicher Bereich „Mein Kontakt": eigener Verkäufer-Ansprechpartner pro Nutzer, füllt neue Rechnungen automatisch vor (#47)
  • Einheit „Monat" für Rechnungspositionen (#76)

Fixed

  • Kontakt-E-Mail aus den Einstellungen wird auf Rechnung und E-Rechnung korrekt verwendet, statt der Nextcloud-Konto-Mail (#86)
  • Rechnungstexte: Einleitung erscheint wieder, Schlusstext steht genau einmal unten (keine Dopplung, korrekte Platzierung) (#76)

Security

  • Sicherheitsupdates der Frontend-Abhängigkeiten: dompurify, js-yaml, vite/esbuild (Advisories behoben, npm audit clean)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureGfdVd7F79t0qMXZuq31SJd3IWVykZfSbU5B9eC01Vga/lkUfdvctqYcBv3YR+xoJIr6Lpg9Ax9e+yiaf4kT3RlEJatRcezHnNUNn9+YNEionm8Wzt0y7/sJI2BlmR2aFOS9ConZWSUPO/pPyIPJwN5fWz9+k935pHNWM9eEzyEAoQ1P+xTI6kqyNu1g3I6X5mVgw6CkovFYMc3zm0Swlxvln6H/4QNQPWaJ1SY8vobqTEmkJjjKEDbZf3rvHaxUNOHoQPb1XzUio5YPZrDG8MoYCoRJEHt9oURYtAUzN+yPXN2PzmUUDqgcQ0sidv5buYMJqOTOZesQUmFQCAd+WMQ==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.2
Release Details
UpdatedJuly 6, 2026, 3:39 a.m.
Changelog

Added

  • Nextcloud 34 wird unterstützt (max-version auf 34 angehoben)
  • Kundenverwaltung: eigene Customer-Entität mit Erfassung, Bearbeitung und Übernahme in die Rechnung

Fixed

  • Storno als rechtssichere E-Rechnung: Korrekturrechnung mit typeCode 384 und negativen Beträgen (EN16931 / §14c UStG), Referenz auf die stornierte Rechnung (BT-25/BT-26); Beleg heißt „Stornorechnung" statt „Gutschrift" (#64, #65)
  • Storno-Dialog eindeutig beschriftet, doppeltes „Cancel" behoben (#64)
  • DATEV-Rückkanal (IMAP): RFC-2047-Q-Encoding wird versionsstabil dekodiert (PHP 8.2)

Changed

  • DATEV-Rückkanal nutzt einen eigenen schlanken IMAP-Client statt webklex/php-imap (deutlich kleineres Release, unter dem App-Store-Größenlimit) (#51)
  • Anzeigename und Marken-Strings durchgängig auf „RechnungsWerk" vereinheitlicht
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignaturemUXJDuNe+Tilo+dpUr+E737GyLaklc1NJcW9vzLpYYhWaLd+43FFRC5Cv9YyDKJsxPf0C12O19vw9sBfNxxv/UfPsEDc+ltMnmDebp0mCwsusHBF4M3CODsrB/NKrodV/oj8p0z/q43TZzYPdQZ3AzqryUrQVIGvAug2znoDd89J6uhroEDGsLoxDrj6cgpN8Y5e3MFy1wqvirArLewEDS7CmkOXhX4vLTNu/DddQvQmCWp6nlFUmG90koD05VwSCRw3FP+uuig71l4q+giN07sNEb/WqWx00y4aZ//6Svm+MbZcBEeZCvoBbl/gEAgBLSIND8hnPxkeJ61H2B9syQ==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0

Nextcloud 33

RechnungsWerk 0.4.0
Release Details
UpdatedAug. 8, 2026, 4:18 p.m.
Changelog

Festgeschriebene Rechnungen sind jetzt wirklich unveränderlich. Bisher entstand jedes PDF bei jedem Zugriff neu, aus den zu diesem Zeitpunkt gültigen Einstellungen. Eine bereits ausgestellte E-Rechnung konnte sich dadurch nachträglich ändern und ungültig werden.

Changed

  • Der Beleg einer festgeschriebenen Rechnung wird beim Festschreiben abgelegt und ab dann ausgeliefert, statt bei jedem Zugriff neu zu entstehen. Damit bekommen Download, Kundenversand, DATEV-Übergabe und die Ablage in Nextcloud Files garantiert dieselbe Datei; vorher konnten zu einer Rechnung drei verschiedene Dokumente existieren. Der Beleg ist nur einmal beschreibbar, seine Prüfsumme steht am Datensatz, und der Dateiname ist mit eingefroren. Die Ablage liegt im app-eigenen Speicher und damit in jeder Instanz-Sicherung, nicht im Dateibaum des Nutzers, wo sie versehentlich zu ändern wäre (#181)
  • Der Kleinunternehmer-Fall steht jetzt an der Rechnung statt in den Einstellungen. Ein Wechsel zwischen Kleinunternehmerregelung und Regelbesteuerung ist ein völlig normaler, einmaliger Vorgang. Er machte vorher aus jeder älteren 19-%-Rechnung rückwirkend eine steuerfreie: das eingebettete XML wies CategoryCode E und 0,00 % aus, bei weiterhin ausgewiesenen 19,00 € Steuer. Ein solches Dokument widerspricht sich selbst und verletzt EN 16931 (#181)
  • Bestandsrechnungen werden im Hintergrund nachgezogen, in Häppchen und ohne Wartungsmodus. Nachträglich erzeugte Belege sind als solche gekennzeichnet und im Rechnungseditor ausgewiesen: sie stimmen inhaltlich, entsprechen im Aussehen aber dem heutigen Stand und nicht dem, was der Kunde damals bekommen hat. Für Bestandsrechnungen ist das Original-Aussehen nicht wiederherstellbar (#181)

Fixed

  • Einzelpreise werden serverseitig aus der Eingabe berechnet und geprüft. Bisher rechnete allein der Browser und schickte die fertige Zahl. Dem Server war nicht anzusehen, ob 95 als 0,0095 € oder als 95 € gemeint war. Betrifft Rechnungspositionen und den Standardpreis im Produktkatalog (#180)
  • Ein Storno übernimmt den Steuerfall der Original-Rechnung statt der aktuellen Einstellungen. Sonst hätte die Gutschrift zu einer 19-%-Rechnung nach einem Wechsel der Besteuerungsform 0 % ausgewiesen (#181)

Abhängigkeiten und Infrastruktur

  • phpmailer auf 7.1.1 angehoben. Der Mailversand wurde damit real geprüft, der Anhang bleibt der eingefrorene Beleg
  • Frontend-Werkzeuge und Bibliotheken aktualisiert: vite 8, @nextcloud/l10n 3, vue-router 5, pinia 4, @nextcloud/vue 9.9. Der Sprung auf vue-router 5 war ohne pinia 4 nicht möglich und beseitigt zugleich eine doppelte Router-Version im Abhängigkeitsbaum
  • GitHub-Actions auf checkout 7, setup-node 7 und github-script 9
  • Dependabot zielt jetzt auf develop und gruppiert Minor- und Patch-Updates
  • Der Workflow, der Issues beim Merge nach develop schließt, wertet Code in PR-Texten nicht mehr als Anweisung
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
Signaturekg15ifuNkkeQMOsP5v3QthE3KZvAghdIGVoEUZ0WySHi9mshrzqNhdoAtHfS00ZCQlmKuN/VXvX/CjQP2OWwvMYQB91s4ts3theFM6fE7UNwnc4RfF8GSO9XJNofCvnjKoGBMgeFkJr3VyvtCGYKvWXxqoxcsDgit7r71AAXMlKGxFfXuZO8+czcs0nwKBpMKuY4hvKoB/ls7ZpxLafSHUmBUjjLmMq3cEEuVgMCr0UYPID1DxETu2PupVFQ61gh8FMzo8jG3Bc0BEswToJHZJi+XRpNMOlesg/tovaT2WZOXXBagyxXb69e4YHMFavgu0nSIeBySKac0hKLumO3Tg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.3.1
Release Details
UpdatedAug. 7, 2026, 9:12 p.m.
Changelog

Fehlerbehebungen aus Rückmeldungen von Nutzern. Zwei der Fehler erzeugten stillschweigend falsche Werte auf Rechnungen, die an Kunden gehen.

Fixed

  • Kontakte aus dem Nextcloud-Adressbuch lassen sich wieder übernehmen. Das vCard-Feld für das Land enthält laut Standard einen frei geschriebenen Namen, iOS und Outlook tragen dort „Deutschland" oder „Germany" ein. Der Wert lief ungeprüft in eine Spalte für den zweistelligen Ländercode, wodurch das Speichern des Entwurfs mit einem Fehler 500 abbrach und keine Vorschau mehr erzeugt werden konnte. Ländernamen werden jetzt in beiden Sprachen erkannt und umgesetzt, inklusive Schreibvarianten wie „Oesterreich" (#167)
  • Mengen und Einzelpreise in deutscher Schreibweise werden korrekt gelesen. Bisher brach eine achtstellige Menge wie 99.999.999 mit einem Fehler 500 ab, und eine Eingabe von 1.000 wurde ohne jeden Hinweis als 1 gespeichert, was die Rechnung um den Faktor 1000 verfälschte. Dasselbe traf den Einzelpreis, dort ohne Fehlermeldung als Warnsignal. Nicht lesbare Eingaben werden jetzt mit einer verständlichen Meldung abgelehnt statt geraten (#157)
  • Die Spaltenbreiten der Positionstabelle passen wieder zum Inhalt. Seit 0.3.0 waren alle Spalten gleich breit, wodurch die Bezeichnung viel zu früh umbrach, während die USt-Spalte Platz verschwendete (#157)
  • Die Kopfzeile der Positionstabelle bleibt bei jeder Akzentfarbe lesbar. Die Schrift war fest weiß und verschwand auf hellen Firmenfarben; sie wechselt jetzt auf Schwarz, wenn Weiß nicht mehr trägt. Die gewählte Farbe selbst bleibt unverändert (#171)
  • Das Auswahlfeld für die Akzentfarbe öffnet nicht mehr den Farbdialog des Betriebssystems, der sich unter macOS nicht wieder schließen ließ (#171)
  • Das ausgelieferte JavaScript enthält keinen Entwicklungscode mehr. Das Bundle ist dadurch rund 100 KB kleiner und die Konsole bleibt frei von Hydrations- und Prop-Warnungen (#168)

Added

  • Ein Musterstreifen in den Einstellungen zeigt beim Wählen der Akzentfarbe, wie die Kopfzeile der Positionstabelle auf der Rechnung aussehen wird, inklusive der daraus folgenden Schriftfarbe (#171)
  • Die Spalte für die Bezeichnung heißt im PDF jetzt wie im Editor „Bezeichnung" statt „Beschreibung" (#157)

Security

  • dompdf auf 3.1.6 angehoben. Die Version schließt laut Release Notes gemeldete Sicherheitslücken; dompdf erzeugt das Rechnungs-PDF

Changed

  • Weitere Abhängigkeiten aktualisiert: dompurify, fast-xml-parser, immutable, postcss, fast-uri, brace-expansion, js-yaml
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureMfyGkAWLpC5IS7BOHlL1YVoOTLrh/IBR5gkLSv7hFwhB+0tQnp6uATLUlDD46Bf2dolSg5oeyL88GDPp/jOp9XIqn16w8PVMkhEVhjPZyo7K0GxFJNf1G8uhs/346/zOtyM3KQBFFt28JUns1p17OR2TyihOOa7cS9rP+A1ghML3L/DURiepOK8zNam0tPTvc3bJU6YShsSaOStdp6VEwcPR/dQqGuLggyzT5sXV3nWDOYGpHyPubgPgUmKQ5TvvdeD6lxQhhPQTX9WJNps1Qpi1xJRs8x78DUAKU5xg1gcNlLuWB9XCZUji9X1s5yiw6HBLcI3A++iNR4Rqkl1XSw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.3.0
Release Details
UpdatedJuly 23, 2026, 12:36 p.m.
Changelog

Added

  • Textbausteine: eine verwaltete Bibliothek wiederverwendbarer Anrede-/ Einleitungs- und Schlusstexte, getrennt für Rechnungen und Angebote. Je Dokumenttyp und Textbereich gibt es genau einen Standard-Baustein, der neue Dokumente vorbefüllt; weitere Bausteine lassen sich im Editor per Klick einfügen. Neuer Menüpunkt „Textbausteine" (#126, #141)
  • Kleinunternehmer-Hinweis (§ 19 UStG): der Hinweistext auf der Rechnung ist jetzt frei konfigurierbar (#141)
  • Datums-Variablen {MM} (Monat) und {DD} (Tag) für die Rechnungs- und Angebotsnummer, zusätzlich zu {YYYY}/{YY}/{####} (#143)
  • Weitere Einheiten zur Auswahl: kWh, Liter, Meter, Kilometer, m², Gramm, Tonne (gültige UN/ECE-Codes, E-Rechnung bleibt valide) (#146)
  • Einzelpreise mit bis zu 4 Nachkommastellen (z. B. Energie 0,3456 €/kWh); die Rundung auf ganze Cent erfolgt einmal beim Zeilenbetrag, Summen bleiben zweistellig (#147)
  • Freitext-Einheiten: frei benannte Einheiten (z. B. „Personen", „Sitzung") für Editor und PDF; die eingebettete E-Rechnung nutzt weiterhin einen gültigen generischen Einheitencode (#153)

Changed

  • Kleinunternehmer (§ 19 UStG): Rechnungen und Angebote zeigen keine „0 %"-USt- Spalte und keine „Steuerfrei 0,00 €"-Zeile mehr; da netto = brutto erscheint nur der Gesamtbetrag mit dem § 19-Hinweis. Die eingebettete XML bleibt unverändert korrekt (Kategorie „E") (#144)
  • Bei einem Angebot ist der Leistungszeitraum nicht mehr als § 14-UStG- Pflichtangabe ausgewiesen, sondern als optionaler „Geplanter Leistungszeitraum"
  • Einheitliche Bedienung der Verwaltungslisten (Textbausteine, Kunden, Produkte): Zeile anklickbar zum Bearbeiten, direkte Icon-Aktionen statt „…"-Menü

Fixed

  • Lange Produktnamen und Beschreibungen sprengen die Positionstabelle im PDF nicht mehr; die Spalten bleiben stabil und die Einheit bricht nicht mehr in eine neue Zeile um (#145)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
Signatureiz4D936PYC2hirNT+Gu01alqM2CG00jSDepS0W3no3KGsYHNuzeIFkvWuJ5bvi+GS2dz/4L/76JnC+p/hULNXubNHJR181yt2yN/B4yK2HhK8QYJDjD0UAQjePNt/8424fT4nYw4hr6CsCrimhwb711WuoNE1lgGdQ6hgjeg2pf4uTturWl12ludMPseDlg/UBzejSx1gxDM1yy3RSVtNnE9KQqveRzMk7BUBtHBraVEEHFx4gpbVsVWvqaCKTEFsSb7HYPMKxFajdQhN5NX7BzilL0jtS+W2UHIEe+WWtbcmY55jfe9CkMxQeoreD4HcKdHfyaqU2kCXTcujnblGA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.2.0
Release Details
UpdatedJuly 18, 2026, 7:55 a.m.
Changelog

Added

  • Angebote: Angebote mit eigenem Nummernkreis erstellen, festschreiben und als PDF versenden. Ein eigener Menüpunkt „Angebote" führt zu einer eigenen Liste mit Status (Offen, Abgelaufen, Angenommen, Abgelehnt, Übernommen, Revidiert). Angebote haben ein „Gültig bis"-Datum (§ 148 BGB) und eine optionale Freibleibend-Kennzeichnung (§ 145 BGB), die als Hinweis auf dem PDF erscheint. Der Angebots-Nummernkreis (Standard AN-{YYYY}-{####}) ist in den Einstellungen unabhängig von den Rechnungen konfigurierbar (#111)
  • In Rechnung übernehmen: ein festgeschriebenes Angebot lässt sich per Knopfdruck in einen neuen Rechnungs-Entwurf überführen – Positionen und Empfänger werden übernommen, die Rechnung referenziert die Angebotsnummer, das Angebot wird als „übernommen" markiert (#111)
  • Angebot revidieren: aus einem festgeschriebenen Angebot lässt sich eine überarbeitbare Revision erstellen. Sie erhält beim Festschreiben eine Revisionsnummer (AN-…-1, -2, …), das Ursprungsangebot wird als „revidiert" markiert (#111)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureSut+zU8cXNarPEIMOdjzO6Vyt3zPfCjSliR6aqSC+JHI+CIm8DlB/lyeDsWuCLaG9K6AQ/43KaiWW1I9f4kqWlUU6t2sBnkafY9FC1F4Sl8j8Ku63t9rBmi9jpLaV5S4Lu6R4Tu8QzRF4ozFDnw9bB2N3+gRl5YfuAzAQa49q67qe+C5wN9ietNZoHicl1l5q9tpNuAs+Q2t9lva8OBNToqR1sKLjVdb3saAG1U+4MrmPTPz0EsU8vGo7oD3agYndSw9RaeXbxMTuDMSHSbLCOZEVf5P9Ns594IwKZ5JsAbCEkvtMQl64vKY7+SWLojj7+p3b7e31Wkhc/XUVmvIgg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.8
Release Details
UpdatedJuly 17, 2026, 8:28 a.m.
Changelog

Added

  • Zahlungsstatus verfolgen: Rechnungen lassen sich in der Liste als bezahlt markieren; der Status (offen, überfällig, bezahlt) ist auf einen Blick sichtbar – überfällige Rechnungen sind hervorgehoben, bezahlte gedämpft dargestellt. Eine Filterleiste (Alle/Offen/Überfällig/Bezahlt) zeigt zusätzlich die Summe der offenen Beträge. Ein Standard-Zahlungsziel in den Einstellungen belegt neue Rechnungen vor (#117)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignaturesXhEzBMcXpQoQRWbU5Ky7yfzsZEyH5Ll1kI7EJKXftrcsmh1YwvMGgtcbOfeFsPO6mrbq/jzFYuX2lWJazredJEeLSSspQeHTvcuCXSY4ne25hOpuVtTux7bD8fJLGAiyQSvuJzGWXfwp6TSlTM0wdlU1TyLdR8w/dWyVLsQf9367mbQE3yfefnI0CT1G0u+TTPQsDMiy0Ua5njgIJRhpl6giGwn9pjDzIJ5OmYDkdm70c7rFDS1VqUoXAvMo9oEjJthD2UQhoBQY0A+iHk4b8aRgsn6zbBTSxj+NcOA0Qk0ZeYspQJ4oRbSUT5DymHnREzSLMq9n0n17dM3R2TnVw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.7
Release Details
UpdatedJuly 15, 2026, 7:51 p.m.
Changelog

Added

  • Rechnung duplizieren: eine bestehende Rechnung lässt sich per Knopfdruck in der Rechnungsliste als Vorlage für eine neue, bearbeitbare Rechnung übernehmen. Empfänger, Positionen, Referenzen, Notizen und Textbausteine werden kopiert; die neue Rechnung startet als Entwurf ohne Nummer. Stornobelege sind davon ausgenommen (#124)

Fixed

  • Kunde anlegen: Das Speichern schlug fehl, sobald ein Zahlungsziel gesetzt war (#122)
  • Das DATEV-„gesendet"-Symbol in der Rechnungsliste wird nur noch angezeigt, wenn die DATEV-/IMAP-Anbindung eingerichtet ist. Ohne IMAP-Konfiguration lief der automatische Abgleich ohnehin nie, sodass der Status sonst dauerhaft ohne Wirkung sichtbar blieb (#127)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureJELX2endgOdkGdfh2w6fY8wd4eys440C0bemzaAVBhxT4m0sRnRYECDZMoUSv69nz6V5VOe5hTgg3l2bGFh0bzBJ0ucovrtDhy9+XXeLJUHTIgw+f/6R8OG6t+GrsJAglZMCgr1adEUMfhBa+bh09eNyPgvVQ8Jxqj0J7a99PIFQdhimYN+K4MscgCf820b/wFX1zUhT+4WxzXor9rl1Iw07q+4EZiBlT1sESS3dPvNcPYM94uyijiCa3kC+EhA4XiKXr/HkIQmLk0Plor+mQv/Gh0V9M6OkFOdOzNAUwxuDa8X2eWYUIPbE9P4bV/83gogZpUZIDMDUj4grSfB3Aw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.6
Release Details
UpdatedJuly 13, 2026, 8:39 a.m.
Changelog

Fixed

  • App-Installation auf Nextcloud 31 und 32 schlug fehl mit „Primary index name on 'oc_rechnungswerk_invoice_item' is too long". Die unterstützten Datenbanken (SQLite/MySQL/PostgreSQL) sind jetzt in der info.xml deklariert, wodurch Nextclouds Oracle-Namenslimit-Prüfung nicht mehr greift (#118)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignaturekXawEvTMN/MEksp8u2OB6KxiDpbGNZvPhivMAU2DbRzqmBrGxilRgMUJb6EExxAwJ6DU91Y/qU4iZy8FX1mqzd1ANjXFImD8bG43peKgDcAJwtQyFD/IQ1s9q9wNFNL2qjeTB9VcYDaGatAXLVE9W8zdFuJiqNNKGjcU190vB/S/i6SQgMryNKZrH87Pdd02ADgWcKIi3KyYjr3VvTruaiIrbRv3LgSns9UTXtUcpyvYKdWXQPsj1uc1tY5JpZGwKIOc4VHlxhSWXyTIPOvi5rZle2uVPsyBFT5iz48e+D8WIYidgyY5t2jaoLt7djJcYENcNAbcyz3s7BTmtC/84Q==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.5
Release Details
UpdatedJuly 11, 2026, 6:33 p.m.
Changelog

Added

  • Neue Referenzfelder auf der Rechnung: Vertragsnummer (BT-12) und Objekt-/Projektkennung (BT-18). Beide stehen strukturiert im E-Rechnungs-XML und als Meta-Zeilen im PDF (#41)
  • Notizen/Hinweise auf der Rechnung: frei formulierbare Textzeilen, sichtbar im PDF und als Notiz (BT-22) im E-Rechnungs-XML (#41)

Changed

  • Anrede/Einleitung und Schlusstext stehen jetzt auch im E-Rechnungs-XML (BT-22) und nicht mehr nur im PDF (#41)
  • Stornobelege übernehmen die Referenzen der Originalrechnung (Bestell-, Referenz-, Vertragsnummer, Leitweg-ID, Objektkennung)
  • Generische freie Felder (Key-Value) werden nicht weiterverfolgt; bestehende Einträge bleiben als Notizen lesbar (#41)

Fixed

  • Rechnungseditor übernimmt beim Wechsel von einer Rechnung zu „Neue Rechnung" keinen alten Formularzustand mehr (#109)
  • Esc schließt Modals auch dann, wenn der Fokus in einem Eingabefeld liegt (#107)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignaturefjPXXKL3vvb63vSpX/J8RT/tRxS0jbZyE8Sg8WN1xKKtQOZZxdQTFalX7Din8u8akVxvXup2V91d3GLfhB9x1yqNvZGRVa4kggAduDoCeO/IR6vVZxKweFw1X8KAo0Wt4ph1s7aQs8kMdsEQCfzBtwtORXG9hmmj4KUmvIWQpw9ipTvf14XvA60KEitNQf/VGSAxVIlowcq1bgvXf9CrOYMBRo7slEBcucL8fN9jfw3QgV0StjK5iemBpAJg/hMMnMhdgkSXkfEczisnVwe8u8vuz9bMXMIWhAQFWjT89IECY2UW4Lcv4Ai3A+7/tUk4b6W3pfOVggfOUTm54yeJ0w==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.4
Release Details
UpdatedJuly 11, 2026, 10:53 a.m.
Changelog

Added

  • Rechnungsvorschau für Entwürfe: Vorschau-Button im Editor zeigt das PDF vor dem Festschreiben. Deutlich als ENTWURF gekennzeichnet (Wasserzeichen, Banner, ohne E-Rechnungs-XML) (#94)
  • Konfigurierbares Dateinamen-Schema für erzeugte PDFs mit Platzhaltern {nummer}, {YYYY}/{MM}/{DD}, {kunde}, {typ}. Gilt einheitlich für Download, Kundenmail und DATEV-Mail, mit Live-Vorschau in den Einstellungen (#37)
  • Automatische Ablage festgeschriebener Rechnungen (inkl. Stornos) in einen Nextcloud-Ordner (auch Team-/Gruppenordner), optional mit Jahres-Unterordnern; Komfort-Ablage, kein revisionssicheres Archiv (#38)
  • Girocode: optionaler EPC-Bezahl-QR-Code (EPC069-12) neben der Bankverbindung. Banking-Apps übernehmen Empfänger, Betrag und Verwendungszweck automatisch; nie auf Stornos oder Entwurfs-Vorschauen (#79)

Changed

  • Neue Runtime-Abhängigkeit bacon/bacon-qr-code für das QR-Rendering
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureLZo7cCep3E7ce/8lmUohIZa6LI36+uaqF2y6wFukPeVjvCSxwqO84q3869FFhmq8QLYJUrysSHhVopd+5ULUtoeZ2CVUQwoKq09+BFTuxQPFRkeE9cwH94Rrp0tXCapDhEBgLaS3PEZYd4tMMzZw7Av7WwA89hH8Fy3b7JnVBk6LsZg5saPchA6ViX6Y+DW5wYHdYdp2wvZHhv9+FgMJrd19Q3n3n7dJ6XK89FUb5/Z/3K09+R0mkck7A0N2iR56C/sQr12tMPeEkyqlg+Bj3x7BVmDmawpSnwFI86TCTmvn5E5ehK0BrYufQlKuDkSgg48yRNRrldNnQ03M5Vtr/w==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.3
Release Details
UpdatedJuly 8, 2026, 7:11 a.m.
Changelog

Added

  • Nummernkreis-Modus: fortlaufend über Jahre vs. jährlicher Reset, umschaltbar in den Einstellungen (#39)
  • Persönlicher Bereich „Mein Kontakt": eigener Verkäufer-Ansprechpartner pro Nutzer, füllt neue Rechnungen automatisch vor (#47)
  • Einheit „Monat" für Rechnungspositionen (#76)

Fixed

  • Kontakt-E-Mail aus den Einstellungen wird auf Rechnung und E-Rechnung korrekt verwendet, statt der Nextcloud-Konto-Mail (#86)
  • Rechnungstexte: Einleitung erscheint wieder, Schlusstext steht genau einmal unten (keine Dopplung, korrekte Platzierung) (#76)

Security

  • Sicherheitsupdates der Frontend-Abhängigkeiten: dompurify, js-yaml, vite/esbuild (Advisories behoben, npm audit clean)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureGfdVd7F79t0qMXZuq31SJd3IWVykZfSbU5B9eC01Vga/lkUfdvctqYcBv3YR+xoJIr6Lpg9Ax9e+yiaf4kT3RlEJatRcezHnNUNn9+YNEionm8Wzt0y7/sJI2BlmR2aFOS9ConZWSUPO/pPyIPJwN5fWz9+k935pHNWM9eEzyEAoQ1P+xTI6kqyNu1g3I6X5mVgw6CkovFYMc3zm0Swlxvln6H/4QNQPWaJ1SY8vobqTEmkJjjKEDbZf3rvHaxUNOHoQPb1XzUio5YPZrDG8MoYCoRJEHt9oURYtAUzN+yPXN2PzmUUDqgcQ0sidv5buYMJqOTOZesQUmFQCAd+WMQ==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.2
Release Details
UpdatedJuly 6, 2026, 3:39 a.m.
Changelog

Added

  • Nextcloud 34 wird unterstützt (max-version auf 34 angehoben)
  • Kundenverwaltung: eigene Customer-Entität mit Erfassung, Bearbeitung und Übernahme in die Rechnung

Fixed

  • Storno als rechtssichere E-Rechnung: Korrekturrechnung mit typeCode 384 und negativen Beträgen (EN16931 / §14c UStG), Referenz auf die stornierte Rechnung (BT-25/BT-26); Beleg heißt „Stornorechnung" statt „Gutschrift" (#64, #65)
  • Storno-Dialog eindeutig beschriftet, doppeltes „Cancel" behoben (#64)
  • DATEV-Rückkanal (IMAP): RFC-2047-Q-Encoding wird versionsstabil dekodiert (PHP 8.2)

Changed

  • DATEV-Rückkanal nutzt einen eigenen schlanken IMAP-Client statt webklex/php-imap (deutlich kleineres Release, unter dem App-Store-Größenlimit) (#51)
  • Anzeigename und Marken-Strings durchgängig auf „RechnungsWerk" vereinheitlicht
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignaturemUXJDuNe+Tilo+dpUr+E737GyLaklc1NJcW9vzLpYYhWaLd+43FFRC5Cv9YyDKJsxPf0C12O19vw9sBfNxxv/UfPsEDc+ltMnmDebp0mCwsusHBF4M3CODsrB/NKrodV/oj8p0z/q43TZzYPdQZ3AzqryUrQVIGvAug2znoDd89J6uhroEDGsLoxDrj6cgpN8Y5e3MFy1wqvirArLewEDS7CmkOXhX4vLTNu/DddQvQmCWp6nlFUmG90koD05VwSCRw3FP+uuig71l4q+giN07sNEb/WqWx00y4aZ//6Svm+MbZcBEeZCvoBbl/gEAgBLSIND8hnPxkeJ61H2B9syQ==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.1
Release Details
UpdatedJune 25, 2026, 10:18 p.m.
Changelog

Added

  • Spendenlink (Ko-fi) in der App-Beschreibung / im App Store
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureTxuswNGbBYWD5c3Hb/XPAXczbWJGBIbZwCyLuvyWrf68iUvry5vpM98jxZ/HOO6UjERHUcOvR4mboa22aiL4gE18m4V9fEuH09pTmPQuZRCJfJNpDsERvpanhuiKB2G/vIFnVRPTnscKIQj9AEOBziIrhpmXehB/UDtvGfjg5GqRrV7OUu+I5fPztg/Mc1gHnZ7cdwpKY2ERscmXqNzXzfQND0yJKmVQ2mKMBRpspv/opYBqPvPdFcmirSMqkDu6MpjusT6o3Mr1oVzcMvByvz16YDF7lffgYRaYe8ZMLURRRfLYf349mIaZh02K6khJG41Kf6zU9745KXNYTkAnKA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.0
Release Details
UpdatedJune 25, 2026, 3:39 p.m.
Changelog

Erster öffentlicher Release im Nextcloud App Store. Rechnungen und E-Rechnungen (ZUGFeRD/EN16931) erstellen, an Kunden versenden und automatisch an DATEV übergeben.

Added

  • E-Rechnung (ZUGFeRD/EN16931): CII-XML + branded PDF/A-3 (ZugferdService), vollständiger Feldexport — Leistungsdatum/-zeitraum (BT-72/BG-14), Bestell-/Referenznummern (BT-13/14), Verkäufer-/Käufer-Ansprechpartner (BG-6/BG-9), USt-Sonderfälle (Reverse-Charge, innergemeinschaftlich, Ausfuhr)
  • DATEV-Übergabe: automatischer E-Mail-Versand der ZUGFeRD-PDF an die DATEV-Upload-Mail beim Festschreiben und beim Stornieren; optionales eigenes SMTP-Konto
  • DATEV-Rückkanal (IMAP): Background-Job wertet Empfangsbestätigungen aus (In-Reply-To-Matching), Status gesendet → bestätigt; optionaler Papierkorb-Cleanup bestätigter Quittungen (Admin-Einstellung, Default aus)
  • Verkäufer-Ansprechpartner pro Rechnung (Kaskade Rechnung → NC-Konto → Firmenkontakt)
  • Status-Anzeige als flache Icons + Legende in Liste und Editor; Einstellungen in der Navigation unten links (NC-Konvention)
  • Zahlungsbedingungen (It. 4a): Zahlungsziel (Tage), automatisch berechnetes Fälligkeitsdatum beim Festschreiben und Skonto-Hinweis — Migration v0.1.1 (payment_term_days, due_date, discount_terms) + Editor-Sektion
  • Rechnungs-Editor + Liste (It. 3): InvoicesView mit Status-Chips und InvoiceEditorView (Rechnungsdaten · Empfänger · Positionen · Steuer&Summen · Texte)
  • Editierbare Positionstabelle mit Live-Summen + USt-Aufschlüsselung (Client-Vorschau, Server autoritativ), Produkt-Übernahme aus dem Katalog, §19-konforme 0%-Erzwingung
  • Empfänger-Auswahl aus Nextcloud-Kontakten (ContactController + OCP\Contacts\IManager) mit Tipp-Vorschlägen und Auto-Befüllung
  • Lifecycle in der UI: Entwurf speichern → Festschreiben (Bestätigung, endgültige Nummer, read-only) → Stornieren (Stornobeleg)
  • l10n de/en erweitert (120 Keys)

Added (frühere Iterationen)

  • Stammdaten + Produktkatalog (It. 2): ProductService/ProductController (/api/v1/products CRUD) und SettingsController (/api/v1/settings)
  • Frontend ProductsView (Tabelle + Editor-Modal) und SettingsView (gegliedertes Formular: Firma/Bank/Branding/Nummernkreis/Steuer/Versand/Standardtexte) mit §19-Bestätigungsdialog und Live-Vorschau der Rechnungsnummer
  • Pinia-Stores, typisierter API-Client, Geld-Helfer (Cent↔€), l10n de/en
  • Unit-Tests für ProductService
  • (Logo-Auswahl via NC-Files-Picker bewusst auf It. 4 / PDF-Branding verschoben)
  • Initiale App-Grundstruktur (Vue 3 + Vite + @nextcloud/vue 9, PHP 8.2 OCP)
  • App-Navigation mit Platzhalter-Views: Rechnungen, Produkte, Einstellungen
  • Datenmodell + Persistenz-Schicht: Entities/Mapper für Invoice, InvoiceItem, Product, Settings (Geld in Cents, Steuer in Basispunkten, owner-scoped)
  • DB-Migration v0.1.0 (4 Tabellen)
  • InvoiceCalculator (Zeilensummen, Steueraufschlüsselung pro Satzgruppe, Rechnungsnummern-Formatierung) mit Unit-Tests
  • InvoiceService mit Lifecycle (Entwurf → Festschreiben → Storno) und SettingsService (per-Owner-Stammdaten, jahresbasierter Nummernkreis)
  • REST-API /api/v1/invoices (CRUD + /commit, /cancel)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureHSEU9FkRh3w5EkQS8knKf2Odr2rIzhq8NqjYmzgijhzpFtIDq3XM1Cs5+cUyKzgGJf1497jAmVwwUb9QS3aCURWoCPBWcoZy2HOqy5V9jdhNgF5r1+hzZrYZvwKkriR4gyZAtM4WnB1t9syVYBQ3E87/8kdHwNKK9hqbZh5Hf61ovhWn0A8Q9i5+A9FK79M1zP/JX+mHio4QAxIVIcbjmmG+MDPsugayfIGmBEYvQCxFqeruOoizXwnbCg2CSqtEK5PxtmJPklZI53+TuLvDaXHNuCQO7QYlCRNQHixoZzWWJj4ap0KKf3KF23UiiKG9ncPIbD7z1Z0tu2KizTX9Qw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0

Nextcloud 32

RechnungsWerk 0.4.0
Release Details
UpdatedAug. 8, 2026, 4:18 p.m.
Changelog

Festgeschriebene Rechnungen sind jetzt wirklich unveränderlich. Bisher entstand jedes PDF bei jedem Zugriff neu, aus den zu diesem Zeitpunkt gültigen Einstellungen. Eine bereits ausgestellte E-Rechnung konnte sich dadurch nachträglich ändern und ungültig werden.

Changed

  • Der Beleg einer festgeschriebenen Rechnung wird beim Festschreiben abgelegt und ab dann ausgeliefert, statt bei jedem Zugriff neu zu entstehen. Damit bekommen Download, Kundenversand, DATEV-Übergabe und die Ablage in Nextcloud Files garantiert dieselbe Datei; vorher konnten zu einer Rechnung drei verschiedene Dokumente existieren. Der Beleg ist nur einmal beschreibbar, seine Prüfsumme steht am Datensatz, und der Dateiname ist mit eingefroren. Die Ablage liegt im app-eigenen Speicher und damit in jeder Instanz-Sicherung, nicht im Dateibaum des Nutzers, wo sie versehentlich zu ändern wäre (#181)
  • Der Kleinunternehmer-Fall steht jetzt an der Rechnung statt in den Einstellungen. Ein Wechsel zwischen Kleinunternehmerregelung und Regelbesteuerung ist ein völlig normaler, einmaliger Vorgang. Er machte vorher aus jeder älteren 19-%-Rechnung rückwirkend eine steuerfreie: das eingebettete XML wies CategoryCode E und 0,00 % aus, bei weiterhin ausgewiesenen 19,00 € Steuer. Ein solches Dokument widerspricht sich selbst und verletzt EN 16931 (#181)
  • Bestandsrechnungen werden im Hintergrund nachgezogen, in Häppchen und ohne Wartungsmodus. Nachträglich erzeugte Belege sind als solche gekennzeichnet und im Rechnungseditor ausgewiesen: sie stimmen inhaltlich, entsprechen im Aussehen aber dem heutigen Stand und nicht dem, was der Kunde damals bekommen hat. Für Bestandsrechnungen ist das Original-Aussehen nicht wiederherstellbar (#181)

Fixed

  • Einzelpreise werden serverseitig aus der Eingabe berechnet und geprüft. Bisher rechnete allein der Browser und schickte die fertige Zahl. Dem Server war nicht anzusehen, ob 95 als 0,0095 € oder als 95 € gemeint war. Betrifft Rechnungspositionen und den Standardpreis im Produktkatalog (#180)
  • Ein Storno übernimmt den Steuerfall der Original-Rechnung statt der aktuellen Einstellungen. Sonst hätte die Gutschrift zu einer 19-%-Rechnung nach einem Wechsel der Besteuerungsform 0 % ausgewiesen (#181)

Abhängigkeiten und Infrastruktur

  • phpmailer auf 7.1.1 angehoben. Der Mailversand wurde damit real geprüft, der Anhang bleibt der eingefrorene Beleg
  • Frontend-Werkzeuge und Bibliotheken aktualisiert: vite 8, @nextcloud/l10n 3, vue-router 5, pinia 4, @nextcloud/vue 9.9. Der Sprung auf vue-router 5 war ohne pinia 4 nicht möglich und beseitigt zugleich eine doppelte Router-Version im Abhängigkeitsbaum
  • GitHub-Actions auf checkout 7, setup-node 7 und github-script 9
  • Dependabot zielt jetzt auf develop und gruppiert Minor- und Patch-Updates
  • Der Workflow, der Issues beim Merge nach develop schließt, wertet Code in PR-Texten nicht mehr als Anweisung
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
Signaturekg15ifuNkkeQMOsP5v3QthE3KZvAghdIGVoEUZ0WySHi9mshrzqNhdoAtHfS00ZCQlmKuN/VXvX/CjQP2OWwvMYQB91s4ts3theFM6fE7UNwnc4RfF8GSO9XJNofCvnjKoGBMgeFkJr3VyvtCGYKvWXxqoxcsDgit7r71AAXMlKGxFfXuZO8+czcs0nwKBpMKuY4hvKoB/ls7ZpxLafSHUmBUjjLmMq3cEEuVgMCr0UYPID1DxETu2PupVFQ61gh8FMzo8jG3Bc0BEswToJHZJi+XRpNMOlesg/tovaT2WZOXXBagyxXb69e4YHMFavgu0nSIeBySKac0hKLumO3Tg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.3.1
Release Details
UpdatedAug. 7, 2026, 9:12 p.m.
Changelog

Fehlerbehebungen aus Rückmeldungen von Nutzern. Zwei der Fehler erzeugten stillschweigend falsche Werte auf Rechnungen, die an Kunden gehen.

Fixed

  • Kontakte aus dem Nextcloud-Adressbuch lassen sich wieder übernehmen. Das vCard-Feld für das Land enthält laut Standard einen frei geschriebenen Namen, iOS und Outlook tragen dort „Deutschland" oder „Germany" ein. Der Wert lief ungeprüft in eine Spalte für den zweistelligen Ländercode, wodurch das Speichern des Entwurfs mit einem Fehler 500 abbrach und keine Vorschau mehr erzeugt werden konnte. Ländernamen werden jetzt in beiden Sprachen erkannt und umgesetzt, inklusive Schreibvarianten wie „Oesterreich" (#167)
  • Mengen und Einzelpreise in deutscher Schreibweise werden korrekt gelesen. Bisher brach eine achtstellige Menge wie 99.999.999 mit einem Fehler 500 ab, und eine Eingabe von 1.000 wurde ohne jeden Hinweis als 1 gespeichert, was die Rechnung um den Faktor 1000 verfälschte. Dasselbe traf den Einzelpreis, dort ohne Fehlermeldung als Warnsignal. Nicht lesbare Eingaben werden jetzt mit einer verständlichen Meldung abgelehnt statt geraten (#157)
  • Die Spaltenbreiten der Positionstabelle passen wieder zum Inhalt. Seit 0.3.0 waren alle Spalten gleich breit, wodurch die Bezeichnung viel zu früh umbrach, während die USt-Spalte Platz verschwendete (#157)
  • Die Kopfzeile der Positionstabelle bleibt bei jeder Akzentfarbe lesbar. Die Schrift war fest weiß und verschwand auf hellen Firmenfarben; sie wechselt jetzt auf Schwarz, wenn Weiß nicht mehr trägt. Die gewählte Farbe selbst bleibt unverändert (#171)
  • Das Auswahlfeld für die Akzentfarbe öffnet nicht mehr den Farbdialog des Betriebssystems, der sich unter macOS nicht wieder schließen ließ (#171)
  • Das ausgelieferte JavaScript enthält keinen Entwicklungscode mehr. Das Bundle ist dadurch rund 100 KB kleiner und die Konsole bleibt frei von Hydrations- und Prop-Warnungen (#168)

Added

  • Ein Musterstreifen in den Einstellungen zeigt beim Wählen der Akzentfarbe, wie die Kopfzeile der Positionstabelle auf der Rechnung aussehen wird, inklusive der daraus folgenden Schriftfarbe (#171)
  • Die Spalte für die Bezeichnung heißt im PDF jetzt wie im Editor „Bezeichnung" statt „Beschreibung" (#157)

Security

  • dompdf auf 3.1.6 angehoben. Die Version schließt laut Release Notes gemeldete Sicherheitslücken; dompdf erzeugt das Rechnungs-PDF

Changed

  • Weitere Abhängigkeiten aktualisiert: dompurify, fast-xml-parser, immutable, postcss, fast-uri, brace-expansion, js-yaml
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureMfyGkAWLpC5IS7BOHlL1YVoOTLrh/IBR5gkLSv7hFwhB+0tQnp6uATLUlDD46Bf2dolSg5oeyL88GDPp/jOp9XIqn16w8PVMkhEVhjPZyo7K0GxFJNf1G8uhs/346/zOtyM3KQBFFt28JUns1p17OR2TyihOOa7cS9rP+A1ghML3L/DURiepOK8zNam0tPTvc3bJU6YShsSaOStdp6VEwcPR/dQqGuLggyzT5sXV3nWDOYGpHyPubgPgUmKQ5TvvdeD6lxQhhPQTX9WJNps1Qpi1xJRs8x78DUAKU5xg1gcNlLuWB9XCZUji9X1s5yiw6HBLcI3A++iNR4Rqkl1XSw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.3.0
Release Details
UpdatedJuly 23, 2026, 12:36 p.m.
Changelog

Added

  • Textbausteine: eine verwaltete Bibliothek wiederverwendbarer Anrede-/ Einleitungs- und Schlusstexte, getrennt für Rechnungen und Angebote. Je Dokumenttyp und Textbereich gibt es genau einen Standard-Baustein, der neue Dokumente vorbefüllt; weitere Bausteine lassen sich im Editor per Klick einfügen. Neuer Menüpunkt „Textbausteine" (#126, #141)
  • Kleinunternehmer-Hinweis (§ 19 UStG): der Hinweistext auf der Rechnung ist jetzt frei konfigurierbar (#141)
  • Datums-Variablen {MM} (Monat) und {DD} (Tag) für die Rechnungs- und Angebotsnummer, zusätzlich zu {YYYY}/{YY}/{####} (#143)
  • Weitere Einheiten zur Auswahl: kWh, Liter, Meter, Kilometer, m², Gramm, Tonne (gültige UN/ECE-Codes, E-Rechnung bleibt valide) (#146)
  • Einzelpreise mit bis zu 4 Nachkommastellen (z. B. Energie 0,3456 €/kWh); die Rundung auf ganze Cent erfolgt einmal beim Zeilenbetrag, Summen bleiben zweistellig (#147)
  • Freitext-Einheiten: frei benannte Einheiten (z. B. „Personen", „Sitzung") für Editor und PDF; die eingebettete E-Rechnung nutzt weiterhin einen gültigen generischen Einheitencode (#153)

Changed

  • Kleinunternehmer (§ 19 UStG): Rechnungen und Angebote zeigen keine „0 %"-USt- Spalte und keine „Steuerfrei 0,00 €"-Zeile mehr; da netto = brutto erscheint nur der Gesamtbetrag mit dem § 19-Hinweis. Die eingebettete XML bleibt unverändert korrekt (Kategorie „E") (#144)
  • Bei einem Angebot ist der Leistungszeitraum nicht mehr als § 14-UStG- Pflichtangabe ausgewiesen, sondern als optionaler „Geplanter Leistungszeitraum"
  • Einheitliche Bedienung der Verwaltungslisten (Textbausteine, Kunden, Produkte): Zeile anklickbar zum Bearbeiten, direkte Icon-Aktionen statt „…"-Menü

Fixed

  • Lange Produktnamen und Beschreibungen sprengen die Positionstabelle im PDF nicht mehr; die Spalten bleiben stabil und die Einheit bricht nicht mehr in eine neue Zeile um (#145)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
Signatureiz4D936PYC2hirNT+Gu01alqM2CG00jSDepS0W3no3KGsYHNuzeIFkvWuJ5bvi+GS2dz/4L/76JnC+p/hULNXubNHJR181yt2yN/B4yK2HhK8QYJDjD0UAQjePNt/8424fT4nYw4hr6CsCrimhwb711WuoNE1lgGdQ6hgjeg2pf4uTturWl12ludMPseDlg/UBzejSx1gxDM1yy3RSVtNnE9KQqveRzMk7BUBtHBraVEEHFx4gpbVsVWvqaCKTEFsSb7HYPMKxFajdQhN5NX7BzilL0jtS+W2UHIEe+WWtbcmY55jfe9CkMxQeoreD4HcKdHfyaqU2kCXTcujnblGA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.2.0
Release Details
UpdatedJuly 18, 2026, 7:55 a.m.
Changelog

Added

  • Angebote: Angebote mit eigenem Nummernkreis erstellen, festschreiben und als PDF versenden. Ein eigener Menüpunkt „Angebote" führt zu einer eigenen Liste mit Status (Offen, Abgelaufen, Angenommen, Abgelehnt, Übernommen, Revidiert). Angebote haben ein „Gültig bis"-Datum (§ 148 BGB) und eine optionale Freibleibend-Kennzeichnung (§ 145 BGB), die als Hinweis auf dem PDF erscheint. Der Angebots-Nummernkreis (Standard AN-{YYYY}-{####}) ist in den Einstellungen unabhängig von den Rechnungen konfigurierbar (#111)
  • In Rechnung übernehmen: ein festgeschriebenes Angebot lässt sich per Knopfdruck in einen neuen Rechnungs-Entwurf überführen – Positionen und Empfänger werden übernommen, die Rechnung referenziert die Angebotsnummer, das Angebot wird als „übernommen" markiert (#111)
  • Angebot revidieren: aus einem festgeschriebenen Angebot lässt sich eine überarbeitbare Revision erstellen. Sie erhält beim Festschreiben eine Revisionsnummer (AN-…-1, -2, …), das Ursprungsangebot wird als „revidiert" markiert (#111)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureSut+zU8cXNarPEIMOdjzO6Vyt3zPfCjSliR6aqSC+JHI+CIm8DlB/lyeDsWuCLaG9K6AQ/43KaiWW1I9f4kqWlUU6t2sBnkafY9FC1F4Sl8j8Ku63t9rBmi9jpLaV5S4Lu6R4Tu8QzRF4ozFDnw9bB2N3+gRl5YfuAzAQa49q67qe+C5wN9ietNZoHicl1l5q9tpNuAs+Q2t9lva8OBNToqR1sKLjVdb3saAG1U+4MrmPTPz0EsU8vGo7oD3agYndSw9RaeXbxMTuDMSHSbLCOZEVf5P9Ns594IwKZ5JsAbCEkvtMQl64vKY7+SWLojj7+p3b7e31Wkhc/XUVmvIgg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.8
Release Details
UpdatedJuly 17, 2026, 8:28 a.m.
Changelog

Added

  • Zahlungsstatus verfolgen: Rechnungen lassen sich in der Liste als bezahlt markieren; der Status (offen, überfällig, bezahlt) ist auf einen Blick sichtbar – überfällige Rechnungen sind hervorgehoben, bezahlte gedämpft dargestellt. Eine Filterleiste (Alle/Offen/Überfällig/Bezahlt) zeigt zusätzlich die Summe der offenen Beträge. Ein Standard-Zahlungsziel in den Einstellungen belegt neue Rechnungen vor (#117)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignaturesXhEzBMcXpQoQRWbU5Ky7yfzsZEyH5Ll1kI7EJKXftrcsmh1YwvMGgtcbOfeFsPO6mrbq/jzFYuX2lWJazredJEeLSSspQeHTvcuCXSY4ne25hOpuVtTux7bD8fJLGAiyQSvuJzGWXfwp6TSlTM0wdlU1TyLdR8w/dWyVLsQf9367mbQE3yfefnI0CT1G0u+TTPQsDMiy0Ua5njgIJRhpl6giGwn9pjDzIJ5OmYDkdm70c7rFDS1VqUoXAvMo9oEjJthD2UQhoBQY0A+iHk4b8aRgsn6zbBTSxj+NcOA0Qk0ZeYspQJ4oRbSUT5DymHnREzSLMq9n0n17dM3R2TnVw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.7
Release Details
UpdatedJuly 15, 2026, 7:51 p.m.
Changelog

Added

  • Rechnung duplizieren: eine bestehende Rechnung lässt sich per Knopfdruck in der Rechnungsliste als Vorlage für eine neue, bearbeitbare Rechnung übernehmen. Empfänger, Positionen, Referenzen, Notizen und Textbausteine werden kopiert; die neue Rechnung startet als Entwurf ohne Nummer. Stornobelege sind davon ausgenommen (#124)

Fixed

  • Kunde anlegen: Das Speichern schlug fehl, sobald ein Zahlungsziel gesetzt war (#122)
  • Das DATEV-„gesendet"-Symbol in der Rechnungsliste wird nur noch angezeigt, wenn die DATEV-/IMAP-Anbindung eingerichtet ist. Ohne IMAP-Konfiguration lief der automatische Abgleich ohnehin nie, sodass der Status sonst dauerhaft ohne Wirkung sichtbar blieb (#127)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureJELX2endgOdkGdfh2w6fY8wd4eys440C0bemzaAVBhxT4m0sRnRYECDZMoUSv69nz6V5VOe5hTgg3l2bGFh0bzBJ0ucovrtDhy9+XXeLJUHTIgw+f/6R8OG6t+GrsJAglZMCgr1adEUMfhBa+bh09eNyPgvVQ8Jxqj0J7a99PIFQdhimYN+K4MscgCf820b/wFX1zUhT+4WxzXor9rl1Iw07q+4EZiBlT1sESS3dPvNcPYM94uyijiCa3kC+EhA4XiKXr/HkIQmLk0Plor+mQv/Gh0V9M6OkFOdOzNAUwxuDa8X2eWYUIPbE9P4bV/83gogZpUZIDMDUj4grSfB3Aw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.6
Release Details
UpdatedJuly 13, 2026, 8:39 a.m.
Changelog

Fixed

  • App-Installation auf Nextcloud 31 und 32 schlug fehl mit „Primary index name on 'oc_rechnungswerk_invoice_item' is too long". Die unterstützten Datenbanken (SQLite/MySQL/PostgreSQL) sind jetzt in der info.xml deklariert, wodurch Nextclouds Oracle-Namenslimit-Prüfung nicht mehr greift (#118)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignaturekXawEvTMN/MEksp8u2OB6KxiDpbGNZvPhivMAU2DbRzqmBrGxilRgMUJb6EExxAwJ6DU91Y/qU4iZy8FX1mqzd1ANjXFImD8bG43peKgDcAJwtQyFD/IQ1s9q9wNFNL2qjeTB9VcYDaGatAXLVE9W8zdFuJiqNNKGjcU190vB/S/i6SQgMryNKZrH87Pdd02ADgWcKIi3KyYjr3VvTruaiIrbRv3LgSns9UTXtUcpyvYKdWXQPsj1uc1tY5JpZGwKIOc4VHlxhSWXyTIPOvi5rZle2uVPsyBFT5iz48e+D8WIYidgyY5t2jaoLt7djJcYENcNAbcyz3s7BTmtC/84Q==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.5
Release Details
UpdatedJuly 11, 2026, 6:33 p.m.
Changelog

Added

  • Neue Referenzfelder auf der Rechnung: Vertragsnummer (BT-12) und Objekt-/Projektkennung (BT-18). Beide stehen strukturiert im E-Rechnungs-XML und als Meta-Zeilen im PDF (#41)
  • Notizen/Hinweise auf der Rechnung: frei formulierbare Textzeilen, sichtbar im PDF und als Notiz (BT-22) im E-Rechnungs-XML (#41)

Changed

  • Anrede/Einleitung und Schlusstext stehen jetzt auch im E-Rechnungs-XML (BT-22) und nicht mehr nur im PDF (#41)
  • Stornobelege übernehmen die Referenzen der Originalrechnung (Bestell-, Referenz-, Vertragsnummer, Leitweg-ID, Objektkennung)
  • Generische freie Felder (Key-Value) werden nicht weiterverfolgt; bestehende Einträge bleiben als Notizen lesbar (#41)

Fixed

  • Rechnungseditor übernimmt beim Wechsel von einer Rechnung zu „Neue Rechnung" keinen alten Formularzustand mehr (#109)
  • Esc schließt Modals auch dann, wenn der Fokus in einem Eingabefeld liegt (#107)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignaturefjPXXKL3vvb63vSpX/J8RT/tRxS0jbZyE8Sg8WN1xKKtQOZZxdQTFalX7Din8u8akVxvXup2V91d3GLfhB9x1yqNvZGRVa4kggAduDoCeO/IR6vVZxKweFw1X8KAo0Wt4ph1s7aQs8kMdsEQCfzBtwtORXG9hmmj4KUmvIWQpw9ipTvf14XvA60KEitNQf/VGSAxVIlowcq1bgvXf9CrOYMBRo7slEBcucL8fN9jfw3QgV0StjK5iemBpAJg/hMMnMhdgkSXkfEczisnVwe8u8vuz9bMXMIWhAQFWjT89IECY2UW4Lcv4Ai3A+7/tUk4b6W3pfOVggfOUTm54yeJ0w==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.4
Release Details
UpdatedJuly 11, 2026, 10:53 a.m.
Changelog

Added

  • Rechnungsvorschau für Entwürfe: Vorschau-Button im Editor zeigt das PDF vor dem Festschreiben. Deutlich als ENTWURF gekennzeichnet (Wasserzeichen, Banner, ohne E-Rechnungs-XML) (#94)
  • Konfigurierbares Dateinamen-Schema für erzeugte PDFs mit Platzhaltern {nummer}, {YYYY}/{MM}/{DD}, {kunde}, {typ}. Gilt einheitlich für Download, Kundenmail und DATEV-Mail, mit Live-Vorschau in den Einstellungen (#37)
  • Automatische Ablage festgeschriebener Rechnungen (inkl. Stornos) in einen Nextcloud-Ordner (auch Team-/Gruppenordner), optional mit Jahres-Unterordnern; Komfort-Ablage, kein revisionssicheres Archiv (#38)
  • Girocode: optionaler EPC-Bezahl-QR-Code (EPC069-12) neben der Bankverbindung. Banking-Apps übernehmen Empfänger, Betrag und Verwendungszweck automatisch; nie auf Stornos oder Entwurfs-Vorschauen (#79)

Changed

  • Neue Runtime-Abhängigkeit bacon/bacon-qr-code für das QR-Rendering
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureLZo7cCep3E7ce/8lmUohIZa6LI36+uaqF2y6wFukPeVjvCSxwqO84q3869FFhmq8QLYJUrysSHhVopd+5ULUtoeZ2CVUQwoKq09+BFTuxQPFRkeE9cwH94Rrp0tXCapDhEBgLaS3PEZYd4tMMzZw7Av7WwA89hH8Fy3b7JnVBk6LsZg5saPchA6ViX6Y+DW5wYHdYdp2wvZHhv9+FgMJrd19Q3n3n7dJ6XK89FUb5/Z/3K09+R0mkck7A0N2iR56C/sQr12tMPeEkyqlg+Bj3x7BVmDmawpSnwFI86TCTmvn5E5ehK0BrYufQlKuDkSgg48yRNRrldNnQ03M5Vtr/w==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.3
Release Details
UpdatedJuly 8, 2026, 7:11 a.m.
Changelog

Added

  • Nummernkreis-Modus: fortlaufend über Jahre vs. jährlicher Reset, umschaltbar in den Einstellungen (#39)
  • Persönlicher Bereich „Mein Kontakt": eigener Verkäufer-Ansprechpartner pro Nutzer, füllt neue Rechnungen automatisch vor (#47)
  • Einheit „Monat" für Rechnungspositionen (#76)

Fixed

  • Kontakt-E-Mail aus den Einstellungen wird auf Rechnung und E-Rechnung korrekt verwendet, statt der Nextcloud-Konto-Mail (#86)
  • Rechnungstexte: Einleitung erscheint wieder, Schlusstext steht genau einmal unten (keine Dopplung, korrekte Platzierung) (#76)

Security

  • Sicherheitsupdates der Frontend-Abhängigkeiten: dompurify, js-yaml, vite/esbuild (Advisories behoben, npm audit clean)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureGfdVd7F79t0qMXZuq31SJd3IWVykZfSbU5B9eC01Vga/lkUfdvctqYcBv3YR+xoJIr6Lpg9Ax9e+yiaf4kT3RlEJatRcezHnNUNn9+YNEionm8Wzt0y7/sJI2BlmR2aFOS9ConZWSUPO/pPyIPJwN5fWz9+k935pHNWM9eEzyEAoQ1P+xTI6kqyNu1g3I6X5mVgw6CkovFYMc3zm0Swlxvln6H/4QNQPWaJ1SY8vobqTEmkJjjKEDbZf3rvHaxUNOHoQPb1XzUio5YPZrDG8MoYCoRJEHt9oURYtAUzN+yPXN2PzmUUDqgcQ0sidv5buYMJqOTOZesQUmFQCAd+WMQ==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.2
Release Details
UpdatedJuly 6, 2026, 3:39 a.m.
Changelog

Added

  • Nextcloud 34 wird unterstützt (max-version auf 34 angehoben)
  • Kundenverwaltung: eigene Customer-Entität mit Erfassung, Bearbeitung und Übernahme in die Rechnung

Fixed

  • Storno als rechtssichere E-Rechnung: Korrekturrechnung mit typeCode 384 und negativen Beträgen (EN16931 / §14c UStG), Referenz auf die stornierte Rechnung (BT-25/BT-26); Beleg heißt „Stornorechnung" statt „Gutschrift" (#64, #65)
  • Storno-Dialog eindeutig beschriftet, doppeltes „Cancel" behoben (#64)
  • DATEV-Rückkanal (IMAP): RFC-2047-Q-Encoding wird versionsstabil dekodiert (PHP 8.2)

Changed

  • DATEV-Rückkanal nutzt einen eigenen schlanken IMAP-Client statt webklex/php-imap (deutlich kleineres Release, unter dem App-Store-Größenlimit) (#51)
  • Anzeigename und Marken-Strings durchgängig auf „RechnungsWerk" vereinheitlicht
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignaturemUXJDuNe+Tilo+dpUr+E737GyLaklc1NJcW9vzLpYYhWaLd+43FFRC5Cv9YyDKJsxPf0C12O19vw9sBfNxxv/UfPsEDc+ltMnmDebp0mCwsusHBF4M3CODsrB/NKrodV/oj8p0z/q43TZzYPdQZ3AzqryUrQVIGvAug2znoDd89J6uhroEDGsLoxDrj6cgpN8Y5e3MFy1wqvirArLewEDS7CmkOXhX4vLTNu/DddQvQmCWp6nlFUmG90koD05VwSCRw3FP+uuig71l4q+giN07sNEb/WqWx00y4aZ//6Svm+MbZcBEeZCvoBbl/gEAgBLSIND8hnPxkeJ61H2B9syQ==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.1
Release Details
UpdatedJune 25, 2026, 10:18 p.m.
Changelog

Added

  • Spendenlink (Ko-fi) in der App-Beschreibung / im App Store
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureTxuswNGbBYWD5c3Hb/XPAXczbWJGBIbZwCyLuvyWrf68iUvry5vpM98jxZ/HOO6UjERHUcOvR4mboa22aiL4gE18m4V9fEuH09pTmPQuZRCJfJNpDsERvpanhuiKB2G/vIFnVRPTnscKIQj9AEOBziIrhpmXehB/UDtvGfjg5GqRrV7OUu+I5fPztg/Mc1gHnZ7cdwpKY2ERscmXqNzXzfQND0yJKmVQ2mKMBRpspv/opYBqPvPdFcmirSMqkDu6MpjusT6o3Mr1oVzcMvByvz16YDF7lffgYRaYe8ZMLURRRfLYf349mIaZh02K6khJG41Kf6zU9745KXNYTkAnKA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.0
Release Details
UpdatedJune 25, 2026, 3:39 p.m.
Changelog

Erster öffentlicher Release im Nextcloud App Store. Rechnungen und E-Rechnungen (ZUGFeRD/EN16931) erstellen, an Kunden versenden und automatisch an DATEV übergeben.

Added

  • E-Rechnung (ZUGFeRD/EN16931): CII-XML + branded PDF/A-3 (ZugferdService), vollständiger Feldexport — Leistungsdatum/-zeitraum (BT-72/BG-14), Bestell-/Referenznummern (BT-13/14), Verkäufer-/Käufer-Ansprechpartner (BG-6/BG-9), USt-Sonderfälle (Reverse-Charge, innergemeinschaftlich, Ausfuhr)
  • DATEV-Übergabe: automatischer E-Mail-Versand der ZUGFeRD-PDF an die DATEV-Upload-Mail beim Festschreiben und beim Stornieren; optionales eigenes SMTP-Konto
  • DATEV-Rückkanal (IMAP): Background-Job wertet Empfangsbestätigungen aus (In-Reply-To-Matching), Status gesendet → bestätigt; optionaler Papierkorb-Cleanup bestätigter Quittungen (Admin-Einstellung, Default aus)
  • Verkäufer-Ansprechpartner pro Rechnung (Kaskade Rechnung → NC-Konto → Firmenkontakt)
  • Status-Anzeige als flache Icons + Legende in Liste und Editor; Einstellungen in der Navigation unten links (NC-Konvention)
  • Zahlungsbedingungen (It. 4a): Zahlungsziel (Tage), automatisch berechnetes Fälligkeitsdatum beim Festschreiben und Skonto-Hinweis — Migration v0.1.1 (payment_term_days, due_date, discount_terms) + Editor-Sektion
  • Rechnungs-Editor + Liste (It. 3): InvoicesView mit Status-Chips und InvoiceEditorView (Rechnungsdaten · Empfänger · Positionen · Steuer&Summen · Texte)
  • Editierbare Positionstabelle mit Live-Summen + USt-Aufschlüsselung (Client-Vorschau, Server autoritativ), Produkt-Übernahme aus dem Katalog, §19-konforme 0%-Erzwingung
  • Empfänger-Auswahl aus Nextcloud-Kontakten (ContactController + OCP\Contacts\IManager) mit Tipp-Vorschlägen und Auto-Befüllung
  • Lifecycle in der UI: Entwurf speichern → Festschreiben (Bestätigung, endgültige Nummer, read-only) → Stornieren (Stornobeleg)
  • l10n de/en erweitert (120 Keys)

Added (frühere Iterationen)

  • Stammdaten + Produktkatalog (It. 2): ProductService/ProductController (/api/v1/products CRUD) und SettingsController (/api/v1/settings)
  • Frontend ProductsView (Tabelle + Editor-Modal) und SettingsView (gegliedertes Formular: Firma/Bank/Branding/Nummernkreis/Steuer/Versand/Standardtexte) mit §19-Bestätigungsdialog und Live-Vorschau der Rechnungsnummer
  • Pinia-Stores, typisierter API-Client, Geld-Helfer (Cent↔€), l10n de/en
  • Unit-Tests für ProductService
  • (Logo-Auswahl via NC-Files-Picker bewusst auf It. 4 / PDF-Branding verschoben)
  • Initiale App-Grundstruktur (Vue 3 + Vite + @nextcloud/vue 9, PHP 8.2 OCP)
  • App-Navigation mit Platzhalter-Views: Rechnungen, Produkte, Einstellungen
  • Datenmodell + Persistenz-Schicht: Entities/Mapper für Invoice, InvoiceItem, Product, Settings (Geld in Cents, Steuer in Basispunkten, owner-scoped)
  • DB-Migration v0.1.0 (4 Tabellen)
  • InvoiceCalculator (Zeilensummen, Steueraufschlüsselung pro Satzgruppe, Rechnungsnummern-Formatierung) mit Unit-Tests
  • InvoiceService mit Lifecycle (Entwurf → Festschreiben → Storno) und SettingsService (per-Owner-Stammdaten, jahresbasierter Nummernkreis)
  • REST-API /api/v1/invoices (CRUD + /commit, /cancel)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureHSEU9FkRh3w5EkQS8knKf2Odr2rIzhq8NqjYmzgijhzpFtIDq3XM1Cs5+cUyKzgGJf1497jAmVwwUb9QS3aCURWoCPBWcoZy2HOqy5V9jdhNgF5r1+hzZrYZvwKkriR4gyZAtM4WnB1t9syVYBQ3E87/8kdHwNKK9hqbZh5Hf61ovhWn0A8Q9i5+A9FK79M1zP/JX+mHio4QAxIVIcbjmmG+MDPsugayfIGmBEYvQCxFqeruOoizXwnbCg2CSqtEK5PxtmJPklZI53+TuLvDaXHNuCQO7QYlCRNQHixoZzWWJj4ap0KKf3KF23UiiKG9ncPIbD7z1Z0tu2KizTX9Qw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0

Nextcloud 31

RechnungsWerk 0.4.0
Release Details
UpdatedAug. 8, 2026, 4:18 p.m.
Changelog

Festgeschriebene Rechnungen sind jetzt wirklich unveränderlich. Bisher entstand jedes PDF bei jedem Zugriff neu, aus den zu diesem Zeitpunkt gültigen Einstellungen. Eine bereits ausgestellte E-Rechnung konnte sich dadurch nachträglich ändern und ungültig werden.

Changed

  • Der Beleg einer festgeschriebenen Rechnung wird beim Festschreiben abgelegt und ab dann ausgeliefert, statt bei jedem Zugriff neu zu entstehen. Damit bekommen Download, Kundenversand, DATEV-Übergabe und die Ablage in Nextcloud Files garantiert dieselbe Datei; vorher konnten zu einer Rechnung drei verschiedene Dokumente existieren. Der Beleg ist nur einmal beschreibbar, seine Prüfsumme steht am Datensatz, und der Dateiname ist mit eingefroren. Die Ablage liegt im app-eigenen Speicher und damit in jeder Instanz-Sicherung, nicht im Dateibaum des Nutzers, wo sie versehentlich zu ändern wäre (#181)
  • Der Kleinunternehmer-Fall steht jetzt an der Rechnung statt in den Einstellungen. Ein Wechsel zwischen Kleinunternehmerregelung und Regelbesteuerung ist ein völlig normaler, einmaliger Vorgang. Er machte vorher aus jeder älteren 19-%-Rechnung rückwirkend eine steuerfreie: das eingebettete XML wies CategoryCode E und 0,00 % aus, bei weiterhin ausgewiesenen 19,00 € Steuer. Ein solches Dokument widerspricht sich selbst und verletzt EN 16931 (#181)
  • Bestandsrechnungen werden im Hintergrund nachgezogen, in Häppchen und ohne Wartungsmodus. Nachträglich erzeugte Belege sind als solche gekennzeichnet und im Rechnungseditor ausgewiesen: sie stimmen inhaltlich, entsprechen im Aussehen aber dem heutigen Stand und nicht dem, was der Kunde damals bekommen hat. Für Bestandsrechnungen ist das Original-Aussehen nicht wiederherstellbar (#181)

Fixed

  • Einzelpreise werden serverseitig aus der Eingabe berechnet und geprüft. Bisher rechnete allein der Browser und schickte die fertige Zahl. Dem Server war nicht anzusehen, ob 95 als 0,0095 € oder als 95 € gemeint war. Betrifft Rechnungspositionen und den Standardpreis im Produktkatalog (#180)
  • Ein Storno übernimmt den Steuerfall der Original-Rechnung statt der aktuellen Einstellungen. Sonst hätte die Gutschrift zu einer 19-%-Rechnung nach einem Wechsel der Besteuerungsform 0 % ausgewiesen (#181)

Abhängigkeiten und Infrastruktur

  • phpmailer auf 7.1.1 angehoben. Der Mailversand wurde damit real geprüft, der Anhang bleibt der eingefrorene Beleg
  • Frontend-Werkzeuge und Bibliotheken aktualisiert: vite 8, @nextcloud/l10n 3, vue-router 5, pinia 4, @nextcloud/vue 9.9. Der Sprung auf vue-router 5 war ohne pinia 4 nicht möglich und beseitigt zugleich eine doppelte Router-Version im Abhängigkeitsbaum
  • GitHub-Actions auf checkout 7, setup-node 7 und github-script 9
  • Dependabot zielt jetzt auf develop und gruppiert Minor- und Patch-Updates
  • Der Workflow, der Issues beim Merge nach develop schließt, wertet Code in PR-Texten nicht mehr als Anweisung
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
Signaturekg15ifuNkkeQMOsP5v3QthE3KZvAghdIGVoEUZ0WySHi9mshrzqNhdoAtHfS00ZCQlmKuN/VXvX/CjQP2OWwvMYQB91s4ts3theFM6fE7UNwnc4RfF8GSO9XJNofCvnjKoGBMgeFkJr3VyvtCGYKvWXxqoxcsDgit7r71AAXMlKGxFfXuZO8+czcs0nwKBpMKuY4hvKoB/ls7ZpxLafSHUmBUjjLmMq3cEEuVgMCr0UYPID1DxETu2PupVFQ61gh8FMzo8jG3Bc0BEswToJHZJi+XRpNMOlesg/tovaT2WZOXXBagyxXb69e4YHMFavgu0nSIeBySKac0hKLumO3Tg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.3.1
Release Details
UpdatedAug. 7, 2026, 9:12 p.m.
Changelog

Fehlerbehebungen aus Rückmeldungen von Nutzern. Zwei der Fehler erzeugten stillschweigend falsche Werte auf Rechnungen, die an Kunden gehen.

Fixed

  • Kontakte aus dem Nextcloud-Adressbuch lassen sich wieder übernehmen. Das vCard-Feld für das Land enthält laut Standard einen frei geschriebenen Namen, iOS und Outlook tragen dort „Deutschland" oder „Germany" ein. Der Wert lief ungeprüft in eine Spalte für den zweistelligen Ländercode, wodurch das Speichern des Entwurfs mit einem Fehler 500 abbrach und keine Vorschau mehr erzeugt werden konnte. Ländernamen werden jetzt in beiden Sprachen erkannt und umgesetzt, inklusive Schreibvarianten wie „Oesterreich" (#167)
  • Mengen und Einzelpreise in deutscher Schreibweise werden korrekt gelesen. Bisher brach eine achtstellige Menge wie 99.999.999 mit einem Fehler 500 ab, und eine Eingabe von 1.000 wurde ohne jeden Hinweis als 1 gespeichert, was die Rechnung um den Faktor 1000 verfälschte. Dasselbe traf den Einzelpreis, dort ohne Fehlermeldung als Warnsignal. Nicht lesbare Eingaben werden jetzt mit einer verständlichen Meldung abgelehnt statt geraten (#157)
  • Die Spaltenbreiten der Positionstabelle passen wieder zum Inhalt. Seit 0.3.0 waren alle Spalten gleich breit, wodurch die Bezeichnung viel zu früh umbrach, während die USt-Spalte Platz verschwendete (#157)
  • Die Kopfzeile der Positionstabelle bleibt bei jeder Akzentfarbe lesbar. Die Schrift war fest weiß und verschwand auf hellen Firmenfarben; sie wechselt jetzt auf Schwarz, wenn Weiß nicht mehr trägt. Die gewählte Farbe selbst bleibt unverändert (#171)
  • Das Auswahlfeld für die Akzentfarbe öffnet nicht mehr den Farbdialog des Betriebssystems, der sich unter macOS nicht wieder schließen ließ (#171)
  • Das ausgelieferte JavaScript enthält keinen Entwicklungscode mehr. Das Bundle ist dadurch rund 100 KB kleiner und die Konsole bleibt frei von Hydrations- und Prop-Warnungen (#168)

Added

  • Ein Musterstreifen in den Einstellungen zeigt beim Wählen der Akzentfarbe, wie die Kopfzeile der Positionstabelle auf der Rechnung aussehen wird, inklusive der daraus folgenden Schriftfarbe (#171)
  • Die Spalte für die Bezeichnung heißt im PDF jetzt wie im Editor „Bezeichnung" statt „Beschreibung" (#157)

Security

  • dompdf auf 3.1.6 angehoben. Die Version schließt laut Release Notes gemeldete Sicherheitslücken; dompdf erzeugt das Rechnungs-PDF

Changed

  • Weitere Abhängigkeiten aktualisiert: dompurify, fast-xml-parser, immutable, postcss, fast-uri, brace-expansion, js-yaml
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureMfyGkAWLpC5IS7BOHlL1YVoOTLrh/IBR5gkLSv7hFwhB+0tQnp6uATLUlDD46Bf2dolSg5oeyL88GDPp/jOp9XIqn16w8PVMkhEVhjPZyo7K0GxFJNf1G8uhs/346/zOtyM3KQBFFt28JUns1p17OR2TyihOOa7cS9rP+A1ghML3L/DURiepOK8zNam0tPTvc3bJU6YShsSaOStdp6VEwcPR/dQqGuLggyzT5sXV3nWDOYGpHyPubgPgUmKQ5TvvdeD6lxQhhPQTX9WJNps1Qpi1xJRs8x78DUAKU5xg1gcNlLuWB9XCZUji9X1s5yiw6HBLcI3A++iNR4Rqkl1XSw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.3.0
Release Details
UpdatedJuly 23, 2026, 12:36 p.m.
Changelog

Added

  • Textbausteine: eine verwaltete Bibliothek wiederverwendbarer Anrede-/ Einleitungs- und Schlusstexte, getrennt für Rechnungen und Angebote. Je Dokumenttyp und Textbereich gibt es genau einen Standard-Baustein, der neue Dokumente vorbefüllt; weitere Bausteine lassen sich im Editor per Klick einfügen. Neuer Menüpunkt „Textbausteine" (#126, #141)
  • Kleinunternehmer-Hinweis (§ 19 UStG): der Hinweistext auf der Rechnung ist jetzt frei konfigurierbar (#141)
  • Datums-Variablen {MM} (Monat) und {DD} (Tag) für die Rechnungs- und Angebotsnummer, zusätzlich zu {YYYY}/{YY}/{####} (#143)
  • Weitere Einheiten zur Auswahl: kWh, Liter, Meter, Kilometer, m², Gramm, Tonne (gültige UN/ECE-Codes, E-Rechnung bleibt valide) (#146)
  • Einzelpreise mit bis zu 4 Nachkommastellen (z. B. Energie 0,3456 €/kWh); die Rundung auf ganze Cent erfolgt einmal beim Zeilenbetrag, Summen bleiben zweistellig (#147)
  • Freitext-Einheiten: frei benannte Einheiten (z. B. „Personen", „Sitzung") für Editor und PDF; die eingebettete E-Rechnung nutzt weiterhin einen gültigen generischen Einheitencode (#153)

Changed

  • Kleinunternehmer (§ 19 UStG): Rechnungen und Angebote zeigen keine „0 %"-USt- Spalte und keine „Steuerfrei 0,00 €"-Zeile mehr; da netto = brutto erscheint nur der Gesamtbetrag mit dem § 19-Hinweis. Die eingebettete XML bleibt unverändert korrekt (Kategorie „E") (#144)
  • Bei einem Angebot ist der Leistungszeitraum nicht mehr als § 14-UStG- Pflichtangabe ausgewiesen, sondern als optionaler „Geplanter Leistungszeitraum"
  • Einheitliche Bedienung der Verwaltungslisten (Textbausteine, Kunden, Produkte): Zeile anklickbar zum Bearbeiten, direkte Icon-Aktionen statt „…"-Menü

Fixed

  • Lange Produktnamen und Beschreibungen sprengen die Positionstabelle im PDF nicht mehr; die Spalten bleiben stabil und die Einheit bricht nicht mehr in eine neue Zeile um (#145)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
Signatureiz4D936PYC2hirNT+Gu01alqM2CG00jSDepS0W3no3KGsYHNuzeIFkvWuJ5bvi+GS2dz/4L/76JnC+p/hULNXubNHJR181yt2yN/B4yK2HhK8QYJDjD0UAQjePNt/8424fT4nYw4hr6CsCrimhwb711WuoNE1lgGdQ6hgjeg2pf4uTturWl12ludMPseDlg/UBzejSx1gxDM1yy3RSVtNnE9KQqveRzMk7BUBtHBraVEEHFx4gpbVsVWvqaCKTEFsSb7HYPMKxFajdQhN5NX7BzilL0jtS+W2UHIEe+WWtbcmY55jfe9CkMxQeoreD4HcKdHfyaqU2kCXTcujnblGA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.2.0
Release Details
UpdatedJuly 18, 2026, 7:55 a.m.
Changelog

Added

  • Angebote: Angebote mit eigenem Nummernkreis erstellen, festschreiben und als PDF versenden. Ein eigener Menüpunkt „Angebote" führt zu einer eigenen Liste mit Status (Offen, Abgelaufen, Angenommen, Abgelehnt, Übernommen, Revidiert). Angebote haben ein „Gültig bis"-Datum (§ 148 BGB) und eine optionale Freibleibend-Kennzeichnung (§ 145 BGB), die als Hinweis auf dem PDF erscheint. Der Angebots-Nummernkreis (Standard AN-{YYYY}-{####}) ist in den Einstellungen unabhängig von den Rechnungen konfigurierbar (#111)
  • In Rechnung übernehmen: ein festgeschriebenes Angebot lässt sich per Knopfdruck in einen neuen Rechnungs-Entwurf überführen – Positionen und Empfänger werden übernommen, die Rechnung referenziert die Angebotsnummer, das Angebot wird als „übernommen" markiert (#111)
  • Angebot revidieren: aus einem festgeschriebenen Angebot lässt sich eine überarbeitbare Revision erstellen. Sie erhält beim Festschreiben eine Revisionsnummer (AN-…-1, -2, …), das Ursprungsangebot wird als „revidiert" markiert (#111)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureSut+zU8cXNarPEIMOdjzO6Vyt3zPfCjSliR6aqSC+JHI+CIm8DlB/lyeDsWuCLaG9K6AQ/43KaiWW1I9f4kqWlUU6t2sBnkafY9FC1F4Sl8j8Ku63t9rBmi9jpLaV5S4Lu6R4Tu8QzRF4ozFDnw9bB2N3+gRl5YfuAzAQa49q67qe+C5wN9ietNZoHicl1l5q9tpNuAs+Q2t9lva8OBNToqR1sKLjVdb3saAG1U+4MrmPTPz0EsU8vGo7oD3agYndSw9RaeXbxMTuDMSHSbLCOZEVf5P9Ns594IwKZ5JsAbCEkvtMQl64vKY7+SWLojj7+p3b7e31Wkhc/XUVmvIgg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.8
Release Details
UpdatedJuly 17, 2026, 8:28 a.m.
Changelog

Added

  • Zahlungsstatus verfolgen: Rechnungen lassen sich in der Liste als bezahlt markieren; der Status (offen, überfällig, bezahlt) ist auf einen Blick sichtbar – überfällige Rechnungen sind hervorgehoben, bezahlte gedämpft dargestellt. Eine Filterleiste (Alle/Offen/Überfällig/Bezahlt) zeigt zusätzlich die Summe der offenen Beträge. Ein Standard-Zahlungsziel in den Einstellungen belegt neue Rechnungen vor (#117)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignaturesXhEzBMcXpQoQRWbU5Ky7yfzsZEyH5Ll1kI7EJKXftrcsmh1YwvMGgtcbOfeFsPO6mrbq/jzFYuX2lWJazredJEeLSSspQeHTvcuCXSY4ne25hOpuVtTux7bD8fJLGAiyQSvuJzGWXfwp6TSlTM0wdlU1TyLdR8w/dWyVLsQf9367mbQE3yfefnI0CT1G0u+TTPQsDMiy0Ua5njgIJRhpl6giGwn9pjDzIJ5OmYDkdm70c7rFDS1VqUoXAvMo9oEjJthD2UQhoBQY0A+iHk4b8aRgsn6zbBTSxj+NcOA0Qk0ZeYspQJ4oRbSUT5DymHnREzSLMq9n0n17dM3R2TnVw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.7
Release Details
UpdatedJuly 15, 2026, 7:51 p.m.
Changelog

Added

  • Rechnung duplizieren: eine bestehende Rechnung lässt sich per Knopfdruck in der Rechnungsliste als Vorlage für eine neue, bearbeitbare Rechnung übernehmen. Empfänger, Positionen, Referenzen, Notizen und Textbausteine werden kopiert; die neue Rechnung startet als Entwurf ohne Nummer. Stornobelege sind davon ausgenommen (#124)

Fixed

  • Kunde anlegen: Das Speichern schlug fehl, sobald ein Zahlungsziel gesetzt war (#122)
  • Das DATEV-„gesendet"-Symbol in der Rechnungsliste wird nur noch angezeigt, wenn die DATEV-/IMAP-Anbindung eingerichtet ist. Ohne IMAP-Konfiguration lief der automatische Abgleich ohnehin nie, sodass der Status sonst dauerhaft ohne Wirkung sichtbar blieb (#127)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureJELX2endgOdkGdfh2w6fY8wd4eys440C0bemzaAVBhxT4m0sRnRYECDZMoUSv69nz6V5VOe5hTgg3l2bGFh0bzBJ0ucovrtDhy9+XXeLJUHTIgw+f/6R8OG6t+GrsJAglZMCgr1adEUMfhBa+bh09eNyPgvVQ8Jxqj0J7a99PIFQdhimYN+K4MscgCf820b/wFX1zUhT+4WxzXor9rl1Iw07q+4EZiBlT1sESS3dPvNcPYM94uyijiCa3kC+EhA4XiKXr/HkIQmLk0Plor+mQv/Gh0V9M6OkFOdOzNAUwxuDa8X2eWYUIPbE9P4bV/83gogZpUZIDMDUj4grSfB3Aw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.6
Release Details
UpdatedJuly 13, 2026, 8:39 a.m.
Changelog

Fixed

  • App-Installation auf Nextcloud 31 und 32 schlug fehl mit „Primary index name on 'oc_rechnungswerk_invoice_item' is too long". Die unterstützten Datenbanken (SQLite/MySQL/PostgreSQL) sind jetzt in der info.xml deklariert, wodurch Nextclouds Oracle-Namenslimit-Prüfung nicht mehr greift (#118)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignaturekXawEvTMN/MEksp8u2OB6KxiDpbGNZvPhivMAU2DbRzqmBrGxilRgMUJb6EExxAwJ6DU91Y/qU4iZy8FX1mqzd1ANjXFImD8bG43peKgDcAJwtQyFD/IQ1s9q9wNFNL2qjeTB9VcYDaGatAXLVE9W8zdFuJiqNNKGjcU190vB/S/i6SQgMryNKZrH87Pdd02ADgWcKIi3KyYjr3VvTruaiIrbRv3LgSns9UTXtUcpyvYKdWXQPsj1uc1tY5JpZGwKIOc4VHlxhSWXyTIPOvi5rZle2uVPsyBFT5iz48e+D8WIYidgyY5t2jaoLt7djJcYENcNAbcyz3s7BTmtC/84Q==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.5
Release Details
UpdatedJuly 11, 2026, 6:33 p.m.
Changelog

Added

  • Neue Referenzfelder auf der Rechnung: Vertragsnummer (BT-12) und Objekt-/Projektkennung (BT-18). Beide stehen strukturiert im E-Rechnungs-XML und als Meta-Zeilen im PDF (#41)
  • Notizen/Hinweise auf der Rechnung: frei formulierbare Textzeilen, sichtbar im PDF und als Notiz (BT-22) im E-Rechnungs-XML (#41)

Changed

  • Anrede/Einleitung und Schlusstext stehen jetzt auch im E-Rechnungs-XML (BT-22) und nicht mehr nur im PDF (#41)
  • Stornobelege übernehmen die Referenzen der Originalrechnung (Bestell-, Referenz-, Vertragsnummer, Leitweg-ID, Objektkennung)
  • Generische freie Felder (Key-Value) werden nicht weiterverfolgt; bestehende Einträge bleiben als Notizen lesbar (#41)

Fixed

  • Rechnungseditor übernimmt beim Wechsel von einer Rechnung zu „Neue Rechnung" keinen alten Formularzustand mehr (#109)
  • Esc schließt Modals auch dann, wenn der Fokus in einem Eingabefeld liegt (#107)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignaturefjPXXKL3vvb63vSpX/J8RT/tRxS0jbZyE8Sg8WN1xKKtQOZZxdQTFalX7Din8u8akVxvXup2V91d3GLfhB9x1yqNvZGRVa4kggAduDoCeO/IR6vVZxKweFw1X8KAo0Wt4ph1s7aQs8kMdsEQCfzBtwtORXG9hmmj4KUmvIWQpw9ipTvf14XvA60KEitNQf/VGSAxVIlowcq1bgvXf9CrOYMBRo7slEBcucL8fN9jfw3QgV0StjK5iemBpAJg/hMMnMhdgkSXkfEczisnVwe8u8vuz9bMXMIWhAQFWjT89IECY2UW4Lcv4Ai3A+7/tUk4b6W3pfOVggfOUTm54yeJ0w==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.4
Release Details
UpdatedJuly 11, 2026, 10:53 a.m.
Changelog

Added

  • Rechnungsvorschau für Entwürfe: Vorschau-Button im Editor zeigt das PDF vor dem Festschreiben. Deutlich als ENTWURF gekennzeichnet (Wasserzeichen, Banner, ohne E-Rechnungs-XML) (#94)
  • Konfigurierbares Dateinamen-Schema für erzeugte PDFs mit Platzhaltern {nummer}, {YYYY}/{MM}/{DD}, {kunde}, {typ}. Gilt einheitlich für Download, Kundenmail und DATEV-Mail, mit Live-Vorschau in den Einstellungen (#37)
  • Automatische Ablage festgeschriebener Rechnungen (inkl. Stornos) in einen Nextcloud-Ordner (auch Team-/Gruppenordner), optional mit Jahres-Unterordnern; Komfort-Ablage, kein revisionssicheres Archiv (#38)
  • Girocode: optionaler EPC-Bezahl-QR-Code (EPC069-12) neben der Bankverbindung. Banking-Apps übernehmen Empfänger, Betrag und Verwendungszweck automatisch; nie auf Stornos oder Entwurfs-Vorschauen (#79)

Changed

  • Neue Runtime-Abhängigkeit bacon/bacon-qr-code für das QR-Rendering
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureLZo7cCep3E7ce/8lmUohIZa6LI36+uaqF2y6wFukPeVjvCSxwqO84q3869FFhmq8QLYJUrysSHhVopd+5ULUtoeZ2CVUQwoKq09+BFTuxQPFRkeE9cwH94Rrp0tXCapDhEBgLaS3PEZYd4tMMzZw7Av7WwA89hH8Fy3b7JnVBk6LsZg5saPchA6ViX6Y+DW5wYHdYdp2wvZHhv9+FgMJrd19Q3n3n7dJ6XK89FUb5/Z/3K09+R0mkck7A0N2iR56C/sQr12tMPeEkyqlg+Bj3x7BVmDmawpSnwFI86TCTmvn5E5ehK0BrYufQlKuDkSgg48yRNRrldNnQ03M5Vtr/w==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.3
Release Details
UpdatedJuly 8, 2026, 7:11 a.m.
Changelog

Added

  • Nummernkreis-Modus: fortlaufend über Jahre vs. jährlicher Reset, umschaltbar in den Einstellungen (#39)
  • Persönlicher Bereich „Mein Kontakt": eigener Verkäufer-Ansprechpartner pro Nutzer, füllt neue Rechnungen automatisch vor (#47)
  • Einheit „Monat" für Rechnungspositionen (#76)

Fixed

  • Kontakt-E-Mail aus den Einstellungen wird auf Rechnung und E-Rechnung korrekt verwendet, statt der Nextcloud-Konto-Mail (#86)
  • Rechnungstexte: Einleitung erscheint wieder, Schlusstext steht genau einmal unten (keine Dopplung, korrekte Platzierung) (#76)

Security

  • Sicherheitsupdates der Frontend-Abhängigkeiten: dompurify, js-yaml, vite/esbuild (Advisories behoben, npm audit clean)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureGfdVd7F79t0qMXZuq31SJd3IWVykZfSbU5B9eC01Vga/lkUfdvctqYcBv3YR+xoJIr6Lpg9Ax9e+yiaf4kT3RlEJatRcezHnNUNn9+YNEionm8Wzt0y7/sJI2BlmR2aFOS9ConZWSUPO/pPyIPJwN5fWz9+k935pHNWM9eEzyEAoQ1P+xTI6kqyNu1g3I6X5mVgw6CkovFYMc3zm0Swlxvln6H/4QNQPWaJ1SY8vobqTEmkJjjKEDbZf3rvHaxUNOHoQPb1XzUio5YPZrDG8MoYCoRJEHt9oURYtAUzN+yPXN2PzmUUDqgcQ0sidv5buYMJqOTOZesQUmFQCAd+WMQ==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.2
Release Details
UpdatedJuly 6, 2026, 3:39 a.m.
Changelog

Added

  • Nextcloud 34 wird unterstützt (max-version auf 34 angehoben)
  • Kundenverwaltung: eigene Customer-Entität mit Erfassung, Bearbeitung und Übernahme in die Rechnung

Fixed

  • Storno als rechtssichere E-Rechnung: Korrekturrechnung mit typeCode 384 und negativen Beträgen (EN16931 / §14c UStG), Referenz auf die stornierte Rechnung (BT-25/BT-26); Beleg heißt „Stornorechnung" statt „Gutschrift" (#64, #65)
  • Storno-Dialog eindeutig beschriftet, doppeltes „Cancel" behoben (#64)
  • DATEV-Rückkanal (IMAP): RFC-2047-Q-Encoding wird versionsstabil dekodiert (PHP 8.2)

Changed

  • DATEV-Rückkanal nutzt einen eigenen schlanken IMAP-Client statt webklex/php-imap (deutlich kleineres Release, unter dem App-Store-Größenlimit) (#51)
  • Anzeigename und Marken-Strings durchgängig auf „RechnungsWerk" vereinheitlicht
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignaturemUXJDuNe+Tilo+dpUr+E737GyLaklc1NJcW9vzLpYYhWaLd+43FFRC5Cv9YyDKJsxPf0C12O19vw9sBfNxxv/UfPsEDc+ltMnmDebp0mCwsusHBF4M3CODsrB/NKrodV/oj8p0z/q43TZzYPdQZ3AzqryUrQVIGvAug2znoDd89J6uhroEDGsLoxDrj6cgpN8Y5e3MFy1wqvirArLewEDS7CmkOXhX4vLTNu/DddQvQmCWp6nlFUmG90koD05VwSCRw3FP+uuig71l4q+giN07sNEb/WqWx00y4aZ//6Svm+MbZcBEeZCvoBbl/gEAgBLSIND8hnPxkeJ61H2B9syQ==
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.1
Release Details
UpdatedJune 25, 2026, 10:18 p.m.
Changelog

Added

  • Spendenlink (Ko-fi) in der App-Beschreibung / im App Store
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureTxuswNGbBYWD5c3Hb/XPAXczbWJGBIbZwCyLuvyWrf68iUvry5vpM98jxZ/HOO6UjERHUcOvR4mboa22aiL4gE18m4V9fEuH09pTmPQuZRCJfJNpDsERvpanhuiKB2G/vIFnVRPTnscKIQj9AEOBziIrhpmXehB/UDtvGfjg5GqRrV7OUu+I5fPztg/Mc1gHnZ7cdwpKY2ERscmXqNzXzfQND0yJKmVQ2mKMBRpspv/opYBqPvPdFcmirSMqkDu6MpjusT6o3Mr1oVzcMvByvz16YDF7lffgYRaYe8ZMLURRRfLYf349mIaZh02K6khJG41Kf6zU9745KXNYTkAnKA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.0
Release Details
UpdatedJune 25, 2026, 3:39 p.m.
Changelog

Erster öffentlicher Release im Nextcloud App Store. Rechnungen und E-Rechnungen (ZUGFeRD/EN16931) erstellen, an Kunden versenden und automatisch an DATEV übergeben.

Added

  • E-Rechnung (ZUGFeRD/EN16931): CII-XML + branded PDF/A-3 (ZugferdService), vollständiger Feldexport — Leistungsdatum/-zeitraum (BT-72/BG-14), Bestell-/Referenznummern (BT-13/14), Verkäufer-/Käufer-Ansprechpartner (BG-6/BG-9), USt-Sonderfälle (Reverse-Charge, innergemeinschaftlich, Ausfuhr)
  • DATEV-Übergabe: automatischer E-Mail-Versand der ZUGFeRD-PDF an die DATEV-Upload-Mail beim Festschreiben und beim Stornieren; optionales eigenes SMTP-Konto
  • DATEV-Rückkanal (IMAP): Background-Job wertet Empfangsbestätigungen aus (In-Reply-To-Matching), Status gesendet → bestätigt; optionaler Papierkorb-Cleanup bestätigter Quittungen (Admin-Einstellung, Default aus)
  • Verkäufer-Ansprechpartner pro Rechnung (Kaskade Rechnung → NC-Konto → Firmenkontakt)
  • Status-Anzeige als flache Icons + Legende in Liste und Editor; Einstellungen in der Navigation unten links (NC-Konvention)
  • Zahlungsbedingungen (It. 4a): Zahlungsziel (Tage), automatisch berechnetes Fälligkeitsdatum beim Festschreiben und Skonto-Hinweis — Migration v0.1.1 (payment_term_days, due_date, discount_terms) + Editor-Sektion
  • Rechnungs-Editor + Liste (It. 3): InvoicesView mit Status-Chips und InvoiceEditorView (Rechnungsdaten · Empfänger · Positionen · Steuer&Summen · Texte)
  • Editierbare Positionstabelle mit Live-Summen + USt-Aufschlüsselung (Client-Vorschau, Server autoritativ), Produkt-Übernahme aus dem Katalog, §19-konforme 0%-Erzwingung
  • Empfänger-Auswahl aus Nextcloud-Kontakten (ContactController + OCP\Contacts\IManager) mit Tipp-Vorschlägen und Auto-Befüllung
  • Lifecycle in der UI: Entwurf speichern → Festschreiben (Bestätigung, endgültige Nummer, read-only) → Stornieren (Stornobeleg)
  • l10n de/en erweitert (120 Keys)

Added (frühere Iterationen)

  • Stammdaten + Produktkatalog (It. 2): ProductService/ProductController (/api/v1/products CRUD) und SettingsController (/api/v1/settings)
  • Frontend ProductsView (Tabelle + Editor-Modal) und SettingsView (gegliedertes Formular: Firma/Bank/Branding/Nummernkreis/Steuer/Versand/Standardtexte) mit §19-Bestätigungsdialog und Live-Vorschau der Rechnungsnummer
  • Pinia-Stores, typisierter API-Client, Geld-Helfer (Cent↔€), l10n de/en
  • Unit-Tests für ProductService
  • (Logo-Auswahl via NC-Files-Picker bewusst auf It. 4 / PDF-Branding verschoben)
  • Initiale App-Grundstruktur (Vue 3 + Vite + @nextcloud/vue 9, PHP 8.2 OCP)
  • App-Navigation mit Platzhalter-Views: Rechnungen, Produkte, Einstellungen
  • Datenmodell + Persistenz-Schicht: Entities/Mapper für Invoice, InvoiceItem, Product, Settings (Geld in Cents, Steuer in Basispunkten, owner-scoped)
  • DB-Migration v0.1.0 (4 Tabellen)
  • InvoiceCalculator (Zeilensummen, Steueraufschlüsselung pro Satzgruppe, Rechnungsnummern-Formatierung) mit Unit-Tests
  • InvoiceService mit Lifecycle (Entwurf → Festschreiben → Storno) und SettingsService (per-Owner-Stammdaten, jahresbasierter Nummernkreis)
  • REST-API /api/v1/invoices (CRUD + /commit, /cancel)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureHSEU9FkRh3w5EkQS8knKf2Odr2rIzhq8NqjYmzgijhzpFtIDq3XM1Cs5+cUyKzgGJf1497jAmVwwUb9QS3aCURWoCPBWcoZy2HOqy5V9jdhNgF5r1+hzZrYZvwKkriR4gyZAtM4WnB1t9syVYBQ3E87/8kdHwNKK9hqbZh5Hf61ovhWn0A8Q9i5+A9FK79M1zP/JX+mHio4QAxIVIcbjmmG+MDPsugayfIGmBEYvQCxFqeruOoizXwnbCg2CSqtEK5PxtmJPklZI53+TuLvDaXHNuCQO7QYlCRNQHixoZzWWJj4ap0KKf3KF23UiiKG9ncPIbD7z1Z0tu2KizTX9Qw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0

Nextcloud 30

RechnungsWerk 0.1.1
Release Details
UpdatedJune 25, 2026, 10:18 p.m.
Changelog

Added

  • Spendenlink (Ko-fi) in der App-Beschreibung / im App Store
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureTxuswNGbBYWD5c3Hb/XPAXczbWJGBIbZwCyLuvyWrf68iUvry5vpM98jxZ/HOO6UjERHUcOvR4mboa22aiL4gE18m4V9fEuH09pTmPQuZRCJfJNpDsERvpanhuiKB2G/vIFnVRPTnscKIQj9AEOBziIrhpmXehB/UDtvGfjg5GqRrV7OUu+I5fPztg/Mc1gHnZ7cdwpKY2ERscmXqNzXzfQND0yJKmVQ2mKMBRpspv/opYBqPvPdFcmirSMqkDu6MpjusT6o3Mr1oVzcMvByvz16YDF7lffgYRaYe8ZMLURRRfLYf349mIaZh02K6khJG41Kf6zU9745KXNYTkAnKA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
RechnungsWerk 0.1.0
Release Details
UpdatedJune 25, 2026, 3:39 p.m.
Changelog

Erster öffentlicher Release im Nextcloud App Store. Rechnungen und E-Rechnungen (ZUGFeRD/EN16931) erstellen, an Kunden versenden und automatisch an DATEV übergeben.

Added

  • E-Rechnung (ZUGFeRD/EN16931): CII-XML + branded PDF/A-3 (ZugferdService), vollständiger Feldexport — Leistungsdatum/-zeitraum (BT-72/BG-14), Bestell-/Referenznummern (BT-13/14), Verkäufer-/Käufer-Ansprechpartner (BG-6/BG-9), USt-Sonderfälle (Reverse-Charge, innergemeinschaftlich, Ausfuhr)
  • DATEV-Übergabe: automatischer E-Mail-Versand der ZUGFeRD-PDF an die DATEV-Upload-Mail beim Festschreiben und beim Stornieren; optionales eigenes SMTP-Konto
  • DATEV-Rückkanal (IMAP): Background-Job wertet Empfangsbestätigungen aus (In-Reply-To-Matching), Status gesendet → bestätigt; optionaler Papierkorb-Cleanup bestätigter Quittungen (Admin-Einstellung, Default aus)
  • Verkäufer-Ansprechpartner pro Rechnung (Kaskade Rechnung → NC-Konto → Firmenkontakt)
  • Status-Anzeige als flache Icons + Legende in Liste und Editor; Einstellungen in der Navigation unten links (NC-Konvention)
  • Zahlungsbedingungen (It. 4a): Zahlungsziel (Tage), automatisch berechnetes Fälligkeitsdatum beim Festschreiben und Skonto-Hinweis — Migration v0.1.1 (payment_term_days, due_date, discount_terms) + Editor-Sektion
  • Rechnungs-Editor + Liste (It. 3): InvoicesView mit Status-Chips und InvoiceEditorView (Rechnungsdaten · Empfänger · Positionen · Steuer&Summen · Texte)
  • Editierbare Positionstabelle mit Live-Summen + USt-Aufschlüsselung (Client-Vorschau, Server autoritativ), Produkt-Übernahme aus dem Katalog, §19-konforme 0%-Erzwingung
  • Empfänger-Auswahl aus Nextcloud-Kontakten (ContactController + OCP\Contacts\IManager) mit Tipp-Vorschlägen und Auto-Befüllung
  • Lifecycle in der UI: Entwurf speichern → Festschreiben (Bestätigung, endgültige Nummer, read-only) → Stornieren (Stornobeleg)
  • l10n de/en erweitert (120 Keys)

Added (frühere Iterationen)

  • Stammdaten + Produktkatalog (It. 2): ProductService/ProductController (/api/v1/products CRUD) und SettingsController (/api/v1/settings)
  • Frontend ProductsView (Tabelle + Editor-Modal) und SettingsView (gegliedertes Formular: Firma/Bank/Branding/Nummernkreis/Steuer/Versand/Standardtexte) mit §19-Bestätigungsdialog und Live-Vorschau der Rechnungsnummer
  • Pinia-Stores, typisierter API-Client, Geld-Helfer (Cent↔€), l10n de/en
  • Unit-Tests für ProductService
  • (Logo-Auswahl via NC-Files-Picker bewusst auf It. 4 / PDF-Branding verschoben)
  • Initiale App-Grundstruktur (Vue 3 + Vite + @nextcloud/vue 9, PHP 8.2 OCP)
  • App-Navigation mit Platzhalter-Views: Rechnungen, Produkte, Einstellungen
  • Datenmodell + Persistenz-Schicht: Entities/Mapper für Invoice, InvoiceItem, Product, Settings (Geld in Cents, Steuer in Basispunkten, owner-scoped)
  • DB-Migration v0.1.0 (4 Tabellen)
  • InvoiceCalculator (Zeilensummen, Steueraufschlüsselung pro Satzgruppe, Rechnungsnummern-Formatierung) mit Unit-Tests
  • InvoiceService mit Lifecycle (Entwurf → Festschreiben → Storno) und SettingsService (per-Owner-Stammdaten, jahresbasierter Nummernkreis)
  • REST-API /api/v1/invoices (CRUD + /commit, /cancel)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD
VQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh
UymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr
B2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b
qqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU
1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84
eKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus
KxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc
aQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc
Vu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR
stIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA
gXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0
318qOb/IOCBSOiBa
-----END CERTIFICATE-----
SignatureHSEU9FkRh3w5EkQS8knKf2Odr2rIzhq8NqjYmzgijhzpFtIDq3XM1Cs5+cUyKzgGJf1497jAmVwwUb9QS3aCURWoCPBWcoZy2HOqy5V9jdhNgF5r1+hzZrYZvwKkriR4gyZAtM4WnB1t9syVYBQ3E87/8kdHwNKK9hqbZh5Hf61ovhWn0A8Q9i5+A9FK79M1zP/JX+mHio4QAxIVIcbjmmG+MDPsugayfIGmBEYvQCxFqeruOoizXwnbCg2CSqtEK5PxtmJPklZI53+TuLvDaXHNuCQO7QYlCRNQHixoZzWWJj4ap0KKf3KF23UiiKG9ncPIbD7z1Z0tu2KizTX9Qw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0