Skip to main content

Vereinsbuchhaltung - Releases

← App details

Nextcloud 35

Vereinsbuchhaltung 0.34.2
Release Details
UpdatedSept. 14, 2026, 5:57 p.m.
Changelog

Fixed: - An account's category could not be cleared: deleting the text in the “Category" field of the account dialog left the previous category in place; only a single blank space worked (issue #59). An emptied field now clears the category as expected.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureEFvqWDFNfM6FrLb9Ef+VmkLkQq/yMGhS3fFmfDXMmHq7Tkx9ebelg6+UOltGTCAywwAqFg4TlZhz+P660I/de6z9WnYhMtrvp+i2YD9HAA7JJkmUOnB9qcJH85XJJZXFAKnz+WeHzIwnA1b4PpUEcBXlbs10i5vF2TK5kZnW4sOOoj175+Fr22UYhUtgFr3OGuI3F3OtVnukYqMZvs5bbtZvZbnq16S1aC3Q9l5DyDTk3dQoTdX+mcABI833Z3tTgHevH04XqNA8JSnpYEO5VOY5FE6UIPWGEsro7N4mYBD9mfvgh1k0ID4D8M9UECA+nc1cVCA7ZvEbkD7qMcM2bdmIqkpaM7EZYND8D/DmU+kjGXi3VFkT3uBL6qiApthyohAXUE7mEMu9z9zHrhN8HMIGGOZqQnn45saBBOfPUo03E8AtacAT1zk7Lx44FloP6R2y02nt+BMf2C6rj7gaD6CSERsghlDrhtfqIjL6aGbIY/KVTE2v8oUozOQLWWT1v7YE8360mfWkDOoD9IqHVd4wnvdkPkeu17DdEMzUJNqyxu1ox08v63+cfh/Wf8X+L7uk+z80G0b/oRElAyuYahQxQimk2SwnE9IooOwdbruc/Kjh7AdPh8alW3TlD6oBlvLFTeuuUTPne0woHKSAkAAB+Mp7aWcDquPM8dCc4Ec=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.34.1
Release Details
UpdatedSept. 13, 2026, 4:18 p.m.
Changelog

Fixed: - Duplicate accounts in the autocomplete: Frequently used accounts were also listed in their category group and showed up twice in a row when searching. Now listed once. - Search field in the "Pick receipt from folder" popup sometimes didn't react: A fast click could leave focus stuck on the modal backdrop, so clicks and typing went nowhere. Fixed – the same fix now applies to the account, bank account, and member dialogs. - Icon in the "Pick from folder" button was misaligned: The button was too narrow for icon and text together. - The getting-started card briefly flashed on load: It appeared for a moment even when everything was already set up. - Period selector stayed empty after a load error: A single failed request left it empty with no error and no retry. Now retries up to three times, then shows an error.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signatures/8cYDtuFbV6E8E5R5Qpl62vNDSVzL9Isb0SpA12Gfk56tsktN+lvZ2efzPVeY1nRIkfbOAds9mbp2IqknBIUrEcVG/2PFWrah4SBCfwroQ7Za+6iJ06wRNYnLoirIi95y/ul4RJx+mh9giqP3ERfchInL4RpY7rCUxYSexKy8MrA2QB47BuTg4zBE+HtqO4t6WOjIPIwOrWYRu5dYC3hnm82PTvU/p3Azl+Zgo8L29KVwfNfU7xkRxd3mFm3VLXIF2UDbEv5PIu+G4L23EW74n2e8IMrSfgoNNI64sx4J63G7dGSspVrI3fJhG7pBa8TsISi1t3AEBKCiE7qrrsJxZ0AUMPHAGmxv64zwT/NbD6aPSREWpzYWQ+bukKDVwTa9clF/o6B4fE7/RcVPc/G5qNXACYdnlJgC4dTf0WaHmTTJoZp06+UKHjmx5SjFiSBJD2Ld8k/O/Y1vcL46kpDQSP9bqtlhyZXq1xNPedcIis01MbOeybRKvZtJL4inBXrYr3lZSaL6CmOHMm85cmSJnP5nSqrE/g15czG9/QILeKTRCe+qa4/U5kY5LcXAW8TH5BmUA8K7lFrznduHBBpPFCIx7VMW9xnmisFbf0TpqtuGnRifJm5SuTjNDvumwHBuRMGY20vwbHU1ul0tkGy4Qfb7KnPOLjSvQwCghTyfU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.34.0
Release Details
UpdatedSept. 12, 2026, 8:59 p.m.
Changelog

New: - Watch folder for receipts. Besides the internal storage and the user folder managed by the app there is a third storage type (cog → Receipts → "Storage type"): a folder in the Files app whose files, including all subfolders, can be picked when booking ("Pick from folder", with search and preview). The files stay where they are – renaming or reorganising them inside the watch folder does not break the link, the app remembers the Nextcloud file id. Receipts uploaded or photographed from the app are stored under <folder>/<year>/ and may be reorganised afterwards. The folder has to exist in the Files app beforehand and must not overlap with the watched folder for bank statements. It is chosen by clicking in the folder tree of the user's home ("Choose folder…" next to the path field) – a typo in the path is ruled out. The same tree is now available for the watched folder for bank statements. - The overview reports documents without an entry. If the watch folder holds a file that is not attached to any entry yet, the overview shows "x documents not yet assigned to an entry" – an invoice still to be paid, for instance. "View" opens the inbox with "Create entry" per file. A second tile warns about receipts whose file was deleted or moved out of the watch folder; the audit ZIP keeps listing such receipts in fehlende_dateien.txt. - The app never deletes a file in the watch folder. "Delete receipt" means "Unlink" there – the files also stay when an entry is deleted or all data is wiped. The same file may be attached to several entries, e.g. a split invoice. - When switching on, receipts the app stored under <folder>/<entry id>/ so far get their file id filled in – the existing receipt folder can become the watch folder directly. If a different folder is chosen, the old receipts count as missing until they are moved there.

Changed: - The Nextcloud viewer only opens a receipt when the file lives in the home of the signed-in user; everyone else gets the app's own view. Until now the viewer failed for anyone who did not own the storage folder. - Opening a receipt no longer creates folders, and receipts from the internal storage stay readable after switching the storage type.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureEH3jQPFfGMBQpUQwCuWN+biHwFqRxw8mnukQhkDPzmFj6KOWgEkLA3/lF1Lt7rypENDYtU9SXU715NKB8vWewF9ia1qP8o4GYsmjGVVRGD1pT9CbCqpefYpuLklQI0yyD9xXG2wK76DQe6iQW2gQQCJnIAtVCeNQpUvRmBgG1Kab0JhMNOKylIVt/wqP5jJePSNq3acxFpGmwVUr4Nzsm7wYn8gag3sjtB8GnavMg3Np0+48Z2O/tzRy9rmASVHYRPCWwrRXDEBz7qHd2ocwHFwKVTPCaRLT7jgKJ3B8RvtpFzEGr89Fkpm61hkdHi0KfWVLj55hIpiB8x4YRYcoH1CMeKok6SmlNclLExsf6XUKm37P0JTZVWpdRCw7I23UsHSUrE0J88YQlJURIMQc9wH3bqFUZza9mz44WPMf3nJ5o8bNcD3GjVh6YaQnVAFD5oEnroSoY7BYpDUawTDndqrM/24TN01ESsnFi0b5/fjT2AuSokvAXDb+/10j+nSxOZnNEeXFyL5spnW0Q0T/9U75DJ2x2BG5mi9E3OLifI/muNrh2eVSqdQJ6u2EzD0hQkTeb5TxVjCLwIogA9F3hrNzNqJY8MxLlK9Ac1kIsF5w2QJRjwjecIGlTYGU3ZN4aFc+P6AQs0M8iXpco+7yi+TWkz9n4t1DpWoNz72SMZc=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.33.0
Release Details
UpdatedSept. 10, 2026, 5:50 a.m.
Changelog

New: - The fiscal year no longer has to match the calendar year. Under the gear icon → Fiscal year you can now choose when it starts: presets cover the calendar year, October–September, the school year August–July and half-year periods (semesters), plus a custom rule with any start day and a period length of 1 to 12 months (divisors of 12). Clubs with a deviating fiscal year previously had to add up their figures outside the app (issue #8). - The header's “Year" has become a “Period". Every period carries a freely editable name – suggested as “2026" for a calendar year, “2025/26" for a deviating one and “2025/26-1" for a winter semester. Entry numbers, reports, the budget, the receipt ZIP and the year-end lock all refer to the period rather than to a year number. - Periods can be maintained individually. The boundary between two open periods can be moved – the way to a short transitional fiscal year. An empty period at either end of the chain can be removed, and the next one created at the press of a button. - Switching shows what it will do first. Before a changed rule takes effect, a preview lists the resulting periods, how many bookings will change period, and which budget figures would be lost – because when two periods merge, an account can only keep one of the two figures. Locked periods block the switch: what the general meeting approved does not move afterwards. - The cash report names the actual key dates. The asset overview used fixed column headers “Balance Jan 1" and “Balance Dec 31"; it now shows the first and last day of the selected fiscal year. - The monthly chart on the dashboard follows the fiscal year. It always ran from January to December; with October–September it now starts in October, and a semester shows six months.

Changed: - The settings section Year-end closing is now called Fiscal year and holds the rule and the list of periods alongside the locking. - The xbuc import now derives a file's fiscal year from its date range instead of the calendar year. A file for a deviating fiscal year could not be assigned at all before. Bookings outside the range are dated to the first or last day of the period rather than to January 1 / December 31. - Existing installations are unaffected: the migration creates one period per previous calendar year, running Jan 1 to Dec 31 and named after the year. Entry numbers and existing locks are left untouched. If you change nothing, you notice nothing.

Fixed: - Opening the booking dialog before the account list had loaded left the cash account empty – and booking then only reported that it was a required field. The preselection is now filled in as soon as the accounts arrive. - Switching the period right after loading occasionally showed the journal and evaluation of the previous period: of several simultaneous requests the last to arrive won, not the last one made. A choice made before the periods had loaded did not stick either.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturehjIUxR463SXRpnSDzeYpCEUzwFWSRO1ftltM9mWjHajC8UYOyRFO+a3qq7rOns+QYhP60hf3ikxj3W1DN3iUnUjrL8WSd8T5duQAubXz8pHlKS0QreKYeiecE/5cDcOFVTgUIEY1S9mlEvqW4LHFm0lG6R4tnXN9ECVQytIfxExa8rRrM3JFpYoRghY7MZ/+KitnFI6JKUGgE7bZ5Sm1tyEKXZF0T7knzzKS9lclx3Iqn8jw6jCvCmTrKSebjwjZaQwOjmkII6FKBv2xTiBJmmto3YPq8L92FbI+9LSCMHtlr3YA89ONl2xiHMXDzO9wRzyxBzWVAyHFu9pSAYxFjgtnXedEcH7O+4NzSRyI1zm0noskNMI2VbqDTrILZTmm27UT84U9vCm10dJbhbZwt/3sLWVMMGjOHVslf/JAu5psyIqUjjToSAr6ExAJNi30LB7Kehnj8O+B5LP+eVxiKnOrdkP8VY1zzn6Wj4aKnwF3AW4e2itJCCAKTjGjPLROnBpxHgKRy7oTllQJR6HjfQjpSNauFGmhi7lv4d9VVZ6pVA79XwJOv2GQqJiavL0Q2Z9hEqrzQ4b+sy1Gg1QvQ/w8pElcDgBIgUiwW8yUKX1J+R4b3C9/8QFl9l4Of0KJbwVle4CIg/GK9x+BLrE88mzM65wqPF/DZqkEgPPc1VU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.32.0
Release Details
UpdatedSept. 7, 2026, 6:52 p.m.
Changelog

New: - Entries can be edited straight from the account statement. When you spot a mistake while going through an account in the Accounts tab, you can fix it on the spot: the pencil at the end of the row opens the same entry dialog as the Entries tab – for the description, both accounts, and turning the entry into a split entry. Until now you had to note the entry number, switch views and search for it there (issue #39). - Receipts are visible in the account statement. If an entry has a receipt attached, the row shows the paperclip and a click opens it. That includes the auditor role, which cannot change anything otherwise. - A tidier row: Reassign and Delete now live in the three-dot menu, exactly as in the Entries tab. Otherwise the row would have wrapped onto a second line in narrow windows.

Fixed: - The account statement refreshes after an entry is edited. Description, contra account and running balance used to sit there outdated until the next account switch whenever the entry had been changed elsewhere.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureURbs7rR+ibIaCXawEIGE7845WACZzgIYr/uWGqG2NfgzeFJzARFjuikGP1MGA9oOcQkwrLYk/ZNuIqXLVeOOTn6IeFo5CiCoQUzkOcEft2nPrtk4cSb+/HNBiAQ7HqcaILq9C7Y89sTyH1CpGJd3mvi2nrg3ZrLGc4oK+nelIk6WepYW0Ggl+35ScDPURnqVqvsxOKX7yyiQ7l8P+CMAVajpLXHiliixH5e34MIWs7cLhFucXHrGXnhkSqbtGNLX9pqZ9HNukNyPnpf17Ab2XJxyEzHhBp79Z+HBrGvcgkKPXjDy8nugD0RzRX470VPrE9MtJlz/w+7Ldq9TmSAqdrpq6/+GRtoTQke4EHoX6Y5q6G+eQg6sL6YDTKzFVetE3SQAVM2L4sx+W8hNjRvTyryDyCcktJSyd4luyRKK1FMOYy+Gh7jxSkwC0J9TbpnKSOiZlhCrY6ixlah4Bj87IuXoEeJSYh2XrTv2LfUN/UORaE3QP4FZKrP5wzlo12eacp/yM73IElhE0NNOapPlQo/pwPKHpd3LVXRaohJny760AtExPYmj1NmK3EIfaj9HxoltiTMCDROuC0LvLaAvmFNlaChqZ/W1c0+6KjWTtXIIyLCd1ysGAQkHJATUHtO9OHAE3/fOjIsnOaLSIYIpQJV23DyfxiOcUFx+cOk2rwQ=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.31.2
Release Details
UpdatedSept. 7, 2026, 6:03 p.m.
Changelog

Fixed: - In Firefox the year in date fields is fully visible again. Since version 109 Firefox draws a calendar button inside the input, but does not account for it in the width Nextcloud gives to every input field – it therefore covered the last digits of the year, turning "07/09/2026" into a visible "07/09/202" (issue #43). Every date field in the app is now wide enough: entry date, next and first due date, mandate date, opening balance, open items, SEPA due date and the short report's period. - On phones the buttons inside dialogs are thumb-sized again. The 44px minimum for touch targets only applied outside dialogs – Nextcloud attaches dialog content to a different place in the page, so the rule never reached it. In the entry dialog Cancel and Book were only 34px tall and the Income/Expense toggles 40px; this now applies in every dialog. The round help button next to the spheres is properly round again – it was stretched into an oval on phones and on the desktop alike – and grows to full touch-target size under a finger. - The receipt ZIP export contains all receipts again. With the receipt storage set to app-internal, the archive came out empty and listed every receipt in fehlende_dateien.txt as not found – even though each one opened and downloaded perfectly on its own (issue #40). The files were never gone: while building the archive the app read them in a way that only exists for storage inside the Nextcloud file tree, not for the app-internal one. Only the ZIP export was affected, and only with app-internal storage. On top of that, fehlende_dateien.txt now states the reason for each entry instead of reporting every failure as "not found".

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signature5YJYB6EPPa7PoTfCkG8zixyMAiUog1fe+KV73/tIghJV/YWJ2d8W3yzLqUaLj+1Tv4Sy2jwftL4Jk3kXyRCHrosVPR+k7YMPgRJ1BuJrSHTK23gVm8iwQpiHTCY5HqoKZUI47wrxaHkq2ULydZnlnxZWfLvBLV8FXpPUw3oxmkCsHVeqgA3MYXfeKbU5a60Yh9gxOQh9DabCxJJGPPFAB7uBd7ZYJPPhoY7pN955VazN/Zhls3rjU0qWKFqmZehQp7VFesrHmzgxbHe7IGTTH9lNldx/JzPHXTbiBa8ybcvsruOI4OxdGam4ubaAXWPSX71Yo7JLW7lF35UW1/mILLNSkfHxw48sEciHTE0PeDfVY3PKtWuhpgAK4VP/04LbWBOHbx96jXfpV6TguNlwZMdiWvanwJyKGeO8PkiH6gVSut00BGnmC6gxBueGUD5WIGBVqDwhiLFx3EsSGiAyCPy2ZIpBHN8Bu40iooLMCog6vu7w+4cKzVgJSHejwLVSyfvNt1yfNczYj2yarA3zh3eqS+A05Q5N9thr2QXOe753mz2KBd7z/vCIWpCC34RLnlFVXaZj4sure62IUx397INnCUAsxaRqPkkh/9g3QeLOJ3JloL3RV3jIz8VM/37NbHQTApFs78ImdXGnGZ7/YuGcr8J15y7n/BOkEFAsTsw=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.31.1
Release Details
UpdatedSept. 6, 2026, 7:52 p.m.
Changelog

Fixed: - The report sub-tabs are fully reachable again on narrow screens. The bar holding Summary, Reporting groups, Spheres, Reserves, Budget and Log ran off the screen and could not be swiped – it ended after Spheres, and the More exports button was out of reach as well (issue #38). The bar can now be swiped sideways and indicates at its edges that there is more to come; jumping straight to one of the later tabs from the help or the bottom bar scrolls it into view automatically. The same applies to the sub-tabs under Entries and Contributions and – with the Nextcloud sidebar open or with longer labels – on the desktop too. - Amount fields now show the amount the way it appears next to them: "20.000,00 €" instead of "20000". In the budget, the Plan column was a bare number sitting next to the formatted Actual and Difference columns – with four- and five-digit figures it was hard to tell 5,000 from 50,000 (issue #34). The same applies to every other amount field: entry amount and split lines, opening balance, open items, membership fees and the default fee. While editing, the field still shows the bare value so that typing does not fight a live format; both notations are accepted – "20000", "20.000,00" or "20000.5". Anything unreadable restores the previous value instead of silently setting it to 0. - The treasurer's report and the short report moved into the More exports menu on phones. As separate buttons they no longer fitted into the row and pushed the menu off screen. The short report's date field is now part of that menu; nothing changes on the desktop.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureB1QJYSJ6p+q4O5Yi2GBFhXTyaZTxxSwnNZJACVeCSRKygre2q5fbtLy1CCvZ/VBYEBYnuSvcz3uK4Q7ylzoiuLiMkK5y38ntbeFgLvZPgguK3uyJtCEmSXuvFwUUvk51ZFasjy13rg4o3d0HLLSrzPAUAFOu236jwO4Z6QmRSTcJJloyw5sDP3ykLrT5DZT3ZtduaPGq9EsZTV5AWUj6zdWK8LQTFcbX73KbGp/ao1qeXF0AZbVVoJI7GRIbu7Znz1TjknMY18B5XkDHHXw9vxkejtTs/vYfGm0mWREPxymjZJOzA9UuhO4zsdxipDckbBNFmceOYokYx3360e0Ho3qg/AHowOinzVJbDah8pL2ZKXFsrlToNgFADdVGw7V9M0IM4zoIgw7n/wZ2WHZkL8SE3B+vdKEcK2yWemqpyA0rns1hG6pmvMCcTCFvLsuJVfZs/ar6STyT9GuA8IZvYrU6Syhawo8UAXEUfIQeYdi38i11S745xNIXvrbKCpDodmxJ4hvfx/XTsi9TilQPRI174s6rjTzFpNI+wm5lGoiYRfFBFRi3xT9X5sSnGkcw+sie9Y664BLDDn2vf0n1T0bVyPLyKewN+GYz/tomrdJAhUmQx0xuBcR2hFNQQ2QoDwwlhifo7y9Pb2Vo5jJhea0sr/494Z9pUy0s29xfoF8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.31.0
Release Details
UpdatedSept. 4, 2026, 9:09 p.m.
Changelog

New: - The header now shows the funds across all cash accounts, no longer just the first one. Until now the top right only ever showed the first cash account by account number – anyone running a cash box (1000) and a bank account (1200) therefore saw the cash box of all things, while the bank account stayed invisible (issue #31). The figure is now called Funds and adds up every cash account; the tooltip breaks it down by account and names the transactions not yet assigned. If the club runs only one cash account, its name still appears there – nothing changes for those clubs. - Individual cash accounts can be left out of that figure. For cash accounts the account dialog offers a new Counts towards the funds shown in the header flag (default: on). A fixed-term deposit account can thus stay out of the day-to-day figure without disappearing from the books: the cash report, the assets overview and the trial balance keep counting every cash account. The flag is display only and is therefore not locked by the finalization of a fiscal year either. - The cash-account table on the dashboard and in the evaluation has a total row – as soon as the club runs more than one cash account; with a single one it would merely repeat the row above it. If at least one account is excluded from the funds figure, an of which funds (header) row appears below it, and the accounts concerned are marked as such in the list – so it stays clear how the figure at the top comes about.

Changed: - Clicking an account that has sub-accounts now expands them. Previously this only worked through the small arrow in front of it, which was easy to miss. Collapsing still goes through the arrow – a second click on the row deliberately does not collapse it again, otherwise you could not select a parent account without closing it. - The posting text now grows with its content. Longer text wraps and is shown in full instead of running off the side of the field – when creating a posting as well as when editing one. The value itself stays single-line, so nothing changes for the journal, exports or the API. - Dialogs have a little more room to the edge. Content and buttons used to sit rather close to it.

Fixed: - The charts ignored dark mode. Axis labels and grid lines stayed black and were barely visible on a dark background – both on the overview and in the reports. The cause was a check for a theme--dark class that Nextcloud never sets, so the condition was always false. The charts now read their colours straight from Nextcloud's design variables and therefore follow any theme – light, dark, high contrast, and club colours set through the theming app. Changing the theme while the app is open redraws them. - Success and error messages (toasts) appeared at the bottom left. Nextcloud still shows its own messages at the top right, so one screen ended up with two kinds of toast in two different corners. @nextcloud/dialogs 7.5.0 moved them to the bottom left and dropped the position option; the app now puts them back where they belong. - The active button had a white border. Visible on the Income/Expense switch in the posting dialog, on active filter chips, on the underline of the active sub-tab and on the side selector when reassigning. Nextcloud claims button.active for its own pressed state and overrode the app's border colour. - The focus ring was clipped in the posting dialog. Tabbing through the dialog showed only a sliver of the ring around Income and Expense – the switch cut it off. - The posting dialog could be scrolled sideways. The hidden receipt file input claimed its full intrinsic width and pushed the dialog past its edge, producing a scrollbar. - Accounts with sub-accounts broke out of the account tree. They were bold and noticeably taller than their siblings, and their columns sat a few pixels further right. The cause was the expand arrow: on parent accounts it is a button, and Nextcloud gives every button a minimum height of 34px plus a margin – which grew the row to 46px while leaf rows stayed at 29px. All rows are now the same height and weight; the arrow alone marks an account as having children. The faint placeholder dot in front of accounts without sub-accounts is gone as well – it looked like a bullet point; the placeholder still keeps the column aligned. - Text hugged the edge in the "What's new" dialog. It now uses the same inner spacing as every other dialog.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureRpdiBEtKAA1ZA51YvSoVDbENkvtlBocEabzuohgcm5qFUGiUGZLMXzQtGk9xSeAhUOvjMeAsfzeOlQ5ZJTjU7Yp6W0AbHdAALFHCIPiGJTNqUzaHccYXA191IHp/KXpy89kFXUNzX2tBZnnIU4hWOzNXodidjSnuIZnAxBoiZoTSkg12tbtJ0rzCrAoFjolbx1vWBKg+lKGaMtM6qXgGbSNcylqMZ3PIuYeEJ3S+v4OAJcNGnIQtmBWaljdWvh7c6y5GlfQWwvbS6b7leLv99/sRNoaVXId+fXRvUul8O+42tLZ0mpk4GUx0UiE5QtiuagSylE3tmLXvK0F1zm3N56uymcP1PW8p84jbXDszxIDQQfnolu/WOca8gE+l9dBzx1ms/C4LtsfEQw5yzZOSuzxz4Q0PUOmz7A2TKQ0vccRz9qaazd93hhl/+6QGJ1fOfA5vxtbtTwtuONfAgtSkXrKj3uGZU3Q5uu2l2e6a/R0cpYIYexhIk+Xnc0NlOK6t9uNQdH1CTpZ7Rj4FpTteRnIHJTWLTn5RMXW/bJBFTsBoNOAvBIq4RalYd25avk2pnmAI8rQzEgU8+oSJV4Zb5L47lrA5nlVYWn+G0hw83K/dm8/8aRvkhv0th1kE4IrqSWbZ/BD9i8oSNGnQ2mU4O1Z+Jhjkjh55oge2PeLgQWw=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.30.0
Release Details
UpdatedAug. 31, 2026, 8:36 p.m.
Changelog

New: - Receipts can now be attached while creating a posting on the desktop, too. On the desktop the New posting dialog shows the same Receipts section as the edit dialog: the selected files sit in a list (with a remove button) and are uploaded as soon as the posting is saved. Until now this only existed in the mobile view (windows up to 640 px) – on the desktop you had to save the posting first and then open it again (issue #29). File type and size are checked as soon as you pick a file: anything the server will not take (only PDF, JPG, PNG, GIF, WebP; 20 MB at most) is reported by name right away instead of after the posting has been saved. If an upload fails anyway – a dropped connection, say – the files concerned stay in the dialog and can be sent to the meanwhile created posting via Upload again, while the other receipts are already attached. While saving and uploading, the button is disabled so that a second click cannot turn into a second posting.

Fixed: - The Attach button could only be reached with the mouse. The file field behind it was hidden via hidden and therefore dropped out of the tab order – anyone operating the app from the keyboard could not get to the receipts at all. The field is now focusable and shows the focus on the button, on mobile as well as on the desktop.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturefVul/2TJkdc0pI4s1Y3nesPADFrMVwkimF+/qhyka+ikknmlAgb8tVmNFcoT/lKpQrXG/w/qLfY/kGi8v7iBgZz9KZE5ShnnvaV69P1nZkJWaRz+8tzAumubC/5P/lWtQPUsOCkt4MDYknxDIPjkSLv7v/MnqxIfsuG01OnhgzG0cu27t3TRvVjQF6gnJ4sdD0ceokH5Ntnk63elMqDo8EjxZu7/WTktjZuwKWZPgtReRyKVaNsWU5XnhVA+X2tshjvfHNt7UeWq/+T5TJFCIkjF+jUCYwYm2Z71pttdi1qsOMRi/CchrA/a4fAAR9aD/tzLLzgNWXKLywQfFAv6T84bsVOpz0hqq72GSvbYMSRNYlF9e9J//8zOPxxqP+Jq+gFb7jCT+BW76He0nz8luWqvktz/njyxs1QrtS/ITvB8H4YYhJRvw17+zci41DNn4UyumhyxVBk6QNbKCDTrtzsMSOdVqEWDEzgc9JXy1ag2yrrEZPnCIJHckwT50UUkOXwsJWVW/22QIH6Z+k+CZKYeqDcp4GbHiGowvVlnuGcrS5Sc2iA/7ERgc3hHdgEdZ+VNJIr3eiWwnfJba8Ws8wRXeTpw/7qFoAtOkaWen9O3oYmQA6AYiO6yeXG3/QJjQ/KovDPr40ffDA1Fsj79PMIH08ZXjWEPPztSTaNYRoM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.29.1
Release Details
UpdatedAug. 30, 2026, 9:02 p.m.
Changelog

Fixed: - Success and error messages (toasts) rendered as bare text in the top-left corner. Since 0.29.0, confirmations such as "Settings saved." sat unstyled across the header instead of appearing as a box at the bottom left. The cause was updating @nextcloud/dialogs to 7.5.0: the library's toasts now carry hashed CSS classes whose styling only its bundled stylesheet knows – up to 7.4.1, Nextcloud's server CSS had quietly styled the then-global Toastify class names, so the app's missing stylesheet import never showed. Both script entry points now load the stylesheet themselves; a static test and a sharpened e2e test guard this (the previous one only checked that the message text appears, not that it is styled).

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureZNu+0GfB6CNdCwdO8JIIAFJufLn9soTS6/P1RXqQaPN4Oekr/TyxcLVuvcVuNzEYDBGFw9HDZFvX/2GIoeGoK/39vfOELcpkWr9L1K216j14IueTtzIhOtOWr3D1IaMJ+DJ/mNRU6WPvQFV39z80ZOml6fiUJ+FIE99l3VljDq5laYJo9a9MmQfnsOgj7chk0hMp9Y239P2srKL4dX57wU3tTbKdGVpE9qUNqpeGd7GFoCrz/N245oj9hjnIYUcIpEb7/05fgc7ka2/9n5EE0eHHZHxeDe4sRIFTmoitUkiXNvdxF2v5a7VVaECeZIQBoLVBfsVn+w4s9JzIbUMfz2V3ZtTG+EZt91lcD7PcJQwOp1JLRMGZFVv38CW65cCaIFNWya+YoMV/+C63sM2yjuO1WLDHdOOcBdwosksiljUSpnl/MhcCFAUyPMsugG5y5aQSnwXcEQ8C5tMUPTPZv4DCI7mAaSrliAkg2llZeU74XWy7FNvlp7ILZYPgFbBJOd+LB+qXy5DTArfTYhFspVZEPUGdMXS6hq1ApJcd9ZwT1rHbZimEGDx7EhAcmMZK3oIpPrYr0ULRqpSub/rcV1GgLsS1zryfb26r4T1qQrP0qwajmpIBLsOhQNODbD+ejcSrQECDw6BTaBlm278v3OrwQVSiOTWw4+EoCF2HxeY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.29.0
Release Details
UpdatedAug. 30, 2026, 4:45 p.m.
Changelog

Changed: - "Cost center" is now "reporting group". The report, the Manage reporting groups button, the field in the account dialog, all messages, the in-app help and the manual now use this term; in German Auswertungsgruppe. The trigger was a question from an accountant (issue #7): in cost accounting, a cost center is a second dimension on each posting line – an amount is allocated across cost centers independently of the account it is posted to. This app does something else: it groups accounts, and an account belongs to at most one group. The old name therefore promised a capability that does not exist – and strictly speaking there is no such thing as a result per cost center anyway, because a cost center carries costs, not income. Nothing about the functionality changes: the same three groupings, the same assignments, the same figures. Groups you created, their codes and names are kept unchanged; no conversion is needed. To split one amount across two groups, you still create two accounts for it (ideally as sub-accounts of a shared parent) and split the posting across them with Split…; manual chapter 5.4 now says so explicitly. Internally everything stays as it was – table vbh_costcenters, column cost_center_id, setting cost_center_mode and the /api/costcenters route are unchanged, and there is no migration. Older entries in the audit log keep their original wording.

Fixed: - A deleted collecting account blocked the entire settings page. If a collecting account had been selected under "Contributions & SEPA" and the data was then wiped via "Delete all data" (or an import with reset), the setting pointed at an account that no longer existed. From then on every save on the settings page failed with "The selected collecting account was not found." – including the club name or the receipt storage, because the page always sends the full set of fields. Resetting the data and deleting a single account now clear that setting as well, and it is only validated when it actually changes, so an account that became invalid later (after removing its IBAN, say) no longer paralyses the other sections.

  • A deleted Nextcloud user blocked the entire settings page. If a Nextcloud user was configured under "Receipts" (receipt storage) or "Bank data" (watched folder) and that user was later deleted in Nextcloud, every save on the settings page failed with "The specified Nextcloud user for the … does not exist." – including the club name, because the page always sends the full set of fields. Deleting a Nextcloud user now clears both settings as well: the receipt storage falls back to the app-internal storage and the watched folder is switched off. The user is also only validated when it actually changes – for the deletions the app never learns about (a foreign user backend, a restored database dump, a deletion while the app was disabled).

  • No Nextcloud user could be selected in the settings any more. This affected "Receipts" (receipt storage) and "Bank data" (watched folder): both dropdowns only offered "— internal (AppData) —" resp. "— off —", the list of Nextcloud users stayed empty. When the settings moved into the Nextcloud settings (0.25.0), the page lost its binding to the user list – the list was still being loaded, but no longer passed on to those two sections. As a result, receipts could no longer be stored in a user's folder and the watched folder could not be set up.

  • Illegible labels and wrongly coloured buttons. The app used Nextcloud's light status background tones as text and accent colours: "Expense" in the posting dialog was white on pale pink, the remainder shown while splitting was barely readable, edge markers and warning stripes faded to pastels. The dark theme was also tied to the operating system setting instead of the choice in the Nextcloud profile – picking "Dark theme" there while the system was light produced light colours on a dark background. And several of the app's buttons (the income/expense toggle, the checklist links, "Skip", the suggestion chips) were painted blue by Nextcloud's generic button rule. An automated contrast sweep across twelve views in light and dark theme found nine WCAG AA violations before and none after; Nextcloud's high-contrast themes are now picked up correctly as well. Two superfluous separator lines in the header area are gone, too.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureyQHwNNxrBjVIKt7MFaMKoeJwKVfhHDcVQwZDFVsw8Si/nVH9ZKTFaSh3U40O+M9pUMS0orOFnbrKEjuQ9VlcDRYhzlxkzal2X2gSNnVZEnMSEEWT4M+1wyvGfy0aPh+KmX9u1udqC6ERlVJXzWU6Bwn2/oUuktI+/j3LjlegsuiW/OeDz1raNNoYvl7p6f5dSuSfItaPqtcbGjjefw+75WZhJXdf/kwkJWPLPkU16i8PZsR8VsShq0ZQV/8HtgSQJ2o3HVwpELHA2onV8rmNbvOsvLj10PxDjYlD8jNom4YuAMCpn9cx2ynOtVS0bQFHHmhtqdq7E4sumSJkf5m1m2n/Y5R5mID1qiCEAtXNcyoRhOz0Dl7bnq4Lj7KtxYTHxurHdRAo/XSngwP3Uk0Tm+H2HP+m2qDCxLpY8aBR7ISrTzR4YsvwRZCv+7U96RhMVJ23Zv4tRf3SW+ohI+hRwLWYQkyfbKOht+i0EvuZMjubbOUgOMdwHMRVQfqF1IV1YFN3IV1+IfkdeTl2KuyFd6h7ecg9KjmUcE4ByS9TZdU1O+uF8MLBmzLBsqTKKNCruUXgOOJAeOcewfPsxJkZj3yzH/EmAiS2Yww1MZRI323vh3gkk+Nk4OzvQeidOwX6wq1cR9AEZGUpIrzyTDqIYI6S8Y+c/nxQDCyCBtZ0s+8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.28.0
Release Details
UpdatedAug. 24, 2026, 9:25 p.m.
Changelog

Fixed: - The interface stayed German even with Nextcloud set to English. Until now the app loaded its translation bundle straight from the app directory as a file (l10n/<language>.json). Nextcloud's shipped .htaccess only serves files with certain extensions from there – .json is not among them, so the request ends up in index.php and comes back as a 404. The attempt therefore failed silently in every normal installation and the app kept showing its German source strings (typical nginx configurations behave the same way). Translations now come from a dedicated endpoint (/api/l10n/<language>), which is not affected by that restriction. Server-side text – manual, audit guide, error messages – was never affected.

  • The confirmation for posting a SEPA collection showed a red "Delete" button. Two dialogs were affected – "Mark collection as executed" and "Undo return" – both left the button label to the dialog's default, which is meant for deleting actions. They now read "Post" and "Undo" and are no longer red. The default label is translatable as well; until now it read "Löschen" even in the English interface.

  • The buttons in the SEPA collection list were cut off. The action column is fixed at 160 pixels – a width meant for three icon buttons. The four text buttons ("Show rows", "Download XML", "Mark as collected", "Discard") wrapped onto separate lines there, the widest one stuck out of the column, and that made the table wider than its frame: the buttons sat half outside on the right, and the "Created" column was clipped on the left. From 900 pixels of window width they now sit side by side; below that they still stack, but inside the column. The same applied to "Undo return" in the expanded collection list.

  • "The accounting was changed by another person" – after your own entry. The app compares its state with the server every 20 seconds, but a change detected that way only counted as your own for 15 seconds. Since the comparison runs less often than that window – and is deferred further while an import is running – the app regularly reported your own larger actions as someone else's change. The measure is no longer a fixed window but the moment your state last provably matched the server: anything you wrote after that explains the difference. Genuine changes by other people are still reported.

  • Sphere, reserve and cost center names stayed German. They came from fixed strings in ReportService and never went through translation, so the English interface read "Ideeller Bereich" instead of "Non-profit purpose". This affected the sphere overview, the reserves overview and the built-in cost center names.

  • 22 missing English translations added. Among them the default-fee hint in the member import, the labels on the SEPA collection cards ("Total", "Due", "created"), the "What's new" dialog and the first-run hints in the help – all of which showed up in German in the English interface. A sweep of all 850 strings in the code against l10n/en.json now comes back without a gap.

New: - Member lists with English column headings. The CSV import now recognises English column names alongside the German ones (Name, Email, IBAN, BIC, Mandate, Amount, Frequency, Start date plus common variants) as well as English frequency values (monthly, quarterly, semiannual, yearly, annually). The English manual already described these column names – now they actually work. Existing German lists keep working unchanged.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureInHxPFEZyBd3yG1z+2uy6aKBsx6FyoN3f5ANpltNQ5cdO4ka3WjXGr2qoXoxzwiAF8GuehGrB49Y6PG/J0rD+NDfxrlsdagjW962RfIAbfy7iuyWyAJXG5zzUuCtBXrNsF+xX2p0oJCgxu3pP7py734yG2C0O8QlnzfNMv587XwlN5T8u4tnxZBpaFgDppx4M8T64wwirD6fXIHZ2XscD6Z93lTwONEJ6QinuT5GVXPz/xALj09jIfau0QUlf7ASK7ZW+RafURPvEJv4yoDfz9pG2K5rp6j9eKsRy542OlgWasYWiQ/AsOAzhrlbXE6I5tc0RV+PgpE+1XeFrZCKk7Eh1bBFUjBEpd8wrdaN4SatC3izCdry/SGmO7cZnD+pO7aYtOmDpPUKJcu3AByHkWNj9XR2o++1dlBDHBgVc5pI1LZrkFsS0COfvBle46qoasWmG1O6FCUtHe5bG13owgxzujgc1X9OuTc0PojlMQObD3h7aiwwYFHhQKellpUdYiW/VBfWSIb6pEHDkronPwWG1LitX7khY8/Nwfc02xDIDhq547Q3S+pYaIB4uh8mkr37bdQf/ThAwKHRBCaaRpFfq/mflPgLy1xHJ5G7VWdGTaUo2DL9ABLuSLG0q0x4kjt5cJVZlgNpkDJzvxjndy1t7mU3KR5XB/VNqiV1gm0=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.27.2
Release Details
UpdatedAug. 23, 2026, 9:40 a.m.
Changelog

Fixed: - "What's new" popup from Nextcloud showed "[object Object]" instead of text. The 0.27.1 entry still had a ### Fixed sub-heading in its changelog entry; Nextcloud's popup renderer (marked v18) can no longer process Markdown headings correctly (see note above) and shows "[object Object]" in its place, while the rest of the text renders fine. From this version on, changelog entries avoid ### headings.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureNgfXL4Rfqyk2fMRoXHkcuOpie+84LH1qIhuhJ+Sfs4K29Xy5fbifWMVhWM2HBTEhfNqQaqLJzVzi4BVDV1rjlvMjD4O35H5QACv4J8/3jiw76kJTS44yTA5zVcnhWhBCqr6yuB8jTx7hco1x7uCo2ywbJvjJ187R36mNfVm6ZjcKhTDNwRmM0vKJz4GaOubDo4btXQbQpFhFUPAUVRpfRTVYfJKvuEOmTo2NWScedIG8pFocJL97l9EAymq0XconkOSporGYKouX6WalbuG9k+EEdPsrNaRRilNfOGQ2ffVXy/nMK4Z7SiF/ZGuFA5K0VI3TlV/KkIjm1o50gjAnu/9kko9C4aqijlY/chU/h84MDfwGC3omb00NHhd9aCuaLp3JoZfoDgQjdtSrQQA/n/EC3o2WwXJknTUxamNroeviXVFrhNl7CtI98yXhVExWePLfdmVb4eCDZl9+BsibH6nM/tQV52hToGpSyYJ+xUehhKV64dOQjf+f7BaTo+uK18vXNin/3lph6p+sLUkB4T1nli5F2kajhzZDA1Q0AC6JlWQ8YiakUO+94I5FqFruv46S+89VTbE3co9cY8kbPImIAT00o+g7N6E+SUPvFYCryYYElWJkv8TdUBGkA2wYRshimV3lcg2nDNrQmvQfk6y3ttSXstnqlnOQd/gdyi4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.27.1
Release Details
UpdatedAug. 23, 2026, 9:08 a.m.
Changelog

Fixed

  • Broken "what's new" popup from Nextcloud itself. After updating to 0.27.0, Nextcloud's own app-update popup (independent of this app's in-app dialog) showed "What's new in {app} 0.27.0" followed by "[object Object]" instead of actual text. Cause: since 0.27.0, info.xml carried the app name in two <name> elements (German/English) for a localized App Store title – but Nextcloud's update notification reads the name at that point without a language code and can't handle multiple <name> elements (a Nextcloud core bug). <name> is single-language again; <summary>/<description> remain bilingual.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureaeAWQtCQuWsCH4+c3wMP1uOdvyL3Q9PzYaU51NlPZUEdQAKmgJ+hr6P3RcagnAVVx9RKun88DqgEASp3wfO4PQoctWxw1f3x8uj+jEw/Lsm8/kKfOJRzBWMOHRyOhnvUDQeNtmJ3D/63gftHG2+KWgiEBSAuMf1hqoR/4fg+zuqh9sxiuwAEwDYgP6JMEs8zgLC9bfcbRgjpg9upN/G1pGYkFgIFWNkhO+ETFSj/Qvd5V5o1fMhP58GPNQFsLOy6/sMhxqznyvqr4cgBfQyd4BETkrJ7GY+6EFD0NmGy6SDiSwRYzBgbkaRyjZAd1DSg/Sybuztz8SzWstRdyse43I6DhndKTFj/keK4I8JJperJv8NVF2/y+ZBQwZIywDns4uuAvXbYmi6soFJFiu2RV2DMSnmR90g2Y07mp+pMQ3S4XBpS+cFaBcxElefyrCGMe1dEnhLWgyITH9gHgfztT4KFzaTWc3XGRH6RUbPxyyxwWsa+C7PnA7S5MgegXrXichoDdAQecWRUqTBf61nQOJB9i83dMYQBzLeFdEMWG9MDcPfJrasHG5hFRkBctvY6j5yrLhZHu3u0hEeX8xk3/nTSZbkpBjklAooT1qb46Za+EA2TbGKv5UPb3S1pONIqIN01poeZ1dRhry3ddlt+WdLbwfeFm9GvOaj1/xDivVE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.27.0
Release Details
UpdatedAug. 22, 2026, 4:51 p.m.
Changelog

New

  • README, manual and audit guide are now also available in English. README.md, CHANGELOG.md (from this version onward) and HANDBUCH.md are now also available as *.en.md, with a language switcher at the top of each file. info.xml now carries <name>/<summary>/<description> in both languages, so the App Store automatically shows the right one. The manual served in-app (/api/help/handbuch) and the printable audit guide for auditors (/api/help/pruefleitfaden) now detect the user's Nextcloud language setting and serve English instead of German once it's set to English. The chapter deep links from the in-app help (HelpModal) now point to language-independent anchors (section-<chapter>) instead of slugs derived from the (then translated) heading text.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureMi3raDuOYadKfpzYefG7vj6dVm3swn9+mt9ruKaYeQxm5nlbfNi9FewA5R6IJqVP0EcpSSE1h7LfXS25LueCsPlRyIWQ5nz+qr2dQkynflesWDyZzoVt/lSCcQyUfJN0RP+dVXBCcpiltKKKg2FNZzxxmj9BxgL1nUimMSi48FG7xwmFRXeXcBX/fIAF2EOnOCwVF2vlZ18jju+bJQATEQZ5cH2jIWi7g1gD2eWlQYUie6Qww8WU2n33XikVLQpVwDuk6TFz7aSJJ/Rq09b1w4uJhUCIq9fnV0e88dSMjrjj4C/rJdgf2+J/BFcvKJh9KVkBNzkm4FkTxRyRpTew+wqeem5+EdsAHoyKggJqLmbS7KSujXscwA8SzSzvwd+v+MoJSHu8I6V8Fo5Y9z0b119jg9itfR3X5lNsly2bVj6SrMrEAGo+ER2nNWCwDs38/3+2bgXPAZrdnyER+kqpPy3NgdCRiGAK2wWo/T+5fS5P1wncauXqaDLPH7V4wHNBAib9cxUgaiyDzxl+uvH4v+SZC1IMlEfwfZGZjUJnBTY8OVLpNC03LNDVgQkBp65plEnfavZ4oyd4vc6RSA7y9lr57WtuE3eaOohGp4OoWZaOn8T3T1OnzIGMbryiTGF771CikEdUNFbhGi3KAi+mz7CGv3ZVTZCkdyqnoOopXUs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.26.0
Release Details
UpdatedAug. 22, 2026, 3:27 p.m.
Changelog

Neu

  • „Was ist neu"-Hinweis nach Updates. Nach einem Update zeigt die App jeder Person einmalig einen kurzen, auf ihre Rolle zugeschnittenen Hinweis, was sich geändert hat – statt dass Neuerungen nur zufällig auffallen oder gar nicht bemerkt werden. Der zuletzt gesehene Stand wird pro Nextcloud-Konto serverseitig gemerkt (nicht nur im Browser), damit er auf allen Geräten derselben Person konsistent erscheint. Über Hilfe → „Was ist neu in Version …" lässt er sich jederzeit erneut aufrufen. Nicht jede Version bekommt einen Eintrag – reine Fehlerbehebungen bleiben unerwähnt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureSSJGYRSPKYldBCTeEervEPuSTfCzZo4MueT61i50B0YTBi7eSIAZT8c4YPEN2OpNjr8ZZHeGBGjgRqVRHaa9ewHtue5Qp6UDCdeCw5O9G+pIHNIXY4kENM87wt+15KOrQ99WvuX69vR5L07S3AFcoGEFocuB9IYgItFt5hTNi6+MyNgMt4IoN0nHgON9oCBrGxo6zxDuhZMrE4n0hYAxtgH5iFUmWEn2OjPvlYrkWnKXo9G4v0/4fR0xVM+N/6wg6Zgmox/4NPKfU+BjiQ5D+erMxOzxm0CDb9tCVk4BK7Za/vnkJtpcb34h4M2NJWTHgWsnkUlmPLvIPbwNtWOgvuyAOOUoviJLJaU1nt17AFHSaHwC5WQtDbF38WyPOKMupMhvjLYZsAAxrMogZUE0Mf51aUUxfm4wFsWRp+kjkQtFd/yavBZpL3qKvcAg25Doc3AtJEpar0Zxd8T6sQx6S+rkzcQRmWemAsq3gQO/WwqKIwOwiXy7ny2m9SZqY1ILL/8S4CZFw+kuZuwT9OjOIIMbxXpAt5R9tpXMqDTGRWmfZ+UEaM3G5TGPBqWPG8xOM0Tj2yocFSGGMFZfqSmRvuDKbogFaTzcrGg12i1a78tOSFDi93IqeZfPLEaD248RKbSDzVAyWkvx5aZDPmJoawif7uCMsGyEP5RQH0FwWHY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.24.3
Release Details
UpdatedAug. 15, 2026, 8:01 p.m.
Changelog

Geändert

  • Beiträge → Mitglieder: Bearbeiten-Button zeigt jetzt das Stift-Symbol statt des Texts „Bearbeiten“ – konsistent mit den übrigen Bearbeiten-Buttons in Tabellenzeilen (Buchungen → Regeln, Journal).
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureF0vMWEnRu1h2zXCbNEoRJPpy8dqSTmHO/nDWrvyWGXZbI3yyjjjWNoUVyVnjdXiQvSRdwGpMm5zMTft0hXf1UVa5VqcCvVh1OpqSIS26VB8CUAO9ZjP1fmQsaj3t/MOcOfLqrJo9H/JYa5jXgZalnQexVhNN6si9CvTGkZEopjwq/q5f/8bwuS3K25Ich3VIFJXp1ay6YFNjhPnfY5T2SGVBVNE0/Tzen5gTL3LtJnhzoP3//aArkzqH1RjgQC+nOr4Za/wXCRrfg5rbnxpFC6oirrNmvtaw3Ot4y3MVoSktp0h+ssRodoO4DFQtr3GohwajY5+QA6pKhGuDwgvpJjKWUa9TJzCxqFkNsrOkx1P/CjNwLneTUraAZlSuyen8mpQjrJePzpSQSZTn4VPTcrM6+BcrUrygURMz3zEhdDdRRGJQJV+CWxDTLFMbDoZQfuYZWI9RBkesC3HjwMYy9rdmAsmV3Ygnp6JrM/z11qklkCZBkxBzizAuR6GSmTGDdVJ3YDRVL3j/BccLKdrTIaSbTsGAwHT2rDO5LSrikLoou8kcxKvgQf64JgaO0DedpxEcMAk6dWRTxLo2EjXVjDaOBIHg2yT5JCBb/N/PKJ/fx+2iwol/PjGIWWHZT4/lvDOnUjygZ6u12s1MQRieORB/zO0xz8jeIAf7X7xbJdg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.24.1
Release Details
UpdatedAug. 15, 2026, 6:04 p.m.
Changelog

Behoben

  • Modal-Überschriften schwebten am Browserfensterrand statt im Popup: NcModals :name-Titel hängt CSS-seitig als Geschwister von .modal-container, nicht darin – bei zentrierten Dialogen (Einstellungen, Neue Buchung, neues Konto, Kostenstellen verwalten, Sphären zuordnen, Mitglied aufnehmen, Importe, Hilfe, Bankverbindung wechseln, Plan-Stand, Willkommens-Assistent) klaffte dadurch eine Lücke zwischen Titel und Box. Betroffene Dialoge rendern die Überschrift jetzt selbst im Inhalt; auf dem Handy (size="full") bleibt der eingebaute Titel-Balken, der dort korrekt über der Box sitzt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturemZBEME1oniTSxTY9AmcBwrzJDrnU2MPLyQSXHoUEf9D42t3aQ+3A+GsoTO5B9K28MZwblObWytuz6tF5XjeF/o7V7bwag+KfSwVn1fWo2v8Jzqh/KzZ5cSDorHEjhRMLrr0v7zGXM+J+VSHdxtQ7X4JhOtnRMEtq8eD5/ogYZd7IwCTkyXkG9dMvvIDqO0npTQc6SegFiWr5vQqnBmcTf4YSb5to3j9OgPfeHJslrr01r2KJFo86iwexm6hS57d/QgldWkSPBWcQX/mO3Ss5j7HwP3LdrvgfLq9KbUeS/+iYkPXHmL76edhDIU2iNq6pHg7dDKFekFWOEnCp2jPx7yyzffLZ+vSDSgCca08FHdXcLPIqyihAtzM0oeQYQ/b9CQaVq4h1vKKpYrsS5Dexl5y3fY3LfwzJBZ4gNLaSIcixGphGf8L/vxQCvpqsKox76CniRA5f+ad11pkbK+0xCXPUZYfm7x+Rdz5tGfEHnlI+S76OHBTnHfksY2sXMki0iGDad5iYFr6TjGAKWZA9Exlgvuh1I0ZWnCP2ItwHeTVbAPsupVazB8aDTuBSr4HxeM16XnAZAthMgdJtQAkVqjV8iiyKnOKYLohSlaaTbFLjNDHhvbAEa+sgdDUyQhEr6nv+yM4gElpqjtu6E5sb7FlCGn/RIfflVeR2y5w45bU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.24.0
Release Details
UpdatedAug. 15, 2026, 5:37 p.m.
Changelog

Geändert

  • Berichte → Kostenstellen/Sphären: Bericht bekommt die volle Höhe, Pflege wandert ins Modal: Seit 0.22.3 hing die Pflege (Kostenstellen anlegen/ zuordnen, Sphären zuweisen) als zweiter, oft sehr hoher Block unter der Split-Ansicht (Baum + Detail) im selben Scrollcontainer – der eigentliche Bericht war dadurch auf min-height: 360px gedeckelt, während die Pflege den Großteil der Seite einnahm. Die Pflege öffnet jetzt als NcModal über die Buttons „Kostenstellen verwalten" bzw. „Sphären zuordnen" oben rechts im Bericht (gleiches Muster wie „+ Mitglied"/„Liste einlesen" im Reiter Beiträge) sowie zusätzlich über „Konten zuordnen" direkt bei der Baumzeile „– nicht zugeordnet". Der Kostenstellen-Modus (Gruppierung) bleibt sichtbar, da er den Bericht selbst steuert – er ist jetzt ein Auswahlfeld in der Kopfzeile statt einer Karte im Pflege-Modal. Damit entfallen auch die CSS-Sonderfälle aus 0.23.0/0.23.1 (.vbh-sectionbody.is-split hatte nur wegen des zweiten Blocks flex-direction: column und ein eigenes .vbh-section-divider-Padding gebraucht).
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureF4fcHxqtwK40/pbTvqEDMLCdTPDegYcr9z834SwpPuVWNTebRNgwEDPMkdeFqpQkrAANpyo+818P/va/RY/OPVdRo12pkmyZVkdOcW7F6GtIpAj6GHKJBw60oxJ4VT6eld5b/GaMD6d9kkfYCuiCziaVtM0p1RIwBWNSmqrH6Ru/yEQftJx8Zbqg6+QgDOy/PGWZ9b/73fPFfifNu0btD9K3XEvJGAJp2GRLuUiIki8eeUHf/3fMDj1xPFtr9y6avxoNkgBS2Zqfi6OLXfRNK2lqHdbUbcmXU1f56Qfgx/KnOy/yrkVSjs0pzGUOAl1vCZTp0Yzq7+uuUD5jVMvpGBJ953jvEPXlM7DzHmElf9VL2rcy7SFHKjB80A8FptkdSMCG4qe3HUU/W0ImlUhf6BD0p3t1ElHI/SEsjjggabLebxk8B+nNOAyWJWCagiEA615yaEzTiH5kH+UylKzGXvih2CZvcGeGo59m808ySvRCtkskfyyDDMpv8GU2kzeFPsCdB0DOO1SyNFfeJznKMLu+fX3H0phF8IhcrwnVCloeGt5p6VPzfgAOcT3MlUDVDqoQcfyoJk+Z0+qGaoJ0F7cLA7+PnsgRpEsI6/J2XHDnCkimNPWJFDn7JAh33aDYx03CKXaXwVnx5D48V8oF4wrk5OMt+lK8YVjJ/z5UKk4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.23.1
Release Details
UpdatedAug. 15, 2026, 4:41 p.m.
Changelog

Behoben

  • Berichte → Kostenstellen/Sphären: kein Rand, weder oben in der Split-Ansicht noch im Pflegepanel darunter: Nachbesserung zum 0.23.0-Fix, der die Split-Ansicht (.vbh-splitinner) wieder auf volle Breite brachte. Zwei getrennte Stellen hatten trotzdem noch keinen Rand, weil beide bislang nur implizit vom umgebenden .vbh-sectionbody profitierten, das für Kostenstellen/Sphären aber bewusst auf padding: 0 gesetzt ist (die Split-Ansicht managt Innenabstände sonst selbst) – bei der vorherigen ~1px-Quetschung war das nie sichtbar:
  • .vbh-splitinner selbst (Baum + Detail: kein oberer/linker Rand) – jetzt eigenes padding-top/padding-left.
  • das darunterliegende Pflegepanel (CostCenterPanel/SphereAssignPanel, umschlossen von .vbh-section-divider, das sonst nur als <h3>-Trenn- linie in schon gepolsterten Containern vorkommt) – jetzt eigenes horizontales Padding auf .vbh-sectionbody.is-split > .vbh-section-divider.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureJUeU+au31gmFileGZvqfqHdz76kVE7sRd5xouf9LGjP4c8r9h8aQbrSozYWtASvPi8iCRh+FoqWauREynx88pz3ZnI0+FJfQBn/SIxy/ZyBSfiNyTVIwCi8NTYlp1Zo479tDt81my6+kaVDjfCRdZbyncuHugwpZbyxeoRuKtH21NenZVmGviCplJhiHgXYKUS6W4cgOMZ0IeOeP5aSlaigfbf39v5wf7nEPtGRMVmjmODXRa2T74Rbwmf6i8ujxgKklBeIY9jimJWqoQ5gMas5eE/swEnQsiy2xNgw71xBUtkyrMWKLw0LvPg5u2czJ1RlDVcQoC9MRUs3lY2N7A7mlkIIOaNCH+VFwpYddpR+yZRpCqaLUf4NyRynzUnk/p/PIvcWwhmL6tz2Z59ksgrvKLjcZqhE693JLvXKDVWXwjxg7tMUHBpVR8lwKyEAfXxQiuLkktTeCaHqEsA1ag94uVirj8GgJwzrpYBP6hPuopBgZ5yqto6nDLNfTzA6xzYhcYBM4Hi7M8XmK/AMr791kATi2pjVSq7RmYBGUneyRe40dqUDCR87pVzgQuink8cELbyDpAXlhO5TqAd/yxxmqrdX/HXWHiWSBuEj4qU2y0zcfhi5G2oLdaA5Fkr4PO874E5I8Eco51QUZFUG1LLPCBrIl3YkL0MicAqpEIe8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0

Nextcloud 34

Vereinsbuchhaltung 0.34.2
Release Details
UpdatedSept. 14, 2026, 5:57 p.m.
Changelog

Fixed: - An account's category could not be cleared: deleting the text in the “Category" field of the account dialog left the previous category in place; only a single blank space worked (issue #59). An emptied field now clears the category as expected.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureEFvqWDFNfM6FrLb9Ef+VmkLkQq/yMGhS3fFmfDXMmHq7Tkx9ebelg6+UOltGTCAywwAqFg4TlZhz+P660I/de6z9WnYhMtrvp+i2YD9HAA7JJkmUOnB9qcJH85XJJZXFAKnz+WeHzIwnA1b4PpUEcBXlbs10i5vF2TK5kZnW4sOOoj175+Fr22UYhUtgFr3OGuI3F3OtVnukYqMZvs5bbtZvZbnq16S1aC3Q9l5DyDTk3dQoTdX+mcABI833Z3tTgHevH04XqNA8JSnpYEO5VOY5FE6UIPWGEsro7N4mYBD9mfvgh1k0ID4D8M9UECA+nc1cVCA7ZvEbkD7qMcM2bdmIqkpaM7EZYND8D/DmU+kjGXi3VFkT3uBL6qiApthyohAXUE7mEMu9z9zHrhN8HMIGGOZqQnn45saBBOfPUo03E8AtacAT1zk7Lx44FloP6R2y02nt+BMf2C6rj7gaD6CSERsghlDrhtfqIjL6aGbIY/KVTE2v8oUozOQLWWT1v7YE8360mfWkDOoD9IqHVd4wnvdkPkeu17DdEMzUJNqyxu1ox08v63+cfh/Wf8X+L7uk+z80G0b/oRElAyuYahQxQimk2SwnE9IooOwdbruc/Kjh7AdPh8alW3TlD6oBlvLFTeuuUTPne0woHKSAkAAB+Mp7aWcDquPM8dCc4Ec=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.34.1
Release Details
UpdatedSept. 13, 2026, 4:18 p.m.
Changelog

Fixed: - Duplicate accounts in the autocomplete: Frequently used accounts were also listed in their category group and showed up twice in a row when searching. Now listed once. - Search field in the "Pick receipt from folder" popup sometimes didn't react: A fast click could leave focus stuck on the modal backdrop, so clicks and typing went nowhere. Fixed – the same fix now applies to the account, bank account, and member dialogs. - Icon in the "Pick from folder" button was misaligned: The button was too narrow for icon and text together. - The getting-started card briefly flashed on load: It appeared for a moment even when everything was already set up. - Period selector stayed empty after a load error: A single failed request left it empty with no error and no retry. Now retries up to three times, then shows an error.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signatures/8cYDtuFbV6E8E5R5Qpl62vNDSVzL9Isb0SpA12Gfk56tsktN+lvZ2efzPVeY1nRIkfbOAds9mbp2IqknBIUrEcVG/2PFWrah4SBCfwroQ7Za+6iJ06wRNYnLoirIi95y/ul4RJx+mh9giqP3ERfchInL4RpY7rCUxYSexKy8MrA2QB47BuTg4zBE+HtqO4t6WOjIPIwOrWYRu5dYC3hnm82PTvU/p3Azl+Zgo8L29KVwfNfU7xkRxd3mFm3VLXIF2UDbEv5PIu+G4L23EW74n2e8IMrSfgoNNI64sx4J63G7dGSspVrI3fJhG7pBa8TsISi1t3AEBKCiE7qrrsJxZ0AUMPHAGmxv64zwT/NbD6aPSREWpzYWQ+bukKDVwTa9clF/o6B4fE7/RcVPc/G5qNXACYdnlJgC4dTf0WaHmTTJoZp06+UKHjmx5SjFiSBJD2Ld8k/O/Y1vcL46kpDQSP9bqtlhyZXq1xNPedcIis01MbOeybRKvZtJL4inBXrYr3lZSaL6CmOHMm85cmSJnP5nSqrE/g15czG9/QILeKTRCe+qa4/U5kY5LcXAW8TH5BmUA8K7lFrznduHBBpPFCIx7VMW9xnmisFbf0TpqtuGnRifJm5SuTjNDvumwHBuRMGY20vwbHU1ul0tkGy4Qfb7KnPOLjSvQwCghTyfU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.34.0
Release Details
UpdatedSept. 12, 2026, 8:59 p.m.
Changelog

New: - Watch folder for receipts. Besides the internal storage and the user folder managed by the app there is a third storage type (cog → Receipts → "Storage type"): a folder in the Files app whose files, including all subfolders, can be picked when booking ("Pick from folder", with search and preview). The files stay where they are – renaming or reorganising them inside the watch folder does not break the link, the app remembers the Nextcloud file id. Receipts uploaded or photographed from the app are stored under <folder>/<year>/ and may be reorganised afterwards. The folder has to exist in the Files app beforehand and must not overlap with the watched folder for bank statements. It is chosen by clicking in the folder tree of the user's home ("Choose folder…" next to the path field) – a typo in the path is ruled out. The same tree is now available for the watched folder for bank statements. - The overview reports documents without an entry. If the watch folder holds a file that is not attached to any entry yet, the overview shows "x documents not yet assigned to an entry" – an invoice still to be paid, for instance. "View" opens the inbox with "Create entry" per file. A second tile warns about receipts whose file was deleted or moved out of the watch folder; the audit ZIP keeps listing such receipts in fehlende_dateien.txt. - The app never deletes a file in the watch folder. "Delete receipt" means "Unlink" there – the files also stay when an entry is deleted or all data is wiped. The same file may be attached to several entries, e.g. a split invoice. - When switching on, receipts the app stored under <folder>/<entry id>/ so far get their file id filled in – the existing receipt folder can become the watch folder directly. If a different folder is chosen, the old receipts count as missing until they are moved there.

Changed: - The Nextcloud viewer only opens a receipt when the file lives in the home of the signed-in user; everyone else gets the app's own view. Until now the viewer failed for anyone who did not own the storage folder. - Opening a receipt no longer creates folders, and receipts from the internal storage stay readable after switching the storage type.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureEH3jQPFfGMBQpUQwCuWN+biHwFqRxw8mnukQhkDPzmFj6KOWgEkLA3/lF1Lt7rypENDYtU9SXU715NKB8vWewF9ia1qP8o4GYsmjGVVRGD1pT9CbCqpefYpuLklQI0yyD9xXG2wK76DQe6iQW2gQQCJnIAtVCeNQpUvRmBgG1Kab0JhMNOKylIVt/wqP5jJePSNq3acxFpGmwVUr4Nzsm7wYn8gag3sjtB8GnavMg3Np0+48Z2O/tzRy9rmASVHYRPCWwrRXDEBz7qHd2ocwHFwKVTPCaRLT7jgKJ3B8RvtpFzEGr89Fkpm61hkdHi0KfWVLj55hIpiB8x4YRYcoH1CMeKok6SmlNclLExsf6XUKm37P0JTZVWpdRCw7I23UsHSUrE0J88YQlJURIMQc9wH3bqFUZza9mz44WPMf3nJ5o8bNcD3GjVh6YaQnVAFD5oEnroSoY7BYpDUawTDndqrM/24TN01ESsnFi0b5/fjT2AuSokvAXDb+/10j+nSxOZnNEeXFyL5spnW0Q0T/9U75DJ2x2BG5mi9E3OLifI/muNrh2eVSqdQJ6u2EzD0hQkTeb5TxVjCLwIogA9F3hrNzNqJY8MxLlK9Ac1kIsF5w2QJRjwjecIGlTYGU3ZN4aFc+P6AQs0M8iXpco+7yi+TWkz9n4t1DpWoNz72SMZc=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.33.0
Release Details
UpdatedSept. 10, 2026, 5:50 a.m.
Changelog

New: - The fiscal year no longer has to match the calendar year. Under the gear icon → Fiscal year you can now choose when it starts: presets cover the calendar year, October–September, the school year August–July and half-year periods (semesters), plus a custom rule with any start day and a period length of 1 to 12 months (divisors of 12). Clubs with a deviating fiscal year previously had to add up their figures outside the app (issue #8). - The header's “Year" has become a “Period". Every period carries a freely editable name – suggested as “2026" for a calendar year, “2025/26" for a deviating one and “2025/26-1" for a winter semester. Entry numbers, reports, the budget, the receipt ZIP and the year-end lock all refer to the period rather than to a year number. - Periods can be maintained individually. The boundary between two open periods can be moved – the way to a short transitional fiscal year. An empty period at either end of the chain can be removed, and the next one created at the press of a button. - Switching shows what it will do first. Before a changed rule takes effect, a preview lists the resulting periods, how many bookings will change period, and which budget figures would be lost – because when two periods merge, an account can only keep one of the two figures. Locked periods block the switch: what the general meeting approved does not move afterwards. - The cash report names the actual key dates. The asset overview used fixed column headers “Balance Jan 1" and “Balance Dec 31"; it now shows the first and last day of the selected fiscal year. - The monthly chart on the dashboard follows the fiscal year. It always ran from January to December; with October–September it now starts in October, and a semester shows six months.

Changed: - The settings section Year-end closing is now called Fiscal year and holds the rule and the list of periods alongside the locking. - The xbuc import now derives a file's fiscal year from its date range instead of the calendar year. A file for a deviating fiscal year could not be assigned at all before. Bookings outside the range are dated to the first or last day of the period rather than to January 1 / December 31. - Existing installations are unaffected: the migration creates one period per previous calendar year, running Jan 1 to Dec 31 and named after the year. Entry numbers and existing locks are left untouched. If you change nothing, you notice nothing.

Fixed: - Opening the booking dialog before the account list had loaded left the cash account empty – and booking then only reported that it was a required field. The preselection is now filled in as soon as the accounts arrive. - Switching the period right after loading occasionally showed the journal and evaluation of the previous period: of several simultaneous requests the last to arrive won, not the last one made. A choice made before the periods had loaded did not stick either.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturehjIUxR463SXRpnSDzeYpCEUzwFWSRO1ftltM9mWjHajC8UYOyRFO+a3qq7rOns+QYhP60hf3ikxj3W1DN3iUnUjrL8WSd8T5duQAubXz8pHlKS0QreKYeiecE/5cDcOFVTgUIEY1S9mlEvqW4LHFm0lG6R4tnXN9ECVQytIfxExa8rRrM3JFpYoRghY7MZ/+KitnFI6JKUGgE7bZ5Sm1tyEKXZF0T7knzzKS9lclx3Iqn8jw6jCvCmTrKSebjwjZaQwOjmkII6FKBv2xTiBJmmto3YPq8L92FbI+9LSCMHtlr3YA89ONl2xiHMXDzO9wRzyxBzWVAyHFu9pSAYxFjgtnXedEcH7O+4NzSRyI1zm0noskNMI2VbqDTrILZTmm27UT84U9vCm10dJbhbZwt/3sLWVMMGjOHVslf/JAu5psyIqUjjToSAr6ExAJNi30LB7Kehnj8O+B5LP+eVxiKnOrdkP8VY1zzn6Wj4aKnwF3AW4e2itJCCAKTjGjPLROnBpxHgKRy7oTllQJR6HjfQjpSNauFGmhi7lv4d9VVZ6pVA79XwJOv2GQqJiavL0Q2Z9hEqrzQ4b+sy1Gg1QvQ/w8pElcDgBIgUiwW8yUKX1J+R4b3C9/8QFl9l4Of0KJbwVle4CIg/GK9x+BLrE88mzM65wqPF/DZqkEgPPc1VU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.32.0
Release Details
UpdatedSept. 7, 2026, 6:52 p.m.
Changelog

New: - Entries can be edited straight from the account statement. When you spot a mistake while going through an account in the Accounts tab, you can fix it on the spot: the pencil at the end of the row opens the same entry dialog as the Entries tab – for the description, both accounts, and turning the entry into a split entry. Until now you had to note the entry number, switch views and search for it there (issue #39). - Receipts are visible in the account statement. If an entry has a receipt attached, the row shows the paperclip and a click opens it. That includes the auditor role, which cannot change anything otherwise. - A tidier row: Reassign and Delete now live in the three-dot menu, exactly as in the Entries tab. Otherwise the row would have wrapped onto a second line in narrow windows.

Fixed: - The account statement refreshes after an entry is edited. Description, contra account and running balance used to sit there outdated until the next account switch whenever the entry had been changed elsewhere.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureURbs7rR+ibIaCXawEIGE7845WACZzgIYr/uWGqG2NfgzeFJzARFjuikGP1MGA9oOcQkwrLYk/ZNuIqXLVeOOTn6IeFo5CiCoQUzkOcEft2nPrtk4cSb+/HNBiAQ7HqcaILq9C7Y89sTyH1CpGJd3mvi2nrg3ZrLGc4oK+nelIk6WepYW0Ggl+35ScDPURnqVqvsxOKX7yyiQ7l8P+CMAVajpLXHiliixH5e34MIWs7cLhFucXHrGXnhkSqbtGNLX9pqZ9HNukNyPnpf17Ab2XJxyEzHhBp79Z+HBrGvcgkKPXjDy8nugD0RzRX470VPrE9MtJlz/w+7Ldq9TmSAqdrpq6/+GRtoTQke4EHoX6Y5q6G+eQg6sL6YDTKzFVetE3SQAVM2L4sx+W8hNjRvTyryDyCcktJSyd4luyRKK1FMOYy+Gh7jxSkwC0J9TbpnKSOiZlhCrY6ixlah4Bj87IuXoEeJSYh2XrTv2LfUN/UORaE3QP4FZKrP5wzlo12eacp/yM73IElhE0NNOapPlQo/pwPKHpd3LVXRaohJny760AtExPYmj1NmK3EIfaj9HxoltiTMCDROuC0LvLaAvmFNlaChqZ/W1c0+6KjWTtXIIyLCd1ysGAQkHJATUHtO9OHAE3/fOjIsnOaLSIYIpQJV23DyfxiOcUFx+cOk2rwQ=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.31.2
Release Details
UpdatedSept. 7, 2026, 6:03 p.m.
Changelog

Fixed: - In Firefox the year in date fields is fully visible again. Since version 109 Firefox draws a calendar button inside the input, but does not account for it in the width Nextcloud gives to every input field – it therefore covered the last digits of the year, turning "07/09/2026" into a visible "07/09/202" (issue #43). Every date field in the app is now wide enough: entry date, next and first due date, mandate date, opening balance, open items, SEPA due date and the short report's period. - On phones the buttons inside dialogs are thumb-sized again. The 44px minimum for touch targets only applied outside dialogs – Nextcloud attaches dialog content to a different place in the page, so the rule never reached it. In the entry dialog Cancel and Book were only 34px tall and the Income/Expense toggles 40px; this now applies in every dialog. The round help button next to the spheres is properly round again – it was stretched into an oval on phones and on the desktop alike – and grows to full touch-target size under a finger. - The receipt ZIP export contains all receipts again. With the receipt storage set to app-internal, the archive came out empty and listed every receipt in fehlende_dateien.txt as not found – even though each one opened and downloaded perfectly on its own (issue #40). The files were never gone: while building the archive the app read them in a way that only exists for storage inside the Nextcloud file tree, not for the app-internal one. Only the ZIP export was affected, and only with app-internal storage. On top of that, fehlende_dateien.txt now states the reason for each entry instead of reporting every failure as "not found".

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signature5YJYB6EPPa7PoTfCkG8zixyMAiUog1fe+KV73/tIghJV/YWJ2d8W3yzLqUaLj+1Tv4Sy2jwftL4Jk3kXyRCHrosVPR+k7YMPgRJ1BuJrSHTK23gVm8iwQpiHTCY5HqoKZUI47wrxaHkq2ULydZnlnxZWfLvBLV8FXpPUw3oxmkCsHVeqgA3MYXfeKbU5a60Yh9gxOQh9DabCxJJGPPFAB7uBd7ZYJPPhoY7pN955VazN/Zhls3rjU0qWKFqmZehQp7VFesrHmzgxbHe7IGTTH9lNldx/JzPHXTbiBa8ybcvsruOI4OxdGam4ubaAXWPSX71Yo7JLW7lF35UW1/mILLNSkfHxw48sEciHTE0PeDfVY3PKtWuhpgAK4VP/04LbWBOHbx96jXfpV6TguNlwZMdiWvanwJyKGeO8PkiH6gVSut00BGnmC6gxBueGUD5WIGBVqDwhiLFx3EsSGiAyCPy2ZIpBHN8Bu40iooLMCog6vu7w+4cKzVgJSHejwLVSyfvNt1yfNczYj2yarA3zh3eqS+A05Q5N9thr2QXOe753mz2KBd7z/vCIWpCC34RLnlFVXaZj4sure62IUx397INnCUAsxaRqPkkh/9g3QeLOJ3JloL3RV3jIz8VM/37NbHQTApFs78ImdXGnGZ7/YuGcr8J15y7n/BOkEFAsTsw=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.31.1
Release Details
UpdatedSept. 6, 2026, 7:52 p.m.
Changelog

Fixed: - The report sub-tabs are fully reachable again on narrow screens. The bar holding Summary, Reporting groups, Spheres, Reserves, Budget and Log ran off the screen and could not be swiped – it ended after Spheres, and the More exports button was out of reach as well (issue #38). The bar can now be swiped sideways and indicates at its edges that there is more to come; jumping straight to one of the later tabs from the help or the bottom bar scrolls it into view automatically. The same applies to the sub-tabs under Entries and Contributions and – with the Nextcloud sidebar open or with longer labels – on the desktop too. - Amount fields now show the amount the way it appears next to them: "20.000,00 €" instead of "20000". In the budget, the Plan column was a bare number sitting next to the formatted Actual and Difference columns – with four- and five-digit figures it was hard to tell 5,000 from 50,000 (issue #34). The same applies to every other amount field: entry amount and split lines, opening balance, open items, membership fees and the default fee. While editing, the field still shows the bare value so that typing does not fight a live format; both notations are accepted – "20000", "20.000,00" or "20000.5". Anything unreadable restores the previous value instead of silently setting it to 0. - The treasurer's report and the short report moved into the More exports menu on phones. As separate buttons they no longer fitted into the row and pushed the menu off screen. The short report's date field is now part of that menu; nothing changes on the desktop.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureB1QJYSJ6p+q4O5Yi2GBFhXTyaZTxxSwnNZJACVeCSRKygre2q5fbtLy1CCvZ/VBYEBYnuSvcz3uK4Q7ylzoiuLiMkK5y38ntbeFgLvZPgguK3uyJtCEmSXuvFwUUvk51ZFasjy13rg4o3d0HLLSrzPAUAFOu236jwO4Z6QmRSTcJJloyw5sDP3ykLrT5DZT3ZtduaPGq9EsZTV5AWUj6zdWK8LQTFcbX73KbGp/ao1qeXF0AZbVVoJI7GRIbu7Znz1TjknMY18B5XkDHHXw9vxkejtTs/vYfGm0mWREPxymjZJOzA9UuhO4zsdxipDckbBNFmceOYokYx3360e0Ho3qg/AHowOinzVJbDah8pL2ZKXFsrlToNgFADdVGw7V9M0IM4zoIgw7n/wZ2WHZkL8SE3B+vdKEcK2yWemqpyA0rns1hG6pmvMCcTCFvLsuJVfZs/ar6STyT9GuA8IZvYrU6Syhawo8UAXEUfIQeYdi38i11S745xNIXvrbKCpDodmxJ4hvfx/XTsi9TilQPRI174s6rjTzFpNI+wm5lGoiYRfFBFRi3xT9X5sSnGkcw+sie9Y664BLDDn2vf0n1T0bVyPLyKewN+GYz/tomrdJAhUmQx0xuBcR2hFNQQ2QoDwwlhifo7y9Pb2Vo5jJhea0sr/494Z9pUy0s29xfoF8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.31.0
Release Details
UpdatedSept. 4, 2026, 9:09 p.m.
Changelog

New: - The header now shows the funds across all cash accounts, no longer just the first one. Until now the top right only ever showed the first cash account by account number – anyone running a cash box (1000) and a bank account (1200) therefore saw the cash box of all things, while the bank account stayed invisible (issue #31). The figure is now called Funds and adds up every cash account; the tooltip breaks it down by account and names the transactions not yet assigned. If the club runs only one cash account, its name still appears there – nothing changes for those clubs. - Individual cash accounts can be left out of that figure. For cash accounts the account dialog offers a new Counts towards the funds shown in the header flag (default: on). A fixed-term deposit account can thus stay out of the day-to-day figure without disappearing from the books: the cash report, the assets overview and the trial balance keep counting every cash account. The flag is display only and is therefore not locked by the finalization of a fiscal year either. - The cash-account table on the dashboard and in the evaluation has a total row – as soon as the club runs more than one cash account; with a single one it would merely repeat the row above it. If at least one account is excluded from the funds figure, an of which funds (header) row appears below it, and the accounts concerned are marked as such in the list – so it stays clear how the figure at the top comes about.

Changed: - Clicking an account that has sub-accounts now expands them. Previously this only worked through the small arrow in front of it, which was easy to miss. Collapsing still goes through the arrow – a second click on the row deliberately does not collapse it again, otherwise you could not select a parent account without closing it. - The posting text now grows with its content. Longer text wraps and is shown in full instead of running off the side of the field – when creating a posting as well as when editing one. The value itself stays single-line, so nothing changes for the journal, exports or the API. - Dialogs have a little more room to the edge. Content and buttons used to sit rather close to it.

Fixed: - The charts ignored dark mode. Axis labels and grid lines stayed black and were barely visible on a dark background – both on the overview and in the reports. The cause was a check for a theme--dark class that Nextcloud never sets, so the condition was always false. The charts now read their colours straight from Nextcloud's design variables and therefore follow any theme – light, dark, high contrast, and club colours set through the theming app. Changing the theme while the app is open redraws them. - Success and error messages (toasts) appeared at the bottom left. Nextcloud still shows its own messages at the top right, so one screen ended up with two kinds of toast in two different corners. @nextcloud/dialogs 7.5.0 moved them to the bottom left and dropped the position option; the app now puts them back where they belong. - The active button had a white border. Visible on the Income/Expense switch in the posting dialog, on active filter chips, on the underline of the active sub-tab and on the side selector when reassigning. Nextcloud claims button.active for its own pressed state and overrode the app's border colour. - The focus ring was clipped in the posting dialog. Tabbing through the dialog showed only a sliver of the ring around Income and Expense – the switch cut it off. - The posting dialog could be scrolled sideways. The hidden receipt file input claimed its full intrinsic width and pushed the dialog past its edge, producing a scrollbar. - Accounts with sub-accounts broke out of the account tree. They were bold and noticeably taller than their siblings, and their columns sat a few pixels further right. The cause was the expand arrow: on parent accounts it is a button, and Nextcloud gives every button a minimum height of 34px plus a margin – which grew the row to 46px while leaf rows stayed at 29px. All rows are now the same height and weight; the arrow alone marks an account as having children. The faint placeholder dot in front of accounts without sub-accounts is gone as well – it looked like a bullet point; the placeholder still keeps the column aligned. - Text hugged the edge in the "What's new" dialog. It now uses the same inner spacing as every other dialog.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureRpdiBEtKAA1ZA51YvSoVDbENkvtlBocEabzuohgcm5qFUGiUGZLMXzQtGk9xSeAhUOvjMeAsfzeOlQ5ZJTjU7Yp6W0AbHdAALFHCIPiGJTNqUzaHccYXA191IHp/KXpy89kFXUNzX2tBZnnIU4hWOzNXodidjSnuIZnAxBoiZoTSkg12tbtJ0rzCrAoFjolbx1vWBKg+lKGaMtM6qXgGbSNcylqMZ3PIuYeEJ3S+v4OAJcNGnIQtmBWaljdWvh7c6y5GlfQWwvbS6b7leLv99/sRNoaVXId+fXRvUul8O+42tLZ0mpk4GUx0UiE5QtiuagSylE3tmLXvK0F1zm3N56uymcP1PW8p84jbXDszxIDQQfnolu/WOca8gE+l9dBzx1ms/C4LtsfEQw5yzZOSuzxz4Q0PUOmz7A2TKQ0vccRz9qaazd93hhl/+6QGJ1fOfA5vxtbtTwtuONfAgtSkXrKj3uGZU3Q5uu2l2e6a/R0cpYIYexhIk+Xnc0NlOK6t9uNQdH1CTpZ7Rj4FpTteRnIHJTWLTn5RMXW/bJBFTsBoNOAvBIq4RalYd25avk2pnmAI8rQzEgU8+oSJV4Zb5L47lrA5nlVYWn+G0hw83K/dm8/8aRvkhv0th1kE4IrqSWbZ/BD9i8oSNGnQ2mU4O1Z+Jhjkjh55oge2PeLgQWw=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.30.0
Release Details
UpdatedAug. 31, 2026, 8:36 p.m.
Changelog

New: - Receipts can now be attached while creating a posting on the desktop, too. On the desktop the New posting dialog shows the same Receipts section as the edit dialog: the selected files sit in a list (with a remove button) and are uploaded as soon as the posting is saved. Until now this only existed in the mobile view (windows up to 640 px) – on the desktop you had to save the posting first and then open it again (issue #29). File type and size are checked as soon as you pick a file: anything the server will not take (only PDF, JPG, PNG, GIF, WebP; 20 MB at most) is reported by name right away instead of after the posting has been saved. If an upload fails anyway – a dropped connection, say – the files concerned stay in the dialog and can be sent to the meanwhile created posting via Upload again, while the other receipts are already attached. While saving and uploading, the button is disabled so that a second click cannot turn into a second posting.

Fixed: - The Attach button could only be reached with the mouse. The file field behind it was hidden via hidden and therefore dropped out of the tab order – anyone operating the app from the keyboard could not get to the receipts at all. The field is now focusable and shows the focus on the button, on mobile as well as on the desktop.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturefVul/2TJkdc0pI4s1Y3nesPADFrMVwkimF+/qhyka+ikknmlAgb8tVmNFcoT/lKpQrXG/w/qLfY/kGi8v7iBgZz9KZE5ShnnvaV69P1nZkJWaRz+8tzAumubC/5P/lWtQPUsOCkt4MDYknxDIPjkSLv7v/MnqxIfsuG01OnhgzG0cu27t3TRvVjQF6gnJ4sdD0ceokH5Ntnk63elMqDo8EjxZu7/WTktjZuwKWZPgtReRyKVaNsWU5XnhVA+X2tshjvfHNt7UeWq/+T5TJFCIkjF+jUCYwYm2Z71pttdi1qsOMRi/CchrA/a4fAAR9aD/tzLLzgNWXKLywQfFAv6T84bsVOpz0hqq72GSvbYMSRNYlF9e9J//8zOPxxqP+Jq+gFb7jCT+BW76He0nz8luWqvktz/njyxs1QrtS/ITvB8H4YYhJRvw17+zci41DNn4UyumhyxVBk6QNbKCDTrtzsMSOdVqEWDEzgc9JXy1ag2yrrEZPnCIJHckwT50UUkOXwsJWVW/22QIH6Z+k+CZKYeqDcp4GbHiGowvVlnuGcrS5Sc2iA/7ERgc3hHdgEdZ+VNJIr3eiWwnfJba8Ws8wRXeTpw/7qFoAtOkaWen9O3oYmQA6AYiO6yeXG3/QJjQ/KovDPr40ffDA1Fsj79PMIH08ZXjWEPPztSTaNYRoM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.29.1
Release Details
UpdatedAug. 30, 2026, 9:02 p.m.
Changelog

Fixed: - Success and error messages (toasts) rendered as bare text in the top-left corner. Since 0.29.0, confirmations such as "Settings saved." sat unstyled across the header instead of appearing as a box at the bottom left. The cause was updating @nextcloud/dialogs to 7.5.0: the library's toasts now carry hashed CSS classes whose styling only its bundled stylesheet knows – up to 7.4.1, Nextcloud's server CSS had quietly styled the then-global Toastify class names, so the app's missing stylesheet import never showed. Both script entry points now load the stylesheet themselves; a static test and a sharpened e2e test guard this (the previous one only checked that the message text appears, not that it is styled).

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureZNu+0GfB6CNdCwdO8JIIAFJufLn9soTS6/P1RXqQaPN4Oekr/TyxcLVuvcVuNzEYDBGFw9HDZFvX/2GIoeGoK/39vfOELcpkWr9L1K216j14IueTtzIhOtOWr3D1IaMJ+DJ/mNRU6WPvQFV39z80ZOml6fiUJ+FIE99l3VljDq5laYJo9a9MmQfnsOgj7chk0hMp9Y239P2srKL4dX57wU3tTbKdGVpE9qUNqpeGd7GFoCrz/N245oj9hjnIYUcIpEb7/05fgc7ka2/9n5EE0eHHZHxeDe4sRIFTmoitUkiXNvdxF2v5a7VVaECeZIQBoLVBfsVn+w4s9JzIbUMfz2V3ZtTG+EZt91lcD7PcJQwOp1JLRMGZFVv38CW65cCaIFNWya+YoMV/+C63sM2yjuO1WLDHdOOcBdwosksiljUSpnl/MhcCFAUyPMsugG5y5aQSnwXcEQ8C5tMUPTPZv4DCI7mAaSrliAkg2llZeU74XWy7FNvlp7ILZYPgFbBJOd+LB+qXy5DTArfTYhFspVZEPUGdMXS6hq1ApJcd9ZwT1rHbZimEGDx7EhAcmMZK3oIpPrYr0ULRqpSub/rcV1GgLsS1zryfb26r4T1qQrP0qwajmpIBLsOhQNODbD+ejcSrQECDw6BTaBlm278v3OrwQVSiOTWw4+EoCF2HxeY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.29.0
Release Details
UpdatedAug. 30, 2026, 4:45 p.m.
Changelog

Changed: - "Cost center" is now "reporting group". The report, the Manage reporting groups button, the field in the account dialog, all messages, the in-app help and the manual now use this term; in German Auswertungsgruppe. The trigger was a question from an accountant (issue #7): in cost accounting, a cost center is a second dimension on each posting line – an amount is allocated across cost centers independently of the account it is posted to. This app does something else: it groups accounts, and an account belongs to at most one group. The old name therefore promised a capability that does not exist – and strictly speaking there is no such thing as a result per cost center anyway, because a cost center carries costs, not income. Nothing about the functionality changes: the same three groupings, the same assignments, the same figures. Groups you created, their codes and names are kept unchanged; no conversion is needed. To split one amount across two groups, you still create two accounts for it (ideally as sub-accounts of a shared parent) and split the posting across them with Split…; manual chapter 5.4 now says so explicitly. Internally everything stays as it was – table vbh_costcenters, column cost_center_id, setting cost_center_mode and the /api/costcenters route are unchanged, and there is no migration. Older entries in the audit log keep their original wording.

Fixed: - A deleted collecting account blocked the entire settings page. If a collecting account had been selected under "Contributions & SEPA" and the data was then wiped via "Delete all data" (or an import with reset), the setting pointed at an account that no longer existed. From then on every save on the settings page failed with "The selected collecting account was not found." – including the club name or the receipt storage, because the page always sends the full set of fields. Resetting the data and deleting a single account now clear that setting as well, and it is only validated when it actually changes, so an account that became invalid later (after removing its IBAN, say) no longer paralyses the other sections.

  • A deleted Nextcloud user blocked the entire settings page. If a Nextcloud user was configured under "Receipts" (receipt storage) or "Bank data" (watched folder) and that user was later deleted in Nextcloud, every save on the settings page failed with "The specified Nextcloud user for the … does not exist." – including the club name, because the page always sends the full set of fields. Deleting a Nextcloud user now clears both settings as well: the receipt storage falls back to the app-internal storage and the watched folder is switched off. The user is also only validated when it actually changes – for the deletions the app never learns about (a foreign user backend, a restored database dump, a deletion while the app was disabled).

  • No Nextcloud user could be selected in the settings any more. This affected "Receipts" (receipt storage) and "Bank data" (watched folder): both dropdowns only offered "— internal (AppData) —" resp. "— off —", the list of Nextcloud users stayed empty. When the settings moved into the Nextcloud settings (0.25.0), the page lost its binding to the user list – the list was still being loaded, but no longer passed on to those two sections. As a result, receipts could no longer be stored in a user's folder and the watched folder could not be set up.

  • Illegible labels and wrongly coloured buttons. The app used Nextcloud's light status background tones as text and accent colours: "Expense" in the posting dialog was white on pale pink, the remainder shown while splitting was barely readable, edge markers and warning stripes faded to pastels. The dark theme was also tied to the operating system setting instead of the choice in the Nextcloud profile – picking "Dark theme" there while the system was light produced light colours on a dark background. And several of the app's buttons (the income/expense toggle, the checklist links, "Skip", the suggestion chips) were painted blue by Nextcloud's generic button rule. An automated contrast sweep across twelve views in light and dark theme found nine WCAG AA violations before and none after; Nextcloud's high-contrast themes are now picked up correctly as well. Two superfluous separator lines in the header area are gone, too.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureyQHwNNxrBjVIKt7MFaMKoeJwKVfhHDcVQwZDFVsw8Si/nVH9ZKTFaSh3U40O+M9pUMS0orOFnbrKEjuQ9VlcDRYhzlxkzal2X2gSNnVZEnMSEEWT4M+1wyvGfy0aPh+KmX9u1udqC6ERlVJXzWU6Bwn2/oUuktI+/j3LjlegsuiW/OeDz1raNNoYvl7p6f5dSuSfItaPqtcbGjjefw+75WZhJXdf/kwkJWPLPkU16i8PZsR8VsShq0ZQV/8HtgSQJ2o3HVwpELHA2onV8rmNbvOsvLj10PxDjYlD8jNom4YuAMCpn9cx2ynOtVS0bQFHHmhtqdq7E4sumSJkf5m1m2n/Y5R5mID1qiCEAtXNcyoRhOz0Dl7bnq4Lj7KtxYTHxurHdRAo/XSngwP3Uk0Tm+H2HP+m2qDCxLpY8aBR7ISrTzR4YsvwRZCv+7U96RhMVJ23Zv4tRf3SW+ohI+hRwLWYQkyfbKOht+i0EvuZMjubbOUgOMdwHMRVQfqF1IV1YFN3IV1+IfkdeTl2KuyFd6h7ecg9KjmUcE4ByS9TZdU1O+uF8MLBmzLBsqTKKNCruUXgOOJAeOcewfPsxJkZj3yzH/EmAiS2Yww1MZRI323vh3gkk+Nk4OzvQeidOwX6wq1cR9AEZGUpIrzyTDqIYI6S8Y+c/nxQDCyCBtZ0s+8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.28.0
Release Details
UpdatedAug. 24, 2026, 9:25 p.m.
Changelog

Fixed: - The interface stayed German even with Nextcloud set to English. Until now the app loaded its translation bundle straight from the app directory as a file (l10n/<language>.json). Nextcloud's shipped .htaccess only serves files with certain extensions from there – .json is not among them, so the request ends up in index.php and comes back as a 404. The attempt therefore failed silently in every normal installation and the app kept showing its German source strings (typical nginx configurations behave the same way). Translations now come from a dedicated endpoint (/api/l10n/<language>), which is not affected by that restriction. Server-side text – manual, audit guide, error messages – was never affected.

  • The confirmation for posting a SEPA collection showed a red "Delete" button. Two dialogs were affected – "Mark collection as executed" and "Undo return" – both left the button label to the dialog's default, which is meant for deleting actions. They now read "Post" and "Undo" and are no longer red. The default label is translatable as well; until now it read "Löschen" even in the English interface.

  • The buttons in the SEPA collection list were cut off. The action column is fixed at 160 pixels – a width meant for three icon buttons. The four text buttons ("Show rows", "Download XML", "Mark as collected", "Discard") wrapped onto separate lines there, the widest one stuck out of the column, and that made the table wider than its frame: the buttons sat half outside on the right, and the "Created" column was clipped on the left. From 900 pixels of window width they now sit side by side; below that they still stack, but inside the column. The same applied to "Undo return" in the expanded collection list.

  • "The accounting was changed by another person" – after your own entry. The app compares its state with the server every 20 seconds, but a change detected that way only counted as your own for 15 seconds. Since the comparison runs less often than that window – and is deferred further while an import is running – the app regularly reported your own larger actions as someone else's change. The measure is no longer a fixed window but the moment your state last provably matched the server: anything you wrote after that explains the difference. Genuine changes by other people are still reported.

  • Sphere, reserve and cost center names stayed German. They came from fixed strings in ReportService and never went through translation, so the English interface read "Ideeller Bereich" instead of "Non-profit purpose". This affected the sphere overview, the reserves overview and the built-in cost center names.

  • 22 missing English translations added. Among them the default-fee hint in the member import, the labels on the SEPA collection cards ("Total", "Due", "created"), the "What's new" dialog and the first-run hints in the help – all of which showed up in German in the English interface. A sweep of all 850 strings in the code against l10n/en.json now comes back without a gap.

New: - Member lists with English column headings. The CSV import now recognises English column names alongside the German ones (Name, Email, IBAN, BIC, Mandate, Amount, Frequency, Start date plus common variants) as well as English frequency values (monthly, quarterly, semiannual, yearly, annually). The English manual already described these column names – now they actually work. Existing German lists keep working unchanged.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureInHxPFEZyBd3yG1z+2uy6aKBsx6FyoN3f5ANpltNQ5cdO4ka3WjXGr2qoXoxzwiAF8GuehGrB49Y6PG/J0rD+NDfxrlsdagjW962RfIAbfy7iuyWyAJXG5zzUuCtBXrNsF+xX2p0oJCgxu3pP7py734yG2C0O8QlnzfNMv587XwlN5T8u4tnxZBpaFgDppx4M8T64wwirD6fXIHZ2XscD6Z93lTwONEJ6QinuT5GVXPz/xALj09jIfau0QUlf7ASK7ZW+RafURPvEJv4yoDfz9pG2K5rp6j9eKsRy542OlgWasYWiQ/AsOAzhrlbXE6I5tc0RV+PgpE+1XeFrZCKk7Eh1bBFUjBEpd8wrdaN4SatC3izCdry/SGmO7cZnD+pO7aYtOmDpPUKJcu3AByHkWNj9XR2o++1dlBDHBgVc5pI1LZrkFsS0COfvBle46qoasWmG1O6FCUtHe5bG13owgxzujgc1X9OuTc0PojlMQObD3h7aiwwYFHhQKellpUdYiW/VBfWSIb6pEHDkronPwWG1LitX7khY8/Nwfc02xDIDhq547Q3S+pYaIB4uh8mkr37bdQf/ThAwKHRBCaaRpFfq/mflPgLy1xHJ5G7VWdGTaUo2DL9ABLuSLG0q0x4kjt5cJVZlgNpkDJzvxjndy1t7mU3KR5XB/VNqiV1gm0=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.27.2
Release Details
UpdatedAug. 23, 2026, 9:40 a.m.
Changelog

Fixed: - "What's new" popup from Nextcloud showed "[object Object]" instead of text. The 0.27.1 entry still had a ### Fixed sub-heading in its changelog entry; Nextcloud's popup renderer (marked v18) can no longer process Markdown headings correctly (see note above) and shows "[object Object]" in its place, while the rest of the text renders fine. From this version on, changelog entries avoid ### headings.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureNgfXL4Rfqyk2fMRoXHkcuOpie+84LH1qIhuhJ+Sfs4K29Xy5fbifWMVhWM2HBTEhfNqQaqLJzVzi4BVDV1rjlvMjD4O35H5QACv4J8/3jiw76kJTS44yTA5zVcnhWhBCqr6yuB8jTx7hco1x7uCo2ywbJvjJ187R36mNfVm6ZjcKhTDNwRmM0vKJz4GaOubDo4btXQbQpFhFUPAUVRpfRTVYfJKvuEOmTo2NWScedIG8pFocJL97l9EAymq0XconkOSporGYKouX6WalbuG9k+EEdPsrNaRRilNfOGQ2ffVXy/nMK4Z7SiF/ZGuFA5K0VI3TlV/KkIjm1o50gjAnu/9kko9C4aqijlY/chU/h84MDfwGC3omb00NHhd9aCuaLp3JoZfoDgQjdtSrQQA/n/EC3o2WwXJknTUxamNroeviXVFrhNl7CtI98yXhVExWePLfdmVb4eCDZl9+BsibH6nM/tQV52hToGpSyYJ+xUehhKV64dOQjf+f7BaTo+uK18vXNin/3lph6p+sLUkB4T1nli5F2kajhzZDA1Q0AC6JlWQ8YiakUO+94I5FqFruv46S+89VTbE3co9cY8kbPImIAT00o+g7N6E+SUPvFYCryYYElWJkv8TdUBGkA2wYRshimV3lcg2nDNrQmvQfk6y3ttSXstnqlnOQd/gdyi4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.27.1
Release Details
UpdatedAug. 23, 2026, 9:08 a.m.
Changelog

Fixed

  • Broken "what's new" popup from Nextcloud itself. After updating to 0.27.0, Nextcloud's own app-update popup (independent of this app's in-app dialog) showed "What's new in {app} 0.27.0" followed by "[object Object]" instead of actual text. Cause: since 0.27.0, info.xml carried the app name in two <name> elements (German/English) for a localized App Store title – but Nextcloud's update notification reads the name at that point without a language code and can't handle multiple <name> elements (a Nextcloud core bug). <name> is single-language again; <summary>/<description> remain bilingual.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureaeAWQtCQuWsCH4+c3wMP1uOdvyL3Q9PzYaU51NlPZUEdQAKmgJ+hr6P3RcagnAVVx9RKun88DqgEASp3wfO4PQoctWxw1f3x8uj+jEw/Lsm8/kKfOJRzBWMOHRyOhnvUDQeNtmJ3D/63gftHG2+KWgiEBSAuMf1hqoR/4fg+zuqh9sxiuwAEwDYgP6JMEs8zgLC9bfcbRgjpg9upN/G1pGYkFgIFWNkhO+ETFSj/Qvd5V5o1fMhP58GPNQFsLOy6/sMhxqznyvqr4cgBfQyd4BETkrJ7GY+6EFD0NmGy6SDiSwRYzBgbkaRyjZAd1DSg/Sybuztz8SzWstRdyse43I6DhndKTFj/keK4I8JJperJv8NVF2/y+ZBQwZIywDns4uuAvXbYmi6soFJFiu2RV2DMSnmR90g2Y07mp+pMQ3S4XBpS+cFaBcxElefyrCGMe1dEnhLWgyITH9gHgfztT4KFzaTWc3XGRH6RUbPxyyxwWsa+C7PnA7S5MgegXrXichoDdAQecWRUqTBf61nQOJB9i83dMYQBzLeFdEMWG9MDcPfJrasHG5hFRkBctvY6j5yrLhZHu3u0hEeX8xk3/nTSZbkpBjklAooT1qb46Za+EA2TbGKv5UPb3S1pONIqIN01poeZ1dRhry3ddlt+WdLbwfeFm9GvOaj1/xDivVE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.27.0
Release Details
UpdatedAug. 22, 2026, 4:51 p.m.
Changelog

New

  • README, manual and audit guide are now also available in English. README.md, CHANGELOG.md (from this version onward) and HANDBUCH.md are now also available as *.en.md, with a language switcher at the top of each file. info.xml now carries <name>/<summary>/<description> in both languages, so the App Store automatically shows the right one. The manual served in-app (/api/help/handbuch) and the printable audit guide for auditors (/api/help/pruefleitfaden) now detect the user's Nextcloud language setting and serve English instead of German once it's set to English. The chapter deep links from the in-app help (HelpModal) now point to language-independent anchors (section-<chapter>) instead of slugs derived from the (then translated) heading text.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureMi3raDuOYadKfpzYefG7vj6dVm3swn9+mt9ruKaYeQxm5nlbfNi9FewA5R6IJqVP0EcpSSE1h7LfXS25LueCsPlRyIWQ5nz+qr2dQkynflesWDyZzoVt/lSCcQyUfJN0RP+dVXBCcpiltKKKg2FNZzxxmj9BxgL1nUimMSi48FG7xwmFRXeXcBX/fIAF2EOnOCwVF2vlZ18jju+bJQATEQZ5cH2jIWi7g1gD2eWlQYUie6Qww8WU2n33XikVLQpVwDuk6TFz7aSJJ/Rq09b1w4uJhUCIq9fnV0e88dSMjrjj4C/rJdgf2+J/BFcvKJh9KVkBNzkm4FkTxRyRpTew+wqeem5+EdsAHoyKggJqLmbS7KSujXscwA8SzSzvwd+v+MoJSHu8I6V8Fo5Y9z0b119jg9itfR3X5lNsly2bVj6SrMrEAGo+ER2nNWCwDs38/3+2bgXPAZrdnyER+kqpPy3NgdCRiGAK2wWo/T+5fS5P1wncauXqaDLPH7V4wHNBAib9cxUgaiyDzxl+uvH4v+SZC1IMlEfwfZGZjUJnBTY8OVLpNC03LNDVgQkBp65plEnfavZ4oyd4vc6RSA7y9lr57WtuE3eaOohGp4OoWZaOn8T3T1OnzIGMbryiTGF771CikEdUNFbhGi3KAi+mz7CGv3ZVTZCkdyqnoOopXUs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.26.0
Release Details
UpdatedAug. 22, 2026, 3:27 p.m.
Changelog

Neu

  • „Was ist neu"-Hinweis nach Updates. Nach einem Update zeigt die App jeder Person einmalig einen kurzen, auf ihre Rolle zugeschnittenen Hinweis, was sich geändert hat – statt dass Neuerungen nur zufällig auffallen oder gar nicht bemerkt werden. Der zuletzt gesehene Stand wird pro Nextcloud-Konto serverseitig gemerkt (nicht nur im Browser), damit er auf allen Geräten derselben Person konsistent erscheint. Über Hilfe → „Was ist neu in Version …" lässt er sich jederzeit erneut aufrufen. Nicht jede Version bekommt einen Eintrag – reine Fehlerbehebungen bleiben unerwähnt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureSSJGYRSPKYldBCTeEervEPuSTfCzZo4MueT61i50B0YTBi7eSIAZT8c4YPEN2OpNjr8ZZHeGBGjgRqVRHaa9ewHtue5Qp6UDCdeCw5O9G+pIHNIXY4kENM87wt+15KOrQ99WvuX69vR5L07S3AFcoGEFocuB9IYgItFt5hTNi6+MyNgMt4IoN0nHgON9oCBrGxo6zxDuhZMrE4n0hYAxtgH5iFUmWEn2OjPvlYrkWnKXo9G4v0/4fR0xVM+N/6wg6Zgmox/4NPKfU+BjiQ5D+erMxOzxm0CDb9tCVk4BK7Za/vnkJtpcb34h4M2NJWTHgWsnkUlmPLvIPbwNtWOgvuyAOOUoviJLJaU1nt17AFHSaHwC5WQtDbF38WyPOKMupMhvjLYZsAAxrMogZUE0Mf51aUUxfm4wFsWRp+kjkQtFd/yavBZpL3qKvcAg25Doc3AtJEpar0Zxd8T6sQx6S+rkzcQRmWemAsq3gQO/WwqKIwOwiXy7ny2m9SZqY1ILL/8S4CZFw+kuZuwT9OjOIIMbxXpAt5R9tpXMqDTGRWmfZ+UEaM3G5TGPBqWPG8xOM0Tj2yocFSGGMFZfqSmRvuDKbogFaTzcrGg12i1a78tOSFDi93IqeZfPLEaD248RKbSDzVAyWkvx5aZDPmJoawif7uCMsGyEP5RQH0FwWHY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.24.3
Release Details
UpdatedAug. 15, 2026, 8:01 p.m.
Changelog

Geändert

  • Beiträge → Mitglieder: Bearbeiten-Button zeigt jetzt das Stift-Symbol statt des Texts „Bearbeiten“ – konsistent mit den übrigen Bearbeiten-Buttons in Tabellenzeilen (Buchungen → Regeln, Journal).
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureF0vMWEnRu1h2zXCbNEoRJPpy8dqSTmHO/nDWrvyWGXZbI3yyjjjWNoUVyVnjdXiQvSRdwGpMm5zMTft0hXf1UVa5VqcCvVh1OpqSIS26VB8CUAO9ZjP1fmQsaj3t/MOcOfLqrJo9H/JYa5jXgZalnQexVhNN6si9CvTGkZEopjwq/q5f/8bwuS3K25Ich3VIFJXp1ay6YFNjhPnfY5T2SGVBVNE0/Tzen5gTL3LtJnhzoP3//aArkzqH1RjgQC+nOr4Za/wXCRrfg5rbnxpFC6oirrNmvtaw3Ot4y3MVoSktp0h+ssRodoO4DFQtr3GohwajY5+QA6pKhGuDwgvpJjKWUa9TJzCxqFkNsrOkx1P/CjNwLneTUraAZlSuyen8mpQjrJePzpSQSZTn4VPTcrM6+BcrUrygURMz3zEhdDdRRGJQJV+CWxDTLFMbDoZQfuYZWI9RBkesC3HjwMYy9rdmAsmV3Ygnp6JrM/z11qklkCZBkxBzizAuR6GSmTGDdVJ3YDRVL3j/BccLKdrTIaSbTsGAwHT2rDO5LSrikLoou8kcxKvgQf64JgaO0DedpxEcMAk6dWRTxLo2EjXVjDaOBIHg2yT5JCBb/N/PKJ/fx+2iwol/PjGIWWHZT4/lvDOnUjygZ6u12s1MQRieORB/zO0xz8jeIAf7X7xbJdg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.24.1
Release Details
UpdatedAug. 15, 2026, 6:04 p.m.
Changelog

Behoben

  • Modal-Überschriften schwebten am Browserfensterrand statt im Popup: NcModals :name-Titel hängt CSS-seitig als Geschwister von .modal-container, nicht darin – bei zentrierten Dialogen (Einstellungen, Neue Buchung, neues Konto, Kostenstellen verwalten, Sphären zuordnen, Mitglied aufnehmen, Importe, Hilfe, Bankverbindung wechseln, Plan-Stand, Willkommens-Assistent) klaffte dadurch eine Lücke zwischen Titel und Box. Betroffene Dialoge rendern die Überschrift jetzt selbst im Inhalt; auf dem Handy (size="full") bleibt der eingebaute Titel-Balken, der dort korrekt über der Box sitzt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturemZBEME1oniTSxTY9AmcBwrzJDrnU2MPLyQSXHoUEf9D42t3aQ+3A+GsoTO5B9K28MZwblObWytuz6tF5XjeF/o7V7bwag+KfSwVn1fWo2v8Jzqh/KzZ5cSDorHEjhRMLrr0v7zGXM+J+VSHdxtQ7X4JhOtnRMEtq8eD5/ogYZd7IwCTkyXkG9dMvvIDqO0npTQc6SegFiWr5vQqnBmcTf4YSb5to3j9OgPfeHJslrr01r2KJFo86iwexm6hS57d/QgldWkSPBWcQX/mO3Ss5j7HwP3LdrvgfLq9KbUeS/+iYkPXHmL76edhDIU2iNq6pHg7dDKFekFWOEnCp2jPx7yyzffLZ+vSDSgCca08FHdXcLPIqyihAtzM0oeQYQ/b9CQaVq4h1vKKpYrsS5Dexl5y3fY3LfwzJBZ4gNLaSIcixGphGf8L/vxQCvpqsKox76CniRA5f+ad11pkbK+0xCXPUZYfm7x+Rdz5tGfEHnlI+S76OHBTnHfksY2sXMki0iGDad5iYFr6TjGAKWZA9Exlgvuh1I0ZWnCP2ItwHeTVbAPsupVazB8aDTuBSr4HxeM16XnAZAthMgdJtQAkVqjV8iiyKnOKYLohSlaaTbFLjNDHhvbAEa+sgdDUyQhEr6nv+yM4gElpqjtu6E5sb7FlCGn/RIfflVeR2y5w45bU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.24.0
Release Details
UpdatedAug. 15, 2026, 5:37 p.m.
Changelog

Geändert

  • Berichte → Kostenstellen/Sphären: Bericht bekommt die volle Höhe, Pflege wandert ins Modal: Seit 0.22.3 hing die Pflege (Kostenstellen anlegen/ zuordnen, Sphären zuweisen) als zweiter, oft sehr hoher Block unter der Split-Ansicht (Baum + Detail) im selben Scrollcontainer – der eigentliche Bericht war dadurch auf min-height: 360px gedeckelt, während die Pflege den Großteil der Seite einnahm. Die Pflege öffnet jetzt als NcModal über die Buttons „Kostenstellen verwalten" bzw. „Sphären zuordnen" oben rechts im Bericht (gleiches Muster wie „+ Mitglied"/„Liste einlesen" im Reiter Beiträge) sowie zusätzlich über „Konten zuordnen" direkt bei der Baumzeile „– nicht zugeordnet". Der Kostenstellen-Modus (Gruppierung) bleibt sichtbar, da er den Bericht selbst steuert – er ist jetzt ein Auswahlfeld in der Kopfzeile statt einer Karte im Pflege-Modal. Damit entfallen auch die CSS-Sonderfälle aus 0.23.0/0.23.1 (.vbh-sectionbody.is-split hatte nur wegen des zweiten Blocks flex-direction: column und ein eigenes .vbh-section-divider-Padding gebraucht).
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureF4fcHxqtwK40/pbTvqEDMLCdTPDegYcr9z834SwpPuVWNTebRNgwEDPMkdeFqpQkrAANpyo+818P/va/RY/OPVdRo12pkmyZVkdOcW7F6GtIpAj6GHKJBw60oxJ4VT6eld5b/GaMD6d9kkfYCuiCziaVtM0p1RIwBWNSmqrH6Ru/yEQftJx8Zbqg6+QgDOy/PGWZ9b/73fPFfifNu0btD9K3XEvJGAJp2GRLuUiIki8eeUHf/3fMDj1xPFtr9y6avxoNkgBS2Zqfi6OLXfRNK2lqHdbUbcmXU1f56Qfgx/KnOy/yrkVSjs0pzGUOAl1vCZTp0Yzq7+uuUD5jVMvpGBJ953jvEPXlM7DzHmElf9VL2rcy7SFHKjB80A8FptkdSMCG4qe3HUU/W0ImlUhf6BD0p3t1ElHI/SEsjjggabLebxk8B+nNOAyWJWCagiEA615yaEzTiH5kH+UylKzGXvih2CZvcGeGo59m808ySvRCtkskfyyDDMpv8GU2kzeFPsCdB0DOO1SyNFfeJznKMLu+fX3H0phF8IhcrwnVCloeGt5p6VPzfgAOcT3MlUDVDqoQcfyoJk+Z0+qGaoJ0F7cLA7+PnsgRpEsI6/J2XHDnCkimNPWJFDn7JAh33aDYx03CKXaXwVnx5D48V8oF4wrk5OMt+lK8YVjJ/z5UKk4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.23.1
Release Details
UpdatedAug. 15, 2026, 4:41 p.m.
Changelog

Behoben

  • Berichte → Kostenstellen/Sphären: kein Rand, weder oben in der Split-Ansicht noch im Pflegepanel darunter: Nachbesserung zum 0.23.0-Fix, der die Split-Ansicht (.vbh-splitinner) wieder auf volle Breite brachte. Zwei getrennte Stellen hatten trotzdem noch keinen Rand, weil beide bislang nur implizit vom umgebenden .vbh-sectionbody profitierten, das für Kostenstellen/Sphären aber bewusst auf padding: 0 gesetzt ist (die Split-Ansicht managt Innenabstände sonst selbst) – bei der vorherigen ~1px-Quetschung war das nie sichtbar:
  • .vbh-splitinner selbst (Baum + Detail: kein oberer/linker Rand) – jetzt eigenes padding-top/padding-left.
  • das darunterliegende Pflegepanel (CostCenterPanel/SphereAssignPanel, umschlossen von .vbh-section-divider, das sonst nur als <h3>-Trenn- linie in schon gepolsterten Containern vorkommt) – jetzt eigenes horizontales Padding auf .vbh-sectionbody.is-split > .vbh-section-divider.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureJUeU+au31gmFileGZvqfqHdz76kVE7sRd5xouf9LGjP4c8r9h8aQbrSozYWtASvPi8iCRh+FoqWauREynx88pz3ZnI0+FJfQBn/SIxy/ZyBSfiNyTVIwCi8NTYlp1Zo479tDt81my6+kaVDjfCRdZbyncuHugwpZbyxeoRuKtH21NenZVmGviCplJhiHgXYKUS6W4cgOMZ0IeOeP5aSlaigfbf39v5wf7nEPtGRMVmjmODXRa2T74Rbwmf6i8ujxgKklBeIY9jimJWqoQ5gMas5eE/swEnQsiy2xNgw71xBUtkyrMWKLw0LvPg5u2czJ1RlDVcQoC9MRUs3lY2N7A7mlkIIOaNCH+VFwpYddpR+yZRpCqaLUf4NyRynzUnk/p/PIvcWwhmL6tz2Z59ksgrvKLjcZqhE693JLvXKDVWXwjxg7tMUHBpVR8lwKyEAfXxQiuLkktTeCaHqEsA1ag94uVirj8GgJwzrpYBP6hPuopBgZ5yqto6nDLNfTzA6xzYhcYBM4Hi7M8XmK/AMr791kATi2pjVSq7RmYBGUneyRe40dqUDCR87pVzgQuink8cELbyDpAXlhO5TqAd/yxxmqrdX/HXWHiWSBuEj4qU2y0zcfhi5G2oLdaA5Fkr4PO874E5I8Eco51QUZFUG1LLPCBrIl3YkL0MicAqpEIe8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.22.4
Release Details
UpdatedAug. 15, 2026, 12:35 p.m.
Changelog

Geändert

  • App-Store-Beschreibung aktualisiert: Das seit 0.20.0 bestehende Beiträge-&-SEPA-Modul (Mitgliederverwaltung, Lastschriftmandate, Sammeleinzug, eigener Reiter) fehlte dort drei Releases lang komplett. Ergänzt, außerdem CAMT.053/MT940 und der Wachordner beim Kontoauszug-Import – bisher war dort nur CSV-CAMT genannt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signature4LRi0axgsMDOcm6JxlvfjNIxZrlCLVndYp1Nj1ffQ3gJMixwlFkR0kI8Eri3poO2kHRfnc5hFZZh+0qQ3nFBBDPLoSXIlwXOdh0C3/CsZxPvyYSFjbW5ZP6+e0LhExYd7UMl1lNeXNqAgfqw2GBiwRXeBFf1lwkcoDWJY6GF8U2KDSwttbjQny3cK60u4nHfHM0ye+NochsmaoUdUyJCuvV1fsERFp2bDYt8KmwJWB6gIX7koTp+4JXIEFzxuREAij0b5A8XOZlMQvlGYKcZatwyR8oQXFPOLUBRt3yZgAfWx9+nx9GXaMQYQ2l1p3nv9C/TmgiMdpALvHfhFCBnqIVvcEBMizpNmRyPEelbb1Q3N4/2kRmbqV0e5dApltmb6zdcdWGl26PIGyTjgmN0jFiftM9OGIcinCBBH6vEpo/y6GBsthf1cLbBGYYe+qZMamxruF58MQ01KCkCzUtGSENUVfJKtS04v7+0gB0SPMkAh/KJb4bNf9qajfqD+1apWm5ceWBtTY293YlqGfEDDXPWeRfp1YcFfxkul4H/tLwVeonyFQJBZ7FTxeDUAeY+JlrruIs79av7ERKGFbS/4LHdQc1G992yy6BvTFVK5f/7M0tWAgYteUHD0IVdKlPRPiGrg+oycs/XN6v+RE9uLdHSJrUIMJZXf79DNpI47fo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.22.3
Release Details
UpdatedAug. 15, 2026, 12:31 p.m.
Changelog

Behoben

  • Konto-/Kategorie-Auswahl auf dem Handy war unbedienbar: Das Bottom-Sheet zur Kontoauswahl (AccountPickerSheet.vue) rendete zwar in den DOM, blieb aber unsichtbar und unklickbar hinter dem Buchungsdialog – Nextclouds eigenes Core-CSS (#content { position: fixed }) erzeugt einen Stacking-Context, in dem das Sheet trotz hohem z-index gefangen war, während NcModal (der Buchungsdialog) dem entkommt, weil @nextcloud/vue seine Modals an document.body teleportiert. Das Sheet tut das jetzt auch (<teleport to="body">). Gefunden im Gesamt-App-Review, siehe APP-REVIEW.md.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureknAf0tPINZuLUg1pagqwrKg05TXChSaJ4x8RZTzPAJb0p3KwCoujY9sFQcjXmJGzu+Zb/3V0yNdJrzeZYVdl6272s6V0D28Yk2t7wFeyY1EKr/HsX0KjIQ4g8iCbZ13JfZOftXuoIIbGNYCR/N1r9R3559J49r0npp2F7ieEZ79eCdehumskUMxvjLnElh2tB4rfxk/JH42/PoBPuftBGJTQo3N6g5B9GmFIWKEE+EytiSN7F0Y8PCWdXts4rNQDaPvWnu40GHvJHfLv9wfX/21Kjtt8pB2WdJFWAvkrDLMXFsAwOJsQ+nprVm9jRQzQv2BmP4K4eBoHietPezxrJSqHgfFSz8jG0yTWRgOaj/BdSv8AbgxvubwS9F+l1HDNzj2tFH4WjiITbYv/MdZWmhz8+aTtlhet5uB61eSwGoO8r0Gwss/NoWcO/oq9beqH7Z8uWr4724Q2r+58PWZFdeZ4HNH5PzJxnNaew0KY0sb6HDkdKUbcgXwxywImKJuNQU2J9HWKrWlledlf2gXOmHpcHhH8mfiKgiQ4I5SN9w9ikJ33UROZfBK1kt9CRmwW09oPsV8ARAS3pp0l8wnTsdwuIYxMWoWoIqGgWfdfUTUfXljwsjKl88/wlxj/E4QOjYxJlOo7AOr2XnMjzgDHb5AD6eyPxpzvu0hLDUQCmUg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.22.2
Release Details
UpdatedAug. 15, 2026, 9:12 a.m.
Changelog

In appinfo/info.xml direkt von 0.21.0 auf 0.22.1 gesprungen und dann auf 0.22.2 weitergezählt, ohne dass 0.22.0/0.22.1 je getaggt oder veröffentlicht wurden – dieser Abschnitt fasst beide Zwischenstände zu einem einzigen, tatsächlich veröffentlichten Release zusammen.

Neu

  • Standard-Beitrag (Zahnrad → Beiträge & SEPA): ein einmal hinterlegter Betrag/Frequenz füllt „Mitglied aufnehmen" vor und greift auch im CSV-Import, wenn eine Zeile ein Start-Datum, aber keinen eigenen Betrag hat – bei 80–100 Mitgliedern mit demselben Satz sonst 80–100 Mal derselbe Wert von Hand.

Geändert

  • Navigation aufgeräumt. Das Zahnrad-Menü „Einstellungen & Import" hatte über die Entwicklungszeit 16 Abschnitte angesammelt – Einrichtung und laufende Arbeit ungetrennt nebeneinander. Neu:
  • Reiter „Beiträge" (Hauptnavigation, erscheint automatisch sobald das Modul genutzt wird): Mitgliederliste und SEPA-Sammeleinzug, vorher zwei Abschnitte im Einstellungen-Modal. Kennzahl im Reiter zeigt Beiträge im Rückstand.
  • Unterreiter „Regeln" (Tab Buchungen): Auto-Zuordnungsregeln, dort wo sie auch entstehen (Blitz-Button beim Zuordnen).
  • Kostenstellen- und Sphären-Pflege jetzt direkt in den gleichnamigen Berichten statt im Zahnrad – inklusive des Kostenstellen-Modus.
  • Das Zahnrad selbst fasst jetzt nur noch sieben statt 16 Abschnitte (Verein, Belege, Bankdaten, Beiträge & SEPA, Berechtigungen, Jahresabschluss, Daten). Der Wegweiser-Hinweis „Kontoumsätze importieren" darin entfällt ersatzlos – der Import steht seit 0.19 im Tab „Buchungen".
  • Keine Datenbank-Migration nötig; bestehende Installationen mit Mandaten/Beiträgen sehen den neuen Reiter sofort.
  • Import-Verlauf konsolidiert. Die Liste „Bisherige CSV-Importe" unter Einstellungen → Daten zeigte dieselben Angaben (Dateiname, neu, Dubletten) wie das Änderungsprotokoll ein zweites Mal – beide wurden bei jedem Import parallel beschrieben. Die Liste entfällt; im Protokoll (Berichte → Protokoll) blendet der neue Schnellfilter „nur Importe" alles andere aus. Die dafür genutzte Tabelle vbh_imports wird per Migration entfernt.
  • Buchhalter darf Mitglieder, SEPA-Mandate und den Einzug jetzt vollständig verwalten (vorher Verwalter-only) – die naheliegende Rollenzuweisung für eine Kassiererin ohne Rechtevergabe-Befugnis war sonst vom ganzen Reiter „Beiträge" ausgesperrt.
  • Mitgliederliste und Einzug zeigen auf dem Handy Karten statt einer siebenspaltigen Tabelle, die dort zeilenweise Buchstabe für Buchstabe umbrach.
  • Aktionsspalte der Mitgliederliste verdichtet. Seltene Aktionen (Bankverbindung wechseln, Mandat widerrufen, Löschen) stecken jetzt in einem Menü, „Bearbeiten" bleibt sichtbar – auch am Desktop ragte die Spalte vorher über den sichtbaren Bereich hinaus.

Behoben

  • E-Mail-Adressen mit Umlaut im lokalen Teil („m.müller@gmx.de") galten beim Anlegen eines Mandats und beim CSV-Import als ungültig – betraf reale, bei gmx.de/web.de/t-online.de zustellbare Adressen.
  • Bestätigungsdialoge für „Mitglieder übernehmen" und „Rückstand nachholen" zeigten einen roten „Löschen"-Button statt einer zum Anlegen passenden Beschriftung.
  • Der Reiter „Beiträge" blitzte beim Laden der App kurz auf, bevor er endgültig erschien.

Details und die zugrundeliegenden Personas/Testfälle siehe BEITRAEGE-REVIEW.md.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signaturex48JlqGMXQOEaHamNLU5I92XD8JO7RRlVz+NQWzdhhCHRf7bzPbVOwBBtNofZkAjw6FX/GYplKBB5R3C0SoybBvYu/czmifo5N7buFkuxe7GwMcRLe3nbRixjNY/qxWW5aEuR8PLaD/QHkRSWqc6aiUG+rg3kLKhpcug8CSn2IxCXVwALeB73oUz8P7UxsKtnmHyGOyi4SxCsog23Rt+LNgALU47xdN5sM6/rkt6HkO38pI/+CHzJWE7P+OrG+omt9q4LPrA+eTKIRgU8UUdVRv99ll+63WmgdBEUvn3DANgw6gjGHOdN3TPRqCbIpAXh1LD91NFg6J+e9DnbvkcZAWbPddUsYMyyCaXGtBSd6aCU5i4TwwHOpIisQZzWyFivOMcW1upaa+iHkVxU+ny82ED+ylXnp5QOn9k/502fdfKMSeEwV1Qs4i/K2nSjkXwxQUYP6nOt/0A4/+WLWOyCLneyqG+osmnrr+4jDuVNHw8i6rZHMkZuZlc9WWSllRHQvMG/2fktCtMGYTc71qYlm/sEw9V9yRDoJhuXgNEJJH9HgG59he/3ieUaRGWqzjNCfMa7slFbdIjjJlqvKeLpILU2vWPRdBTObn4drbtg8qaAegN+yntfAz9aAfDgceWjfhvkzacXkhQef+bHrTa1KDhf/U7Plj/8i2NmpnY3ZI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.3
Release Details
UpdatedAug. 7, 2026, 6:52 a.m.
Changelog

Geändert

  • Berichte-Seite: Reiter und Buttons wirkten überladen. Im Auswertung-Tab brachen bis zu 7 Export-Buttons (Kassenbericht, Kurzbericht, Beleg-ZIP, Prüfleitfaden, Saldenliste, E/A-Übersicht, Mehrjahresübersicht) neben den 6 Reitern mehrzeilig um und nahmen viel Platz ein. Kassenbericht und Kurzbericht – laut Handbuch die beiden meistgenutzten Berichte – bleiben direkt anklickbar, die übrigen fünf stecken jetzt in einem Menü „Weitere Exporte".
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureOPqKJZTl/5Eygp/CIw4spwFaccWUoG73jv1LRUd6Tn9lnr1Bdr/S2ki+dv3BrDSW1wXcPrTDWPvDEc08RQK7sCTBp5Uo1siR+hb9KEyq46iHPLHUfEQEy94s+fl2afy/yEpSK666eTpE5IEXfCOrvwhULbgrpbXMX5aEgK6cc9l8xjAMIA2t1+F1OXWKw7ikHuRVO+lh3Ky59SDzHKOkzh1cRhYNRw+4OgZiPTbUy1+08t0ZnIHpiLh/jpzTZvtTSbJxnLyv6T0YLX0KiiwuN581bajt9WgGasza81LGA3vzl5flfv9ULCwJgh5P2KS4yTBEF0/dVtn9k9cCL9s2Gx+RRBBgnZzSjynIOGOBq/jY0u3MhYhBiJ85sqZ9YbmK6Y6FJ+wVSIkAy9syctsz1mkz8E6o/KlrQS+Yx1gV/LPJo2aGLkgLOrW3bvlYZZgH/qFoHt9ZQ1RRqNp77k1lJz0JTZ8eEcXRuhTQrOoBtDyBwpVcPKbsKKi7WEtX8GwIVdxnvjlGTHGoXdn0TYI9ZhzRuk9C9d7eBn63SJv3XYazKRAj8GRZy82rTMPHaDVSNry5m9wN/mHWBAPzG/Lq750BqaMPnR3TT6+Z6U+hZ74mfRMqYbeLER+wXy9w3wS1sgqhrXFJP9k9uyaMzsK/q0VSEJx72CScqih0TFkTI2M=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.2
Release Details
UpdatedAug. 6, 2026, 12:57 p.m.
Changelog

Behoben

  • Kassenbericht und Kurzbericht erschienen auf Englisch, obwohl die Nextcloud-Oberfläche auf Deutsch stand. Nextclouds L10NFactory hält eine Sprache nur dann für „verfügbar", wenn im l10n/-Ordner der App eine Datei dazu liegt – für Deutsch gab es bisher keine, weil es ja die Quellsprache des Codes ist und l10n/de.json daher als überflüssig galt. Ohne diese Datei überspringt findLanguage() die deutsche Spracheinstellung des Nutzers und landet beim harten Fallback Englisch. Betroffen waren nur die serverseitig gerenderten Berichte (IL10N::t() direkt im PHP); die Vue-Oberfläche hat ihr eigenes, clientseitiges Übersetzungssystem und war nicht betroffen. Eine leere l10n/de.json reicht als Fix: sie macht Deutsch für Nextcloud „bekannt", ohne dass echte Übersetzungen nötig wären.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureSbvziLbdB13/4hZgbyRXt9y/XzLhT8WkHOT2/9zeTJden7m9Z9SbW7fdHzSiocnsJm/7A0mCQDslCbz5k7806djc792pRVlDFLlZhMOQGfSvFYhEwwVNaSYfk2TeR0boQoJrOKoFWyYa396LF5k4Ya4YE2uAmqpMBRv7Wm4LTTvp4EDqPIxXObEQbOGaAafkReTEQYE4h4Xzijrh+oo8BBpzhpcLiGKYpgpIGeQDmUeVGWpyh0ySGtf+46ENTC5Az+538hfY/fEQl6QtsHf9CacbSvEh+n6Lx2/gIQwjKN7FQsOM4w/3LQV/qlHqpFpoLEAJeG3/2IfbBnxKeuH0OZIFAslWtz2smxG5k9dYxn/nvFotD9meCvGWxwpeXFztx+zgv+zlcUOTdX0DQjRQQsnFGRejL+Pztl9TkG4I9ufke0DVm1/BYBhZdZ3cqf3QG3sSGDbsav5W4G+4BxVBe0y4ZDH35aVDV0cDh0HYfwfkVzqVwOcaf9NVfvoNFC2KVJXR/VlkEW9SPDRmLbafb+caQ6yqi0lviNq2x6V3xEcGS6ckQrjsiA1scbmFOFE5lE4jwdS9khHH7ZkLN0LyRtZagQMiaHI44rbfaxPCwE17U21RqJ3kR3kNJVOPcRSYycVzHmg3UKq0+Le6iF+X1XffZDgE9T1Z+9oIIvK8T64=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.1
Release Details
UpdatedAug. 5, 2026, 4:17 p.m.
Changelog

Geändert

  • Buchungsjournal: Zeilen brachen durch bis zu 4 Aktions-Icons zweizeilig um. „Regel anlegen" und „Löschen" stecken jetzt in einem Menü-Button; Beleg (falls vorhanden) und „Bearbeiten" bleiben direkt anklickbar. Damit passt jede Zeile wieder auf eine Zeile.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturelEiCh6gxSU93Jga+RtuXGddDMZuIP64Hl/hFEOOQYTCOMvsqCOL3CNkDY6Iv2nGBvOoyIF+N4woWkjDEmr30UKKmQ1bk2UYrszPPInXzqzS6TjiIs1i4s6h9lbu3Nb3Qiaat9j6b9kQGugayntbmEzSJdQ1Z1eNZAXQPqvxrmuy+uxUiIQntmDvQNWC4rBG9Gb+NmeGBiRe43NUR9q5A6UEADee5q1f2Ek8u/xVmjW9Cq/0lrbQkrtnDP8W6ZE7blpl6WBA970ImtF2uhYhaNA6XveNzSr5X1Tj8pgx9V2SA6tDRzL1KCYGFFpFH1HTADlUXCmZ3B3+hMx+TXNCs8nR4QJqKGd6vliMXi0yKYaZJ7hXfwOcF6fbTbqb9cNx04bhTEgz6Sy1cohvaVDI1ZbXZYoz+e+0FpO++1GOdxDoPSxi51v0mAlM1bVNRlZznlwKVO+CzsMLa4JrTnoRuF82ZS84GYn4lNAN0YfTofJNDWuoC99W27c8nkM+hHinkg/enqEB1EOeLHr03Ot6R18wbZZ7deZ8k39eWsAdW1JeV1xsYfuWgFv8uoi60gygHz0T5WixyIu1Qw8JzBw/p+qqlhxgzjw94PGbiiH5Qsew1srd86mKccReKp27yqFPdNix6htxHVtY8WV5e4w6u+qsu4nXfzMXUixLflmgDgLg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.0
Release Details
UpdatedAug. 5, 2026, 7:42 a.m.
Changelog

Behoben

  • Vorgemerkte Umsätze im CSV-Import konnten zu Dubletten führen. Die CSV-CAMT-Kontoauszüge führen anders als CAMT.053 keinen eigenen Statuscode, sondern schreiben den Buchungsstand als Klartext in die Spalte „Info" – „Umsatz vorgemerkt" wurde bislang nicht ausgewertet. Ändert sich ein solcher Umsatz beim endgültigen Buchen (typischerweise das Datum), erkannte ihn ein späterer, sich überschneidender Import nicht mehr als bereits vorhanden. CamtCsvParser überspringt vorgemerkte Zeilen jetzt wie schon Camt053Parser es für „PDNG" tut.

Hinzugefügt

  • Nicht zugeordnete Bankumsätze lassen sich jetzt löschen. Bisher gab es dafür keinen Weg – ein Umsatz, den die Dublettenerkennung bei einem sich überschneidenden Kontoauszugs-Import nicht als bereits vorhanden erkannt hat, ließ sich weder zuordnen (dann läge er doppelt im Journal) noch wieder loswerden. Der Papierkorb-Knopf in „Zuzuordnen" löscht einen einzelnen, noch nicht verbuchten Umsatz; bereits zugeordnete bleiben wie gehabt nur über den zugehörigen Buchungssatz löschbar.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureBnkYSlWxHsYfloYtjM8qy7z4ZHro+XGTush4dekzY9sqA99C2YPzzt9ZdF5u9607GP7kFZVea924jYOKfadCsC34UnDyxbRsbUoRuj8zAgP7dbvSVj6SNqfa3B1ZdH8aHGQmPzF4qmdObFx+9rQRJcOGIkGWbAHBkg044dyzwLWnNwpB4O2h91bIEm+0ArsA6VLtP6qW9os9e75pcNbNKl9O/kybpbM+5tdtSrz28PvR7R9Hngf3SyBUi3uwKpwMafUoj0IfMnTBxCyBH7Flq7m7OFJMOGz/TakXRoq/YxFydmV9dVeSP2VhZ/FxyMipMG1C9pmQ8yQq+JHEN2ZO6q1aWP/jcXb58JkSHrfFVx/R7y+uhbaOABUGBsdUy9+LepV5fGB1/BdVUbYA04G0ulC+5n0ixOYhzZsW0XWtKMykeuI5h75yil1rINce0/FA035SlhPIjPdrMKoTPS9GmwUvebCIYgbt39PzVUjT0GXJ5k9DA31GC81X2o+l/JLyLX1OW+e225KlRQfXdgjB0QUAPiaHelgiKB+T1FWUvb//BL+Gyc/mfGnA5VUNoyp7rxxOO3cQ05LbxiiNeyGodnAVNih6BqQUDk//N6q58dX9M9AUmo2pGstsn/WHwW/qyt00y47nrBp4dp+Z4opbKNDhxjIDm7xTQWFmfluVjfY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.18.0
Release Details
UpdatedAug. 2, 2026, 4:11 p.m.
Changelog

Hinzugefügt

  • Weitere Mehrsprachigkeit im Backend. Kassenbericht und Kurzbericht (beide als druckfertige HTML-Seite) sowie das Änderungsprotokoll (Berichte → Protokoll) erscheinen jetzt in der Sprache des Nextcloud-Profils statt fest auf Deutsch.
  • Alle bisher noch deutschen Fehler- und Bestätigungsmeldungen der Controller sind übersetzt, ebenso die Prüfmeldungen beim Anlegen und Ändern von Buchungen (Soll-Haben-Kontrolle) und die Fehlermeldungen der CAMT-/MT940-/CSV-Kontoauszugs-Parser.

Technisch

  • Statische Prüfmethoden (JournalService::validateLines(), JournalService::reassignPlan(), BookingService::validateParts()), die auch direkt aus PHPUnit-Tests ohne laufende Nextcloud-Instanz aufgerufen werden, liefern jetzt stabile Fehlercodes statt fertigem Text; die Übersetzung passiert in einer begleitenden Instanzmethode mit Zugriff auf IL10N. Die Parser (CamtCsvParser, Camt053Parser, Mt940Parser, XbucParser) erhalten IL10N als optionalen, in Tests weglassbaren Konstruktorparameter mit deutschem Fallback-Text.

Bekannte Lücken

  • Der CSV-Export der Auswertungen ist noch vollständig Deutsch.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureyT7SVmIOpa+ZxIYuUUiftY1NmsPnETQbPKz5hXSyXYJ2fSqVm/OBPOJyoI2EpaGulf2AqkZr3w8jXrWuh4U3J1m4IuaAK8zGhD47WCAzxFGZxc8iy6ITh0OckjLneDWxMwoQHJO/IggRVjBEaZXKdD2wrFPMjkXDUTBvlMr/YKJFE6bd1qJJ5UKXQedO51aNuRQR/O9UrXJ8IR6F5SmyWzrEvr8F/hNdiQioDnTA2vk1iB2bTciuc9qnQd13m1i43ToUuZfYSYflxBhAq/kMOCrUsICqXo3wy88DNIVuwaiEIPrXuMUBDXsmjcnh0dtku/iVTiOpPtkDjucmJ5bhLcuylyC1sYFt6d5emJlqMUOWHmhzC4eoQc9nv2uSq/VgCVUJd0V4dihQivViVEot+acr/xuHinPVt7YikF5ejoWt9//f8huYVa7O1dR2mKoY+nyOscA1lF1kFo7OYZ30KnerD5qjLJo508MDMWtAb7Pfzw3P423Jssl1h0zAPk7e2UWu+5ImshK7nr5+07Owyt/h41ASF4FeW8ePiUbn1hHgf86avEjbtMrQXajpZJp1AddBYuGCa19+V6jgLory4k8mLyTdCOz3O0nFTjEEU3hhq+BPbaoaztKx3W0FOtBsFEO/FyhaAxffkGjbU88lQoDSP9rX3lgH8oKX++nUHSY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.17.0
Release Details
UpdatedAug. 2, 2026, 3:16 p.m.
Changelog

Der erste sichtbare Schritt zur Mehrsprachigkeit: wer Nextcloud auf Englisch eingestellt hat, sieht jetzt eine englische Oberfläche statt einer deutschen mit englischen Brocken drumherum.

Hinzugefügt

  • Englische Übersetzung. Alle Vue-Komponenten der Oberfläche – jeder Tab, jeder Dialog, jede Fehler- und Bestätigungsmeldung – sowie die häufigsten Fehlermeldungen des Backends sind jetzt ins Englische übersetzt (l10n/en.json). Einen eigenen Sprachschalter braucht die App dafür nicht: wer sein Nextcloud-Profil auf Englisch stellt, bekommt automatisch die englische Fassung. Die Quelltexte im Code bleiben bewusst Deutsch – der Herkunftssprache der App –, Deutsch ist also unverändert die Fallback-Sprache.
  • Video in der App-Store-Beschreibung verlinkt.

Technisch

  • Eigener Lademechanismus für Übersetzungen im Frontend (src/lib/l10n.js): die Bibliothek @nextcloud/l10n geht davon aus, dass Englisch die Quellsprache ist, und lädt dafür gar kein Übersetzungsbundle – bei einer deutschen Quellsprache wäre das genau die falsche Sprache.
  • IL10N ist jetzt per Konstruktor in die Controller und Services injiziert, die nutzerseitige Fehlermeldungen werfen.

Bekannte Lücken

  • Kassenbericht, Kurzbericht, Prüfleitfaden und die CSV-Exporte sind noch vollständig Deutsch.
  • Ein paar Backend-Prüfungen (u. a. die Soll-Haben-Kontrolle beim Buchen, die CAMT-/MT940-Parser) bleiben vorerst Deutsch – sie sind bewusst ohne Nextcloud-Abhängigkeit gehalten, damit sie sich ohne laufende Instanz testen lassen.
  • Das Änderungsprotokoll (Berichte → Protokoll) zeigt seine Einträge weiterhin auf Deutsch.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureroXOT9h02u08zVmBOEm4AgtrqTyByeTNHUynP/GLWlj1W/PSVXK7rwHxjWbw/fnoVsuvroo5FdxY6sTMKgwWfcCYW9WC49dJylKK1FX8oKws1LefX9HqQbZvFeJ9L3grLLht92mwMthzuRfrCaQDygDBmpv1o3PhbrqJpox0zfx1jWd6jJhDpBeBjIcfBf+CyKan8BSSdwFjRUzCoJBIz+cHAB27MY5PfvrDdFmUtjHLvU/MifISIkMiVhxKtY1CnQtJd58t0zJcFvN0qjB85+DAAV9nR6YCcZjNw8UbCdetu5CThcQBPHJLnRXIIf+WP88PgRYkxgRw9d8QKMf2zklGsVTPJdtvacI9V2F5JOIimelYg3V4WacqcpO2F2xOfs6jXVS2E8MFAloWofhNnfVuTINQiHz8Ckw49QlyEr8Up6yEZ28tgJh0AKpQWsLUZ+SUd4PA2obilUrsFjFkEhAUbAPtu0kdKD6l3NYa9oXB4a2Pun6gNpD1qvhmRudPvyIGoYCoAsOstLAehk+eAiF6lfFLe/o0V+RiOn4L2lPt5c96acCwesJD9yZQbZIfbYFM5ddheBSYaJRzyLYJWsK2IETagwH4XVvH/vClPytgMNHiOG/s6LALfsQSUTzz8ktLZqU+U1BHlmqXaR9M2lvlEu2G9O+5ueYM3D3kX5E=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.16.0
Release Details
UpdatedAug. 1, 2026, 9:03 a.m.
Changelog

Diese Version bringt kaum sichtbare Neuerungen: sie räumt den Programmcode auf und sichert ihn gegen Fehler ab, die bisher niemand bemerkt hätte. Ein solcher Fehler kam dabei ans Licht – und er betraf ausgerechnet die Kassenprüfung.

Behoben

  • Der Beleg-Export als ZIP brach ab, sobald ein Beleg im Zeitraum lag. Die Funktion rief eine Methode auf, die es in PHP gar nicht gibt (ZipArchive::addStream); der Download endete mit einem Serverfehler statt mit einem Archiv. Betroffen war genau die Funktion, die eine Kassenprüfung braucht, um alle Belege eines Jahres auf einmal zu bekommen. Die Belege werden jetzt blockweise ins Archiv geschrieben – der Speicherbedarf bleibt wie vorgesehen niedrig, auch bei einem Jahr voller PDFs.
  • Der Kassenbericht ignorierte die dunkle Darstellung. Wer ihn bei dunklem Systemdesign öffnete, bekam schwarze Schrift auf weißem Grund in einem sonst dunklen Fenster – der Kurzbericht konnte es längst. Beide Berichte teilen sich jetzt dieselbe Gestaltung. Am Ausdruck ändert sich nichts.
  • Beispieldaten konnten halb angelegt liegenbleiben. Fehlte ein Konto des Standard-Kontenrahmens, brach das Anlegen mitten in den Buchungen ab. Jetzt meldet die App vorher, welches Konto fehlt.

Geändert

  • Die Rechenregeln aller Auswertungen liegen jetzt an einer Stelle. Die Frage, welches Konto mit welchem Vorzeichen ins Ergebnis eingeht, war an acht Stellen einzeln ausgeschrieben – in den Exporten, in der Saldenliste und in den Berichten. Eine Änderung daran musste bisher überall nachgezogen werden. An den Zahlen ändert sich nichts; sie sind jetzt nur an einer Stelle festgelegt und erstmals automatisiert geprüft.
  • Der Sortier-Vergleich der Tabellen war dreifach vorhanden und ist es nun einmal. Sortierung und Sicherheitsabfragen sind damit in allen Ansichten garantiert gleich.

Technisch

  • Statische Analyse (PHPStan, Stufe 5) läuft jetzt bei jeder Änderung mit und fand die drei oben genannten Fehler.
  • Der 1149 Zeilen lange ExportController ist in Dienste aufgeteilt: CSV, Beleg-Archiv und die druckfertigen Berichte je für sich, der Controller behält nur die Auslieferung (158 Zeilen).
  • Frontend-Unit-Tests (Vitest) für die Rechen- und Anzeigehelfer; der Testbestand wächst von 118 auf 210 Tests.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureVJDiJR0wAF6OF052v41IlOKnSdqYFS+pI1+dFRngpf5U228GkukeyPqI033CH4Q3hummVmpRiAFGTi5n9g403rp88tFm8lw69XuqW2KKFwDkzc5EE0wVs3AVJgHeREn/NotbVAVvItr6+4wdPE4vKY4MnSVrwwPFWyQPhYMcy7ps0GEKQOKIIg8K5FiRvpgFF4M8/24xcDJSX9P6ySetzjjCUewbWBCq90qjAkf1dedOmwpk/WJ6EzDMuOpXjK866ruUFpU6UMHarVV5JY0IO97AJym3rJVUbtF7pkCI4gQVjVAFmcux+rnXm7vLN5EHGRF9cQCgy5REcQAKavKY0k2KS48L/zRjsvzEv0dY/IWAraVowHLkJUDonnUelUPZJ3J6S6CekKswO2oQdXnCc2jGNSY7QS8s2ck9NsnCSeX66hEMC4fI8cZUTeFM5sr4IP7ABKXq4f/DOZ2kl1klwKZjVeCSkD5SQvB4Lt5vq+kj2CzULsoM5EyrxLuvdYt/cOMluMhFdKg8H0Mubcc/TnIMEMGj2ODw7z7z1g5KQdGDPYEQ2JDgUKQ2gxW9exq98q0FmXq95K1ppLvC0c8sDezQF5leB2eVH/c0yDzc6xsDpWbkc9MQiNLofdqyXWHBvvrqKnl7x7qBn8U9BdefGUuFba3HekdHxLZFAm6OPsg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.15.0
Release Details
UpdatedJuly 31, 2026, 6:56 p.m.
Changelog

Behoben

  • Gelöschte Buchung gab ihren Bankumsatz nicht wieder frei. Wurde ein Buchungssatz gelöscht, der durch das Zuordnen eines Bankumsatzes entstanden war, blieb der Umsatz auf „zugeordnet" stehen – mit einem Verweis auf einen Buchungssatz, den es nicht mehr gab. Er tauchte danach nirgends mehr auf: nicht unter Zuzuordnen (dort stehen nur offene Umsätze) und nicht in den Salden (die kennen nur Buchungen). Auch die Bank-Abstimmung führte ihn weder als gebucht noch als offen, sodass der Kontostand still vom Bankauszug abwich. Der Umsatz steht jetzt nach dem Löschen wieder unter Zuzuordnen und lässt sich neu zuordnen – derselbe Stand wie beim Aufheben einer Zuordnung.
  • Belege eines Jahres konnten beim xbuc-Import verloren gehen. Die Dublettenprüfung des Zusammenführ-Imports beschrieb eine Splittbuchung nur über eine ihrer Zeilen. Eine eingehende Buchung, die zufällig auf diesen Teilbetrag passte, galt dadurch als bereits vorhanden und wurde stillschweigend übersprungen. Der Vergleich betrachtet jetzt die ganze Buchung, und beide Seiten des Vergleichs bilden ihren Schlüssel an derselben Stelle.
  • Beleg löschen konnte einen Datensatz ohne Datei hinterlassen. Die Datei wurde vor dem Datensatz entfernt; schlug das Löschen des Datensatzes fehl, blieb ein Beleg zurück, der sich nicht mehr öffnen ließ. Jetzt gilt auch hier die Reihenfolge, die beim Löschen einer ganzen Buchung längst galt: erst der Datensatz, dann – nach erfolgreichem Abschluss – die Datei.

Geändert

  • Der Jahresabschluss schützt jetzt auch die Konten-Stammdaten. Bisher war ein festgeschriebenes Geschäftsjahr nur gegen Änderungen an den Buchungen gesichert. Über das Konto ließ sich sein Bericht trotzdem nachträglich verschieben: Ein Wechsel der Kontoart dreht das Vorzeichen, ein Wechsel des Geldkonto-Kennzeichens verschiebt das Konto zwischen Vermögensübersicht und Einnahmen-/Ausgaben-Rechnung – das archivierte Jahresergebnis änderte sich, ohne dass eine einzige Buchung angefasst wurde. Kontoart, Geldkonto- Kennzeichen, Sphäre, Rücklagen-Art und Kostenstelle lassen sich deshalb nicht mehr ändern, solange das Konto in einem abgeschlossenen Jahr bebucht ist; wer die Änderung braucht, eröffnet das Jahr wieder und schließt es danach erneut ab. Nummer, Name, Kategorie, Aktiv-Schalter und Überkonto bleiben frei änderbar – sie ändern nur Beschriftungen, keine Beträge.
  • Konten stehen jetzt im Änderungsprotokoll. Anlegen, Ändern und Löschen eines Kontos wurden bisher nicht protokolliert – ausgerechnet die Stammdaten, aus denen jede Auswertung gerechnet wird, waren für die Kassenprüfung unsichtbar. Bei einer Änderung vermerkt das Protokoll zusätzlich, ob ein auswertungsrelevantes Feld betroffen war.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureP7cVaIPv213NPHt6juPqCRD4S2odKrN+G8KhhxyDeKw7BKUxrWvSaOiQCEwBmvQzUCYWUDf0OacHyUlh6nmJEWFmuux3X6wIY3AuGQx/gg37EMyMCod8JA82iPNAMLXML1bEIeU9RGEIbmtdc6CmNEV+TlEBCp02kskc/V1FytAkCREPOCfCr7DodbD6FZtrjN+VloewQblps1KCCye9tm1v7mMDRDexPv2jiATXsKqS/D/ostXEh/SGTtX1saXxlFpMJss8WYgRNCMbzGMW6i+k2ND/iiEAzBFBKwFY0w4YunU4zo2x6Y3z7SCPeSLP0AagS4LI2vv5vKeq2jHyqtnXTS6Zi6tba2P6ObB0stmW6lzc6p58UW3Dvw9Irm58hAa7QqvqUheI2t0haws3Cah2/e95eOqk/+tFcGS1k6C1sPVQVlcEFjMyLN2a88YKW32okbQhzCEixkockVQQbWfY40Shqg64ZSfGGR6VAgHck6rioYnQJE2H5+3SexdzsYkJVY2jJ00tLIdCDpq2Z3M5AZSjxHpGcRyJ+w+6EIx10SbOdsqxQw0/FEnAC8Bk4d1vcodBZBwXFav/Ew6diriLx49vhFQZvlvmshNbREyFYiWskPUKE46NTOVHZVGZqLlkQD4vFbu61PWYR8swhuYhqMwPbsxkzbxIf2JQuQU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.13.0
Release Details
UpdatedJuly 31, 2026, 8:50 a.m.
Changelog

Hinzugefügt

  • Frei definierbare Kostenstellen. Bisher leitete die App die Kostenstelle aus dem Kontenrahmen ab – entweder aus der zweiten Zahlengruppe der Kontonummer oder „ein Konto = eine Kostenstelle". Beides setzt einen bestimmten Kontenaufbau voraus. Jetzt lassen sich Kostenstellen unter Einstellungen → Kostenstellen frei anlegen und Konten ihnen ausdrücklich zuordnen; beliebige Konten können so zu einem Projekt zusammengefasst werden. Der neue Modus heißt „Frei definierte Kostenstellen" (Einstellungen → Kostenstellen-Modus, nur Verwalter). Die beiden bisherigen Modi bleiben unverändert Standard – bestehende Auswertungen ändern sich nicht. Die Zuordnung geht einzeln im Konto-Dialog oder für viele Konten auf einmal. Angelegte Kostenstellen erscheinen im Bericht auch ohne zugeordnetes Konto, damit eine fehlende Zuordnung sichtbar ist.
  • Umbuchen direkt im Kontoauszug. Wer beim Durchblättern eines Kontos (Tab Konten) eine falsch zugeordnete Buchung findet, bucht sie an Ort und Stelle auf ein anderes Konto um – der Umweg über das Journal entfällt. Umbuchen lässt sich jede Seite der Buchung, also auch das Gegenkonto. Geändert wird ausschließlich die Kontozuordnung; Betrag, Datum, Beschreibung und die Gegenseite bleiben, sodass Soll und Haben nicht auseinanderlaufen können. Abgeschlossene Geschäftsjahre bleiben gesperrt, jede Umbuchung steht im Änderungsprotokoll, und eine zwischenzeitliche Änderung durch jemand anderen wird erkannt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturerYLg9/W+aZy3UR2gm/vOTWoLkk4IZrBuLDSsMcqIA1ezxdDhM4DCie+hHnru5bowZ4ZqOE8XmhrBYJCF9F8Wg3zyklma7eMmTKWMHy0mlys+/SYrmnPOfrzUyA/3PvFLNztuRJgyVeL/bI/0fp4QQ5YUTHG6oQHcY9NZXeB1Yy9AJAOP/oBHHdA9RDSONWvDJKgpLAgKBHcpj8J9SPCeVOviwHla4B2fbLKjpJu185Ee7SsvjXQJYatX0SV1/Hy65I0o5xfst63HfBj8vMYkiu6vxz3bU8kp5jUJKWWmDiB9qQHByk5srK1Wu/R/gZKgfxp+EtU1SWYaZFIU5ZlynNgtZpx63083sBz/UgryqKitjmOvD1Qw1UAi4sP5BMm8IKjZCCHY1mBImO/sIQqa7MjpcLulmnOmAXorbAgfG9ZaXFrk0AafHeQRzemtQ5nvlYpl8Z58F11ZuVKudYhsciBek7SHIhHTbs99aOsb934bzlaN+lZelZfm5J0OyCJaBv7zCKPQqMuBUNioV/w2ntAY/CyY2TK2gfJb2wMjJmNNR5s7hRcWVIPpklXxE/o44NSsckDDnzA4FemD7tswK8tTftO/v+Qk04kzjHi984idYXoHWSwFAYYiZxmL2oB6OOs+MXh9dGQUbpctC2pOAeSdO0J0dO/7D+MkKtaBrYA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.12.0
Release Details
UpdatedJuly 30, 2026, 4:01 p.m.
Changelog

Hinzugefügt

  • Kontoauszüge in zwei weiteren Formaten: neben der bisherigen CSV liest die App jetzt auch CAMT.053 (XML) und MT940. Welches Format vorliegt, erkennt sie am Inhalt der Datei – die Endung spielt keine Rolle. CAMT.053 ist die bessere Wahl, wo die Bank es anbietet: Vorzeichen, Datum und Zahlungsbeteiligte stehen dort eindeutig drin, statt aus Spaltenüberschriften erraten zu werden.
  • Wachordner: Auf Wunsch liest die App Kontoauszüge selbstständig aus einem Nextcloud-Ordner ein (Einstellungen → Kontoauszüge automatisch einlesen). Den heruntergeladenen Auszug dort ablegen genügt; stündlich sieht ein Hintergrundjob nach. Verarbeitete Dateien wandern nach verarbeitet/, nicht lesbare mit Begründung nach fehler/ – gelöscht wird nichts. Setzt System-Cron voraus. Das ersetzt das Hochladen von Hand, nicht das Herunterladen bei der Bank.
  • Vorgemerkte Umsätze aus CAMT.053 werden übersprungen. Sie ändern sich beim endgültigen Buchen häufig noch und kämen sonst ein zweites Mal herein.
  • Mehrere Bankkonten werden unterschieden. Am Geldkonto lässt sich die IBAN hinterlegen (Tab Konten → Konto bearbeiten, nur bei Geldkonten); beim Zuordnen einer Bankbuchung wählt die App daraufhin das Geldkonto, auf dem der Umsatz tatsächlich gebucht wurde. Bisher landete alles auf dem ersten Bankkonto des Kontenrahmens. Ohne hinterlegte IBAN – oder wenn der Auszug keine mitbringt – bleibt es beim bisherigen Verhalten. Wer mehrere Konten führt, sollte CAMT.053 oder MT940 exportieren: dort steht die IBAN verlässlich, in der CSV mancher Bank nur eine Kontonummer.

Behoben

  • Derselbe Umsatz landet nicht mehr doppelt, wenn das Exportformat wechselt. Die Dublettenerkennung hing am eigenen Konto, und das schreiben die Formate verschieden: die CSV mancher Bank führt dort nur eine Kontonummer, CAMT.053 immer die volle IBAN. Zusätzlich zum bisherigen Vergleich prüft die App Umsätze jetzt über Datum, Betrag und Text gegen die bereits vorhandenen Bankbuchungen.

Sonstiges

  • Die Umsatzquellen liegen hinter einer gemeinsamen Schnittstelle (lib/Service/Statement/); Dublettenerkennung, Regeln und Import-Protokoll sind für alle Formate dieselben. Der MT940-Parser ist zugleich die Vorarbeit für einen späteren FinTS-Abruf, der genau dieses Format liefert.
  • Das Import-Protokoll hält fest, aus welchem Format ein Import stammt; Geldkonten können ihre IBAN tragen (Migration 122).
  • Unit-Tests für beide neuen Parser sowie ein Kreuztest, der denselben Kontoauszug in allen drei Formaten vergleicht (61 Tests).
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureYrd0NVVBI48qEcLJqlW2g3q/DsCa4M/I4Dap6Y7XZoLqHbFQtEHZiGe5WGYmrRZxZaiS38aXU62p6tx2uqB+V5cYI7xSomdVQtN/PlHS0hXRjO5OunZIpXdSaplQn0BiBhuN9iP+Vdrwc395yav9MegQE1opuH5kj2xPgKQyUbUehBedJ4rV+ePyXm2KFXsfv3DFeYjp9R16i41D+fD912hJskD3BNwIgqh0NRalj4KkwrIES46Ym7TZoZ14Jx0NJdh99l4/EXgdRicoSWEUT3aRxhbN+4qfAwa8MsDhL4K+jv4OhqDFxlD5yQKRqr6YsU9wxJ1HmMH8rutukusf18IQsgQjjl4zuwtwNFjrx18LhnUuozOQgRtVVZrQNXGneZ8ZLa7h6iZLUIkoiGtrrSyl0rXJFcg4LRmCz62Q9BaXCO9N8LhgxLa9TPKKJtoSroEbbFAHNewd5ir03uudK/UA6hr6n3GXNAtlTdyMAle9r7JY2DuvIJe+ftEHNqMC9prT2M1E2qb/nSgYk+RziNaqt4Yd5POjG65TCNEQOKIQ/aUpixnKXUFwzS+fJpFmGA1b+eULBKo0r5Q17xAluMjlw3lBsGcwozKXHc1KeCKIiZfjx9x+y1XMNuzeDaWG1g8kd2sjVTwY2vW+lS/d/R/K1GE2My5qoMILXPZ8+ko=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.11.2
Release Details
UpdatedJuly 29, 2026, 3:43 p.m.
Changelog

Behoben

  • Beträge werden nicht mehr abgeschnitten. In Tabellen hatte die Betragsspalte eine feste Breite von 100 px; längere Werte wie „28.798,68 €" wurden mit „…" gekürzt und ließen sich falsch lesen. Die Spalte wächst jetzt mit.
  • Mobil: „Buchungen" in der unteren Leiste war gekürzt („Buchun…"). Die Einträge teilen sich die Breite jetzt nach Inhalt statt zu gleichen Teilen.
  • Mobil: zu kleine Tippziele. Schaltflächen, Auswahlfelder und Eingabefelder waren teils nur 24–36 px hoch. Sie sind jetzt mindestens 44 px – auch auf Tablets, die per Finger bedient werden, aber das Desktop-Layout bekommen.
  • Mobil: lange Kontonamen im Kontenbaum wurden gekürzt und waren damit nicht mehr unterscheidbar; sie brechen jetzt um.
  • Mobil: das Ende langer Listen lag unter dem schwebenden Buchungs-Knopf und war nicht lesbar.

Sonstiges

  • Ausführliche Beschreibung und Screenshots für den Nextcloud App Store.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureDikykvZ2qeSFgT2rqRn1/K6d7txbP7OEC32gKuFsiCeigdGhCtrIHnVWHhA4ddYVzD+A5w+jgbYrYMzkgZcFS/cJE69wPzosrfHtsfrR1AXnFJprlr1fEU7gM2imvESCrjGS0s8KEeOczNzOTrhw6vtaWm4zbpYth5MLdMZmYFFTxtCQ67VIKIDNZhSVBS+dlbgKma5HobySt4IwUZeR+6qhMtZQZbmMCJ1LSuwPs6QCVTfAxXRlEBkuIdS0VYiBn3jDaoCfBV8tGZjpAG63npnwXIfJJd4HeCyDpMzDx0h/z6JpXKEcJuujT2vnrbjgCgqPOQX6qqCFru7djJ8o1BLR1pO8qNiTn194HAgOH/2cKzaJ/RbYAUXds7qW8aQgxvviJ9adZGRf3zC3jyYB49EGdYB/rKG8Lnn8mhDFkF7iXej4kwz/myXK8MTldP/xctXSC/zinorrnHaRo28XNtFDq5GazeVXpK7/9nvyt3SE49zoABnAEKDw6SYZrVCLX4+J8bbM6yk/ohFE3g1KL2/wXL1GnE1spwuz/OamTPJUqgVNJyV3MyzxG5aHpGxdj3lmctGt8eO34tXvHzofVmHvrhnEbEIcyMlphbOWD2mCiGkmltuGjJqvMJpLbSyZIe/oAXkJ7IiY3KGIRpiKlGUueiQlo0UbI1L+ubF/Uak=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.11.1
Release Details
UpdatedJuly 29, 2026, 3:03 p.m.
Changelog

Erste im Nextcloud App Store veröffentlichte Fassung. Am Programm selbst ändert sich gegenüber 0.11.0 nichts.

Sonstiges

  • Die App wird jetzt mit dem von Nextcloud ausgestellten Zertifikat signiert (appinfo/signature.json) und im App Store veröffentlicht. Das Paket zu 0.11.0 war noch unsigniert und ist deshalb nur über ein direktes Deployment aus dem GitHub-Release installierbar.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureRqufs3+r1UDzVeNY47cnz/w6ATGHouz8ape7ZHM3P5KFdQNcJ6RYVIO+epIwjLtAeVJdMgfEDJwafg1dx757MvkBsfr4fO9yBiP0yNmKeVwdm3G/7vM+WTHYg9CpRNYN2AivshD6OdD5axADiNnBU0jk+qw5szzQ77+pYkxHFMrTC1pbM8VWuTD/F+PrU0V7617dl2nDG7ZWwzjFgP65k6y3lr7hFi46LDiIvwWNv8leoggPU3YoB4YywRdXqhIHImtdBs/fauWamzU49TY22hPqSTPFsAVqyW/RI7Jw599oTCozx0W92XQilBZOGdUQb1Lr8nS+DJs6fGz6eJXbJQd2K81qqSyyIN06UcBudD6zCu5DdLuPLg0kWs7vwq5wI/4AXpBb5xadncHFtJOaNNoCJ2v7+C7d1ZaJ3kfv6ZNnVcuEYYQsNfuitHmmNzATyWSH2+hzXj/fZfpZA0vyHDLa4XkCPMwOi55IaPuvCdEaKE+RTf6hEdnul7MhU8C8BUFHKp3HlkdzJLPmffyf3vTDFoRnvtA2isMEXrkE2u9Usk9X1DlOXxn4PjmCYGNEm54YfVpTGRiY8i972c9XIjwmlpUIaqYARzgSad2kT23TXEMmzsPp7/kM2DjAqmEJbe+Lgl87Z7ZseXBHSnJXd1JjtxYJCm4og7lA2zSagvY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0

Nextcloud 33

Vereinsbuchhaltung 0.34.2
Release Details
UpdatedSept. 14, 2026, 5:57 p.m.
Changelog

Fixed: - An account's category could not be cleared: deleting the text in the “Category" field of the account dialog left the previous category in place; only a single blank space worked (issue #59). An emptied field now clears the category as expected.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureEFvqWDFNfM6FrLb9Ef+VmkLkQq/yMGhS3fFmfDXMmHq7Tkx9ebelg6+UOltGTCAywwAqFg4TlZhz+P660I/de6z9WnYhMtrvp+i2YD9HAA7JJkmUOnB9qcJH85XJJZXFAKnz+WeHzIwnA1b4PpUEcBXlbs10i5vF2TK5kZnW4sOOoj175+Fr22UYhUtgFr3OGuI3F3OtVnukYqMZvs5bbtZvZbnq16S1aC3Q9l5DyDTk3dQoTdX+mcABI833Z3tTgHevH04XqNA8JSnpYEO5VOY5FE6UIPWGEsro7N4mYBD9mfvgh1k0ID4D8M9UECA+nc1cVCA7ZvEbkD7qMcM2bdmIqkpaM7EZYND8D/DmU+kjGXi3VFkT3uBL6qiApthyohAXUE7mEMu9z9zHrhN8HMIGGOZqQnn45saBBOfPUo03E8AtacAT1zk7Lx44FloP6R2y02nt+BMf2C6rj7gaD6CSERsghlDrhtfqIjL6aGbIY/KVTE2v8oUozOQLWWT1v7YE8360mfWkDOoD9IqHVd4wnvdkPkeu17DdEMzUJNqyxu1ox08v63+cfh/Wf8X+L7uk+z80G0b/oRElAyuYahQxQimk2SwnE9IooOwdbruc/Kjh7AdPh8alW3TlD6oBlvLFTeuuUTPne0woHKSAkAAB+Mp7aWcDquPM8dCc4Ec=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.34.1
Release Details
UpdatedSept. 13, 2026, 4:18 p.m.
Changelog

Fixed: - Duplicate accounts in the autocomplete: Frequently used accounts were also listed in their category group and showed up twice in a row when searching. Now listed once. - Search field in the "Pick receipt from folder" popup sometimes didn't react: A fast click could leave focus stuck on the modal backdrop, so clicks and typing went nowhere. Fixed – the same fix now applies to the account, bank account, and member dialogs. - Icon in the "Pick from folder" button was misaligned: The button was too narrow for icon and text together. - The getting-started card briefly flashed on load: It appeared for a moment even when everything was already set up. - Period selector stayed empty after a load error: A single failed request left it empty with no error and no retry. Now retries up to three times, then shows an error.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signatures/8cYDtuFbV6E8E5R5Qpl62vNDSVzL9Isb0SpA12Gfk56tsktN+lvZ2efzPVeY1nRIkfbOAds9mbp2IqknBIUrEcVG/2PFWrah4SBCfwroQ7Za+6iJ06wRNYnLoirIi95y/ul4RJx+mh9giqP3ERfchInL4RpY7rCUxYSexKy8MrA2QB47BuTg4zBE+HtqO4t6WOjIPIwOrWYRu5dYC3hnm82PTvU/p3Azl+Zgo8L29KVwfNfU7xkRxd3mFm3VLXIF2UDbEv5PIu+G4L23EW74n2e8IMrSfgoNNI64sx4J63G7dGSspVrI3fJhG7pBa8TsISi1t3AEBKCiE7qrrsJxZ0AUMPHAGmxv64zwT/NbD6aPSREWpzYWQ+bukKDVwTa9clF/o6B4fE7/RcVPc/G5qNXACYdnlJgC4dTf0WaHmTTJoZp06+UKHjmx5SjFiSBJD2Ld8k/O/Y1vcL46kpDQSP9bqtlhyZXq1xNPedcIis01MbOeybRKvZtJL4inBXrYr3lZSaL6CmOHMm85cmSJnP5nSqrE/g15czG9/QILeKTRCe+qa4/U5kY5LcXAW8TH5BmUA8K7lFrznduHBBpPFCIx7VMW9xnmisFbf0TpqtuGnRifJm5SuTjNDvumwHBuRMGY20vwbHU1ul0tkGy4Qfb7KnPOLjSvQwCghTyfU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.34.0
Release Details
UpdatedSept. 12, 2026, 8:59 p.m.
Changelog

New: - Watch folder for receipts. Besides the internal storage and the user folder managed by the app there is a third storage type (cog → Receipts → "Storage type"): a folder in the Files app whose files, including all subfolders, can be picked when booking ("Pick from folder", with search and preview). The files stay where they are – renaming or reorganising them inside the watch folder does not break the link, the app remembers the Nextcloud file id. Receipts uploaded or photographed from the app are stored under <folder>/<year>/ and may be reorganised afterwards. The folder has to exist in the Files app beforehand and must not overlap with the watched folder for bank statements. It is chosen by clicking in the folder tree of the user's home ("Choose folder…" next to the path field) – a typo in the path is ruled out. The same tree is now available for the watched folder for bank statements. - The overview reports documents without an entry. If the watch folder holds a file that is not attached to any entry yet, the overview shows "x documents not yet assigned to an entry" – an invoice still to be paid, for instance. "View" opens the inbox with "Create entry" per file. A second tile warns about receipts whose file was deleted or moved out of the watch folder; the audit ZIP keeps listing such receipts in fehlende_dateien.txt. - The app never deletes a file in the watch folder. "Delete receipt" means "Unlink" there – the files also stay when an entry is deleted or all data is wiped. The same file may be attached to several entries, e.g. a split invoice. - When switching on, receipts the app stored under <folder>/<entry id>/ so far get their file id filled in – the existing receipt folder can become the watch folder directly. If a different folder is chosen, the old receipts count as missing until they are moved there.

Changed: - The Nextcloud viewer only opens a receipt when the file lives in the home of the signed-in user; everyone else gets the app's own view. Until now the viewer failed for anyone who did not own the storage folder. - Opening a receipt no longer creates folders, and receipts from the internal storage stay readable after switching the storage type.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureEH3jQPFfGMBQpUQwCuWN+biHwFqRxw8mnukQhkDPzmFj6KOWgEkLA3/lF1Lt7rypENDYtU9SXU715NKB8vWewF9ia1qP8o4GYsmjGVVRGD1pT9CbCqpefYpuLklQI0yyD9xXG2wK76DQe6iQW2gQQCJnIAtVCeNQpUvRmBgG1Kab0JhMNOKylIVt/wqP5jJePSNq3acxFpGmwVUr4Nzsm7wYn8gag3sjtB8GnavMg3Np0+48Z2O/tzRy9rmASVHYRPCWwrRXDEBz7qHd2ocwHFwKVTPCaRLT7jgKJ3B8RvtpFzEGr89Fkpm61hkdHi0KfWVLj55hIpiB8x4YRYcoH1CMeKok6SmlNclLExsf6XUKm37P0JTZVWpdRCw7I23UsHSUrE0J88YQlJURIMQc9wH3bqFUZza9mz44WPMf3nJ5o8bNcD3GjVh6YaQnVAFD5oEnroSoY7BYpDUawTDndqrM/24TN01ESsnFi0b5/fjT2AuSokvAXDb+/10j+nSxOZnNEeXFyL5spnW0Q0T/9U75DJ2x2BG5mi9E3OLifI/muNrh2eVSqdQJ6u2EzD0hQkTeb5TxVjCLwIogA9F3hrNzNqJY8MxLlK9Ac1kIsF5w2QJRjwjecIGlTYGU3ZN4aFc+P6AQs0M8iXpco+7yi+TWkz9n4t1DpWoNz72SMZc=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.33.0
Release Details
UpdatedSept. 10, 2026, 5:50 a.m.
Changelog

New: - The fiscal year no longer has to match the calendar year. Under the gear icon → Fiscal year you can now choose when it starts: presets cover the calendar year, October–September, the school year August–July and half-year periods (semesters), plus a custom rule with any start day and a period length of 1 to 12 months (divisors of 12). Clubs with a deviating fiscal year previously had to add up their figures outside the app (issue #8). - The header's “Year" has become a “Period". Every period carries a freely editable name – suggested as “2026" for a calendar year, “2025/26" for a deviating one and “2025/26-1" for a winter semester. Entry numbers, reports, the budget, the receipt ZIP and the year-end lock all refer to the period rather than to a year number. - Periods can be maintained individually. The boundary between two open periods can be moved – the way to a short transitional fiscal year. An empty period at either end of the chain can be removed, and the next one created at the press of a button. - Switching shows what it will do first. Before a changed rule takes effect, a preview lists the resulting periods, how many bookings will change period, and which budget figures would be lost – because when two periods merge, an account can only keep one of the two figures. Locked periods block the switch: what the general meeting approved does not move afterwards. - The cash report names the actual key dates. The asset overview used fixed column headers “Balance Jan 1" and “Balance Dec 31"; it now shows the first and last day of the selected fiscal year. - The monthly chart on the dashboard follows the fiscal year. It always ran from January to December; with October–September it now starts in October, and a semester shows six months.

Changed: - The settings section Year-end closing is now called Fiscal year and holds the rule and the list of periods alongside the locking. - The xbuc import now derives a file's fiscal year from its date range instead of the calendar year. A file for a deviating fiscal year could not be assigned at all before. Bookings outside the range are dated to the first or last day of the period rather than to January 1 / December 31. - Existing installations are unaffected: the migration creates one period per previous calendar year, running Jan 1 to Dec 31 and named after the year. Entry numbers and existing locks are left untouched. If you change nothing, you notice nothing.

Fixed: - Opening the booking dialog before the account list had loaded left the cash account empty – and booking then only reported that it was a required field. The preselection is now filled in as soon as the accounts arrive. - Switching the period right after loading occasionally showed the journal and evaluation of the previous period: of several simultaneous requests the last to arrive won, not the last one made. A choice made before the periods had loaded did not stick either.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturehjIUxR463SXRpnSDzeYpCEUzwFWSRO1ftltM9mWjHajC8UYOyRFO+a3qq7rOns+QYhP60hf3ikxj3W1DN3iUnUjrL8WSd8T5duQAubXz8pHlKS0QreKYeiecE/5cDcOFVTgUIEY1S9mlEvqW4LHFm0lG6R4tnXN9ECVQytIfxExa8rRrM3JFpYoRghY7MZ/+KitnFI6JKUGgE7bZ5Sm1tyEKXZF0T7knzzKS9lclx3Iqn8jw6jCvCmTrKSebjwjZaQwOjmkII6FKBv2xTiBJmmto3YPq8L92FbI+9LSCMHtlr3YA89ONl2xiHMXDzO9wRzyxBzWVAyHFu9pSAYxFjgtnXedEcH7O+4NzSRyI1zm0noskNMI2VbqDTrILZTmm27UT84U9vCm10dJbhbZwt/3sLWVMMGjOHVslf/JAu5psyIqUjjToSAr6ExAJNi30LB7Kehnj8O+B5LP+eVxiKnOrdkP8VY1zzn6Wj4aKnwF3AW4e2itJCCAKTjGjPLROnBpxHgKRy7oTllQJR6HjfQjpSNauFGmhi7lv4d9VVZ6pVA79XwJOv2GQqJiavL0Q2Z9hEqrzQ4b+sy1Gg1QvQ/w8pElcDgBIgUiwW8yUKX1J+R4b3C9/8QFl9l4Of0KJbwVle4CIg/GK9x+BLrE88mzM65wqPF/DZqkEgPPc1VU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.32.0
Release Details
UpdatedSept. 7, 2026, 6:52 p.m.
Changelog

New: - Entries can be edited straight from the account statement. When you spot a mistake while going through an account in the Accounts tab, you can fix it on the spot: the pencil at the end of the row opens the same entry dialog as the Entries tab – for the description, both accounts, and turning the entry into a split entry. Until now you had to note the entry number, switch views and search for it there (issue #39). - Receipts are visible in the account statement. If an entry has a receipt attached, the row shows the paperclip and a click opens it. That includes the auditor role, which cannot change anything otherwise. - A tidier row: Reassign and Delete now live in the three-dot menu, exactly as in the Entries tab. Otherwise the row would have wrapped onto a second line in narrow windows.

Fixed: - The account statement refreshes after an entry is edited. Description, contra account and running balance used to sit there outdated until the next account switch whenever the entry had been changed elsewhere.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureURbs7rR+ibIaCXawEIGE7845WACZzgIYr/uWGqG2NfgzeFJzARFjuikGP1MGA9oOcQkwrLYk/ZNuIqXLVeOOTn6IeFo5CiCoQUzkOcEft2nPrtk4cSb+/HNBiAQ7HqcaILq9C7Y89sTyH1CpGJd3mvi2nrg3ZrLGc4oK+nelIk6WepYW0Ggl+35ScDPURnqVqvsxOKX7yyiQ7l8P+CMAVajpLXHiliixH5e34MIWs7cLhFucXHrGXnhkSqbtGNLX9pqZ9HNukNyPnpf17Ab2XJxyEzHhBp79Z+HBrGvcgkKPXjDy8nugD0RzRX470VPrE9MtJlz/w+7Ldq9TmSAqdrpq6/+GRtoTQke4EHoX6Y5q6G+eQg6sL6YDTKzFVetE3SQAVM2L4sx+W8hNjRvTyryDyCcktJSyd4luyRKK1FMOYy+Gh7jxSkwC0J9TbpnKSOiZlhCrY6ixlah4Bj87IuXoEeJSYh2XrTv2LfUN/UORaE3QP4FZKrP5wzlo12eacp/yM73IElhE0NNOapPlQo/pwPKHpd3LVXRaohJny760AtExPYmj1NmK3EIfaj9HxoltiTMCDROuC0LvLaAvmFNlaChqZ/W1c0+6KjWTtXIIyLCd1ysGAQkHJATUHtO9OHAE3/fOjIsnOaLSIYIpQJV23DyfxiOcUFx+cOk2rwQ=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.31.2
Release Details
UpdatedSept. 7, 2026, 6:03 p.m.
Changelog

Fixed: - In Firefox the year in date fields is fully visible again. Since version 109 Firefox draws a calendar button inside the input, but does not account for it in the width Nextcloud gives to every input field – it therefore covered the last digits of the year, turning "07/09/2026" into a visible "07/09/202" (issue #43). Every date field in the app is now wide enough: entry date, next and first due date, mandate date, opening balance, open items, SEPA due date and the short report's period. - On phones the buttons inside dialogs are thumb-sized again. The 44px minimum for touch targets only applied outside dialogs – Nextcloud attaches dialog content to a different place in the page, so the rule never reached it. In the entry dialog Cancel and Book were only 34px tall and the Income/Expense toggles 40px; this now applies in every dialog. The round help button next to the spheres is properly round again – it was stretched into an oval on phones and on the desktop alike – and grows to full touch-target size under a finger. - The receipt ZIP export contains all receipts again. With the receipt storage set to app-internal, the archive came out empty and listed every receipt in fehlende_dateien.txt as not found – even though each one opened and downloaded perfectly on its own (issue #40). The files were never gone: while building the archive the app read them in a way that only exists for storage inside the Nextcloud file tree, not for the app-internal one. Only the ZIP export was affected, and only with app-internal storage. On top of that, fehlende_dateien.txt now states the reason for each entry instead of reporting every failure as "not found".

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signature5YJYB6EPPa7PoTfCkG8zixyMAiUog1fe+KV73/tIghJV/YWJ2d8W3yzLqUaLj+1Tv4Sy2jwftL4Jk3kXyRCHrosVPR+k7YMPgRJ1BuJrSHTK23gVm8iwQpiHTCY5HqoKZUI47wrxaHkq2ULydZnlnxZWfLvBLV8FXpPUw3oxmkCsHVeqgA3MYXfeKbU5a60Yh9gxOQh9DabCxJJGPPFAB7uBd7ZYJPPhoY7pN955VazN/Zhls3rjU0qWKFqmZehQp7VFesrHmzgxbHe7IGTTH9lNldx/JzPHXTbiBa8ybcvsruOI4OxdGam4ubaAXWPSX71Yo7JLW7lF35UW1/mILLNSkfHxw48sEciHTE0PeDfVY3PKtWuhpgAK4VP/04LbWBOHbx96jXfpV6TguNlwZMdiWvanwJyKGeO8PkiH6gVSut00BGnmC6gxBueGUD5WIGBVqDwhiLFx3EsSGiAyCPy2ZIpBHN8Bu40iooLMCog6vu7w+4cKzVgJSHejwLVSyfvNt1yfNczYj2yarA3zh3eqS+A05Q5N9thr2QXOe753mz2KBd7z/vCIWpCC34RLnlFVXaZj4sure62IUx397INnCUAsxaRqPkkh/9g3QeLOJ3JloL3RV3jIz8VM/37NbHQTApFs78ImdXGnGZ7/YuGcr8J15y7n/BOkEFAsTsw=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.31.1
Release Details
UpdatedSept. 6, 2026, 7:52 p.m.
Changelog

Fixed: - The report sub-tabs are fully reachable again on narrow screens. The bar holding Summary, Reporting groups, Spheres, Reserves, Budget and Log ran off the screen and could not be swiped – it ended after Spheres, and the More exports button was out of reach as well (issue #38). The bar can now be swiped sideways and indicates at its edges that there is more to come; jumping straight to one of the later tabs from the help or the bottom bar scrolls it into view automatically. The same applies to the sub-tabs under Entries and Contributions and – with the Nextcloud sidebar open or with longer labels – on the desktop too. - Amount fields now show the amount the way it appears next to them: "20.000,00 €" instead of "20000". In the budget, the Plan column was a bare number sitting next to the formatted Actual and Difference columns – with four- and five-digit figures it was hard to tell 5,000 from 50,000 (issue #34). The same applies to every other amount field: entry amount and split lines, opening balance, open items, membership fees and the default fee. While editing, the field still shows the bare value so that typing does not fight a live format; both notations are accepted – "20000", "20.000,00" or "20000.5". Anything unreadable restores the previous value instead of silently setting it to 0. - The treasurer's report and the short report moved into the More exports menu on phones. As separate buttons they no longer fitted into the row and pushed the menu off screen. The short report's date field is now part of that menu; nothing changes on the desktop.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureB1QJYSJ6p+q4O5Yi2GBFhXTyaZTxxSwnNZJACVeCSRKygre2q5fbtLy1CCvZ/VBYEBYnuSvcz3uK4Q7ylzoiuLiMkK5y38ntbeFgLvZPgguK3uyJtCEmSXuvFwUUvk51ZFasjy13rg4o3d0HLLSrzPAUAFOu236jwO4Z6QmRSTcJJloyw5sDP3ykLrT5DZT3ZtduaPGq9EsZTV5AWUj6zdWK8LQTFcbX73KbGp/ao1qeXF0AZbVVoJI7GRIbu7Znz1TjknMY18B5XkDHHXw9vxkejtTs/vYfGm0mWREPxymjZJOzA9UuhO4zsdxipDckbBNFmceOYokYx3360e0Ho3qg/AHowOinzVJbDah8pL2ZKXFsrlToNgFADdVGw7V9M0IM4zoIgw7n/wZ2WHZkL8SE3B+vdKEcK2yWemqpyA0rns1hG6pmvMCcTCFvLsuJVfZs/ar6STyT9GuA8IZvYrU6Syhawo8UAXEUfIQeYdi38i11S745xNIXvrbKCpDodmxJ4hvfx/XTsi9TilQPRI174s6rjTzFpNI+wm5lGoiYRfFBFRi3xT9X5sSnGkcw+sie9Y664BLDDn2vf0n1T0bVyPLyKewN+GYz/tomrdJAhUmQx0xuBcR2hFNQQ2QoDwwlhifo7y9Pb2Vo5jJhea0sr/494Z9pUy0s29xfoF8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.31.0
Release Details
UpdatedSept. 4, 2026, 9:09 p.m.
Changelog

New: - The header now shows the funds across all cash accounts, no longer just the first one. Until now the top right only ever showed the first cash account by account number – anyone running a cash box (1000) and a bank account (1200) therefore saw the cash box of all things, while the bank account stayed invisible (issue #31). The figure is now called Funds and adds up every cash account; the tooltip breaks it down by account and names the transactions not yet assigned. If the club runs only one cash account, its name still appears there – nothing changes for those clubs. - Individual cash accounts can be left out of that figure. For cash accounts the account dialog offers a new Counts towards the funds shown in the header flag (default: on). A fixed-term deposit account can thus stay out of the day-to-day figure without disappearing from the books: the cash report, the assets overview and the trial balance keep counting every cash account. The flag is display only and is therefore not locked by the finalization of a fiscal year either. - The cash-account table on the dashboard and in the evaluation has a total row – as soon as the club runs more than one cash account; with a single one it would merely repeat the row above it. If at least one account is excluded from the funds figure, an of which funds (header) row appears below it, and the accounts concerned are marked as such in the list – so it stays clear how the figure at the top comes about.

Changed: - Clicking an account that has sub-accounts now expands them. Previously this only worked through the small arrow in front of it, which was easy to miss. Collapsing still goes through the arrow – a second click on the row deliberately does not collapse it again, otherwise you could not select a parent account without closing it. - The posting text now grows with its content. Longer text wraps and is shown in full instead of running off the side of the field – when creating a posting as well as when editing one. The value itself stays single-line, so nothing changes for the journal, exports or the API. - Dialogs have a little more room to the edge. Content and buttons used to sit rather close to it.

Fixed: - The charts ignored dark mode. Axis labels and grid lines stayed black and were barely visible on a dark background – both on the overview and in the reports. The cause was a check for a theme--dark class that Nextcloud never sets, so the condition was always false. The charts now read their colours straight from Nextcloud's design variables and therefore follow any theme – light, dark, high contrast, and club colours set through the theming app. Changing the theme while the app is open redraws them. - Success and error messages (toasts) appeared at the bottom left. Nextcloud still shows its own messages at the top right, so one screen ended up with two kinds of toast in two different corners. @nextcloud/dialogs 7.5.0 moved them to the bottom left and dropped the position option; the app now puts them back where they belong. - The active button had a white border. Visible on the Income/Expense switch in the posting dialog, on active filter chips, on the underline of the active sub-tab and on the side selector when reassigning. Nextcloud claims button.active for its own pressed state and overrode the app's border colour. - The focus ring was clipped in the posting dialog. Tabbing through the dialog showed only a sliver of the ring around Income and Expense – the switch cut it off. - The posting dialog could be scrolled sideways. The hidden receipt file input claimed its full intrinsic width and pushed the dialog past its edge, producing a scrollbar. - Accounts with sub-accounts broke out of the account tree. They were bold and noticeably taller than their siblings, and their columns sat a few pixels further right. The cause was the expand arrow: on parent accounts it is a button, and Nextcloud gives every button a minimum height of 34px plus a margin – which grew the row to 46px while leaf rows stayed at 29px. All rows are now the same height and weight; the arrow alone marks an account as having children. The faint placeholder dot in front of accounts without sub-accounts is gone as well – it looked like a bullet point; the placeholder still keeps the column aligned. - Text hugged the edge in the "What's new" dialog. It now uses the same inner spacing as every other dialog.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureRpdiBEtKAA1ZA51YvSoVDbENkvtlBocEabzuohgcm5qFUGiUGZLMXzQtGk9xSeAhUOvjMeAsfzeOlQ5ZJTjU7Yp6W0AbHdAALFHCIPiGJTNqUzaHccYXA191IHp/KXpy89kFXUNzX2tBZnnIU4hWOzNXodidjSnuIZnAxBoiZoTSkg12tbtJ0rzCrAoFjolbx1vWBKg+lKGaMtM6qXgGbSNcylqMZ3PIuYeEJ3S+v4OAJcNGnIQtmBWaljdWvh7c6y5GlfQWwvbS6b7leLv99/sRNoaVXId+fXRvUul8O+42tLZ0mpk4GUx0UiE5QtiuagSylE3tmLXvK0F1zm3N56uymcP1PW8p84jbXDszxIDQQfnolu/WOca8gE+l9dBzx1ms/C4LtsfEQw5yzZOSuzxz4Q0PUOmz7A2TKQ0vccRz9qaazd93hhl/+6QGJ1fOfA5vxtbtTwtuONfAgtSkXrKj3uGZU3Q5uu2l2e6a/R0cpYIYexhIk+Xnc0NlOK6t9uNQdH1CTpZ7Rj4FpTteRnIHJTWLTn5RMXW/bJBFTsBoNOAvBIq4RalYd25avk2pnmAI8rQzEgU8+oSJV4Zb5L47lrA5nlVYWn+G0hw83K/dm8/8aRvkhv0th1kE4IrqSWbZ/BD9i8oSNGnQ2mU4O1Z+Jhjkjh55oge2PeLgQWw=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.30.0
Release Details
UpdatedAug. 31, 2026, 8:36 p.m.
Changelog

New: - Receipts can now be attached while creating a posting on the desktop, too. On the desktop the New posting dialog shows the same Receipts section as the edit dialog: the selected files sit in a list (with a remove button) and are uploaded as soon as the posting is saved. Until now this only existed in the mobile view (windows up to 640 px) – on the desktop you had to save the posting first and then open it again (issue #29). File type and size are checked as soon as you pick a file: anything the server will not take (only PDF, JPG, PNG, GIF, WebP; 20 MB at most) is reported by name right away instead of after the posting has been saved. If an upload fails anyway – a dropped connection, say – the files concerned stay in the dialog and can be sent to the meanwhile created posting via Upload again, while the other receipts are already attached. While saving and uploading, the button is disabled so that a second click cannot turn into a second posting.

Fixed: - The Attach button could only be reached with the mouse. The file field behind it was hidden via hidden and therefore dropped out of the tab order – anyone operating the app from the keyboard could not get to the receipts at all. The field is now focusable and shows the focus on the button, on mobile as well as on the desktop.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturefVul/2TJkdc0pI4s1Y3nesPADFrMVwkimF+/qhyka+ikknmlAgb8tVmNFcoT/lKpQrXG/w/qLfY/kGi8v7iBgZz9KZE5ShnnvaV69P1nZkJWaRz+8tzAumubC/5P/lWtQPUsOCkt4MDYknxDIPjkSLv7v/MnqxIfsuG01OnhgzG0cu27t3TRvVjQF6gnJ4sdD0ceokH5Ntnk63elMqDo8EjxZu7/WTktjZuwKWZPgtReRyKVaNsWU5XnhVA+X2tshjvfHNt7UeWq/+T5TJFCIkjF+jUCYwYm2Z71pttdi1qsOMRi/CchrA/a4fAAR9aD/tzLLzgNWXKLywQfFAv6T84bsVOpz0hqq72GSvbYMSRNYlF9e9J//8zOPxxqP+Jq+gFb7jCT+BW76He0nz8luWqvktz/njyxs1QrtS/ITvB8H4YYhJRvw17+zci41DNn4UyumhyxVBk6QNbKCDTrtzsMSOdVqEWDEzgc9JXy1ag2yrrEZPnCIJHckwT50UUkOXwsJWVW/22QIH6Z+k+CZKYeqDcp4GbHiGowvVlnuGcrS5Sc2iA/7ERgc3hHdgEdZ+VNJIr3eiWwnfJba8Ws8wRXeTpw/7qFoAtOkaWen9O3oYmQA6AYiO6yeXG3/QJjQ/KovDPr40ffDA1Fsj79PMIH08ZXjWEPPztSTaNYRoM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.29.1
Release Details
UpdatedAug. 30, 2026, 9:02 p.m.
Changelog

Fixed: - Success and error messages (toasts) rendered as bare text in the top-left corner. Since 0.29.0, confirmations such as "Settings saved." sat unstyled across the header instead of appearing as a box at the bottom left. The cause was updating @nextcloud/dialogs to 7.5.0: the library's toasts now carry hashed CSS classes whose styling only its bundled stylesheet knows – up to 7.4.1, Nextcloud's server CSS had quietly styled the then-global Toastify class names, so the app's missing stylesheet import never showed. Both script entry points now load the stylesheet themselves; a static test and a sharpened e2e test guard this (the previous one only checked that the message text appears, not that it is styled).

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureZNu+0GfB6CNdCwdO8JIIAFJufLn9soTS6/P1RXqQaPN4Oekr/TyxcLVuvcVuNzEYDBGFw9HDZFvX/2GIoeGoK/39vfOELcpkWr9L1K216j14IueTtzIhOtOWr3D1IaMJ+DJ/mNRU6WPvQFV39z80ZOml6fiUJ+FIE99l3VljDq5laYJo9a9MmQfnsOgj7chk0hMp9Y239P2srKL4dX57wU3tTbKdGVpE9qUNqpeGd7GFoCrz/N245oj9hjnIYUcIpEb7/05fgc7ka2/9n5EE0eHHZHxeDe4sRIFTmoitUkiXNvdxF2v5a7VVaECeZIQBoLVBfsVn+w4s9JzIbUMfz2V3ZtTG+EZt91lcD7PcJQwOp1JLRMGZFVv38CW65cCaIFNWya+YoMV/+C63sM2yjuO1WLDHdOOcBdwosksiljUSpnl/MhcCFAUyPMsugG5y5aQSnwXcEQ8C5tMUPTPZv4DCI7mAaSrliAkg2llZeU74XWy7FNvlp7ILZYPgFbBJOd+LB+qXy5DTArfTYhFspVZEPUGdMXS6hq1ApJcd9ZwT1rHbZimEGDx7EhAcmMZK3oIpPrYr0ULRqpSub/rcV1GgLsS1zryfb26r4T1qQrP0qwajmpIBLsOhQNODbD+ejcSrQECDw6BTaBlm278v3OrwQVSiOTWw4+EoCF2HxeY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.29.0
Release Details
UpdatedAug. 30, 2026, 4:45 p.m.
Changelog

Changed: - "Cost center" is now "reporting group". The report, the Manage reporting groups button, the field in the account dialog, all messages, the in-app help and the manual now use this term; in German Auswertungsgruppe. The trigger was a question from an accountant (issue #7): in cost accounting, a cost center is a second dimension on each posting line – an amount is allocated across cost centers independently of the account it is posted to. This app does something else: it groups accounts, and an account belongs to at most one group. The old name therefore promised a capability that does not exist – and strictly speaking there is no such thing as a result per cost center anyway, because a cost center carries costs, not income. Nothing about the functionality changes: the same three groupings, the same assignments, the same figures. Groups you created, their codes and names are kept unchanged; no conversion is needed. To split one amount across two groups, you still create two accounts for it (ideally as sub-accounts of a shared parent) and split the posting across them with Split…; manual chapter 5.4 now says so explicitly. Internally everything stays as it was – table vbh_costcenters, column cost_center_id, setting cost_center_mode and the /api/costcenters route are unchanged, and there is no migration. Older entries in the audit log keep their original wording.

Fixed: - A deleted collecting account blocked the entire settings page. If a collecting account had been selected under "Contributions & SEPA" and the data was then wiped via "Delete all data" (or an import with reset), the setting pointed at an account that no longer existed. From then on every save on the settings page failed with "The selected collecting account was not found." – including the club name or the receipt storage, because the page always sends the full set of fields. Resetting the data and deleting a single account now clear that setting as well, and it is only validated when it actually changes, so an account that became invalid later (after removing its IBAN, say) no longer paralyses the other sections.

  • A deleted Nextcloud user blocked the entire settings page. If a Nextcloud user was configured under "Receipts" (receipt storage) or "Bank data" (watched folder) and that user was later deleted in Nextcloud, every save on the settings page failed with "The specified Nextcloud user for the … does not exist." – including the club name, because the page always sends the full set of fields. Deleting a Nextcloud user now clears both settings as well: the receipt storage falls back to the app-internal storage and the watched folder is switched off. The user is also only validated when it actually changes – for the deletions the app never learns about (a foreign user backend, a restored database dump, a deletion while the app was disabled).

  • No Nextcloud user could be selected in the settings any more. This affected "Receipts" (receipt storage) and "Bank data" (watched folder): both dropdowns only offered "— internal (AppData) —" resp. "— off —", the list of Nextcloud users stayed empty. When the settings moved into the Nextcloud settings (0.25.0), the page lost its binding to the user list – the list was still being loaded, but no longer passed on to those two sections. As a result, receipts could no longer be stored in a user's folder and the watched folder could not be set up.

  • Illegible labels and wrongly coloured buttons. The app used Nextcloud's light status background tones as text and accent colours: "Expense" in the posting dialog was white on pale pink, the remainder shown while splitting was barely readable, edge markers and warning stripes faded to pastels. The dark theme was also tied to the operating system setting instead of the choice in the Nextcloud profile – picking "Dark theme" there while the system was light produced light colours on a dark background. And several of the app's buttons (the income/expense toggle, the checklist links, "Skip", the suggestion chips) were painted blue by Nextcloud's generic button rule. An automated contrast sweep across twelve views in light and dark theme found nine WCAG AA violations before and none after; Nextcloud's high-contrast themes are now picked up correctly as well. Two superfluous separator lines in the header area are gone, too.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureyQHwNNxrBjVIKt7MFaMKoeJwKVfhHDcVQwZDFVsw8Si/nVH9ZKTFaSh3U40O+M9pUMS0orOFnbrKEjuQ9VlcDRYhzlxkzal2X2gSNnVZEnMSEEWT4M+1wyvGfy0aPh+KmX9u1udqC6ERlVJXzWU6Bwn2/oUuktI+/j3LjlegsuiW/OeDz1raNNoYvl7p6f5dSuSfItaPqtcbGjjefw+75WZhJXdf/kwkJWPLPkU16i8PZsR8VsShq0ZQV/8HtgSQJ2o3HVwpELHA2onV8rmNbvOsvLj10PxDjYlD8jNom4YuAMCpn9cx2ynOtVS0bQFHHmhtqdq7E4sumSJkf5m1m2n/Y5R5mID1qiCEAtXNcyoRhOz0Dl7bnq4Lj7KtxYTHxurHdRAo/XSngwP3Uk0Tm+H2HP+m2qDCxLpY8aBR7ISrTzR4YsvwRZCv+7U96RhMVJ23Zv4tRf3SW+ohI+hRwLWYQkyfbKOht+i0EvuZMjubbOUgOMdwHMRVQfqF1IV1YFN3IV1+IfkdeTl2KuyFd6h7ecg9KjmUcE4ByS9TZdU1O+uF8MLBmzLBsqTKKNCruUXgOOJAeOcewfPsxJkZj3yzH/EmAiS2Yww1MZRI323vh3gkk+Nk4OzvQeidOwX6wq1cR9AEZGUpIrzyTDqIYI6S8Y+c/nxQDCyCBtZ0s+8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.28.0
Release Details
UpdatedAug. 24, 2026, 9:25 p.m.
Changelog

Fixed: - The interface stayed German even with Nextcloud set to English. Until now the app loaded its translation bundle straight from the app directory as a file (l10n/<language>.json). Nextcloud's shipped .htaccess only serves files with certain extensions from there – .json is not among them, so the request ends up in index.php and comes back as a 404. The attempt therefore failed silently in every normal installation and the app kept showing its German source strings (typical nginx configurations behave the same way). Translations now come from a dedicated endpoint (/api/l10n/<language>), which is not affected by that restriction. Server-side text – manual, audit guide, error messages – was never affected.

  • The confirmation for posting a SEPA collection showed a red "Delete" button. Two dialogs were affected – "Mark collection as executed" and "Undo return" – both left the button label to the dialog's default, which is meant for deleting actions. They now read "Post" and "Undo" and are no longer red. The default label is translatable as well; until now it read "Löschen" even in the English interface.

  • The buttons in the SEPA collection list were cut off. The action column is fixed at 160 pixels – a width meant for three icon buttons. The four text buttons ("Show rows", "Download XML", "Mark as collected", "Discard") wrapped onto separate lines there, the widest one stuck out of the column, and that made the table wider than its frame: the buttons sat half outside on the right, and the "Created" column was clipped on the left. From 900 pixels of window width they now sit side by side; below that they still stack, but inside the column. The same applied to "Undo return" in the expanded collection list.

  • "The accounting was changed by another person" – after your own entry. The app compares its state with the server every 20 seconds, but a change detected that way only counted as your own for 15 seconds. Since the comparison runs less often than that window – and is deferred further while an import is running – the app regularly reported your own larger actions as someone else's change. The measure is no longer a fixed window but the moment your state last provably matched the server: anything you wrote after that explains the difference. Genuine changes by other people are still reported.

  • Sphere, reserve and cost center names stayed German. They came from fixed strings in ReportService and never went through translation, so the English interface read "Ideeller Bereich" instead of "Non-profit purpose". This affected the sphere overview, the reserves overview and the built-in cost center names.

  • 22 missing English translations added. Among them the default-fee hint in the member import, the labels on the SEPA collection cards ("Total", "Due", "created"), the "What's new" dialog and the first-run hints in the help – all of which showed up in German in the English interface. A sweep of all 850 strings in the code against l10n/en.json now comes back without a gap.

New: - Member lists with English column headings. The CSV import now recognises English column names alongside the German ones (Name, Email, IBAN, BIC, Mandate, Amount, Frequency, Start date plus common variants) as well as English frequency values (monthly, quarterly, semiannual, yearly, annually). The English manual already described these column names – now they actually work. Existing German lists keep working unchanged.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureInHxPFEZyBd3yG1z+2uy6aKBsx6FyoN3f5ANpltNQ5cdO4ka3WjXGr2qoXoxzwiAF8GuehGrB49Y6PG/J0rD+NDfxrlsdagjW962RfIAbfy7iuyWyAJXG5zzUuCtBXrNsF+xX2p0oJCgxu3pP7py734yG2C0O8QlnzfNMv587XwlN5T8u4tnxZBpaFgDppx4M8T64wwirD6fXIHZ2XscD6Z93lTwONEJ6QinuT5GVXPz/xALj09jIfau0QUlf7ASK7ZW+RafURPvEJv4yoDfz9pG2K5rp6j9eKsRy542OlgWasYWiQ/AsOAzhrlbXE6I5tc0RV+PgpE+1XeFrZCKk7Eh1bBFUjBEpd8wrdaN4SatC3izCdry/SGmO7cZnD+pO7aYtOmDpPUKJcu3AByHkWNj9XR2o++1dlBDHBgVc5pI1LZrkFsS0COfvBle46qoasWmG1O6FCUtHe5bG13owgxzujgc1X9OuTc0PojlMQObD3h7aiwwYFHhQKellpUdYiW/VBfWSIb6pEHDkronPwWG1LitX7khY8/Nwfc02xDIDhq547Q3S+pYaIB4uh8mkr37bdQf/ThAwKHRBCaaRpFfq/mflPgLy1xHJ5G7VWdGTaUo2DL9ABLuSLG0q0x4kjt5cJVZlgNpkDJzvxjndy1t7mU3KR5XB/VNqiV1gm0=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.27.2
Release Details
UpdatedAug. 23, 2026, 9:40 a.m.
Changelog

Fixed: - "What's new" popup from Nextcloud showed "[object Object]" instead of text. The 0.27.1 entry still had a ### Fixed sub-heading in its changelog entry; Nextcloud's popup renderer (marked v18) can no longer process Markdown headings correctly (see note above) and shows "[object Object]" in its place, while the rest of the text renders fine. From this version on, changelog entries avoid ### headings.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureNgfXL4Rfqyk2fMRoXHkcuOpie+84LH1qIhuhJ+Sfs4K29Xy5fbifWMVhWM2HBTEhfNqQaqLJzVzi4BVDV1rjlvMjD4O35H5QACv4J8/3jiw76kJTS44yTA5zVcnhWhBCqr6yuB8jTx7hco1x7uCo2ywbJvjJ187R36mNfVm6ZjcKhTDNwRmM0vKJz4GaOubDo4btXQbQpFhFUPAUVRpfRTVYfJKvuEOmTo2NWScedIG8pFocJL97l9EAymq0XconkOSporGYKouX6WalbuG9k+EEdPsrNaRRilNfOGQ2ffVXy/nMK4Z7SiF/ZGuFA5K0VI3TlV/KkIjm1o50gjAnu/9kko9C4aqijlY/chU/h84MDfwGC3omb00NHhd9aCuaLp3JoZfoDgQjdtSrQQA/n/EC3o2WwXJknTUxamNroeviXVFrhNl7CtI98yXhVExWePLfdmVb4eCDZl9+BsibH6nM/tQV52hToGpSyYJ+xUehhKV64dOQjf+f7BaTo+uK18vXNin/3lph6p+sLUkB4T1nli5F2kajhzZDA1Q0AC6JlWQ8YiakUO+94I5FqFruv46S+89VTbE3co9cY8kbPImIAT00o+g7N6E+SUPvFYCryYYElWJkv8TdUBGkA2wYRshimV3lcg2nDNrQmvQfk6y3ttSXstnqlnOQd/gdyi4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.27.1
Release Details
UpdatedAug. 23, 2026, 9:08 a.m.
Changelog

Fixed

  • Broken "what's new" popup from Nextcloud itself. After updating to 0.27.0, Nextcloud's own app-update popup (independent of this app's in-app dialog) showed "What's new in {app} 0.27.0" followed by "[object Object]" instead of actual text. Cause: since 0.27.0, info.xml carried the app name in two <name> elements (German/English) for a localized App Store title – but Nextcloud's update notification reads the name at that point without a language code and can't handle multiple <name> elements (a Nextcloud core bug). <name> is single-language again; <summary>/<description> remain bilingual.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureaeAWQtCQuWsCH4+c3wMP1uOdvyL3Q9PzYaU51NlPZUEdQAKmgJ+hr6P3RcagnAVVx9RKun88DqgEASp3wfO4PQoctWxw1f3x8uj+jEw/Lsm8/kKfOJRzBWMOHRyOhnvUDQeNtmJ3D/63gftHG2+KWgiEBSAuMf1hqoR/4fg+zuqh9sxiuwAEwDYgP6JMEs8zgLC9bfcbRgjpg9upN/G1pGYkFgIFWNkhO+ETFSj/Qvd5V5o1fMhP58GPNQFsLOy6/sMhxqznyvqr4cgBfQyd4BETkrJ7GY+6EFD0NmGy6SDiSwRYzBgbkaRyjZAd1DSg/Sybuztz8SzWstRdyse43I6DhndKTFj/keK4I8JJperJv8NVF2/y+ZBQwZIywDns4uuAvXbYmi6soFJFiu2RV2DMSnmR90g2Y07mp+pMQ3S4XBpS+cFaBcxElefyrCGMe1dEnhLWgyITH9gHgfztT4KFzaTWc3XGRH6RUbPxyyxwWsa+C7PnA7S5MgegXrXichoDdAQecWRUqTBf61nQOJB9i83dMYQBzLeFdEMWG9MDcPfJrasHG5hFRkBctvY6j5yrLhZHu3u0hEeX8xk3/nTSZbkpBjklAooT1qb46Za+EA2TbGKv5UPb3S1pONIqIN01poeZ1dRhry3ddlt+WdLbwfeFm9GvOaj1/xDivVE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.27.0
Release Details
UpdatedAug. 22, 2026, 4:51 p.m.
Changelog

New

  • README, manual and audit guide are now also available in English. README.md, CHANGELOG.md (from this version onward) and HANDBUCH.md are now also available as *.en.md, with a language switcher at the top of each file. info.xml now carries <name>/<summary>/<description> in both languages, so the App Store automatically shows the right one. The manual served in-app (/api/help/handbuch) and the printable audit guide for auditors (/api/help/pruefleitfaden) now detect the user's Nextcloud language setting and serve English instead of German once it's set to English. The chapter deep links from the in-app help (HelpModal) now point to language-independent anchors (section-<chapter>) instead of slugs derived from the (then translated) heading text.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureMi3raDuOYadKfpzYefG7vj6dVm3swn9+mt9ruKaYeQxm5nlbfNi9FewA5R6IJqVP0EcpSSE1h7LfXS25LueCsPlRyIWQ5nz+qr2dQkynflesWDyZzoVt/lSCcQyUfJN0RP+dVXBCcpiltKKKg2FNZzxxmj9BxgL1nUimMSi48FG7xwmFRXeXcBX/fIAF2EOnOCwVF2vlZ18jju+bJQATEQZ5cH2jIWi7g1gD2eWlQYUie6Qww8WU2n33XikVLQpVwDuk6TFz7aSJJ/Rq09b1w4uJhUCIq9fnV0e88dSMjrjj4C/rJdgf2+J/BFcvKJh9KVkBNzkm4FkTxRyRpTew+wqeem5+EdsAHoyKggJqLmbS7KSujXscwA8SzSzvwd+v+MoJSHu8I6V8Fo5Y9z0b119jg9itfR3X5lNsly2bVj6SrMrEAGo+ER2nNWCwDs38/3+2bgXPAZrdnyER+kqpPy3NgdCRiGAK2wWo/T+5fS5P1wncauXqaDLPH7V4wHNBAib9cxUgaiyDzxl+uvH4v+SZC1IMlEfwfZGZjUJnBTY8OVLpNC03LNDVgQkBp65plEnfavZ4oyd4vc6RSA7y9lr57WtuE3eaOohGp4OoWZaOn8T3T1OnzIGMbryiTGF771CikEdUNFbhGi3KAi+mz7CGv3ZVTZCkdyqnoOopXUs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.26.0
Release Details
UpdatedAug. 22, 2026, 3:27 p.m.
Changelog

Neu

  • „Was ist neu"-Hinweis nach Updates. Nach einem Update zeigt die App jeder Person einmalig einen kurzen, auf ihre Rolle zugeschnittenen Hinweis, was sich geändert hat – statt dass Neuerungen nur zufällig auffallen oder gar nicht bemerkt werden. Der zuletzt gesehene Stand wird pro Nextcloud-Konto serverseitig gemerkt (nicht nur im Browser), damit er auf allen Geräten derselben Person konsistent erscheint. Über Hilfe → „Was ist neu in Version …" lässt er sich jederzeit erneut aufrufen. Nicht jede Version bekommt einen Eintrag – reine Fehlerbehebungen bleiben unerwähnt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureSSJGYRSPKYldBCTeEervEPuSTfCzZo4MueT61i50B0YTBi7eSIAZT8c4YPEN2OpNjr8ZZHeGBGjgRqVRHaa9ewHtue5Qp6UDCdeCw5O9G+pIHNIXY4kENM87wt+15KOrQ99WvuX69vR5L07S3AFcoGEFocuB9IYgItFt5hTNi6+MyNgMt4IoN0nHgON9oCBrGxo6zxDuhZMrE4n0hYAxtgH5iFUmWEn2OjPvlYrkWnKXo9G4v0/4fR0xVM+N/6wg6Zgmox/4NPKfU+BjiQ5D+erMxOzxm0CDb9tCVk4BK7Za/vnkJtpcb34h4M2NJWTHgWsnkUlmPLvIPbwNtWOgvuyAOOUoviJLJaU1nt17AFHSaHwC5WQtDbF38WyPOKMupMhvjLYZsAAxrMogZUE0Mf51aUUxfm4wFsWRp+kjkQtFd/yavBZpL3qKvcAg25Doc3AtJEpar0Zxd8T6sQx6S+rkzcQRmWemAsq3gQO/WwqKIwOwiXy7ny2m9SZqY1ILL/8S4CZFw+kuZuwT9OjOIIMbxXpAt5R9tpXMqDTGRWmfZ+UEaM3G5TGPBqWPG8xOM0Tj2yocFSGGMFZfqSmRvuDKbogFaTzcrGg12i1a78tOSFDi93IqeZfPLEaD248RKbSDzVAyWkvx5aZDPmJoawif7uCMsGyEP5RQH0FwWHY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.24.3
Release Details
UpdatedAug. 15, 2026, 8:01 p.m.
Changelog

Geändert

  • Beiträge → Mitglieder: Bearbeiten-Button zeigt jetzt das Stift-Symbol statt des Texts „Bearbeiten“ – konsistent mit den übrigen Bearbeiten-Buttons in Tabellenzeilen (Buchungen → Regeln, Journal).
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureF0vMWEnRu1h2zXCbNEoRJPpy8dqSTmHO/nDWrvyWGXZbI3yyjjjWNoUVyVnjdXiQvSRdwGpMm5zMTft0hXf1UVa5VqcCvVh1OpqSIS26VB8CUAO9ZjP1fmQsaj3t/MOcOfLqrJo9H/JYa5jXgZalnQexVhNN6si9CvTGkZEopjwq/q5f/8bwuS3K25Ich3VIFJXp1ay6YFNjhPnfY5T2SGVBVNE0/Tzen5gTL3LtJnhzoP3//aArkzqH1RjgQC+nOr4Za/wXCRrfg5rbnxpFC6oirrNmvtaw3Ot4y3MVoSktp0h+ssRodoO4DFQtr3GohwajY5+QA6pKhGuDwgvpJjKWUa9TJzCxqFkNsrOkx1P/CjNwLneTUraAZlSuyen8mpQjrJePzpSQSZTn4VPTcrM6+BcrUrygURMz3zEhdDdRRGJQJV+CWxDTLFMbDoZQfuYZWI9RBkesC3HjwMYy9rdmAsmV3Ygnp6JrM/z11qklkCZBkxBzizAuR6GSmTGDdVJ3YDRVL3j/BccLKdrTIaSbTsGAwHT2rDO5LSrikLoou8kcxKvgQf64JgaO0DedpxEcMAk6dWRTxLo2EjXVjDaOBIHg2yT5JCBb/N/PKJ/fx+2iwol/PjGIWWHZT4/lvDOnUjygZ6u12s1MQRieORB/zO0xz8jeIAf7X7xbJdg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.24.1
Release Details
UpdatedAug. 15, 2026, 6:04 p.m.
Changelog

Behoben

  • Modal-Überschriften schwebten am Browserfensterrand statt im Popup: NcModals :name-Titel hängt CSS-seitig als Geschwister von .modal-container, nicht darin – bei zentrierten Dialogen (Einstellungen, Neue Buchung, neues Konto, Kostenstellen verwalten, Sphären zuordnen, Mitglied aufnehmen, Importe, Hilfe, Bankverbindung wechseln, Plan-Stand, Willkommens-Assistent) klaffte dadurch eine Lücke zwischen Titel und Box. Betroffene Dialoge rendern die Überschrift jetzt selbst im Inhalt; auf dem Handy (size="full") bleibt der eingebaute Titel-Balken, der dort korrekt über der Box sitzt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturemZBEME1oniTSxTY9AmcBwrzJDrnU2MPLyQSXHoUEf9D42t3aQ+3A+GsoTO5B9K28MZwblObWytuz6tF5XjeF/o7V7bwag+KfSwVn1fWo2v8Jzqh/KzZ5cSDorHEjhRMLrr0v7zGXM+J+VSHdxtQ7X4JhOtnRMEtq8eD5/ogYZd7IwCTkyXkG9dMvvIDqO0npTQc6SegFiWr5vQqnBmcTf4YSb5to3j9OgPfeHJslrr01r2KJFo86iwexm6hS57d/QgldWkSPBWcQX/mO3Ss5j7HwP3LdrvgfLq9KbUeS/+iYkPXHmL76edhDIU2iNq6pHg7dDKFekFWOEnCp2jPx7yyzffLZ+vSDSgCca08FHdXcLPIqyihAtzM0oeQYQ/b9CQaVq4h1vKKpYrsS5Dexl5y3fY3LfwzJBZ4gNLaSIcixGphGf8L/vxQCvpqsKox76CniRA5f+ad11pkbK+0xCXPUZYfm7x+Rdz5tGfEHnlI+S76OHBTnHfksY2sXMki0iGDad5iYFr6TjGAKWZA9Exlgvuh1I0ZWnCP2ItwHeTVbAPsupVazB8aDTuBSr4HxeM16XnAZAthMgdJtQAkVqjV8iiyKnOKYLohSlaaTbFLjNDHhvbAEa+sgdDUyQhEr6nv+yM4gElpqjtu6E5sb7FlCGn/RIfflVeR2y5w45bU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.24.0
Release Details
UpdatedAug. 15, 2026, 5:37 p.m.
Changelog

Geändert

  • Berichte → Kostenstellen/Sphären: Bericht bekommt die volle Höhe, Pflege wandert ins Modal: Seit 0.22.3 hing die Pflege (Kostenstellen anlegen/ zuordnen, Sphären zuweisen) als zweiter, oft sehr hoher Block unter der Split-Ansicht (Baum + Detail) im selben Scrollcontainer – der eigentliche Bericht war dadurch auf min-height: 360px gedeckelt, während die Pflege den Großteil der Seite einnahm. Die Pflege öffnet jetzt als NcModal über die Buttons „Kostenstellen verwalten" bzw. „Sphären zuordnen" oben rechts im Bericht (gleiches Muster wie „+ Mitglied"/„Liste einlesen" im Reiter Beiträge) sowie zusätzlich über „Konten zuordnen" direkt bei der Baumzeile „– nicht zugeordnet". Der Kostenstellen-Modus (Gruppierung) bleibt sichtbar, da er den Bericht selbst steuert – er ist jetzt ein Auswahlfeld in der Kopfzeile statt einer Karte im Pflege-Modal. Damit entfallen auch die CSS-Sonderfälle aus 0.23.0/0.23.1 (.vbh-sectionbody.is-split hatte nur wegen des zweiten Blocks flex-direction: column und ein eigenes .vbh-section-divider-Padding gebraucht).
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureF4fcHxqtwK40/pbTvqEDMLCdTPDegYcr9z834SwpPuVWNTebRNgwEDPMkdeFqpQkrAANpyo+818P/va/RY/OPVdRo12pkmyZVkdOcW7F6GtIpAj6GHKJBw60oxJ4VT6eld5b/GaMD6d9kkfYCuiCziaVtM0p1RIwBWNSmqrH6Ru/yEQftJx8Zbqg6+QgDOy/PGWZ9b/73fPFfifNu0btD9K3XEvJGAJp2GRLuUiIki8eeUHf/3fMDj1xPFtr9y6avxoNkgBS2Zqfi6OLXfRNK2lqHdbUbcmXU1f56Qfgx/KnOy/yrkVSjs0pzGUOAl1vCZTp0Yzq7+uuUD5jVMvpGBJ953jvEPXlM7DzHmElf9VL2rcy7SFHKjB80A8FptkdSMCG4qe3HUU/W0ImlUhf6BD0p3t1ElHI/SEsjjggabLebxk8B+nNOAyWJWCagiEA615yaEzTiH5kH+UylKzGXvih2CZvcGeGo59m808ySvRCtkskfyyDDMpv8GU2kzeFPsCdB0DOO1SyNFfeJznKMLu+fX3H0phF8IhcrwnVCloeGt5p6VPzfgAOcT3MlUDVDqoQcfyoJk+Z0+qGaoJ0F7cLA7+PnsgRpEsI6/J2XHDnCkimNPWJFDn7JAh33aDYx03CKXaXwVnx5D48V8oF4wrk5OMt+lK8YVjJ/z5UKk4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.23.1
Release Details
UpdatedAug. 15, 2026, 4:41 p.m.
Changelog

Behoben

  • Berichte → Kostenstellen/Sphären: kein Rand, weder oben in der Split-Ansicht noch im Pflegepanel darunter: Nachbesserung zum 0.23.0-Fix, der die Split-Ansicht (.vbh-splitinner) wieder auf volle Breite brachte. Zwei getrennte Stellen hatten trotzdem noch keinen Rand, weil beide bislang nur implizit vom umgebenden .vbh-sectionbody profitierten, das für Kostenstellen/Sphären aber bewusst auf padding: 0 gesetzt ist (die Split-Ansicht managt Innenabstände sonst selbst) – bei der vorherigen ~1px-Quetschung war das nie sichtbar:
  • .vbh-splitinner selbst (Baum + Detail: kein oberer/linker Rand) – jetzt eigenes padding-top/padding-left.
  • das darunterliegende Pflegepanel (CostCenterPanel/SphereAssignPanel, umschlossen von .vbh-section-divider, das sonst nur als <h3>-Trenn- linie in schon gepolsterten Containern vorkommt) – jetzt eigenes horizontales Padding auf .vbh-sectionbody.is-split > .vbh-section-divider.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureJUeU+au31gmFileGZvqfqHdz76kVE7sRd5xouf9LGjP4c8r9h8aQbrSozYWtASvPi8iCRh+FoqWauREynx88pz3ZnI0+FJfQBn/SIxy/ZyBSfiNyTVIwCi8NTYlp1Zo479tDt81my6+kaVDjfCRdZbyncuHugwpZbyxeoRuKtH21NenZVmGviCplJhiHgXYKUS6W4cgOMZ0IeOeP5aSlaigfbf39v5wf7nEPtGRMVmjmODXRa2T74Rbwmf6i8ujxgKklBeIY9jimJWqoQ5gMas5eE/swEnQsiy2xNgw71xBUtkyrMWKLw0LvPg5u2czJ1RlDVcQoC9MRUs3lY2N7A7mlkIIOaNCH+VFwpYddpR+yZRpCqaLUf4NyRynzUnk/p/PIvcWwhmL6tz2Z59ksgrvKLjcZqhE693JLvXKDVWXwjxg7tMUHBpVR8lwKyEAfXxQiuLkktTeCaHqEsA1ag94uVirj8GgJwzrpYBP6hPuopBgZ5yqto6nDLNfTzA6xzYhcYBM4Hi7M8XmK/AMr791kATi2pjVSq7RmYBGUneyRe40dqUDCR87pVzgQuink8cELbyDpAXlhO5TqAd/yxxmqrdX/HXWHiWSBuEj4qU2y0zcfhi5G2oLdaA5Fkr4PO874E5I8Eco51QUZFUG1LLPCBrIl3YkL0MicAqpEIe8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.22.4
Release Details
UpdatedAug. 15, 2026, 12:35 p.m.
Changelog

Geändert

  • App-Store-Beschreibung aktualisiert: Das seit 0.20.0 bestehende Beiträge-&-SEPA-Modul (Mitgliederverwaltung, Lastschriftmandate, Sammeleinzug, eigener Reiter) fehlte dort drei Releases lang komplett. Ergänzt, außerdem CAMT.053/MT940 und der Wachordner beim Kontoauszug-Import – bisher war dort nur CSV-CAMT genannt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signature4LRi0axgsMDOcm6JxlvfjNIxZrlCLVndYp1Nj1ffQ3gJMixwlFkR0kI8Eri3poO2kHRfnc5hFZZh+0qQ3nFBBDPLoSXIlwXOdh0C3/CsZxPvyYSFjbW5ZP6+e0LhExYd7UMl1lNeXNqAgfqw2GBiwRXeBFf1lwkcoDWJY6GF8U2KDSwttbjQny3cK60u4nHfHM0ye+NochsmaoUdUyJCuvV1fsERFp2bDYt8KmwJWB6gIX7koTp+4JXIEFzxuREAij0b5A8XOZlMQvlGYKcZatwyR8oQXFPOLUBRt3yZgAfWx9+nx9GXaMQYQ2l1p3nv9C/TmgiMdpALvHfhFCBnqIVvcEBMizpNmRyPEelbb1Q3N4/2kRmbqV0e5dApltmb6zdcdWGl26PIGyTjgmN0jFiftM9OGIcinCBBH6vEpo/y6GBsthf1cLbBGYYe+qZMamxruF58MQ01KCkCzUtGSENUVfJKtS04v7+0gB0SPMkAh/KJb4bNf9qajfqD+1apWm5ceWBtTY293YlqGfEDDXPWeRfp1YcFfxkul4H/tLwVeonyFQJBZ7FTxeDUAeY+JlrruIs79av7ERKGFbS/4LHdQc1G992yy6BvTFVK5f/7M0tWAgYteUHD0IVdKlPRPiGrg+oycs/XN6v+RE9uLdHSJrUIMJZXf79DNpI47fo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.22.3
Release Details
UpdatedAug. 15, 2026, 12:31 p.m.
Changelog

Behoben

  • Konto-/Kategorie-Auswahl auf dem Handy war unbedienbar: Das Bottom-Sheet zur Kontoauswahl (AccountPickerSheet.vue) rendete zwar in den DOM, blieb aber unsichtbar und unklickbar hinter dem Buchungsdialog – Nextclouds eigenes Core-CSS (#content { position: fixed }) erzeugt einen Stacking-Context, in dem das Sheet trotz hohem z-index gefangen war, während NcModal (der Buchungsdialog) dem entkommt, weil @nextcloud/vue seine Modals an document.body teleportiert. Das Sheet tut das jetzt auch (<teleport to="body">). Gefunden im Gesamt-App-Review, siehe APP-REVIEW.md.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureknAf0tPINZuLUg1pagqwrKg05TXChSaJ4x8RZTzPAJb0p3KwCoujY9sFQcjXmJGzu+Zb/3V0yNdJrzeZYVdl6272s6V0D28Yk2t7wFeyY1EKr/HsX0KjIQ4g8iCbZ13JfZOftXuoIIbGNYCR/N1r9R3559J49r0npp2F7ieEZ79eCdehumskUMxvjLnElh2tB4rfxk/JH42/PoBPuftBGJTQo3N6g5B9GmFIWKEE+EytiSN7F0Y8PCWdXts4rNQDaPvWnu40GHvJHfLv9wfX/21Kjtt8pB2WdJFWAvkrDLMXFsAwOJsQ+nprVm9jRQzQv2BmP4K4eBoHietPezxrJSqHgfFSz8jG0yTWRgOaj/BdSv8AbgxvubwS9F+l1HDNzj2tFH4WjiITbYv/MdZWmhz8+aTtlhet5uB61eSwGoO8r0Gwss/NoWcO/oq9beqH7Z8uWr4724Q2r+58PWZFdeZ4HNH5PzJxnNaew0KY0sb6HDkdKUbcgXwxywImKJuNQU2J9HWKrWlledlf2gXOmHpcHhH8mfiKgiQ4I5SN9w9ikJ33UROZfBK1kt9CRmwW09oPsV8ARAS3pp0l8wnTsdwuIYxMWoWoIqGgWfdfUTUfXljwsjKl88/wlxj/E4QOjYxJlOo7AOr2XnMjzgDHb5AD6eyPxpzvu0hLDUQCmUg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.22.2
Release Details
UpdatedAug. 15, 2026, 9:12 a.m.
Changelog

In appinfo/info.xml direkt von 0.21.0 auf 0.22.1 gesprungen und dann auf 0.22.2 weitergezählt, ohne dass 0.22.0/0.22.1 je getaggt oder veröffentlicht wurden – dieser Abschnitt fasst beide Zwischenstände zu einem einzigen, tatsächlich veröffentlichten Release zusammen.

Neu

  • Standard-Beitrag (Zahnrad → Beiträge & SEPA): ein einmal hinterlegter Betrag/Frequenz füllt „Mitglied aufnehmen" vor und greift auch im CSV-Import, wenn eine Zeile ein Start-Datum, aber keinen eigenen Betrag hat – bei 80–100 Mitgliedern mit demselben Satz sonst 80–100 Mal derselbe Wert von Hand.

Geändert

  • Navigation aufgeräumt. Das Zahnrad-Menü „Einstellungen & Import" hatte über die Entwicklungszeit 16 Abschnitte angesammelt – Einrichtung und laufende Arbeit ungetrennt nebeneinander. Neu:
  • Reiter „Beiträge" (Hauptnavigation, erscheint automatisch sobald das Modul genutzt wird): Mitgliederliste und SEPA-Sammeleinzug, vorher zwei Abschnitte im Einstellungen-Modal. Kennzahl im Reiter zeigt Beiträge im Rückstand.
  • Unterreiter „Regeln" (Tab Buchungen): Auto-Zuordnungsregeln, dort wo sie auch entstehen (Blitz-Button beim Zuordnen).
  • Kostenstellen- und Sphären-Pflege jetzt direkt in den gleichnamigen Berichten statt im Zahnrad – inklusive des Kostenstellen-Modus.
  • Das Zahnrad selbst fasst jetzt nur noch sieben statt 16 Abschnitte (Verein, Belege, Bankdaten, Beiträge & SEPA, Berechtigungen, Jahresabschluss, Daten). Der Wegweiser-Hinweis „Kontoumsätze importieren" darin entfällt ersatzlos – der Import steht seit 0.19 im Tab „Buchungen".
  • Keine Datenbank-Migration nötig; bestehende Installationen mit Mandaten/Beiträgen sehen den neuen Reiter sofort.
  • Import-Verlauf konsolidiert. Die Liste „Bisherige CSV-Importe" unter Einstellungen → Daten zeigte dieselben Angaben (Dateiname, neu, Dubletten) wie das Änderungsprotokoll ein zweites Mal – beide wurden bei jedem Import parallel beschrieben. Die Liste entfällt; im Protokoll (Berichte → Protokoll) blendet der neue Schnellfilter „nur Importe" alles andere aus. Die dafür genutzte Tabelle vbh_imports wird per Migration entfernt.
  • Buchhalter darf Mitglieder, SEPA-Mandate und den Einzug jetzt vollständig verwalten (vorher Verwalter-only) – die naheliegende Rollenzuweisung für eine Kassiererin ohne Rechtevergabe-Befugnis war sonst vom ganzen Reiter „Beiträge" ausgesperrt.
  • Mitgliederliste und Einzug zeigen auf dem Handy Karten statt einer siebenspaltigen Tabelle, die dort zeilenweise Buchstabe für Buchstabe umbrach.
  • Aktionsspalte der Mitgliederliste verdichtet. Seltene Aktionen (Bankverbindung wechseln, Mandat widerrufen, Löschen) stecken jetzt in einem Menü, „Bearbeiten" bleibt sichtbar – auch am Desktop ragte die Spalte vorher über den sichtbaren Bereich hinaus.

Behoben

  • E-Mail-Adressen mit Umlaut im lokalen Teil („m.müller@gmx.de") galten beim Anlegen eines Mandats und beim CSV-Import als ungültig – betraf reale, bei gmx.de/web.de/t-online.de zustellbare Adressen.
  • Bestätigungsdialoge für „Mitglieder übernehmen" und „Rückstand nachholen" zeigten einen roten „Löschen"-Button statt einer zum Anlegen passenden Beschriftung.
  • Der Reiter „Beiträge" blitzte beim Laden der App kurz auf, bevor er endgültig erschien.

Details und die zugrundeliegenden Personas/Testfälle siehe BEITRAEGE-REVIEW.md.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signaturex48JlqGMXQOEaHamNLU5I92XD8JO7RRlVz+NQWzdhhCHRf7bzPbVOwBBtNofZkAjw6FX/GYplKBB5R3C0SoybBvYu/czmifo5N7buFkuxe7GwMcRLe3nbRixjNY/qxWW5aEuR8PLaD/QHkRSWqc6aiUG+rg3kLKhpcug8CSn2IxCXVwALeB73oUz8P7UxsKtnmHyGOyi4SxCsog23Rt+LNgALU47xdN5sM6/rkt6HkO38pI/+CHzJWE7P+OrG+omt9q4LPrA+eTKIRgU8UUdVRv99ll+63WmgdBEUvn3DANgw6gjGHOdN3TPRqCbIpAXh1LD91NFg6J+e9DnbvkcZAWbPddUsYMyyCaXGtBSd6aCU5i4TwwHOpIisQZzWyFivOMcW1upaa+iHkVxU+ny82ED+ylXnp5QOn9k/502fdfKMSeEwV1Qs4i/K2nSjkXwxQUYP6nOt/0A4/+WLWOyCLneyqG+osmnrr+4jDuVNHw8i6rZHMkZuZlc9WWSllRHQvMG/2fktCtMGYTc71qYlm/sEw9V9yRDoJhuXgNEJJH9HgG59he/3ieUaRGWqzjNCfMa7slFbdIjjJlqvKeLpILU2vWPRdBTObn4drbtg8qaAegN+yntfAz9aAfDgceWjfhvkzacXkhQef+bHrTa1KDhf/U7Plj/8i2NmpnY3ZI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.3
Release Details
UpdatedAug. 7, 2026, 6:52 a.m.
Changelog

Geändert

  • Berichte-Seite: Reiter und Buttons wirkten überladen. Im Auswertung-Tab brachen bis zu 7 Export-Buttons (Kassenbericht, Kurzbericht, Beleg-ZIP, Prüfleitfaden, Saldenliste, E/A-Übersicht, Mehrjahresübersicht) neben den 6 Reitern mehrzeilig um und nahmen viel Platz ein. Kassenbericht und Kurzbericht – laut Handbuch die beiden meistgenutzten Berichte – bleiben direkt anklickbar, die übrigen fünf stecken jetzt in einem Menü „Weitere Exporte".
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureOPqKJZTl/5Eygp/CIw4spwFaccWUoG73jv1LRUd6Tn9lnr1Bdr/S2ki+dv3BrDSW1wXcPrTDWPvDEc08RQK7sCTBp5Uo1siR+hb9KEyq46iHPLHUfEQEy94s+fl2afy/yEpSK666eTpE5IEXfCOrvwhULbgrpbXMX5aEgK6cc9l8xjAMIA2t1+F1OXWKw7ikHuRVO+lh3Ky59SDzHKOkzh1cRhYNRw+4OgZiPTbUy1+08t0ZnIHpiLh/jpzTZvtTSbJxnLyv6T0YLX0KiiwuN581bajt9WgGasza81LGA3vzl5flfv9ULCwJgh5P2KS4yTBEF0/dVtn9k9cCL9s2Gx+RRBBgnZzSjynIOGOBq/jY0u3MhYhBiJ85sqZ9YbmK6Y6FJ+wVSIkAy9syctsz1mkz8E6o/KlrQS+Yx1gV/LPJo2aGLkgLOrW3bvlYZZgH/qFoHt9ZQ1RRqNp77k1lJz0JTZ8eEcXRuhTQrOoBtDyBwpVcPKbsKKi7WEtX8GwIVdxnvjlGTHGoXdn0TYI9ZhzRuk9C9d7eBn63SJv3XYazKRAj8GRZy82rTMPHaDVSNry5m9wN/mHWBAPzG/Lq750BqaMPnR3TT6+Z6U+hZ74mfRMqYbeLER+wXy9w3wS1sgqhrXFJP9k9uyaMzsK/q0VSEJx72CScqih0TFkTI2M=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.2
Release Details
UpdatedAug. 6, 2026, 12:57 p.m.
Changelog

Behoben

  • Kassenbericht und Kurzbericht erschienen auf Englisch, obwohl die Nextcloud-Oberfläche auf Deutsch stand. Nextclouds L10NFactory hält eine Sprache nur dann für „verfügbar", wenn im l10n/-Ordner der App eine Datei dazu liegt – für Deutsch gab es bisher keine, weil es ja die Quellsprache des Codes ist und l10n/de.json daher als überflüssig galt. Ohne diese Datei überspringt findLanguage() die deutsche Spracheinstellung des Nutzers und landet beim harten Fallback Englisch. Betroffen waren nur die serverseitig gerenderten Berichte (IL10N::t() direkt im PHP); die Vue-Oberfläche hat ihr eigenes, clientseitiges Übersetzungssystem und war nicht betroffen. Eine leere l10n/de.json reicht als Fix: sie macht Deutsch für Nextcloud „bekannt", ohne dass echte Übersetzungen nötig wären.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureSbvziLbdB13/4hZgbyRXt9y/XzLhT8WkHOT2/9zeTJden7m9Z9SbW7fdHzSiocnsJm/7A0mCQDslCbz5k7806djc792pRVlDFLlZhMOQGfSvFYhEwwVNaSYfk2TeR0boQoJrOKoFWyYa396LF5k4Ya4YE2uAmqpMBRv7Wm4LTTvp4EDqPIxXObEQbOGaAafkReTEQYE4h4Xzijrh+oo8BBpzhpcLiGKYpgpIGeQDmUeVGWpyh0ySGtf+46ENTC5Az+538hfY/fEQl6QtsHf9CacbSvEh+n6Lx2/gIQwjKN7FQsOM4w/3LQV/qlHqpFpoLEAJeG3/2IfbBnxKeuH0OZIFAslWtz2smxG5k9dYxn/nvFotD9meCvGWxwpeXFztx+zgv+zlcUOTdX0DQjRQQsnFGRejL+Pztl9TkG4I9ufke0DVm1/BYBhZdZ3cqf3QG3sSGDbsav5W4G+4BxVBe0y4ZDH35aVDV0cDh0HYfwfkVzqVwOcaf9NVfvoNFC2KVJXR/VlkEW9SPDRmLbafb+caQ6yqi0lviNq2x6V3xEcGS6ckQrjsiA1scbmFOFE5lE4jwdS9khHH7ZkLN0LyRtZagQMiaHI44rbfaxPCwE17U21RqJ3kR3kNJVOPcRSYycVzHmg3UKq0+Le6iF+X1XffZDgE9T1Z+9oIIvK8T64=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.1
Release Details
UpdatedAug. 5, 2026, 4:17 p.m.
Changelog

Geändert

  • Buchungsjournal: Zeilen brachen durch bis zu 4 Aktions-Icons zweizeilig um. „Regel anlegen" und „Löschen" stecken jetzt in einem Menü-Button; Beleg (falls vorhanden) und „Bearbeiten" bleiben direkt anklickbar. Damit passt jede Zeile wieder auf eine Zeile.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturelEiCh6gxSU93Jga+RtuXGddDMZuIP64Hl/hFEOOQYTCOMvsqCOL3CNkDY6Iv2nGBvOoyIF+N4woWkjDEmr30UKKmQ1bk2UYrszPPInXzqzS6TjiIs1i4s6h9lbu3Nb3Qiaat9j6b9kQGugayntbmEzSJdQ1Z1eNZAXQPqvxrmuy+uxUiIQntmDvQNWC4rBG9Gb+NmeGBiRe43NUR9q5A6UEADee5q1f2Ek8u/xVmjW9Cq/0lrbQkrtnDP8W6ZE7blpl6WBA970ImtF2uhYhaNA6XveNzSr5X1Tj8pgx9V2SA6tDRzL1KCYGFFpFH1HTADlUXCmZ3B3+hMx+TXNCs8nR4QJqKGd6vliMXi0yKYaZJ7hXfwOcF6fbTbqb9cNx04bhTEgz6Sy1cohvaVDI1ZbXZYoz+e+0FpO++1GOdxDoPSxi51v0mAlM1bVNRlZznlwKVO+CzsMLa4JrTnoRuF82ZS84GYn4lNAN0YfTofJNDWuoC99W27c8nkM+hHinkg/enqEB1EOeLHr03Ot6R18wbZZ7deZ8k39eWsAdW1JeV1xsYfuWgFv8uoi60gygHz0T5WixyIu1Qw8JzBw/p+qqlhxgzjw94PGbiiH5Qsew1srd86mKccReKp27yqFPdNix6htxHVtY8WV5e4w6u+qsu4nXfzMXUixLflmgDgLg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.0
Release Details
UpdatedAug. 5, 2026, 7:42 a.m.
Changelog

Behoben

  • Vorgemerkte Umsätze im CSV-Import konnten zu Dubletten führen. Die CSV-CAMT-Kontoauszüge führen anders als CAMT.053 keinen eigenen Statuscode, sondern schreiben den Buchungsstand als Klartext in die Spalte „Info" – „Umsatz vorgemerkt" wurde bislang nicht ausgewertet. Ändert sich ein solcher Umsatz beim endgültigen Buchen (typischerweise das Datum), erkannte ihn ein späterer, sich überschneidender Import nicht mehr als bereits vorhanden. CamtCsvParser überspringt vorgemerkte Zeilen jetzt wie schon Camt053Parser es für „PDNG" tut.

Hinzugefügt

  • Nicht zugeordnete Bankumsätze lassen sich jetzt löschen. Bisher gab es dafür keinen Weg – ein Umsatz, den die Dublettenerkennung bei einem sich überschneidenden Kontoauszugs-Import nicht als bereits vorhanden erkannt hat, ließ sich weder zuordnen (dann läge er doppelt im Journal) noch wieder loswerden. Der Papierkorb-Knopf in „Zuzuordnen" löscht einen einzelnen, noch nicht verbuchten Umsatz; bereits zugeordnete bleiben wie gehabt nur über den zugehörigen Buchungssatz löschbar.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureBnkYSlWxHsYfloYtjM8qy7z4ZHro+XGTush4dekzY9sqA99C2YPzzt9ZdF5u9607GP7kFZVea924jYOKfadCsC34UnDyxbRsbUoRuj8zAgP7dbvSVj6SNqfa3B1ZdH8aHGQmPzF4qmdObFx+9rQRJcOGIkGWbAHBkg044dyzwLWnNwpB4O2h91bIEm+0ArsA6VLtP6qW9os9e75pcNbNKl9O/kybpbM+5tdtSrz28PvR7R9Hngf3SyBUi3uwKpwMafUoj0IfMnTBxCyBH7Flq7m7OFJMOGz/TakXRoq/YxFydmV9dVeSP2VhZ/FxyMipMG1C9pmQ8yQq+JHEN2ZO6q1aWP/jcXb58JkSHrfFVx/R7y+uhbaOABUGBsdUy9+LepV5fGB1/BdVUbYA04G0ulC+5n0ixOYhzZsW0XWtKMykeuI5h75yil1rINce0/FA035SlhPIjPdrMKoTPS9GmwUvebCIYgbt39PzVUjT0GXJ5k9DA31GC81X2o+l/JLyLX1OW+e225KlRQfXdgjB0QUAPiaHelgiKB+T1FWUvb//BL+Gyc/mfGnA5VUNoyp7rxxOO3cQ05LbxiiNeyGodnAVNih6BqQUDk//N6q58dX9M9AUmo2pGstsn/WHwW/qyt00y47nrBp4dp+Z4opbKNDhxjIDm7xTQWFmfluVjfY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.18.0
Release Details
UpdatedAug. 2, 2026, 4:11 p.m.
Changelog

Hinzugefügt

  • Weitere Mehrsprachigkeit im Backend. Kassenbericht und Kurzbericht (beide als druckfertige HTML-Seite) sowie das Änderungsprotokoll (Berichte → Protokoll) erscheinen jetzt in der Sprache des Nextcloud-Profils statt fest auf Deutsch.
  • Alle bisher noch deutschen Fehler- und Bestätigungsmeldungen der Controller sind übersetzt, ebenso die Prüfmeldungen beim Anlegen und Ändern von Buchungen (Soll-Haben-Kontrolle) und die Fehlermeldungen der CAMT-/MT940-/CSV-Kontoauszugs-Parser.

Technisch

  • Statische Prüfmethoden (JournalService::validateLines(), JournalService::reassignPlan(), BookingService::validateParts()), die auch direkt aus PHPUnit-Tests ohne laufende Nextcloud-Instanz aufgerufen werden, liefern jetzt stabile Fehlercodes statt fertigem Text; die Übersetzung passiert in einer begleitenden Instanzmethode mit Zugriff auf IL10N. Die Parser (CamtCsvParser, Camt053Parser, Mt940Parser, XbucParser) erhalten IL10N als optionalen, in Tests weglassbaren Konstruktorparameter mit deutschem Fallback-Text.

Bekannte Lücken

  • Der CSV-Export der Auswertungen ist noch vollständig Deutsch.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureyT7SVmIOpa+ZxIYuUUiftY1NmsPnETQbPKz5hXSyXYJ2fSqVm/OBPOJyoI2EpaGulf2AqkZr3w8jXrWuh4U3J1m4IuaAK8zGhD47WCAzxFGZxc8iy6ITh0OckjLneDWxMwoQHJO/IggRVjBEaZXKdD2wrFPMjkXDUTBvlMr/YKJFE6bd1qJJ5UKXQedO51aNuRQR/O9UrXJ8IR6F5SmyWzrEvr8F/hNdiQioDnTA2vk1iB2bTciuc9qnQd13m1i43ToUuZfYSYflxBhAq/kMOCrUsICqXo3wy88DNIVuwaiEIPrXuMUBDXsmjcnh0dtku/iVTiOpPtkDjucmJ5bhLcuylyC1sYFt6d5emJlqMUOWHmhzC4eoQc9nv2uSq/VgCVUJd0V4dihQivViVEot+acr/xuHinPVt7YikF5ejoWt9//f8huYVa7O1dR2mKoY+nyOscA1lF1kFo7OYZ30KnerD5qjLJo508MDMWtAb7Pfzw3P423Jssl1h0zAPk7e2UWu+5ImshK7nr5+07Owyt/h41ASF4FeW8ePiUbn1hHgf86avEjbtMrQXajpZJp1AddBYuGCa19+V6jgLory4k8mLyTdCOz3O0nFTjEEU3hhq+BPbaoaztKx3W0FOtBsFEO/FyhaAxffkGjbU88lQoDSP9rX3lgH8oKX++nUHSY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.17.0
Release Details
UpdatedAug. 2, 2026, 3:16 p.m.
Changelog

Der erste sichtbare Schritt zur Mehrsprachigkeit: wer Nextcloud auf Englisch eingestellt hat, sieht jetzt eine englische Oberfläche statt einer deutschen mit englischen Brocken drumherum.

Hinzugefügt

  • Englische Übersetzung. Alle Vue-Komponenten der Oberfläche – jeder Tab, jeder Dialog, jede Fehler- und Bestätigungsmeldung – sowie die häufigsten Fehlermeldungen des Backends sind jetzt ins Englische übersetzt (l10n/en.json). Einen eigenen Sprachschalter braucht die App dafür nicht: wer sein Nextcloud-Profil auf Englisch stellt, bekommt automatisch die englische Fassung. Die Quelltexte im Code bleiben bewusst Deutsch – der Herkunftssprache der App –, Deutsch ist also unverändert die Fallback-Sprache.
  • Video in der App-Store-Beschreibung verlinkt.

Technisch

  • Eigener Lademechanismus für Übersetzungen im Frontend (src/lib/l10n.js): die Bibliothek @nextcloud/l10n geht davon aus, dass Englisch die Quellsprache ist, und lädt dafür gar kein Übersetzungsbundle – bei einer deutschen Quellsprache wäre das genau die falsche Sprache.
  • IL10N ist jetzt per Konstruktor in die Controller und Services injiziert, die nutzerseitige Fehlermeldungen werfen.

Bekannte Lücken

  • Kassenbericht, Kurzbericht, Prüfleitfaden und die CSV-Exporte sind noch vollständig Deutsch.
  • Ein paar Backend-Prüfungen (u. a. die Soll-Haben-Kontrolle beim Buchen, die CAMT-/MT940-Parser) bleiben vorerst Deutsch – sie sind bewusst ohne Nextcloud-Abhängigkeit gehalten, damit sie sich ohne laufende Instanz testen lassen.
  • Das Änderungsprotokoll (Berichte → Protokoll) zeigt seine Einträge weiterhin auf Deutsch.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureroXOT9h02u08zVmBOEm4AgtrqTyByeTNHUynP/GLWlj1W/PSVXK7rwHxjWbw/fnoVsuvroo5FdxY6sTMKgwWfcCYW9WC49dJylKK1FX8oKws1LefX9HqQbZvFeJ9L3grLLht92mwMthzuRfrCaQDygDBmpv1o3PhbrqJpox0zfx1jWd6jJhDpBeBjIcfBf+CyKan8BSSdwFjRUzCoJBIz+cHAB27MY5PfvrDdFmUtjHLvU/MifISIkMiVhxKtY1CnQtJd58t0zJcFvN0qjB85+DAAV9nR6YCcZjNw8UbCdetu5CThcQBPHJLnRXIIf+WP88PgRYkxgRw9d8QKMf2zklGsVTPJdtvacI9V2F5JOIimelYg3V4WacqcpO2F2xOfs6jXVS2E8MFAloWofhNnfVuTINQiHz8Ckw49QlyEr8Up6yEZ28tgJh0AKpQWsLUZ+SUd4PA2obilUrsFjFkEhAUbAPtu0kdKD6l3NYa9oXB4a2Pun6gNpD1qvhmRudPvyIGoYCoAsOstLAehk+eAiF6lfFLe/o0V+RiOn4L2lPt5c96acCwesJD9yZQbZIfbYFM5ddheBSYaJRzyLYJWsK2IETagwH4XVvH/vClPytgMNHiOG/s6LALfsQSUTzz8ktLZqU+U1BHlmqXaR9M2lvlEu2G9O+5ueYM3D3kX5E=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.16.0
Release Details
UpdatedAug. 1, 2026, 9:03 a.m.
Changelog

Diese Version bringt kaum sichtbare Neuerungen: sie räumt den Programmcode auf und sichert ihn gegen Fehler ab, die bisher niemand bemerkt hätte. Ein solcher Fehler kam dabei ans Licht – und er betraf ausgerechnet die Kassenprüfung.

Behoben

  • Der Beleg-Export als ZIP brach ab, sobald ein Beleg im Zeitraum lag. Die Funktion rief eine Methode auf, die es in PHP gar nicht gibt (ZipArchive::addStream); der Download endete mit einem Serverfehler statt mit einem Archiv. Betroffen war genau die Funktion, die eine Kassenprüfung braucht, um alle Belege eines Jahres auf einmal zu bekommen. Die Belege werden jetzt blockweise ins Archiv geschrieben – der Speicherbedarf bleibt wie vorgesehen niedrig, auch bei einem Jahr voller PDFs.
  • Der Kassenbericht ignorierte die dunkle Darstellung. Wer ihn bei dunklem Systemdesign öffnete, bekam schwarze Schrift auf weißem Grund in einem sonst dunklen Fenster – der Kurzbericht konnte es längst. Beide Berichte teilen sich jetzt dieselbe Gestaltung. Am Ausdruck ändert sich nichts.
  • Beispieldaten konnten halb angelegt liegenbleiben. Fehlte ein Konto des Standard-Kontenrahmens, brach das Anlegen mitten in den Buchungen ab. Jetzt meldet die App vorher, welches Konto fehlt.

Geändert

  • Die Rechenregeln aller Auswertungen liegen jetzt an einer Stelle. Die Frage, welches Konto mit welchem Vorzeichen ins Ergebnis eingeht, war an acht Stellen einzeln ausgeschrieben – in den Exporten, in der Saldenliste und in den Berichten. Eine Änderung daran musste bisher überall nachgezogen werden. An den Zahlen ändert sich nichts; sie sind jetzt nur an einer Stelle festgelegt und erstmals automatisiert geprüft.
  • Der Sortier-Vergleich der Tabellen war dreifach vorhanden und ist es nun einmal. Sortierung und Sicherheitsabfragen sind damit in allen Ansichten garantiert gleich.

Technisch

  • Statische Analyse (PHPStan, Stufe 5) läuft jetzt bei jeder Änderung mit und fand die drei oben genannten Fehler.
  • Der 1149 Zeilen lange ExportController ist in Dienste aufgeteilt: CSV, Beleg-Archiv und die druckfertigen Berichte je für sich, der Controller behält nur die Auslieferung (158 Zeilen).
  • Frontend-Unit-Tests (Vitest) für die Rechen- und Anzeigehelfer; der Testbestand wächst von 118 auf 210 Tests.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureVJDiJR0wAF6OF052v41IlOKnSdqYFS+pI1+dFRngpf5U228GkukeyPqI033CH4Q3hummVmpRiAFGTi5n9g403rp88tFm8lw69XuqW2KKFwDkzc5EE0wVs3AVJgHeREn/NotbVAVvItr6+4wdPE4vKY4MnSVrwwPFWyQPhYMcy7ps0GEKQOKIIg8K5FiRvpgFF4M8/24xcDJSX9P6ySetzjjCUewbWBCq90qjAkf1dedOmwpk/WJ6EzDMuOpXjK866ruUFpU6UMHarVV5JY0IO97AJym3rJVUbtF7pkCI4gQVjVAFmcux+rnXm7vLN5EHGRF9cQCgy5REcQAKavKY0k2KS48L/zRjsvzEv0dY/IWAraVowHLkJUDonnUelUPZJ3J6S6CekKswO2oQdXnCc2jGNSY7QS8s2ck9NsnCSeX66hEMC4fI8cZUTeFM5sr4IP7ABKXq4f/DOZ2kl1klwKZjVeCSkD5SQvB4Lt5vq+kj2CzULsoM5EyrxLuvdYt/cOMluMhFdKg8H0Mubcc/TnIMEMGj2ODw7z7z1g5KQdGDPYEQ2JDgUKQ2gxW9exq98q0FmXq95K1ppLvC0c8sDezQF5leB2eVH/c0yDzc6xsDpWbkc9MQiNLofdqyXWHBvvrqKnl7x7qBn8U9BdefGUuFba3HekdHxLZFAm6OPsg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.15.0
Release Details
UpdatedJuly 31, 2026, 6:56 p.m.
Changelog

Behoben

  • Gelöschte Buchung gab ihren Bankumsatz nicht wieder frei. Wurde ein Buchungssatz gelöscht, der durch das Zuordnen eines Bankumsatzes entstanden war, blieb der Umsatz auf „zugeordnet" stehen – mit einem Verweis auf einen Buchungssatz, den es nicht mehr gab. Er tauchte danach nirgends mehr auf: nicht unter Zuzuordnen (dort stehen nur offene Umsätze) und nicht in den Salden (die kennen nur Buchungen). Auch die Bank-Abstimmung führte ihn weder als gebucht noch als offen, sodass der Kontostand still vom Bankauszug abwich. Der Umsatz steht jetzt nach dem Löschen wieder unter Zuzuordnen und lässt sich neu zuordnen – derselbe Stand wie beim Aufheben einer Zuordnung.
  • Belege eines Jahres konnten beim xbuc-Import verloren gehen. Die Dublettenprüfung des Zusammenführ-Imports beschrieb eine Splittbuchung nur über eine ihrer Zeilen. Eine eingehende Buchung, die zufällig auf diesen Teilbetrag passte, galt dadurch als bereits vorhanden und wurde stillschweigend übersprungen. Der Vergleich betrachtet jetzt die ganze Buchung, und beide Seiten des Vergleichs bilden ihren Schlüssel an derselben Stelle.
  • Beleg löschen konnte einen Datensatz ohne Datei hinterlassen. Die Datei wurde vor dem Datensatz entfernt; schlug das Löschen des Datensatzes fehl, blieb ein Beleg zurück, der sich nicht mehr öffnen ließ. Jetzt gilt auch hier die Reihenfolge, die beim Löschen einer ganzen Buchung längst galt: erst der Datensatz, dann – nach erfolgreichem Abschluss – die Datei.

Geändert

  • Der Jahresabschluss schützt jetzt auch die Konten-Stammdaten. Bisher war ein festgeschriebenes Geschäftsjahr nur gegen Änderungen an den Buchungen gesichert. Über das Konto ließ sich sein Bericht trotzdem nachträglich verschieben: Ein Wechsel der Kontoart dreht das Vorzeichen, ein Wechsel des Geldkonto-Kennzeichens verschiebt das Konto zwischen Vermögensübersicht und Einnahmen-/Ausgaben-Rechnung – das archivierte Jahresergebnis änderte sich, ohne dass eine einzige Buchung angefasst wurde. Kontoart, Geldkonto- Kennzeichen, Sphäre, Rücklagen-Art und Kostenstelle lassen sich deshalb nicht mehr ändern, solange das Konto in einem abgeschlossenen Jahr bebucht ist; wer die Änderung braucht, eröffnet das Jahr wieder und schließt es danach erneut ab. Nummer, Name, Kategorie, Aktiv-Schalter und Überkonto bleiben frei änderbar – sie ändern nur Beschriftungen, keine Beträge.
  • Konten stehen jetzt im Änderungsprotokoll. Anlegen, Ändern und Löschen eines Kontos wurden bisher nicht protokolliert – ausgerechnet die Stammdaten, aus denen jede Auswertung gerechnet wird, waren für die Kassenprüfung unsichtbar. Bei einer Änderung vermerkt das Protokoll zusätzlich, ob ein auswertungsrelevantes Feld betroffen war.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureP7cVaIPv213NPHt6juPqCRD4S2odKrN+G8KhhxyDeKw7BKUxrWvSaOiQCEwBmvQzUCYWUDf0OacHyUlh6nmJEWFmuux3X6wIY3AuGQx/gg37EMyMCod8JA82iPNAMLXML1bEIeU9RGEIbmtdc6CmNEV+TlEBCp02kskc/V1FytAkCREPOCfCr7DodbD6FZtrjN+VloewQblps1KCCye9tm1v7mMDRDexPv2jiATXsKqS/D/ostXEh/SGTtX1saXxlFpMJss8WYgRNCMbzGMW6i+k2ND/iiEAzBFBKwFY0w4YunU4zo2x6Y3z7SCPeSLP0AagS4LI2vv5vKeq2jHyqtnXTS6Zi6tba2P6ObB0stmW6lzc6p58UW3Dvw9Irm58hAa7QqvqUheI2t0haws3Cah2/e95eOqk/+tFcGS1k6C1sPVQVlcEFjMyLN2a88YKW32okbQhzCEixkockVQQbWfY40Shqg64ZSfGGR6VAgHck6rioYnQJE2H5+3SexdzsYkJVY2jJ00tLIdCDpq2Z3M5AZSjxHpGcRyJ+w+6EIx10SbOdsqxQw0/FEnAC8Bk4d1vcodBZBwXFav/Ew6diriLx49vhFQZvlvmshNbREyFYiWskPUKE46NTOVHZVGZqLlkQD4vFbu61PWYR8swhuYhqMwPbsxkzbxIf2JQuQU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.13.0
Release Details
UpdatedJuly 31, 2026, 8:50 a.m.
Changelog

Hinzugefügt

  • Frei definierbare Kostenstellen. Bisher leitete die App die Kostenstelle aus dem Kontenrahmen ab – entweder aus der zweiten Zahlengruppe der Kontonummer oder „ein Konto = eine Kostenstelle". Beides setzt einen bestimmten Kontenaufbau voraus. Jetzt lassen sich Kostenstellen unter Einstellungen → Kostenstellen frei anlegen und Konten ihnen ausdrücklich zuordnen; beliebige Konten können so zu einem Projekt zusammengefasst werden. Der neue Modus heißt „Frei definierte Kostenstellen" (Einstellungen → Kostenstellen-Modus, nur Verwalter). Die beiden bisherigen Modi bleiben unverändert Standard – bestehende Auswertungen ändern sich nicht. Die Zuordnung geht einzeln im Konto-Dialog oder für viele Konten auf einmal. Angelegte Kostenstellen erscheinen im Bericht auch ohne zugeordnetes Konto, damit eine fehlende Zuordnung sichtbar ist.
  • Umbuchen direkt im Kontoauszug. Wer beim Durchblättern eines Kontos (Tab Konten) eine falsch zugeordnete Buchung findet, bucht sie an Ort und Stelle auf ein anderes Konto um – der Umweg über das Journal entfällt. Umbuchen lässt sich jede Seite der Buchung, also auch das Gegenkonto. Geändert wird ausschließlich die Kontozuordnung; Betrag, Datum, Beschreibung und die Gegenseite bleiben, sodass Soll und Haben nicht auseinanderlaufen können. Abgeschlossene Geschäftsjahre bleiben gesperrt, jede Umbuchung steht im Änderungsprotokoll, und eine zwischenzeitliche Änderung durch jemand anderen wird erkannt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturerYLg9/W+aZy3UR2gm/vOTWoLkk4IZrBuLDSsMcqIA1ezxdDhM4DCie+hHnru5bowZ4ZqOE8XmhrBYJCF9F8Wg3zyklma7eMmTKWMHy0mlys+/SYrmnPOfrzUyA/3PvFLNztuRJgyVeL/bI/0fp4QQ5YUTHG6oQHcY9NZXeB1Yy9AJAOP/oBHHdA9RDSONWvDJKgpLAgKBHcpj8J9SPCeVOviwHla4B2fbLKjpJu185Ee7SsvjXQJYatX0SV1/Hy65I0o5xfst63HfBj8vMYkiu6vxz3bU8kp5jUJKWWmDiB9qQHByk5srK1Wu/R/gZKgfxp+EtU1SWYaZFIU5ZlynNgtZpx63083sBz/UgryqKitjmOvD1Qw1UAi4sP5BMm8IKjZCCHY1mBImO/sIQqa7MjpcLulmnOmAXorbAgfG9ZaXFrk0AafHeQRzemtQ5nvlYpl8Z58F11ZuVKudYhsciBek7SHIhHTbs99aOsb934bzlaN+lZelZfm5J0OyCJaBv7zCKPQqMuBUNioV/w2ntAY/CyY2TK2gfJb2wMjJmNNR5s7hRcWVIPpklXxE/o44NSsckDDnzA4FemD7tswK8tTftO/v+Qk04kzjHi984idYXoHWSwFAYYiZxmL2oB6OOs+MXh9dGQUbpctC2pOAeSdO0J0dO/7D+MkKtaBrYA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.12.0
Release Details
UpdatedJuly 30, 2026, 4:01 p.m.
Changelog

Hinzugefügt

  • Kontoauszüge in zwei weiteren Formaten: neben der bisherigen CSV liest die App jetzt auch CAMT.053 (XML) und MT940. Welches Format vorliegt, erkennt sie am Inhalt der Datei – die Endung spielt keine Rolle. CAMT.053 ist die bessere Wahl, wo die Bank es anbietet: Vorzeichen, Datum und Zahlungsbeteiligte stehen dort eindeutig drin, statt aus Spaltenüberschriften erraten zu werden.
  • Wachordner: Auf Wunsch liest die App Kontoauszüge selbstständig aus einem Nextcloud-Ordner ein (Einstellungen → Kontoauszüge automatisch einlesen). Den heruntergeladenen Auszug dort ablegen genügt; stündlich sieht ein Hintergrundjob nach. Verarbeitete Dateien wandern nach verarbeitet/, nicht lesbare mit Begründung nach fehler/ – gelöscht wird nichts. Setzt System-Cron voraus. Das ersetzt das Hochladen von Hand, nicht das Herunterladen bei der Bank.
  • Vorgemerkte Umsätze aus CAMT.053 werden übersprungen. Sie ändern sich beim endgültigen Buchen häufig noch und kämen sonst ein zweites Mal herein.
  • Mehrere Bankkonten werden unterschieden. Am Geldkonto lässt sich die IBAN hinterlegen (Tab Konten → Konto bearbeiten, nur bei Geldkonten); beim Zuordnen einer Bankbuchung wählt die App daraufhin das Geldkonto, auf dem der Umsatz tatsächlich gebucht wurde. Bisher landete alles auf dem ersten Bankkonto des Kontenrahmens. Ohne hinterlegte IBAN – oder wenn der Auszug keine mitbringt – bleibt es beim bisherigen Verhalten. Wer mehrere Konten führt, sollte CAMT.053 oder MT940 exportieren: dort steht die IBAN verlässlich, in der CSV mancher Bank nur eine Kontonummer.

Behoben

  • Derselbe Umsatz landet nicht mehr doppelt, wenn das Exportformat wechselt. Die Dublettenerkennung hing am eigenen Konto, und das schreiben die Formate verschieden: die CSV mancher Bank führt dort nur eine Kontonummer, CAMT.053 immer die volle IBAN. Zusätzlich zum bisherigen Vergleich prüft die App Umsätze jetzt über Datum, Betrag und Text gegen die bereits vorhandenen Bankbuchungen.

Sonstiges

  • Die Umsatzquellen liegen hinter einer gemeinsamen Schnittstelle (lib/Service/Statement/); Dublettenerkennung, Regeln und Import-Protokoll sind für alle Formate dieselben. Der MT940-Parser ist zugleich die Vorarbeit für einen späteren FinTS-Abruf, der genau dieses Format liefert.
  • Das Import-Protokoll hält fest, aus welchem Format ein Import stammt; Geldkonten können ihre IBAN tragen (Migration 122).
  • Unit-Tests für beide neuen Parser sowie ein Kreuztest, der denselben Kontoauszug in allen drei Formaten vergleicht (61 Tests).
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureYrd0NVVBI48qEcLJqlW2g3q/DsCa4M/I4Dap6Y7XZoLqHbFQtEHZiGe5WGYmrRZxZaiS38aXU62p6tx2uqB+V5cYI7xSomdVQtN/PlHS0hXRjO5OunZIpXdSaplQn0BiBhuN9iP+Vdrwc395yav9MegQE1opuH5kj2xPgKQyUbUehBedJ4rV+ePyXm2KFXsfv3DFeYjp9R16i41D+fD912hJskD3BNwIgqh0NRalj4KkwrIES46Ym7TZoZ14Jx0NJdh99l4/EXgdRicoSWEUT3aRxhbN+4qfAwa8MsDhL4K+jv4OhqDFxlD5yQKRqr6YsU9wxJ1HmMH8rutukusf18IQsgQjjl4zuwtwNFjrx18LhnUuozOQgRtVVZrQNXGneZ8ZLa7h6iZLUIkoiGtrrSyl0rXJFcg4LRmCz62Q9BaXCO9N8LhgxLa9TPKKJtoSroEbbFAHNewd5ir03uudK/UA6hr6n3GXNAtlTdyMAle9r7JY2DuvIJe+ftEHNqMC9prT2M1E2qb/nSgYk+RziNaqt4Yd5POjG65TCNEQOKIQ/aUpixnKXUFwzS+fJpFmGA1b+eULBKo0r5Q17xAluMjlw3lBsGcwozKXHc1KeCKIiZfjx9x+y1XMNuzeDaWG1g8kd2sjVTwY2vW+lS/d/R/K1GE2My5qoMILXPZ8+ko=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.11.2
Release Details
UpdatedJuly 29, 2026, 3:43 p.m.
Changelog

Behoben

  • Beträge werden nicht mehr abgeschnitten. In Tabellen hatte die Betragsspalte eine feste Breite von 100 px; längere Werte wie „28.798,68 €" wurden mit „…" gekürzt und ließen sich falsch lesen. Die Spalte wächst jetzt mit.
  • Mobil: „Buchungen" in der unteren Leiste war gekürzt („Buchun…"). Die Einträge teilen sich die Breite jetzt nach Inhalt statt zu gleichen Teilen.
  • Mobil: zu kleine Tippziele. Schaltflächen, Auswahlfelder und Eingabefelder waren teils nur 24–36 px hoch. Sie sind jetzt mindestens 44 px – auch auf Tablets, die per Finger bedient werden, aber das Desktop-Layout bekommen.
  • Mobil: lange Kontonamen im Kontenbaum wurden gekürzt und waren damit nicht mehr unterscheidbar; sie brechen jetzt um.
  • Mobil: das Ende langer Listen lag unter dem schwebenden Buchungs-Knopf und war nicht lesbar.

Sonstiges

  • Ausführliche Beschreibung und Screenshots für den Nextcloud App Store.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureDikykvZ2qeSFgT2rqRn1/K6d7txbP7OEC32gKuFsiCeigdGhCtrIHnVWHhA4ddYVzD+A5w+jgbYrYMzkgZcFS/cJE69wPzosrfHtsfrR1AXnFJprlr1fEU7gM2imvESCrjGS0s8KEeOczNzOTrhw6vtaWm4zbpYth5MLdMZmYFFTxtCQ67VIKIDNZhSVBS+dlbgKma5HobySt4IwUZeR+6qhMtZQZbmMCJ1LSuwPs6QCVTfAxXRlEBkuIdS0VYiBn3jDaoCfBV8tGZjpAG63npnwXIfJJd4HeCyDpMzDx0h/z6JpXKEcJuujT2vnrbjgCgqPOQX6qqCFru7djJ8o1BLR1pO8qNiTn194HAgOH/2cKzaJ/RbYAUXds7qW8aQgxvviJ9adZGRf3zC3jyYB49EGdYB/rKG8Lnn8mhDFkF7iXej4kwz/myXK8MTldP/xctXSC/zinorrnHaRo28XNtFDq5GazeVXpK7/9nvyt3SE49zoABnAEKDw6SYZrVCLX4+J8bbM6yk/ohFE3g1KL2/wXL1GnE1spwuz/OamTPJUqgVNJyV3MyzxG5aHpGxdj3lmctGt8eO34tXvHzofVmHvrhnEbEIcyMlphbOWD2mCiGkmltuGjJqvMJpLbSyZIe/oAXkJ7IiY3KGIRpiKlGUueiQlo0UbI1L+ubF/Uak=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.11.1
Release Details
UpdatedJuly 29, 2026, 3:03 p.m.
Changelog

Erste im Nextcloud App Store veröffentlichte Fassung. Am Programm selbst ändert sich gegenüber 0.11.0 nichts.

Sonstiges

  • Die App wird jetzt mit dem von Nextcloud ausgestellten Zertifikat signiert (appinfo/signature.json) und im App Store veröffentlicht. Das Paket zu 0.11.0 war noch unsigniert und ist deshalb nur über ein direktes Deployment aus dem GitHub-Release installierbar.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureRqufs3+r1UDzVeNY47cnz/w6ATGHouz8ape7ZHM3P5KFdQNcJ6RYVIO+epIwjLtAeVJdMgfEDJwafg1dx757MvkBsfr4fO9yBiP0yNmKeVwdm3G/7vM+WTHYg9CpRNYN2AivshD6OdD5axADiNnBU0jk+qw5szzQ77+pYkxHFMrTC1pbM8VWuTD/F+PrU0V7617dl2nDG7ZWwzjFgP65k6y3lr7hFi46LDiIvwWNv8leoggPU3YoB4YywRdXqhIHImtdBs/fauWamzU49TY22hPqSTPFsAVqyW/RI7Jw599oTCozx0W92XQilBZOGdUQb1Lr8nS+DJs6fGz6eJXbJQd2K81qqSyyIN06UcBudD6zCu5DdLuPLg0kWs7vwq5wI/4AXpBb5xadncHFtJOaNNoCJ2v7+C7d1ZaJ3kfv6ZNnVcuEYYQsNfuitHmmNzATyWSH2+hzXj/fZfpZA0vyHDLa4XkCPMwOi55IaPuvCdEaKE+RTf6hEdnul7MhU8C8BUFHKp3HlkdzJLPmffyf3vTDFoRnvtA2isMEXrkE2u9Usk9X1DlOXxn4PjmCYGNEm54YfVpTGRiY8i972c9XIjwmlpUIaqYARzgSad2kT23TXEMmzsPp7/kM2DjAqmEJbe+Lgl87Z7ZseXBHSnJXd1JjtxYJCm4og7lA2zSagvY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0

Nextcloud 32

Vereinsbuchhaltung 0.34.2
Release Details
UpdatedSept. 14, 2026, 5:57 p.m.
Changelog

Fixed: - An account's category could not be cleared: deleting the text in the “Category" field of the account dialog left the previous category in place; only a single blank space worked (issue #59). An emptied field now clears the category as expected.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureEFvqWDFNfM6FrLb9Ef+VmkLkQq/yMGhS3fFmfDXMmHq7Tkx9ebelg6+UOltGTCAywwAqFg4TlZhz+P660I/de6z9WnYhMtrvp+i2YD9HAA7JJkmUOnB9qcJH85XJJZXFAKnz+WeHzIwnA1b4PpUEcBXlbs10i5vF2TK5kZnW4sOOoj175+Fr22UYhUtgFr3OGuI3F3OtVnukYqMZvs5bbtZvZbnq16S1aC3Q9l5DyDTk3dQoTdX+mcABI833Z3tTgHevH04XqNA8JSnpYEO5VOY5FE6UIPWGEsro7N4mYBD9mfvgh1k0ID4D8M9UECA+nc1cVCA7ZvEbkD7qMcM2bdmIqkpaM7EZYND8D/DmU+kjGXi3VFkT3uBL6qiApthyohAXUE7mEMu9z9zHrhN8HMIGGOZqQnn45saBBOfPUo03E8AtacAT1zk7Lx44FloP6R2y02nt+BMf2C6rj7gaD6CSERsghlDrhtfqIjL6aGbIY/KVTE2v8oUozOQLWWT1v7YE8360mfWkDOoD9IqHVd4wnvdkPkeu17DdEMzUJNqyxu1ox08v63+cfh/Wf8X+L7uk+z80G0b/oRElAyuYahQxQimk2SwnE9IooOwdbruc/Kjh7AdPh8alW3TlD6oBlvLFTeuuUTPne0woHKSAkAAB+Mp7aWcDquPM8dCc4Ec=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.34.1
Release Details
UpdatedSept. 13, 2026, 4:18 p.m.
Changelog

Fixed: - Duplicate accounts in the autocomplete: Frequently used accounts were also listed in their category group and showed up twice in a row when searching. Now listed once. - Search field in the "Pick receipt from folder" popup sometimes didn't react: A fast click could leave focus stuck on the modal backdrop, so clicks and typing went nowhere. Fixed – the same fix now applies to the account, bank account, and member dialogs. - Icon in the "Pick from folder" button was misaligned: The button was too narrow for icon and text together. - The getting-started card briefly flashed on load: It appeared for a moment even when everything was already set up. - Period selector stayed empty after a load error: A single failed request left it empty with no error and no retry. Now retries up to three times, then shows an error.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signatures/8cYDtuFbV6E8E5R5Qpl62vNDSVzL9Isb0SpA12Gfk56tsktN+lvZ2efzPVeY1nRIkfbOAds9mbp2IqknBIUrEcVG/2PFWrah4SBCfwroQ7Za+6iJ06wRNYnLoirIi95y/ul4RJx+mh9giqP3ERfchInL4RpY7rCUxYSexKy8MrA2QB47BuTg4zBE+HtqO4t6WOjIPIwOrWYRu5dYC3hnm82PTvU/p3Azl+Zgo8L29KVwfNfU7xkRxd3mFm3VLXIF2UDbEv5PIu+G4L23EW74n2e8IMrSfgoNNI64sx4J63G7dGSspVrI3fJhG7pBa8TsISi1t3AEBKCiE7qrrsJxZ0AUMPHAGmxv64zwT/NbD6aPSREWpzYWQ+bukKDVwTa9clF/o6B4fE7/RcVPc/G5qNXACYdnlJgC4dTf0WaHmTTJoZp06+UKHjmx5SjFiSBJD2Ld8k/O/Y1vcL46kpDQSP9bqtlhyZXq1xNPedcIis01MbOeybRKvZtJL4inBXrYr3lZSaL6CmOHMm85cmSJnP5nSqrE/g15czG9/QILeKTRCe+qa4/U5kY5LcXAW8TH5BmUA8K7lFrznduHBBpPFCIx7VMW9xnmisFbf0TpqtuGnRifJm5SuTjNDvumwHBuRMGY20vwbHU1ul0tkGy4Qfb7KnPOLjSvQwCghTyfU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.34.0
Release Details
UpdatedSept. 12, 2026, 8:59 p.m.
Changelog

New: - Watch folder for receipts. Besides the internal storage and the user folder managed by the app there is a third storage type (cog → Receipts → "Storage type"): a folder in the Files app whose files, including all subfolders, can be picked when booking ("Pick from folder", with search and preview). The files stay where they are – renaming or reorganising them inside the watch folder does not break the link, the app remembers the Nextcloud file id. Receipts uploaded or photographed from the app are stored under <folder>/<year>/ and may be reorganised afterwards. The folder has to exist in the Files app beforehand and must not overlap with the watched folder for bank statements. It is chosen by clicking in the folder tree of the user's home ("Choose folder…" next to the path field) – a typo in the path is ruled out. The same tree is now available for the watched folder for bank statements. - The overview reports documents without an entry. If the watch folder holds a file that is not attached to any entry yet, the overview shows "x documents not yet assigned to an entry" – an invoice still to be paid, for instance. "View" opens the inbox with "Create entry" per file. A second tile warns about receipts whose file was deleted or moved out of the watch folder; the audit ZIP keeps listing such receipts in fehlende_dateien.txt. - The app never deletes a file in the watch folder. "Delete receipt" means "Unlink" there – the files also stay when an entry is deleted or all data is wiped. The same file may be attached to several entries, e.g. a split invoice. - When switching on, receipts the app stored under <folder>/<entry id>/ so far get their file id filled in – the existing receipt folder can become the watch folder directly. If a different folder is chosen, the old receipts count as missing until they are moved there.

Changed: - The Nextcloud viewer only opens a receipt when the file lives in the home of the signed-in user; everyone else gets the app's own view. Until now the viewer failed for anyone who did not own the storage folder. - Opening a receipt no longer creates folders, and receipts from the internal storage stay readable after switching the storage type.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureEH3jQPFfGMBQpUQwCuWN+biHwFqRxw8mnukQhkDPzmFj6KOWgEkLA3/lF1Lt7rypENDYtU9SXU715NKB8vWewF9ia1qP8o4GYsmjGVVRGD1pT9CbCqpefYpuLklQI0yyD9xXG2wK76DQe6iQW2gQQCJnIAtVCeNQpUvRmBgG1Kab0JhMNOKylIVt/wqP5jJePSNq3acxFpGmwVUr4Nzsm7wYn8gag3sjtB8GnavMg3Np0+48Z2O/tzRy9rmASVHYRPCWwrRXDEBz7qHd2ocwHFwKVTPCaRLT7jgKJ3B8RvtpFzEGr89Fkpm61hkdHi0KfWVLj55hIpiB8x4YRYcoH1CMeKok6SmlNclLExsf6XUKm37P0JTZVWpdRCw7I23UsHSUrE0J88YQlJURIMQc9wH3bqFUZza9mz44WPMf3nJ5o8bNcD3GjVh6YaQnVAFD5oEnroSoY7BYpDUawTDndqrM/24TN01ESsnFi0b5/fjT2AuSokvAXDb+/10j+nSxOZnNEeXFyL5spnW0Q0T/9U75DJ2x2BG5mi9E3OLifI/muNrh2eVSqdQJ6u2EzD0hQkTeb5TxVjCLwIogA9F3hrNzNqJY8MxLlK9Ac1kIsF5w2QJRjwjecIGlTYGU3ZN4aFc+P6AQs0M8iXpco+7yi+TWkz9n4t1DpWoNz72SMZc=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.33.0
Release Details
UpdatedSept. 10, 2026, 5:50 a.m.
Changelog

New: - The fiscal year no longer has to match the calendar year. Under the gear icon → Fiscal year you can now choose when it starts: presets cover the calendar year, October–September, the school year August–July and half-year periods (semesters), plus a custom rule with any start day and a period length of 1 to 12 months (divisors of 12). Clubs with a deviating fiscal year previously had to add up their figures outside the app (issue #8). - The header's “Year" has become a “Period". Every period carries a freely editable name – suggested as “2026" for a calendar year, “2025/26" for a deviating one and “2025/26-1" for a winter semester. Entry numbers, reports, the budget, the receipt ZIP and the year-end lock all refer to the period rather than to a year number. - Periods can be maintained individually. The boundary between two open periods can be moved – the way to a short transitional fiscal year. An empty period at either end of the chain can be removed, and the next one created at the press of a button. - Switching shows what it will do first. Before a changed rule takes effect, a preview lists the resulting periods, how many bookings will change period, and which budget figures would be lost – because when two periods merge, an account can only keep one of the two figures. Locked periods block the switch: what the general meeting approved does not move afterwards. - The cash report names the actual key dates. The asset overview used fixed column headers “Balance Jan 1" and “Balance Dec 31"; it now shows the first and last day of the selected fiscal year. - The monthly chart on the dashboard follows the fiscal year. It always ran from January to December; with October–September it now starts in October, and a semester shows six months.

Changed: - The settings section Year-end closing is now called Fiscal year and holds the rule and the list of periods alongside the locking. - The xbuc import now derives a file's fiscal year from its date range instead of the calendar year. A file for a deviating fiscal year could not be assigned at all before. Bookings outside the range are dated to the first or last day of the period rather than to January 1 / December 31. - Existing installations are unaffected: the migration creates one period per previous calendar year, running Jan 1 to Dec 31 and named after the year. Entry numbers and existing locks are left untouched. If you change nothing, you notice nothing.

Fixed: - Opening the booking dialog before the account list had loaded left the cash account empty – and booking then only reported that it was a required field. The preselection is now filled in as soon as the accounts arrive. - Switching the period right after loading occasionally showed the journal and evaluation of the previous period: of several simultaneous requests the last to arrive won, not the last one made. A choice made before the periods had loaded did not stick either.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturehjIUxR463SXRpnSDzeYpCEUzwFWSRO1ftltM9mWjHajC8UYOyRFO+a3qq7rOns+QYhP60hf3ikxj3W1DN3iUnUjrL8WSd8T5duQAubXz8pHlKS0QreKYeiecE/5cDcOFVTgUIEY1S9mlEvqW4LHFm0lG6R4tnXN9ECVQytIfxExa8rRrM3JFpYoRghY7MZ/+KitnFI6JKUGgE7bZ5Sm1tyEKXZF0T7knzzKS9lclx3Iqn8jw6jCvCmTrKSebjwjZaQwOjmkII6FKBv2xTiBJmmto3YPq8L92FbI+9LSCMHtlr3YA89ONl2xiHMXDzO9wRzyxBzWVAyHFu9pSAYxFjgtnXedEcH7O+4NzSRyI1zm0noskNMI2VbqDTrILZTmm27UT84U9vCm10dJbhbZwt/3sLWVMMGjOHVslf/JAu5psyIqUjjToSAr6ExAJNi30LB7Kehnj8O+B5LP+eVxiKnOrdkP8VY1zzn6Wj4aKnwF3AW4e2itJCCAKTjGjPLROnBpxHgKRy7oTllQJR6HjfQjpSNauFGmhi7lv4d9VVZ6pVA79XwJOv2GQqJiavL0Q2Z9hEqrzQ4b+sy1Gg1QvQ/w8pElcDgBIgUiwW8yUKX1J+R4b3C9/8QFl9l4Of0KJbwVle4CIg/GK9x+BLrE88mzM65wqPF/DZqkEgPPc1VU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.32.0
Release Details
UpdatedSept. 7, 2026, 6:52 p.m.
Changelog

New: - Entries can be edited straight from the account statement. When you spot a mistake while going through an account in the Accounts tab, you can fix it on the spot: the pencil at the end of the row opens the same entry dialog as the Entries tab – for the description, both accounts, and turning the entry into a split entry. Until now you had to note the entry number, switch views and search for it there (issue #39). - Receipts are visible in the account statement. If an entry has a receipt attached, the row shows the paperclip and a click opens it. That includes the auditor role, which cannot change anything otherwise. - A tidier row: Reassign and Delete now live in the three-dot menu, exactly as in the Entries tab. Otherwise the row would have wrapped onto a second line in narrow windows.

Fixed: - The account statement refreshes after an entry is edited. Description, contra account and running balance used to sit there outdated until the next account switch whenever the entry had been changed elsewhere.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureURbs7rR+ibIaCXawEIGE7845WACZzgIYr/uWGqG2NfgzeFJzARFjuikGP1MGA9oOcQkwrLYk/ZNuIqXLVeOOTn6IeFo5CiCoQUzkOcEft2nPrtk4cSb+/HNBiAQ7HqcaILq9C7Y89sTyH1CpGJd3mvi2nrg3ZrLGc4oK+nelIk6WepYW0Ggl+35ScDPURnqVqvsxOKX7yyiQ7l8P+CMAVajpLXHiliixH5e34MIWs7cLhFucXHrGXnhkSqbtGNLX9pqZ9HNukNyPnpf17Ab2XJxyEzHhBp79Z+HBrGvcgkKPXjDy8nugD0RzRX470VPrE9MtJlz/w+7Ldq9TmSAqdrpq6/+GRtoTQke4EHoX6Y5q6G+eQg6sL6YDTKzFVetE3SQAVM2L4sx+W8hNjRvTyryDyCcktJSyd4luyRKK1FMOYy+Gh7jxSkwC0J9TbpnKSOiZlhCrY6ixlah4Bj87IuXoEeJSYh2XrTv2LfUN/UORaE3QP4FZKrP5wzlo12eacp/yM73IElhE0NNOapPlQo/pwPKHpd3LVXRaohJny760AtExPYmj1NmK3EIfaj9HxoltiTMCDROuC0LvLaAvmFNlaChqZ/W1c0+6KjWTtXIIyLCd1ysGAQkHJATUHtO9OHAE3/fOjIsnOaLSIYIpQJV23DyfxiOcUFx+cOk2rwQ=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.31.2
Release Details
UpdatedSept. 7, 2026, 6:03 p.m.
Changelog

Fixed: - In Firefox the year in date fields is fully visible again. Since version 109 Firefox draws a calendar button inside the input, but does not account for it in the width Nextcloud gives to every input field – it therefore covered the last digits of the year, turning "07/09/2026" into a visible "07/09/202" (issue #43). Every date field in the app is now wide enough: entry date, next and first due date, mandate date, opening balance, open items, SEPA due date and the short report's period. - On phones the buttons inside dialogs are thumb-sized again. The 44px minimum for touch targets only applied outside dialogs – Nextcloud attaches dialog content to a different place in the page, so the rule never reached it. In the entry dialog Cancel and Book were only 34px tall and the Income/Expense toggles 40px; this now applies in every dialog. The round help button next to the spheres is properly round again – it was stretched into an oval on phones and on the desktop alike – and grows to full touch-target size under a finger. - The receipt ZIP export contains all receipts again. With the receipt storage set to app-internal, the archive came out empty and listed every receipt in fehlende_dateien.txt as not found – even though each one opened and downloaded perfectly on its own (issue #40). The files were never gone: while building the archive the app read them in a way that only exists for storage inside the Nextcloud file tree, not for the app-internal one. Only the ZIP export was affected, and only with app-internal storage. On top of that, fehlende_dateien.txt now states the reason for each entry instead of reporting every failure as "not found".

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signature5YJYB6EPPa7PoTfCkG8zixyMAiUog1fe+KV73/tIghJV/YWJ2d8W3yzLqUaLj+1Tv4Sy2jwftL4Jk3kXyRCHrosVPR+k7YMPgRJ1BuJrSHTK23gVm8iwQpiHTCY5HqoKZUI47wrxaHkq2ULydZnlnxZWfLvBLV8FXpPUw3oxmkCsHVeqgA3MYXfeKbU5a60Yh9gxOQh9DabCxJJGPPFAB7uBd7ZYJPPhoY7pN955VazN/Zhls3rjU0qWKFqmZehQp7VFesrHmzgxbHe7IGTTH9lNldx/JzPHXTbiBa8ybcvsruOI4OxdGam4ubaAXWPSX71Yo7JLW7lF35UW1/mILLNSkfHxw48sEciHTE0PeDfVY3PKtWuhpgAK4VP/04LbWBOHbx96jXfpV6TguNlwZMdiWvanwJyKGeO8PkiH6gVSut00BGnmC6gxBueGUD5WIGBVqDwhiLFx3EsSGiAyCPy2ZIpBHN8Bu40iooLMCog6vu7w+4cKzVgJSHejwLVSyfvNt1yfNczYj2yarA3zh3eqS+A05Q5N9thr2QXOe753mz2KBd7z/vCIWpCC34RLnlFVXaZj4sure62IUx397INnCUAsxaRqPkkh/9g3QeLOJ3JloL3RV3jIz8VM/37NbHQTApFs78ImdXGnGZ7/YuGcr8J15y7n/BOkEFAsTsw=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.31.1
Release Details
UpdatedSept. 6, 2026, 7:52 p.m.
Changelog

Fixed: - The report sub-tabs are fully reachable again on narrow screens. The bar holding Summary, Reporting groups, Spheres, Reserves, Budget and Log ran off the screen and could not be swiped – it ended after Spheres, and the More exports button was out of reach as well (issue #38). The bar can now be swiped sideways and indicates at its edges that there is more to come; jumping straight to one of the later tabs from the help or the bottom bar scrolls it into view automatically. The same applies to the sub-tabs under Entries and Contributions and – with the Nextcloud sidebar open or with longer labels – on the desktop too. - Amount fields now show the amount the way it appears next to them: "20.000,00 €" instead of "20000". In the budget, the Plan column was a bare number sitting next to the formatted Actual and Difference columns – with four- and five-digit figures it was hard to tell 5,000 from 50,000 (issue #34). The same applies to every other amount field: entry amount and split lines, opening balance, open items, membership fees and the default fee. While editing, the field still shows the bare value so that typing does not fight a live format; both notations are accepted – "20000", "20.000,00" or "20000.5". Anything unreadable restores the previous value instead of silently setting it to 0. - The treasurer's report and the short report moved into the More exports menu on phones. As separate buttons they no longer fitted into the row and pushed the menu off screen. The short report's date field is now part of that menu; nothing changes on the desktop.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureB1QJYSJ6p+q4O5Yi2GBFhXTyaZTxxSwnNZJACVeCSRKygre2q5fbtLy1CCvZ/VBYEBYnuSvcz3uK4Q7ylzoiuLiMkK5y38ntbeFgLvZPgguK3uyJtCEmSXuvFwUUvk51ZFasjy13rg4o3d0HLLSrzPAUAFOu236jwO4Z6QmRSTcJJloyw5sDP3ykLrT5DZT3ZtduaPGq9EsZTV5AWUj6zdWK8LQTFcbX73KbGp/ao1qeXF0AZbVVoJI7GRIbu7Znz1TjknMY18B5XkDHHXw9vxkejtTs/vYfGm0mWREPxymjZJOzA9UuhO4zsdxipDckbBNFmceOYokYx3360e0Ho3qg/AHowOinzVJbDah8pL2ZKXFsrlToNgFADdVGw7V9M0IM4zoIgw7n/wZ2WHZkL8SE3B+vdKEcK2yWemqpyA0rns1hG6pmvMCcTCFvLsuJVfZs/ar6STyT9GuA8IZvYrU6Syhawo8UAXEUfIQeYdi38i11S745xNIXvrbKCpDodmxJ4hvfx/XTsi9TilQPRI174s6rjTzFpNI+wm5lGoiYRfFBFRi3xT9X5sSnGkcw+sie9Y664BLDDn2vf0n1T0bVyPLyKewN+GYz/tomrdJAhUmQx0xuBcR2hFNQQ2QoDwwlhifo7y9Pb2Vo5jJhea0sr/494Z9pUy0s29xfoF8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.31.0
Release Details
UpdatedSept. 4, 2026, 9:09 p.m.
Changelog

New: - The header now shows the funds across all cash accounts, no longer just the first one. Until now the top right only ever showed the first cash account by account number – anyone running a cash box (1000) and a bank account (1200) therefore saw the cash box of all things, while the bank account stayed invisible (issue #31). The figure is now called Funds and adds up every cash account; the tooltip breaks it down by account and names the transactions not yet assigned. If the club runs only one cash account, its name still appears there – nothing changes for those clubs. - Individual cash accounts can be left out of that figure. For cash accounts the account dialog offers a new Counts towards the funds shown in the header flag (default: on). A fixed-term deposit account can thus stay out of the day-to-day figure without disappearing from the books: the cash report, the assets overview and the trial balance keep counting every cash account. The flag is display only and is therefore not locked by the finalization of a fiscal year either. - The cash-account table on the dashboard and in the evaluation has a total row – as soon as the club runs more than one cash account; with a single one it would merely repeat the row above it. If at least one account is excluded from the funds figure, an of which funds (header) row appears below it, and the accounts concerned are marked as such in the list – so it stays clear how the figure at the top comes about.

Changed: - Clicking an account that has sub-accounts now expands them. Previously this only worked through the small arrow in front of it, which was easy to miss. Collapsing still goes through the arrow – a second click on the row deliberately does not collapse it again, otherwise you could not select a parent account without closing it. - The posting text now grows with its content. Longer text wraps and is shown in full instead of running off the side of the field – when creating a posting as well as when editing one. The value itself stays single-line, so nothing changes for the journal, exports or the API. - Dialogs have a little more room to the edge. Content and buttons used to sit rather close to it.

Fixed: - The charts ignored dark mode. Axis labels and grid lines stayed black and were barely visible on a dark background – both on the overview and in the reports. The cause was a check for a theme--dark class that Nextcloud never sets, so the condition was always false. The charts now read their colours straight from Nextcloud's design variables and therefore follow any theme – light, dark, high contrast, and club colours set through the theming app. Changing the theme while the app is open redraws them. - Success and error messages (toasts) appeared at the bottom left. Nextcloud still shows its own messages at the top right, so one screen ended up with two kinds of toast in two different corners. @nextcloud/dialogs 7.5.0 moved them to the bottom left and dropped the position option; the app now puts them back where they belong. - The active button had a white border. Visible on the Income/Expense switch in the posting dialog, on active filter chips, on the underline of the active sub-tab and on the side selector when reassigning. Nextcloud claims button.active for its own pressed state and overrode the app's border colour. - The focus ring was clipped in the posting dialog. Tabbing through the dialog showed only a sliver of the ring around Income and Expense – the switch cut it off. - The posting dialog could be scrolled sideways. The hidden receipt file input claimed its full intrinsic width and pushed the dialog past its edge, producing a scrollbar. - Accounts with sub-accounts broke out of the account tree. They were bold and noticeably taller than their siblings, and their columns sat a few pixels further right. The cause was the expand arrow: on parent accounts it is a button, and Nextcloud gives every button a minimum height of 34px plus a margin – which grew the row to 46px while leaf rows stayed at 29px. All rows are now the same height and weight; the arrow alone marks an account as having children. The faint placeholder dot in front of accounts without sub-accounts is gone as well – it looked like a bullet point; the placeholder still keeps the column aligned. - Text hugged the edge in the "What's new" dialog. It now uses the same inner spacing as every other dialog.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureRpdiBEtKAA1ZA51YvSoVDbENkvtlBocEabzuohgcm5qFUGiUGZLMXzQtGk9xSeAhUOvjMeAsfzeOlQ5ZJTjU7Yp6W0AbHdAALFHCIPiGJTNqUzaHccYXA191IHp/KXpy89kFXUNzX2tBZnnIU4hWOzNXodidjSnuIZnAxBoiZoTSkg12tbtJ0rzCrAoFjolbx1vWBKg+lKGaMtM6qXgGbSNcylqMZ3PIuYeEJ3S+v4OAJcNGnIQtmBWaljdWvh7c6y5GlfQWwvbS6b7leLv99/sRNoaVXId+fXRvUul8O+42tLZ0mpk4GUx0UiE5QtiuagSylE3tmLXvK0F1zm3N56uymcP1PW8p84jbXDszxIDQQfnolu/WOca8gE+l9dBzx1ms/C4LtsfEQw5yzZOSuzxz4Q0PUOmz7A2TKQ0vccRz9qaazd93hhl/+6QGJ1fOfA5vxtbtTwtuONfAgtSkXrKj3uGZU3Q5uu2l2e6a/R0cpYIYexhIk+Xnc0NlOK6t9uNQdH1CTpZ7Rj4FpTteRnIHJTWLTn5RMXW/bJBFTsBoNOAvBIq4RalYd25avk2pnmAI8rQzEgU8+oSJV4Zb5L47lrA5nlVYWn+G0hw83K/dm8/8aRvkhv0th1kE4IrqSWbZ/BD9i8oSNGnQ2mU4O1Z+Jhjkjh55oge2PeLgQWw=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.30.0
Release Details
UpdatedAug. 31, 2026, 8:36 p.m.
Changelog

New: - Receipts can now be attached while creating a posting on the desktop, too. On the desktop the New posting dialog shows the same Receipts section as the edit dialog: the selected files sit in a list (with a remove button) and are uploaded as soon as the posting is saved. Until now this only existed in the mobile view (windows up to 640 px) – on the desktop you had to save the posting first and then open it again (issue #29). File type and size are checked as soon as you pick a file: anything the server will not take (only PDF, JPG, PNG, GIF, WebP; 20 MB at most) is reported by name right away instead of after the posting has been saved. If an upload fails anyway – a dropped connection, say – the files concerned stay in the dialog and can be sent to the meanwhile created posting via Upload again, while the other receipts are already attached. While saving and uploading, the button is disabled so that a second click cannot turn into a second posting.

Fixed: - The Attach button could only be reached with the mouse. The file field behind it was hidden via hidden and therefore dropped out of the tab order – anyone operating the app from the keyboard could not get to the receipts at all. The field is now focusable and shows the focus on the button, on mobile as well as on the desktop.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturefVul/2TJkdc0pI4s1Y3nesPADFrMVwkimF+/qhyka+ikknmlAgb8tVmNFcoT/lKpQrXG/w/qLfY/kGi8v7iBgZz9KZE5ShnnvaV69P1nZkJWaRz+8tzAumubC/5P/lWtQPUsOCkt4MDYknxDIPjkSLv7v/MnqxIfsuG01OnhgzG0cu27t3TRvVjQF6gnJ4sdD0ceokH5Ntnk63elMqDo8EjxZu7/WTktjZuwKWZPgtReRyKVaNsWU5XnhVA+X2tshjvfHNt7UeWq/+T5TJFCIkjF+jUCYwYm2Z71pttdi1qsOMRi/CchrA/a4fAAR9aD/tzLLzgNWXKLywQfFAv6T84bsVOpz0hqq72GSvbYMSRNYlF9e9J//8zOPxxqP+Jq+gFb7jCT+BW76He0nz8luWqvktz/njyxs1QrtS/ITvB8H4YYhJRvw17+zci41DNn4UyumhyxVBk6QNbKCDTrtzsMSOdVqEWDEzgc9JXy1ag2yrrEZPnCIJHckwT50UUkOXwsJWVW/22QIH6Z+k+CZKYeqDcp4GbHiGowvVlnuGcrS5Sc2iA/7ERgc3hHdgEdZ+VNJIr3eiWwnfJba8Ws8wRXeTpw/7qFoAtOkaWen9O3oYmQA6AYiO6yeXG3/QJjQ/KovDPr40ffDA1Fsj79PMIH08ZXjWEPPztSTaNYRoM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.29.1
Release Details
UpdatedAug. 30, 2026, 9:02 p.m.
Changelog

Fixed: - Success and error messages (toasts) rendered as bare text in the top-left corner. Since 0.29.0, confirmations such as "Settings saved." sat unstyled across the header instead of appearing as a box at the bottom left. The cause was updating @nextcloud/dialogs to 7.5.0: the library's toasts now carry hashed CSS classes whose styling only its bundled stylesheet knows – up to 7.4.1, Nextcloud's server CSS had quietly styled the then-global Toastify class names, so the app's missing stylesheet import never showed. Both script entry points now load the stylesheet themselves; a static test and a sharpened e2e test guard this (the previous one only checked that the message text appears, not that it is styled).

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureZNu+0GfB6CNdCwdO8JIIAFJufLn9soTS6/P1RXqQaPN4Oekr/TyxcLVuvcVuNzEYDBGFw9HDZFvX/2GIoeGoK/39vfOELcpkWr9L1K216j14IueTtzIhOtOWr3D1IaMJ+DJ/mNRU6WPvQFV39z80ZOml6fiUJ+FIE99l3VljDq5laYJo9a9MmQfnsOgj7chk0hMp9Y239P2srKL4dX57wU3tTbKdGVpE9qUNqpeGd7GFoCrz/N245oj9hjnIYUcIpEb7/05fgc7ka2/9n5EE0eHHZHxeDe4sRIFTmoitUkiXNvdxF2v5a7VVaECeZIQBoLVBfsVn+w4s9JzIbUMfz2V3ZtTG+EZt91lcD7PcJQwOp1JLRMGZFVv38CW65cCaIFNWya+YoMV/+C63sM2yjuO1WLDHdOOcBdwosksiljUSpnl/MhcCFAUyPMsugG5y5aQSnwXcEQ8C5tMUPTPZv4DCI7mAaSrliAkg2llZeU74XWy7FNvlp7ILZYPgFbBJOd+LB+qXy5DTArfTYhFspVZEPUGdMXS6hq1ApJcd9ZwT1rHbZimEGDx7EhAcmMZK3oIpPrYr0ULRqpSub/rcV1GgLsS1zryfb26r4T1qQrP0qwajmpIBLsOhQNODbD+ejcSrQECDw6BTaBlm278v3OrwQVSiOTWw4+EoCF2HxeY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.29.0
Release Details
UpdatedAug. 30, 2026, 4:45 p.m.
Changelog

Changed: - "Cost center" is now "reporting group". The report, the Manage reporting groups button, the field in the account dialog, all messages, the in-app help and the manual now use this term; in German Auswertungsgruppe. The trigger was a question from an accountant (issue #7): in cost accounting, a cost center is a second dimension on each posting line – an amount is allocated across cost centers independently of the account it is posted to. This app does something else: it groups accounts, and an account belongs to at most one group. The old name therefore promised a capability that does not exist – and strictly speaking there is no such thing as a result per cost center anyway, because a cost center carries costs, not income. Nothing about the functionality changes: the same three groupings, the same assignments, the same figures. Groups you created, their codes and names are kept unchanged; no conversion is needed. To split one amount across two groups, you still create two accounts for it (ideally as sub-accounts of a shared parent) and split the posting across them with Split…; manual chapter 5.4 now says so explicitly. Internally everything stays as it was – table vbh_costcenters, column cost_center_id, setting cost_center_mode and the /api/costcenters route are unchanged, and there is no migration. Older entries in the audit log keep their original wording.

Fixed: - A deleted collecting account blocked the entire settings page. If a collecting account had been selected under "Contributions & SEPA" and the data was then wiped via "Delete all data" (or an import with reset), the setting pointed at an account that no longer existed. From then on every save on the settings page failed with "The selected collecting account was not found." – including the club name or the receipt storage, because the page always sends the full set of fields. Resetting the data and deleting a single account now clear that setting as well, and it is only validated when it actually changes, so an account that became invalid later (after removing its IBAN, say) no longer paralyses the other sections.

  • A deleted Nextcloud user blocked the entire settings page. If a Nextcloud user was configured under "Receipts" (receipt storage) or "Bank data" (watched folder) and that user was later deleted in Nextcloud, every save on the settings page failed with "The specified Nextcloud user for the … does not exist." – including the club name, because the page always sends the full set of fields. Deleting a Nextcloud user now clears both settings as well: the receipt storage falls back to the app-internal storage and the watched folder is switched off. The user is also only validated when it actually changes – for the deletions the app never learns about (a foreign user backend, a restored database dump, a deletion while the app was disabled).

  • No Nextcloud user could be selected in the settings any more. This affected "Receipts" (receipt storage) and "Bank data" (watched folder): both dropdowns only offered "— internal (AppData) —" resp. "— off —", the list of Nextcloud users stayed empty. When the settings moved into the Nextcloud settings (0.25.0), the page lost its binding to the user list – the list was still being loaded, but no longer passed on to those two sections. As a result, receipts could no longer be stored in a user's folder and the watched folder could not be set up.

  • Illegible labels and wrongly coloured buttons. The app used Nextcloud's light status background tones as text and accent colours: "Expense" in the posting dialog was white on pale pink, the remainder shown while splitting was barely readable, edge markers and warning stripes faded to pastels. The dark theme was also tied to the operating system setting instead of the choice in the Nextcloud profile – picking "Dark theme" there while the system was light produced light colours on a dark background. And several of the app's buttons (the income/expense toggle, the checklist links, "Skip", the suggestion chips) were painted blue by Nextcloud's generic button rule. An automated contrast sweep across twelve views in light and dark theme found nine WCAG AA violations before and none after; Nextcloud's high-contrast themes are now picked up correctly as well. Two superfluous separator lines in the header area are gone, too.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureyQHwNNxrBjVIKt7MFaMKoeJwKVfhHDcVQwZDFVsw8Si/nVH9ZKTFaSh3U40O+M9pUMS0orOFnbrKEjuQ9VlcDRYhzlxkzal2X2gSNnVZEnMSEEWT4M+1wyvGfy0aPh+KmX9u1udqC6ERlVJXzWU6Bwn2/oUuktI+/j3LjlegsuiW/OeDz1raNNoYvl7p6f5dSuSfItaPqtcbGjjefw+75WZhJXdf/kwkJWPLPkU16i8PZsR8VsShq0ZQV/8HtgSQJ2o3HVwpELHA2onV8rmNbvOsvLj10PxDjYlD8jNom4YuAMCpn9cx2ynOtVS0bQFHHmhtqdq7E4sumSJkf5m1m2n/Y5R5mID1qiCEAtXNcyoRhOz0Dl7bnq4Lj7KtxYTHxurHdRAo/XSngwP3Uk0Tm+H2HP+m2qDCxLpY8aBR7ISrTzR4YsvwRZCv+7U96RhMVJ23Zv4tRf3SW+ohI+hRwLWYQkyfbKOht+i0EvuZMjubbOUgOMdwHMRVQfqF1IV1YFN3IV1+IfkdeTl2KuyFd6h7ecg9KjmUcE4ByS9TZdU1O+uF8MLBmzLBsqTKKNCruUXgOOJAeOcewfPsxJkZj3yzH/EmAiS2Yww1MZRI323vh3gkk+Nk4OzvQeidOwX6wq1cR9AEZGUpIrzyTDqIYI6S8Y+c/nxQDCyCBtZ0s+8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.28.0
Release Details
UpdatedAug. 24, 2026, 9:25 p.m.
Changelog

Fixed: - The interface stayed German even with Nextcloud set to English. Until now the app loaded its translation bundle straight from the app directory as a file (l10n/<language>.json). Nextcloud's shipped .htaccess only serves files with certain extensions from there – .json is not among them, so the request ends up in index.php and comes back as a 404. The attempt therefore failed silently in every normal installation and the app kept showing its German source strings (typical nginx configurations behave the same way). Translations now come from a dedicated endpoint (/api/l10n/<language>), which is not affected by that restriction. Server-side text – manual, audit guide, error messages – was never affected.

  • The confirmation for posting a SEPA collection showed a red "Delete" button. Two dialogs were affected – "Mark collection as executed" and "Undo return" – both left the button label to the dialog's default, which is meant for deleting actions. They now read "Post" and "Undo" and are no longer red. The default label is translatable as well; until now it read "Löschen" even in the English interface.

  • The buttons in the SEPA collection list were cut off. The action column is fixed at 160 pixels – a width meant for three icon buttons. The four text buttons ("Show rows", "Download XML", "Mark as collected", "Discard") wrapped onto separate lines there, the widest one stuck out of the column, and that made the table wider than its frame: the buttons sat half outside on the right, and the "Created" column was clipped on the left. From 900 pixels of window width they now sit side by side; below that they still stack, but inside the column. The same applied to "Undo return" in the expanded collection list.

  • "The accounting was changed by another person" – after your own entry. The app compares its state with the server every 20 seconds, but a change detected that way only counted as your own for 15 seconds. Since the comparison runs less often than that window – and is deferred further while an import is running – the app regularly reported your own larger actions as someone else's change. The measure is no longer a fixed window but the moment your state last provably matched the server: anything you wrote after that explains the difference. Genuine changes by other people are still reported.

  • Sphere, reserve and cost center names stayed German. They came from fixed strings in ReportService and never went through translation, so the English interface read "Ideeller Bereich" instead of "Non-profit purpose". This affected the sphere overview, the reserves overview and the built-in cost center names.

  • 22 missing English translations added. Among them the default-fee hint in the member import, the labels on the SEPA collection cards ("Total", "Due", "created"), the "What's new" dialog and the first-run hints in the help – all of which showed up in German in the English interface. A sweep of all 850 strings in the code against l10n/en.json now comes back without a gap.

New: - Member lists with English column headings. The CSV import now recognises English column names alongside the German ones (Name, Email, IBAN, BIC, Mandate, Amount, Frequency, Start date plus common variants) as well as English frequency values (monthly, quarterly, semiannual, yearly, annually). The English manual already described these column names – now they actually work. Existing German lists keep working unchanged.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureInHxPFEZyBd3yG1z+2uy6aKBsx6FyoN3f5ANpltNQ5cdO4ka3WjXGr2qoXoxzwiAF8GuehGrB49Y6PG/J0rD+NDfxrlsdagjW962RfIAbfy7iuyWyAJXG5zzUuCtBXrNsF+xX2p0oJCgxu3pP7py734yG2C0O8QlnzfNMv587XwlN5T8u4tnxZBpaFgDppx4M8T64wwirD6fXIHZ2XscD6Z93lTwONEJ6QinuT5GVXPz/xALj09jIfau0QUlf7ASK7ZW+RafURPvEJv4yoDfz9pG2K5rp6j9eKsRy542OlgWasYWiQ/AsOAzhrlbXE6I5tc0RV+PgpE+1XeFrZCKk7Eh1bBFUjBEpd8wrdaN4SatC3izCdry/SGmO7cZnD+pO7aYtOmDpPUKJcu3AByHkWNj9XR2o++1dlBDHBgVc5pI1LZrkFsS0COfvBle46qoasWmG1O6FCUtHe5bG13owgxzujgc1X9OuTc0PojlMQObD3h7aiwwYFHhQKellpUdYiW/VBfWSIb6pEHDkronPwWG1LitX7khY8/Nwfc02xDIDhq547Q3S+pYaIB4uh8mkr37bdQf/ThAwKHRBCaaRpFfq/mflPgLy1xHJ5G7VWdGTaUo2DL9ABLuSLG0q0x4kjt5cJVZlgNpkDJzvxjndy1t7mU3KR5XB/VNqiV1gm0=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.27.2
Release Details
UpdatedAug. 23, 2026, 9:40 a.m.
Changelog

Fixed: - "What's new" popup from Nextcloud showed "[object Object]" instead of text. The 0.27.1 entry still had a ### Fixed sub-heading in its changelog entry; Nextcloud's popup renderer (marked v18) can no longer process Markdown headings correctly (see note above) and shows "[object Object]" in its place, while the rest of the text renders fine. From this version on, changelog entries avoid ### headings.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureNgfXL4Rfqyk2fMRoXHkcuOpie+84LH1qIhuhJ+Sfs4K29Xy5fbifWMVhWM2HBTEhfNqQaqLJzVzi4BVDV1rjlvMjD4O35H5QACv4J8/3jiw76kJTS44yTA5zVcnhWhBCqr6yuB8jTx7hco1x7uCo2ywbJvjJ187R36mNfVm6ZjcKhTDNwRmM0vKJz4GaOubDo4btXQbQpFhFUPAUVRpfRTVYfJKvuEOmTo2NWScedIG8pFocJL97l9EAymq0XconkOSporGYKouX6WalbuG9k+EEdPsrNaRRilNfOGQ2ffVXy/nMK4Z7SiF/ZGuFA5K0VI3TlV/KkIjm1o50gjAnu/9kko9C4aqijlY/chU/h84MDfwGC3omb00NHhd9aCuaLp3JoZfoDgQjdtSrQQA/n/EC3o2WwXJknTUxamNroeviXVFrhNl7CtI98yXhVExWePLfdmVb4eCDZl9+BsibH6nM/tQV52hToGpSyYJ+xUehhKV64dOQjf+f7BaTo+uK18vXNin/3lph6p+sLUkB4T1nli5F2kajhzZDA1Q0AC6JlWQ8YiakUO+94I5FqFruv46S+89VTbE3co9cY8kbPImIAT00o+g7N6E+SUPvFYCryYYElWJkv8TdUBGkA2wYRshimV3lcg2nDNrQmvQfk6y3ttSXstnqlnOQd/gdyi4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.27.1
Release Details
UpdatedAug. 23, 2026, 9:08 a.m.
Changelog

Fixed

  • Broken "what's new" popup from Nextcloud itself. After updating to 0.27.0, Nextcloud's own app-update popup (independent of this app's in-app dialog) showed "What's new in {app} 0.27.0" followed by "[object Object]" instead of actual text. Cause: since 0.27.0, info.xml carried the app name in two <name> elements (German/English) for a localized App Store title – but Nextcloud's update notification reads the name at that point without a language code and can't handle multiple <name> elements (a Nextcloud core bug). <name> is single-language again; <summary>/<description> remain bilingual.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureaeAWQtCQuWsCH4+c3wMP1uOdvyL3Q9PzYaU51NlPZUEdQAKmgJ+hr6P3RcagnAVVx9RKun88DqgEASp3wfO4PQoctWxw1f3x8uj+jEw/Lsm8/kKfOJRzBWMOHRyOhnvUDQeNtmJ3D/63gftHG2+KWgiEBSAuMf1hqoR/4fg+zuqh9sxiuwAEwDYgP6JMEs8zgLC9bfcbRgjpg9upN/G1pGYkFgIFWNkhO+ETFSj/Qvd5V5o1fMhP58GPNQFsLOy6/sMhxqznyvqr4cgBfQyd4BETkrJ7GY+6EFD0NmGy6SDiSwRYzBgbkaRyjZAd1DSg/Sybuztz8SzWstRdyse43I6DhndKTFj/keK4I8JJperJv8NVF2/y+ZBQwZIywDns4uuAvXbYmi6soFJFiu2RV2DMSnmR90g2Y07mp+pMQ3S4XBpS+cFaBcxElefyrCGMe1dEnhLWgyITH9gHgfztT4KFzaTWc3XGRH6RUbPxyyxwWsa+C7PnA7S5MgegXrXichoDdAQecWRUqTBf61nQOJB9i83dMYQBzLeFdEMWG9MDcPfJrasHG5hFRkBctvY6j5yrLhZHu3u0hEeX8xk3/nTSZbkpBjklAooT1qb46Za+EA2TbGKv5UPb3S1pONIqIN01poeZ1dRhry3ddlt+WdLbwfeFm9GvOaj1/xDivVE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.27.0
Release Details
UpdatedAug. 22, 2026, 4:51 p.m.
Changelog

New

  • README, manual and audit guide are now also available in English. README.md, CHANGELOG.md (from this version onward) and HANDBUCH.md are now also available as *.en.md, with a language switcher at the top of each file. info.xml now carries <name>/<summary>/<description> in both languages, so the App Store automatically shows the right one. The manual served in-app (/api/help/handbuch) and the printable audit guide for auditors (/api/help/pruefleitfaden) now detect the user's Nextcloud language setting and serve English instead of German once it's set to English. The chapter deep links from the in-app help (HelpModal) now point to language-independent anchors (section-<chapter>) instead of slugs derived from the (then translated) heading text.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureMi3raDuOYadKfpzYefG7vj6dVm3swn9+mt9ruKaYeQxm5nlbfNi9FewA5R6IJqVP0EcpSSE1h7LfXS25LueCsPlRyIWQ5nz+qr2dQkynflesWDyZzoVt/lSCcQyUfJN0RP+dVXBCcpiltKKKg2FNZzxxmj9BxgL1nUimMSi48FG7xwmFRXeXcBX/fIAF2EOnOCwVF2vlZ18jju+bJQATEQZ5cH2jIWi7g1gD2eWlQYUie6Qww8WU2n33XikVLQpVwDuk6TFz7aSJJ/Rq09b1w4uJhUCIq9fnV0e88dSMjrjj4C/rJdgf2+J/BFcvKJh9KVkBNzkm4FkTxRyRpTew+wqeem5+EdsAHoyKggJqLmbS7KSujXscwA8SzSzvwd+v+MoJSHu8I6V8Fo5Y9z0b119jg9itfR3X5lNsly2bVj6SrMrEAGo+ER2nNWCwDs38/3+2bgXPAZrdnyER+kqpPy3NgdCRiGAK2wWo/T+5fS5P1wncauXqaDLPH7V4wHNBAib9cxUgaiyDzxl+uvH4v+SZC1IMlEfwfZGZjUJnBTY8OVLpNC03LNDVgQkBp65plEnfavZ4oyd4vc6RSA7y9lr57WtuE3eaOohGp4OoWZaOn8T3T1OnzIGMbryiTGF771CikEdUNFbhGi3KAi+mz7CGv3ZVTZCkdyqnoOopXUs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.26.0
Release Details
UpdatedAug. 22, 2026, 3:27 p.m.
Changelog

Neu

  • „Was ist neu"-Hinweis nach Updates. Nach einem Update zeigt die App jeder Person einmalig einen kurzen, auf ihre Rolle zugeschnittenen Hinweis, was sich geändert hat – statt dass Neuerungen nur zufällig auffallen oder gar nicht bemerkt werden. Der zuletzt gesehene Stand wird pro Nextcloud-Konto serverseitig gemerkt (nicht nur im Browser), damit er auf allen Geräten derselben Person konsistent erscheint. Über Hilfe → „Was ist neu in Version …" lässt er sich jederzeit erneut aufrufen. Nicht jede Version bekommt einen Eintrag – reine Fehlerbehebungen bleiben unerwähnt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureSSJGYRSPKYldBCTeEervEPuSTfCzZo4MueT61i50B0YTBi7eSIAZT8c4YPEN2OpNjr8ZZHeGBGjgRqVRHaa9ewHtue5Qp6UDCdeCw5O9G+pIHNIXY4kENM87wt+15KOrQ99WvuX69vR5L07S3AFcoGEFocuB9IYgItFt5hTNi6+MyNgMt4IoN0nHgON9oCBrGxo6zxDuhZMrE4n0hYAxtgH5iFUmWEn2OjPvlYrkWnKXo9G4v0/4fR0xVM+N/6wg6Zgmox/4NPKfU+BjiQ5D+erMxOzxm0CDb9tCVk4BK7Za/vnkJtpcb34h4M2NJWTHgWsnkUlmPLvIPbwNtWOgvuyAOOUoviJLJaU1nt17AFHSaHwC5WQtDbF38WyPOKMupMhvjLYZsAAxrMogZUE0Mf51aUUxfm4wFsWRp+kjkQtFd/yavBZpL3qKvcAg25Doc3AtJEpar0Zxd8T6sQx6S+rkzcQRmWemAsq3gQO/WwqKIwOwiXy7ny2m9SZqY1ILL/8S4CZFw+kuZuwT9OjOIIMbxXpAt5R9tpXMqDTGRWmfZ+UEaM3G5TGPBqWPG8xOM0Tj2yocFSGGMFZfqSmRvuDKbogFaTzcrGg12i1a78tOSFDi93IqeZfPLEaD248RKbSDzVAyWkvx5aZDPmJoawif7uCMsGyEP5RQH0FwWHY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.24.3
Release Details
UpdatedAug. 15, 2026, 8:01 p.m.
Changelog

Geändert

  • Beiträge → Mitglieder: Bearbeiten-Button zeigt jetzt das Stift-Symbol statt des Texts „Bearbeiten“ – konsistent mit den übrigen Bearbeiten-Buttons in Tabellenzeilen (Buchungen → Regeln, Journal).
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureF0vMWEnRu1h2zXCbNEoRJPpy8dqSTmHO/nDWrvyWGXZbI3yyjjjWNoUVyVnjdXiQvSRdwGpMm5zMTft0hXf1UVa5VqcCvVh1OpqSIS26VB8CUAO9ZjP1fmQsaj3t/MOcOfLqrJo9H/JYa5jXgZalnQexVhNN6si9CvTGkZEopjwq/q5f/8bwuS3K25Ich3VIFJXp1ay6YFNjhPnfY5T2SGVBVNE0/Tzen5gTL3LtJnhzoP3//aArkzqH1RjgQC+nOr4Za/wXCRrfg5rbnxpFC6oirrNmvtaw3Ot4y3MVoSktp0h+ssRodoO4DFQtr3GohwajY5+QA6pKhGuDwgvpJjKWUa9TJzCxqFkNsrOkx1P/CjNwLneTUraAZlSuyen8mpQjrJePzpSQSZTn4VPTcrM6+BcrUrygURMz3zEhdDdRRGJQJV+CWxDTLFMbDoZQfuYZWI9RBkesC3HjwMYy9rdmAsmV3Ygnp6JrM/z11qklkCZBkxBzizAuR6GSmTGDdVJ3YDRVL3j/BccLKdrTIaSbTsGAwHT2rDO5LSrikLoou8kcxKvgQf64JgaO0DedpxEcMAk6dWRTxLo2EjXVjDaOBIHg2yT5JCBb/N/PKJ/fx+2iwol/PjGIWWHZT4/lvDOnUjygZ6u12s1MQRieORB/zO0xz8jeIAf7X7xbJdg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.24.1
Release Details
UpdatedAug. 15, 2026, 6:04 p.m.
Changelog

Behoben

  • Modal-Überschriften schwebten am Browserfensterrand statt im Popup: NcModals :name-Titel hängt CSS-seitig als Geschwister von .modal-container, nicht darin – bei zentrierten Dialogen (Einstellungen, Neue Buchung, neues Konto, Kostenstellen verwalten, Sphären zuordnen, Mitglied aufnehmen, Importe, Hilfe, Bankverbindung wechseln, Plan-Stand, Willkommens-Assistent) klaffte dadurch eine Lücke zwischen Titel und Box. Betroffene Dialoge rendern die Überschrift jetzt selbst im Inhalt; auf dem Handy (size="full") bleibt der eingebaute Titel-Balken, der dort korrekt über der Box sitzt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturemZBEME1oniTSxTY9AmcBwrzJDrnU2MPLyQSXHoUEf9D42t3aQ+3A+GsoTO5B9K28MZwblObWytuz6tF5XjeF/o7V7bwag+KfSwVn1fWo2v8Jzqh/KzZ5cSDorHEjhRMLrr0v7zGXM+J+VSHdxtQ7X4JhOtnRMEtq8eD5/ogYZd7IwCTkyXkG9dMvvIDqO0npTQc6SegFiWr5vQqnBmcTf4YSb5to3j9OgPfeHJslrr01r2KJFo86iwexm6hS57d/QgldWkSPBWcQX/mO3Ss5j7HwP3LdrvgfLq9KbUeS/+iYkPXHmL76edhDIU2iNq6pHg7dDKFekFWOEnCp2jPx7yyzffLZ+vSDSgCca08FHdXcLPIqyihAtzM0oeQYQ/b9CQaVq4h1vKKpYrsS5Dexl5y3fY3LfwzJBZ4gNLaSIcixGphGf8L/vxQCvpqsKox76CniRA5f+ad11pkbK+0xCXPUZYfm7x+Rdz5tGfEHnlI+S76OHBTnHfksY2sXMki0iGDad5iYFr6TjGAKWZA9Exlgvuh1I0ZWnCP2ItwHeTVbAPsupVazB8aDTuBSr4HxeM16XnAZAthMgdJtQAkVqjV8iiyKnOKYLohSlaaTbFLjNDHhvbAEa+sgdDUyQhEr6nv+yM4gElpqjtu6E5sb7FlCGn/RIfflVeR2y5w45bU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.24.0
Release Details
UpdatedAug. 15, 2026, 5:37 p.m.
Changelog

Geändert

  • Berichte → Kostenstellen/Sphären: Bericht bekommt die volle Höhe, Pflege wandert ins Modal: Seit 0.22.3 hing die Pflege (Kostenstellen anlegen/ zuordnen, Sphären zuweisen) als zweiter, oft sehr hoher Block unter der Split-Ansicht (Baum + Detail) im selben Scrollcontainer – der eigentliche Bericht war dadurch auf min-height: 360px gedeckelt, während die Pflege den Großteil der Seite einnahm. Die Pflege öffnet jetzt als NcModal über die Buttons „Kostenstellen verwalten" bzw. „Sphären zuordnen" oben rechts im Bericht (gleiches Muster wie „+ Mitglied"/„Liste einlesen" im Reiter Beiträge) sowie zusätzlich über „Konten zuordnen" direkt bei der Baumzeile „– nicht zugeordnet". Der Kostenstellen-Modus (Gruppierung) bleibt sichtbar, da er den Bericht selbst steuert – er ist jetzt ein Auswahlfeld in der Kopfzeile statt einer Karte im Pflege-Modal. Damit entfallen auch die CSS-Sonderfälle aus 0.23.0/0.23.1 (.vbh-sectionbody.is-split hatte nur wegen des zweiten Blocks flex-direction: column und ein eigenes .vbh-section-divider-Padding gebraucht).
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureF4fcHxqtwK40/pbTvqEDMLCdTPDegYcr9z834SwpPuVWNTebRNgwEDPMkdeFqpQkrAANpyo+818P/va/RY/OPVdRo12pkmyZVkdOcW7F6GtIpAj6GHKJBw60oxJ4VT6eld5b/GaMD6d9kkfYCuiCziaVtM0p1RIwBWNSmqrH6Ru/yEQftJx8Zbqg6+QgDOy/PGWZ9b/73fPFfifNu0btD9K3XEvJGAJp2GRLuUiIki8eeUHf/3fMDj1xPFtr9y6avxoNkgBS2Zqfi6OLXfRNK2lqHdbUbcmXU1f56Qfgx/KnOy/yrkVSjs0pzGUOAl1vCZTp0Yzq7+uuUD5jVMvpGBJ953jvEPXlM7DzHmElf9VL2rcy7SFHKjB80A8FptkdSMCG4qe3HUU/W0ImlUhf6BD0p3t1ElHI/SEsjjggabLebxk8B+nNOAyWJWCagiEA615yaEzTiH5kH+UylKzGXvih2CZvcGeGo59m808ySvRCtkskfyyDDMpv8GU2kzeFPsCdB0DOO1SyNFfeJznKMLu+fX3H0phF8IhcrwnVCloeGt5p6VPzfgAOcT3MlUDVDqoQcfyoJk+Z0+qGaoJ0F7cLA7+PnsgRpEsI6/J2XHDnCkimNPWJFDn7JAh33aDYx03CKXaXwVnx5D48V8oF4wrk5OMt+lK8YVjJ/z5UKk4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.23.1
Release Details
UpdatedAug. 15, 2026, 4:41 p.m.
Changelog

Behoben

  • Berichte → Kostenstellen/Sphären: kein Rand, weder oben in der Split-Ansicht noch im Pflegepanel darunter: Nachbesserung zum 0.23.0-Fix, der die Split-Ansicht (.vbh-splitinner) wieder auf volle Breite brachte. Zwei getrennte Stellen hatten trotzdem noch keinen Rand, weil beide bislang nur implizit vom umgebenden .vbh-sectionbody profitierten, das für Kostenstellen/Sphären aber bewusst auf padding: 0 gesetzt ist (die Split-Ansicht managt Innenabstände sonst selbst) – bei der vorherigen ~1px-Quetschung war das nie sichtbar:
  • .vbh-splitinner selbst (Baum + Detail: kein oberer/linker Rand) – jetzt eigenes padding-top/padding-left.
  • das darunterliegende Pflegepanel (CostCenterPanel/SphereAssignPanel, umschlossen von .vbh-section-divider, das sonst nur als <h3>-Trenn- linie in schon gepolsterten Containern vorkommt) – jetzt eigenes horizontales Padding auf .vbh-sectionbody.is-split > .vbh-section-divider.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureJUeU+au31gmFileGZvqfqHdz76kVE7sRd5xouf9LGjP4c8r9h8aQbrSozYWtASvPi8iCRh+FoqWauREynx88pz3ZnI0+FJfQBn/SIxy/ZyBSfiNyTVIwCi8NTYlp1Zo479tDt81my6+kaVDjfCRdZbyncuHugwpZbyxeoRuKtH21NenZVmGviCplJhiHgXYKUS6W4cgOMZ0IeOeP5aSlaigfbf39v5wf7nEPtGRMVmjmODXRa2T74Rbwmf6i8ujxgKklBeIY9jimJWqoQ5gMas5eE/swEnQsiy2xNgw71xBUtkyrMWKLw0LvPg5u2czJ1RlDVcQoC9MRUs3lY2N7A7mlkIIOaNCH+VFwpYddpR+yZRpCqaLUf4NyRynzUnk/p/PIvcWwhmL6tz2Z59ksgrvKLjcZqhE693JLvXKDVWXwjxg7tMUHBpVR8lwKyEAfXxQiuLkktTeCaHqEsA1ag94uVirj8GgJwzrpYBP6hPuopBgZ5yqto6nDLNfTzA6xzYhcYBM4Hi7M8XmK/AMr791kATi2pjVSq7RmYBGUneyRe40dqUDCR87pVzgQuink8cELbyDpAXlhO5TqAd/yxxmqrdX/HXWHiWSBuEj4qU2y0zcfhi5G2oLdaA5Fkr4PO874E5I8Eco51QUZFUG1LLPCBrIl3YkL0MicAqpEIe8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.22.4
Release Details
UpdatedAug. 15, 2026, 12:35 p.m.
Changelog

Geändert

  • App-Store-Beschreibung aktualisiert: Das seit 0.20.0 bestehende Beiträge-&-SEPA-Modul (Mitgliederverwaltung, Lastschriftmandate, Sammeleinzug, eigener Reiter) fehlte dort drei Releases lang komplett. Ergänzt, außerdem CAMT.053/MT940 und der Wachordner beim Kontoauszug-Import – bisher war dort nur CSV-CAMT genannt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signature4LRi0axgsMDOcm6JxlvfjNIxZrlCLVndYp1Nj1ffQ3gJMixwlFkR0kI8Eri3poO2kHRfnc5hFZZh+0qQ3nFBBDPLoSXIlwXOdh0C3/CsZxPvyYSFjbW5ZP6+e0LhExYd7UMl1lNeXNqAgfqw2GBiwRXeBFf1lwkcoDWJY6GF8U2KDSwttbjQny3cK60u4nHfHM0ye+NochsmaoUdUyJCuvV1fsERFp2bDYt8KmwJWB6gIX7koTp+4JXIEFzxuREAij0b5A8XOZlMQvlGYKcZatwyR8oQXFPOLUBRt3yZgAfWx9+nx9GXaMQYQ2l1p3nv9C/TmgiMdpALvHfhFCBnqIVvcEBMizpNmRyPEelbb1Q3N4/2kRmbqV0e5dApltmb6zdcdWGl26PIGyTjgmN0jFiftM9OGIcinCBBH6vEpo/y6GBsthf1cLbBGYYe+qZMamxruF58MQ01KCkCzUtGSENUVfJKtS04v7+0gB0SPMkAh/KJb4bNf9qajfqD+1apWm5ceWBtTY293YlqGfEDDXPWeRfp1YcFfxkul4H/tLwVeonyFQJBZ7FTxeDUAeY+JlrruIs79av7ERKGFbS/4LHdQc1G992yy6BvTFVK5f/7M0tWAgYteUHD0IVdKlPRPiGrg+oycs/XN6v+RE9uLdHSJrUIMJZXf79DNpI47fo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.22.3
Release Details
UpdatedAug. 15, 2026, 12:31 p.m.
Changelog

Behoben

  • Konto-/Kategorie-Auswahl auf dem Handy war unbedienbar: Das Bottom-Sheet zur Kontoauswahl (AccountPickerSheet.vue) rendete zwar in den DOM, blieb aber unsichtbar und unklickbar hinter dem Buchungsdialog – Nextclouds eigenes Core-CSS (#content { position: fixed }) erzeugt einen Stacking-Context, in dem das Sheet trotz hohem z-index gefangen war, während NcModal (der Buchungsdialog) dem entkommt, weil @nextcloud/vue seine Modals an document.body teleportiert. Das Sheet tut das jetzt auch (<teleport to="body">). Gefunden im Gesamt-App-Review, siehe APP-REVIEW.md.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureknAf0tPINZuLUg1pagqwrKg05TXChSaJ4x8RZTzPAJb0p3KwCoujY9sFQcjXmJGzu+Zb/3V0yNdJrzeZYVdl6272s6V0D28Yk2t7wFeyY1EKr/HsX0KjIQ4g8iCbZ13JfZOftXuoIIbGNYCR/N1r9R3559J49r0npp2F7ieEZ79eCdehumskUMxvjLnElh2tB4rfxk/JH42/PoBPuftBGJTQo3N6g5B9GmFIWKEE+EytiSN7F0Y8PCWdXts4rNQDaPvWnu40GHvJHfLv9wfX/21Kjtt8pB2WdJFWAvkrDLMXFsAwOJsQ+nprVm9jRQzQv2BmP4K4eBoHietPezxrJSqHgfFSz8jG0yTWRgOaj/BdSv8AbgxvubwS9F+l1HDNzj2tFH4WjiITbYv/MdZWmhz8+aTtlhet5uB61eSwGoO8r0Gwss/NoWcO/oq9beqH7Z8uWr4724Q2r+58PWZFdeZ4HNH5PzJxnNaew0KY0sb6HDkdKUbcgXwxywImKJuNQU2J9HWKrWlledlf2gXOmHpcHhH8mfiKgiQ4I5SN9w9ikJ33UROZfBK1kt9CRmwW09oPsV8ARAS3pp0l8wnTsdwuIYxMWoWoIqGgWfdfUTUfXljwsjKl88/wlxj/E4QOjYxJlOo7AOr2XnMjzgDHb5AD6eyPxpzvu0hLDUQCmUg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.22.2
Release Details
UpdatedAug. 15, 2026, 9:12 a.m.
Changelog

In appinfo/info.xml direkt von 0.21.0 auf 0.22.1 gesprungen und dann auf 0.22.2 weitergezählt, ohne dass 0.22.0/0.22.1 je getaggt oder veröffentlicht wurden – dieser Abschnitt fasst beide Zwischenstände zu einem einzigen, tatsächlich veröffentlichten Release zusammen.

Neu

  • Standard-Beitrag (Zahnrad → Beiträge & SEPA): ein einmal hinterlegter Betrag/Frequenz füllt „Mitglied aufnehmen" vor und greift auch im CSV-Import, wenn eine Zeile ein Start-Datum, aber keinen eigenen Betrag hat – bei 80–100 Mitgliedern mit demselben Satz sonst 80–100 Mal derselbe Wert von Hand.

Geändert

  • Navigation aufgeräumt. Das Zahnrad-Menü „Einstellungen & Import" hatte über die Entwicklungszeit 16 Abschnitte angesammelt – Einrichtung und laufende Arbeit ungetrennt nebeneinander. Neu:
  • Reiter „Beiträge" (Hauptnavigation, erscheint automatisch sobald das Modul genutzt wird): Mitgliederliste und SEPA-Sammeleinzug, vorher zwei Abschnitte im Einstellungen-Modal. Kennzahl im Reiter zeigt Beiträge im Rückstand.
  • Unterreiter „Regeln" (Tab Buchungen): Auto-Zuordnungsregeln, dort wo sie auch entstehen (Blitz-Button beim Zuordnen).
  • Kostenstellen- und Sphären-Pflege jetzt direkt in den gleichnamigen Berichten statt im Zahnrad – inklusive des Kostenstellen-Modus.
  • Das Zahnrad selbst fasst jetzt nur noch sieben statt 16 Abschnitte (Verein, Belege, Bankdaten, Beiträge & SEPA, Berechtigungen, Jahresabschluss, Daten). Der Wegweiser-Hinweis „Kontoumsätze importieren" darin entfällt ersatzlos – der Import steht seit 0.19 im Tab „Buchungen".
  • Keine Datenbank-Migration nötig; bestehende Installationen mit Mandaten/Beiträgen sehen den neuen Reiter sofort.
  • Import-Verlauf konsolidiert. Die Liste „Bisherige CSV-Importe" unter Einstellungen → Daten zeigte dieselben Angaben (Dateiname, neu, Dubletten) wie das Änderungsprotokoll ein zweites Mal – beide wurden bei jedem Import parallel beschrieben. Die Liste entfällt; im Protokoll (Berichte → Protokoll) blendet der neue Schnellfilter „nur Importe" alles andere aus. Die dafür genutzte Tabelle vbh_imports wird per Migration entfernt.
  • Buchhalter darf Mitglieder, SEPA-Mandate und den Einzug jetzt vollständig verwalten (vorher Verwalter-only) – die naheliegende Rollenzuweisung für eine Kassiererin ohne Rechtevergabe-Befugnis war sonst vom ganzen Reiter „Beiträge" ausgesperrt.
  • Mitgliederliste und Einzug zeigen auf dem Handy Karten statt einer siebenspaltigen Tabelle, die dort zeilenweise Buchstabe für Buchstabe umbrach.
  • Aktionsspalte der Mitgliederliste verdichtet. Seltene Aktionen (Bankverbindung wechseln, Mandat widerrufen, Löschen) stecken jetzt in einem Menü, „Bearbeiten" bleibt sichtbar – auch am Desktop ragte die Spalte vorher über den sichtbaren Bereich hinaus.

Behoben

  • E-Mail-Adressen mit Umlaut im lokalen Teil („m.müller@gmx.de") galten beim Anlegen eines Mandats und beim CSV-Import als ungültig – betraf reale, bei gmx.de/web.de/t-online.de zustellbare Adressen.
  • Bestätigungsdialoge für „Mitglieder übernehmen" und „Rückstand nachholen" zeigten einen roten „Löschen"-Button statt einer zum Anlegen passenden Beschriftung.
  • Der Reiter „Beiträge" blitzte beim Laden der App kurz auf, bevor er endgültig erschien.

Details und die zugrundeliegenden Personas/Testfälle siehe BEITRAEGE-REVIEW.md.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signaturex48JlqGMXQOEaHamNLU5I92XD8JO7RRlVz+NQWzdhhCHRf7bzPbVOwBBtNofZkAjw6FX/GYplKBB5R3C0SoybBvYu/czmifo5N7buFkuxe7GwMcRLe3nbRixjNY/qxWW5aEuR8PLaD/QHkRSWqc6aiUG+rg3kLKhpcug8CSn2IxCXVwALeB73oUz8P7UxsKtnmHyGOyi4SxCsog23Rt+LNgALU47xdN5sM6/rkt6HkO38pI/+CHzJWE7P+OrG+omt9q4LPrA+eTKIRgU8UUdVRv99ll+63WmgdBEUvn3DANgw6gjGHOdN3TPRqCbIpAXh1LD91NFg6J+e9DnbvkcZAWbPddUsYMyyCaXGtBSd6aCU5i4TwwHOpIisQZzWyFivOMcW1upaa+iHkVxU+ny82ED+ylXnp5QOn9k/502fdfKMSeEwV1Qs4i/K2nSjkXwxQUYP6nOt/0A4/+WLWOyCLneyqG+osmnrr+4jDuVNHw8i6rZHMkZuZlc9WWSllRHQvMG/2fktCtMGYTc71qYlm/sEw9V9yRDoJhuXgNEJJH9HgG59he/3ieUaRGWqzjNCfMa7slFbdIjjJlqvKeLpILU2vWPRdBTObn4drbtg8qaAegN+yntfAz9aAfDgceWjfhvkzacXkhQef+bHrTa1KDhf/U7Plj/8i2NmpnY3ZI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.3
Release Details
UpdatedAug. 7, 2026, 6:52 a.m.
Changelog

Geändert

  • Berichte-Seite: Reiter und Buttons wirkten überladen. Im Auswertung-Tab brachen bis zu 7 Export-Buttons (Kassenbericht, Kurzbericht, Beleg-ZIP, Prüfleitfaden, Saldenliste, E/A-Übersicht, Mehrjahresübersicht) neben den 6 Reitern mehrzeilig um und nahmen viel Platz ein. Kassenbericht und Kurzbericht – laut Handbuch die beiden meistgenutzten Berichte – bleiben direkt anklickbar, die übrigen fünf stecken jetzt in einem Menü „Weitere Exporte".
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureOPqKJZTl/5Eygp/CIw4spwFaccWUoG73jv1LRUd6Tn9lnr1Bdr/S2ki+dv3BrDSW1wXcPrTDWPvDEc08RQK7sCTBp5Uo1siR+hb9KEyq46iHPLHUfEQEy94s+fl2afy/yEpSK666eTpE5IEXfCOrvwhULbgrpbXMX5aEgK6cc9l8xjAMIA2t1+F1OXWKw7ikHuRVO+lh3Ky59SDzHKOkzh1cRhYNRw+4OgZiPTbUy1+08t0ZnIHpiLh/jpzTZvtTSbJxnLyv6T0YLX0KiiwuN581bajt9WgGasza81LGA3vzl5flfv9ULCwJgh5P2KS4yTBEF0/dVtn9k9cCL9s2Gx+RRBBgnZzSjynIOGOBq/jY0u3MhYhBiJ85sqZ9YbmK6Y6FJ+wVSIkAy9syctsz1mkz8E6o/KlrQS+Yx1gV/LPJo2aGLkgLOrW3bvlYZZgH/qFoHt9ZQ1RRqNp77k1lJz0JTZ8eEcXRuhTQrOoBtDyBwpVcPKbsKKi7WEtX8GwIVdxnvjlGTHGoXdn0TYI9ZhzRuk9C9d7eBn63SJv3XYazKRAj8GRZy82rTMPHaDVSNry5m9wN/mHWBAPzG/Lq750BqaMPnR3TT6+Z6U+hZ74mfRMqYbeLER+wXy9w3wS1sgqhrXFJP9k9uyaMzsK/q0VSEJx72CScqih0TFkTI2M=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.2
Release Details
UpdatedAug. 6, 2026, 12:57 p.m.
Changelog

Behoben

  • Kassenbericht und Kurzbericht erschienen auf Englisch, obwohl die Nextcloud-Oberfläche auf Deutsch stand. Nextclouds L10NFactory hält eine Sprache nur dann für „verfügbar", wenn im l10n/-Ordner der App eine Datei dazu liegt – für Deutsch gab es bisher keine, weil es ja die Quellsprache des Codes ist und l10n/de.json daher als überflüssig galt. Ohne diese Datei überspringt findLanguage() die deutsche Spracheinstellung des Nutzers und landet beim harten Fallback Englisch. Betroffen waren nur die serverseitig gerenderten Berichte (IL10N::t() direkt im PHP); die Vue-Oberfläche hat ihr eigenes, clientseitiges Übersetzungssystem und war nicht betroffen. Eine leere l10n/de.json reicht als Fix: sie macht Deutsch für Nextcloud „bekannt", ohne dass echte Übersetzungen nötig wären.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureSbvziLbdB13/4hZgbyRXt9y/XzLhT8WkHOT2/9zeTJden7m9Z9SbW7fdHzSiocnsJm/7A0mCQDslCbz5k7806djc792pRVlDFLlZhMOQGfSvFYhEwwVNaSYfk2TeR0boQoJrOKoFWyYa396LF5k4Ya4YE2uAmqpMBRv7Wm4LTTvp4EDqPIxXObEQbOGaAafkReTEQYE4h4Xzijrh+oo8BBpzhpcLiGKYpgpIGeQDmUeVGWpyh0ySGtf+46ENTC5Az+538hfY/fEQl6QtsHf9CacbSvEh+n6Lx2/gIQwjKN7FQsOM4w/3LQV/qlHqpFpoLEAJeG3/2IfbBnxKeuH0OZIFAslWtz2smxG5k9dYxn/nvFotD9meCvGWxwpeXFztx+zgv+zlcUOTdX0DQjRQQsnFGRejL+Pztl9TkG4I9ufke0DVm1/BYBhZdZ3cqf3QG3sSGDbsav5W4G+4BxVBe0y4ZDH35aVDV0cDh0HYfwfkVzqVwOcaf9NVfvoNFC2KVJXR/VlkEW9SPDRmLbafb+caQ6yqi0lviNq2x6V3xEcGS6ckQrjsiA1scbmFOFE5lE4jwdS9khHH7ZkLN0LyRtZagQMiaHI44rbfaxPCwE17U21RqJ3kR3kNJVOPcRSYycVzHmg3UKq0+Le6iF+X1XffZDgE9T1Z+9oIIvK8T64=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.1
Release Details
UpdatedAug. 5, 2026, 4:17 p.m.
Changelog

Geändert

  • Buchungsjournal: Zeilen brachen durch bis zu 4 Aktions-Icons zweizeilig um. „Regel anlegen" und „Löschen" stecken jetzt in einem Menü-Button; Beleg (falls vorhanden) und „Bearbeiten" bleiben direkt anklickbar. Damit passt jede Zeile wieder auf eine Zeile.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturelEiCh6gxSU93Jga+RtuXGddDMZuIP64Hl/hFEOOQYTCOMvsqCOL3CNkDY6Iv2nGBvOoyIF+N4woWkjDEmr30UKKmQ1bk2UYrszPPInXzqzS6TjiIs1i4s6h9lbu3Nb3Qiaat9j6b9kQGugayntbmEzSJdQ1Z1eNZAXQPqvxrmuy+uxUiIQntmDvQNWC4rBG9Gb+NmeGBiRe43NUR9q5A6UEADee5q1f2Ek8u/xVmjW9Cq/0lrbQkrtnDP8W6ZE7blpl6WBA970ImtF2uhYhaNA6XveNzSr5X1Tj8pgx9V2SA6tDRzL1KCYGFFpFH1HTADlUXCmZ3B3+hMx+TXNCs8nR4QJqKGd6vliMXi0yKYaZJ7hXfwOcF6fbTbqb9cNx04bhTEgz6Sy1cohvaVDI1ZbXZYoz+e+0FpO++1GOdxDoPSxi51v0mAlM1bVNRlZznlwKVO+CzsMLa4JrTnoRuF82ZS84GYn4lNAN0YfTofJNDWuoC99W27c8nkM+hHinkg/enqEB1EOeLHr03Ot6R18wbZZ7deZ8k39eWsAdW1JeV1xsYfuWgFv8uoi60gygHz0T5WixyIu1Qw8JzBw/p+qqlhxgzjw94PGbiiH5Qsew1srd86mKccReKp27yqFPdNix6htxHVtY8WV5e4w6u+qsu4nXfzMXUixLflmgDgLg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.0
Release Details
UpdatedAug. 5, 2026, 7:42 a.m.
Changelog

Behoben

  • Vorgemerkte Umsätze im CSV-Import konnten zu Dubletten führen. Die CSV-CAMT-Kontoauszüge führen anders als CAMT.053 keinen eigenen Statuscode, sondern schreiben den Buchungsstand als Klartext in die Spalte „Info" – „Umsatz vorgemerkt" wurde bislang nicht ausgewertet. Ändert sich ein solcher Umsatz beim endgültigen Buchen (typischerweise das Datum), erkannte ihn ein späterer, sich überschneidender Import nicht mehr als bereits vorhanden. CamtCsvParser überspringt vorgemerkte Zeilen jetzt wie schon Camt053Parser es für „PDNG" tut.

Hinzugefügt

  • Nicht zugeordnete Bankumsätze lassen sich jetzt löschen. Bisher gab es dafür keinen Weg – ein Umsatz, den die Dublettenerkennung bei einem sich überschneidenden Kontoauszugs-Import nicht als bereits vorhanden erkannt hat, ließ sich weder zuordnen (dann läge er doppelt im Journal) noch wieder loswerden. Der Papierkorb-Knopf in „Zuzuordnen" löscht einen einzelnen, noch nicht verbuchten Umsatz; bereits zugeordnete bleiben wie gehabt nur über den zugehörigen Buchungssatz löschbar.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureBnkYSlWxHsYfloYtjM8qy7z4ZHro+XGTush4dekzY9sqA99C2YPzzt9ZdF5u9607GP7kFZVea924jYOKfadCsC34UnDyxbRsbUoRuj8zAgP7dbvSVj6SNqfa3B1ZdH8aHGQmPzF4qmdObFx+9rQRJcOGIkGWbAHBkg044dyzwLWnNwpB4O2h91bIEm+0ArsA6VLtP6qW9os9e75pcNbNKl9O/kybpbM+5tdtSrz28PvR7R9Hngf3SyBUi3uwKpwMafUoj0IfMnTBxCyBH7Flq7m7OFJMOGz/TakXRoq/YxFydmV9dVeSP2VhZ/FxyMipMG1C9pmQ8yQq+JHEN2ZO6q1aWP/jcXb58JkSHrfFVx/R7y+uhbaOABUGBsdUy9+LepV5fGB1/BdVUbYA04G0ulC+5n0ixOYhzZsW0XWtKMykeuI5h75yil1rINce0/FA035SlhPIjPdrMKoTPS9GmwUvebCIYgbt39PzVUjT0GXJ5k9DA31GC81X2o+l/JLyLX1OW+e225KlRQfXdgjB0QUAPiaHelgiKB+T1FWUvb//BL+Gyc/mfGnA5VUNoyp7rxxOO3cQ05LbxiiNeyGodnAVNih6BqQUDk//N6q58dX9M9AUmo2pGstsn/WHwW/qyt00y47nrBp4dp+Z4opbKNDhxjIDm7xTQWFmfluVjfY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.18.0
Release Details
UpdatedAug. 2, 2026, 4:11 p.m.
Changelog

Hinzugefügt

  • Weitere Mehrsprachigkeit im Backend. Kassenbericht und Kurzbericht (beide als druckfertige HTML-Seite) sowie das Änderungsprotokoll (Berichte → Protokoll) erscheinen jetzt in der Sprache des Nextcloud-Profils statt fest auf Deutsch.
  • Alle bisher noch deutschen Fehler- und Bestätigungsmeldungen der Controller sind übersetzt, ebenso die Prüfmeldungen beim Anlegen und Ändern von Buchungen (Soll-Haben-Kontrolle) und die Fehlermeldungen der CAMT-/MT940-/CSV-Kontoauszugs-Parser.

Technisch

  • Statische Prüfmethoden (JournalService::validateLines(), JournalService::reassignPlan(), BookingService::validateParts()), die auch direkt aus PHPUnit-Tests ohne laufende Nextcloud-Instanz aufgerufen werden, liefern jetzt stabile Fehlercodes statt fertigem Text; die Übersetzung passiert in einer begleitenden Instanzmethode mit Zugriff auf IL10N. Die Parser (CamtCsvParser, Camt053Parser, Mt940Parser, XbucParser) erhalten IL10N als optionalen, in Tests weglassbaren Konstruktorparameter mit deutschem Fallback-Text.

Bekannte Lücken

  • Der CSV-Export der Auswertungen ist noch vollständig Deutsch.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureyT7SVmIOpa+ZxIYuUUiftY1NmsPnETQbPKz5hXSyXYJ2fSqVm/OBPOJyoI2EpaGulf2AqkZr3w8jXrWuh4U3J1m4IuaAK8zGhD47WCAzxFGZxc8iy6ITh0OckjLneDWxMwoQHJO/IggRVjBEaZXKdD2wrFPMjkXDUTBvlMr/YKJFE6bd1qJJ5UKXQedO51aNuRQR/O9UrXJ8IR6F5SmyWzrEvr8F/hNdiQioDnTA2vk1iB2bTciuc9qnQd13m1i43ToUuZfYSYflxBhAq/kMOCrUsICqXo3wy88DNIVuwaiEIPrXuMUBDXsmjcnh0dtku/iVTiOpPtkDjucmJ5bhLcuylyC1sYFt6d5emJlqMUOWHmhzC4eoQc9nv2uSq/VgCVUJd0V4dihQivViVEot+acr/xuHinPVt7YikF5ejoWt9//f8huYVa7O1dR2mKoY+nyOscA1lF1kFo7OYZ30KnerD5qjLJo508MDMWtAb7Pfzw3P423Jssl1h0zAPk7e2UWu+5ImshK7nr5+07Owyt/h41ASF4FeW8ePiUbn1hHgf86avEjbtMrQXajpZJp1AddBYuGCa19+V6jgLory4k8mLyTdCOz3O0nFTjEEU3hhq+BPbaoaztKx3W0FOtBsFEO/FyhaAxffkGjbU88lQoDSP9rX3lgH8oKX++nUHSY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.17.0
Release Details
UpdatedAug. 2, 2026, 3:16 p.m.
Changelog

Der erste sichtbare Schritt zur Mehrsprachigkeit: wer Nextcloud auf Englisch eingestellt hat, sieht jetzt eine englische Oberfläche statt einer deutschen mit englischen Brocken drumherum.

Hinzugefügt

  • Englische Übersetzung. Alle Vue-Komponenten der Oberfläche – jeder Tab, jeder Dialog, jede Fehler- und Bestätigungsmeldung – sowie die häufigsten Fehlermeldungen des Backends sind jetzt ins Englische übersetzt (l10n/en.json). Einen eigenen Sprachschalter braucht die App dafür nicht: wer sein Nextcloud-Profil auf Englisch stellt, bekommt automatisch die englische Fassung. Die Quelltexte im Code bleiben bewusst Deutsch – der Herkunftssprache der App –, Deutsch ist also unverändert die Fallback-Sprache.
  • Video in der App-Store-Beschreibung verlinkt.

Technisch

  • Eigener Lademechanismus für Übersetzungen im Frontend (src/lib/l10n.js): die Bibliothek @nextcloud/l10n geht davon aus, dass Englisch die Quellsprache ist, und lädt dafür gar kein Übersetzungsbundle – bei einer deutschen Quellsprache wäre das genau die falsche Sprache.
  • IL10N ist jetzt per Konstruktor in die Controller und Services injiziert, die nutzerseitige Fehlermeldungen werfen.

Bekannte Lücken

  • Kassenbericht, Kurzbericht, Prüfleitfaden und die CSV-Exporte sind noch vollständig Deutsch.
  • Ein paar Backend-Prüfungen (u. a. die Soll-Haben-Kontrolle beim Buchen, die CAMT-/MT940-Parser) bleiben vorerst Deutsch – sie sind bewusst ohne Nextcloud-Abhängigkeit gehalten, damit sie sich ohne laufende Instanz testen lassen.
  • Das Änderungsprotokoll (Berichte → Protokoll) zeigt seine Einträge weiterhin auf Deutsch.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureroXOT9h02u08zVmBOEm4AgtrqTyByeTNHUynP/GLWlj1W/PSVXK7rwHxjWbw/fnoVsuvroo5FdxY6sTMKgwWfcCYW9WC49dJylKK1FX8oKws1LefX9HqQbZvFeJ9L3grLLht92mwMthzuRfrCaQDygDBmpv1o3PhbrqJpox0zfx1jWd6jJhDpBeBjIcfBf+CyKan8BSSdwFjRUzCoJBIz+cHAB27MY5PfvrDdFmUtjHLvU/MifISIkMiVhxKtY1CnQtJd58t0zJcFvN0qjB85+DAAV9nR6YCcZjNw8UbCdetu5CThcQBPHJLnRXIIf+WP88PgRYkxgRw9d8QKMf2zklGsVTPJdtvacI9V2F5JOIimelYg3V4WacqcpO2F2xOfs6jXVS2E8MFAloWofhNnfVuTINQiHz8Ckw49QlyEr8Up6yEZ28tgJh0AKpQWsLUZ+SUd4PA2obilUrsFjFkEhAUbAPtu0kdKD6l3NYa9oXB4a2Pun6gNpD1qvhmRudPvyIGoYCoAsOstLAehk+eAiF6lfFLe/o0V+RiOn4L2lPt5c96acCwesJD9yZQbZIfbYFM5ddheBSYaJRzyLYJWsK2IETagwH4XVvH/vClPytgMNHiOG/s6LALfsQSUTzz8ktLZqU+U1BHlmqXaR9M2lvlEu2G9O+5ueYM3D3kX5E=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.16.0
Release Details
UpdatedAug. 1, 2026, 9:03 a.m.
Changelog

Diese Version bringt kaum sichtbare Neuerungen: sie räumt den Programmcode auf und sichert ihn gegen Fehler ab, die bisher niemand bemerkt hätte. Ein solcher Fehler kam dabei ans Licht – und er betraf ausgerechnet die Kassenprüfung.

Behoben

  • Der Beleg-Export als ZIP brach ab, sobald ein Beleg im Zeitraum lag. Die Funktion rief eine Methode auf, die es in PHP gar nicht gibt (ZipArchive::addStream); der Download endete mit einem Serverfehler statt mit einem Archiv. Betroffen war genau die Funktion, die eine Kassenprüfung braucht, um alle Belege eines Jahres auf einmal zu bekommen. Die Belege werden jetzt blockweise ins Archiv geschrieben – der Speicherbedarf bleibt wie vorgesehen niedrig, auch bei einem Jahr voller PDFs.
  • Der Kassenbericht ignorierte die dunkle Darstellung. Wer ihn bei dunklem Systemdesign öffnete, bekam schwarze Schrift auf weißem Grund in einem sonst dunklen Fenster – der Kurzbericht konnte es längst. Beide Berichte teilen sich jetzt dieselbe Gestaltung. Am Ausdruck ändert sich nichts.
  • Beispieldaten konnten halb angelegt liegenbleiben. Fehlte ein Konto des Standard-Kontenrahmens, brach das Anlegen mitten in den Buchungen ab. Jetzt meldet die App vorher, welches Konto fehlt.

Geändert

  • Die Rechenregeln aller Auswertungen liegen jetzt an einer Stelle. Die Frage, welches Konto mit welchem Vorzeichen ins Ergebnis eingeht, war an acht Stellen einzeln ausgeschrieben – in den Exporten, in der Saldenliste und in den Berichten. Eine Änderung daran musste bisher überall nachgezogen werden. An den Zahlen ändert sich nichts; sie sind jetzt nur an einer Stelle festgelegt und erstmals automatisiert geprüft.
  • Der Sortier-Vergleich der Tabellen war dreifach vorhanden und ist es nun einmal. Sortierung und Sicherheitsabfragen sind damit in allen Ansichten garantiert gleich.

Technisch

  • Statische Analyse (PHPStan, Stufe 5) läuft jetzt bei jeder Änderung mit und fand die drei oben genannten Fehler.
  • Der 1149 Zeilen lange ExportController ist in Dienste aufgeteilt: CSV, Beleg-Archiv und die druckfertigen Berichte je für sich, der Controller behält nur die Auslieferung (158 Zeilen).
  • Frontend-Unit-Tests (Vitest) für die Rechen- und Anzeigehelfer; der Testbestand wächst von 118 auf 210 Tests.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureVJDiJR0wAF6OF052v41IlOKnSdqYFS+pI1+dFRngpf5U228GkukeyPqI033CH4Q3hummVmpRiAFGTi5n9g403rp88tFm8lw69XuqW2KKFwDkzc5EE0wVs3AVJgHeREn/NotbVAVvItr6+4wdPE4vKY4MnSVrwwPFWyQPhYMcy7ps0GEKQOKIIg8K5FiRvpgFF4M8/24xcDJSX9P6ySetzjjCUewbWBCq90qjAkf1dedOmwpk/WJ6EzDMuOpXjK866ruUFpU6UMHarVV5JY0IO97AJym3rJVUbtF7pkCI4gQVjVAFmcux+rnXm7vLN5EHGRF9cQCgy5REcQAKavKY0k2KS48L/zRjsvzEv0dY/IWAraVowHLkJUDonnUelUPZJ3J6S6CekKswO2oQdXnCc2jGNSY7QS8s2ck9NsnCSeX66hEMC4fI8cZUTeFM5sr4IP7ABKXq4f/DOZ2kl1klwKZjVeCSkD5SQvB4Lt5vq+kj2CzULsoM5EyrxLuvdYt/cOMluMhFdKg8H0Mubcc/TnIMEMGj2ODw7z7z1g5KQdGDPYEQ2JDgUKQ2gxW9exq98q0FmXq95K1ppLvC0c8sDezQF5leB2eVH/c0yDzc6xsDpWbkc9MQiNLofdqyXWHBvvrqKnl7x7qBn8U9BdefGUuFba3HekdHxLZFAm6OPsg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.15.0
Release Details
UpdatedJuly 31, 2026, 6:56 p.m.
Changelog

Behoben

  • Gelöschte Buchung gab ihren Bankumsatz nicht wieder frei. Wurde ein Buchungssatz gelöscht, der durch das Zuordnen eines Bankumsatzes entstanden war, blieb der Umsatz auf „zugeordnet" stehen – mit einem Verweis auf einen Buchungssatz, den es nicht mehr gab. Er tauchte danach nirgends mehr auf: nicht unter Zuzuordnen (dort stehen nur offene Umsätze) und nicht in den Salden (die kennen nur Buchungen). Auch die Bank-Abstimmung führte ihn weder als gebucht noch als offen, sodass der Kontostand still vom Bankauszug abwich. Der Umsatz steht jetzt nach dem Löschen wieder unter Zuzuordnen und lässt sich neu zuordnen – derselbe Stand wie beim Aufheben einer Zuordnung.
  • Belege eines Jahres konnten beim xbuc-Import verloren gehen. Die Dublettenprüfung des Zusammenführ-Imports beschrieb eine Splittbuchung nur über eine ihrer Zeilen. Eine eingehende Buchung, die zufällig auf diesen Teilbetrag passte, galt dadurch als bereits vorhanden und wurde stillschweigend übersprungen. Der Vergleich betrachtet jetzt die ganze Buchung, und beide Seiten des Vergleichs bilden ihren Schlüssel an derselben Stelle.
  • Beleg löschen konnte einen Datensatz ohne Datei hinterlassen. Die Datei wurde vor dem Datensatz entfernt; schlug das Löschen des Datensatzes fehl, blieb ein Beleg zurück, der sich nicht mehr öffnen ließ. Jetzt gilt auch hier die Reihenfolge, die beim Löschen einer ganzen Buchung längst galt: erst der Datensatz, dann – nach erfolgreichem Abschluss – die Datei.

Geändert

  • Der Jahresabschluss schützt jetzt auch die Konten-Stammdaten. Bisher war ein festgeschriebenes Geschäftsjahr nur gegen Änderungen an den Buchungen gesichert. Über das Konto ließ sich sein Bericht trotzdem nachträglich verschieben: Ein Wechsel der Kontoart dreht das Vorzeichen, ein Wechsel des Geldkonto-Kennzeichens verschiebt das Konto zwischen Vermögensübersicht und Einnahmen-/Ausgaben-Rechnung – das archivierte Jahresergebnis änderte sich, ohne dass eine einzige Buchung angefasst wurde. Kontoart, Geldkonto- Kennzeichen, Sphäre, Rücklagen-Art und Kostenstelle lassen sich deshalb nicht mehr ändern, solange das Konto in einem abgeschlossenen Jahr bebucht ist; wer die Änderung braucht, eröffnet das Jahr wieder und schließt es danach erneut ab. Nummer, Name, Kategorie, Aktiv-Schalter und Überkonto bleiben frei änderbar – sie ändern nur Beschriftungen, keine Beträge.
  • Konten stehen jetzt im Änderungsprotokoll. Anlegen, Ändern und Löschen eines Kontos wurden bisher nicht protokolliert – ausgerechnet die Stammdaten, aus denen jede Auswertung gerechnet wird, waren für die Kassenprüfung unsichtbar. Bei einer Änderung vermerkt das Protokoll zusätzlich, ob ein auswertungsrelevantes Feld betroffen war.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureP7cVaIPv213NPHt6juPqCRD4S2odKrN+G8KhhxyDeKw7BKUxrWvSaOiQCEwBmvQzUCYWUDf0OacHyUlh6nmJEWFmuux3X6wIY3AuGQx/gg37EMyMCod8JA82iPNAMLXML1bEIeU9RGEIbmtdc6CmNEV+TlEBCp02kskc/V1FytAkCREPOCfCr7DodbD6FZtrjN+VloewQblps1KCCye9tm1v7mMDRDexPv2jiATXsKqS/D/ostXEh/SGTtX1saXxlFpMJss8WYgRNCMbzGMW6i+k2ND/iiEAzBFBKwFY0w4YunU4zo2x6Y3z7SCPeSLP0AagS4LI2vv5vKeq2jHyqtnXTS6Zi6tba2P6ObB0stmW6lzc6p58UW3Dvw9Irm58hAa7QqvqUheI2t0haws3Cah2/e95eOqk/+tFcGS1k6C1sPVQVlcEFjMyLN2a88YKW32okbQhzCEixkockVQQbWfY40Shqg64ZSfGGR6VAgHck6rioYnQJE2H5+3SexdzsYkJVY2jJ00tLIdCDpq2Z3M5AZSjxHpGcRyJ+w+6EIx10SbOdsqxQw0/FEnAC8Bk4d1vcodBZBwXFav/Ew6diriLx49vhFQZvlvmshNbREyFYiWskPUKE46NTOVHZVGZqLlkQD4vFbu61PWYR8swhuYhqMwPbsxkzbxIf2JQuQU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.13.0
Release Details
UpdatedJuly 31, 2026, 8:50 a.m.
Changelog

Hinzugefügt

  • Frei definierbare Kostenstellen. Bisher leitete die App die Kostenstelle aus dem Kontenrahmen ab – entweder aus der zweiten Zahlengruppe der Kontonummer oder „ein Konto = eine Kostenstelle". Beides setzt einen bestimmten Kontenaufbau voraus. Jetzt lassen sich Kostenstellen unter Einstellungen → Kostenstellen frei anlegen und Konten ihnen ausdrücklich zuordnen; beliebige Konten können so zu einem Projekt zusammengefasst werden. Der neue Modus heißt „Frei definierte Kostenstellen" (Einstellungen → Kostenstellen-Modus, nur Verwalter). Die beiden bisherigen Modi bleiben unverändert Standard – bestehende Auswertungen ändern sich nicht. Die Zuordnung geht einzeln im Konto-Dialog oder für viele Konten auf einmal. Angelegte Kostenstellen erscheinen im Bericht auch ohne zugeordnetes Konto, damit eine fehlende Zuordnung sichtbar ist.
  • Umbuchen direkt im Kontoauszug. Wer beim Durchblättern eines Kontos (Tab Konten) eine falsch zugeordnete Buchung findet, bucht sie an Ort und Stelle auf ein anderes Konto um – der Umweg über das Journal entfällt. Umbuchen lässt sich jede Seite der Buchung, also auch das Gegenkonto. Geändert wird ausschließlich die Kontozuordnung; Betrag, Datum, Beschreibung und die Gegenseite bleiben, sodass Soll und Haben nicht auseinanderlaufen können. Abgeschlossene Geschäftsjahre bleiben gesperrt, jede Umbuchung steht im Änderungsprotokoll, und eine zwischenzeitliche Änderung durch jemand anderen wird erkannt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturerYLg9/W+aZy3UR2gm/vOTWoLkk4IZrBuLDSsMcqIA1ezxdDhM4DCie+hHnru5bowZ4ZqOE8XmhrBYJCF9F8Wg3zyklma7eMmTKWMHy0mlys+/SYrmnPOfrzUyA/3PvFLNztuRJgyVeL/bI/0fp4QQ5YUTHG6oQHcY9NZXeB1Yy9AJAOP/oBHHdA9RDSONWvDJKgpLAgKBHcpj8J9SPCeVOviwHla4B2fbLKjpJu185Ee7SsvjXQJYatX0SV1/Hy65I0o5xfst63HfBj8vMYkiu6vxz3bU8kp5jUJKWWmDiB9qQHByk5srK1Wu/R/gZKgfxp+EtU1SWYaZFIU5ZlynNgtZpx63083sBz/UgryqKitjmOvD1Qw1UAi4sP5BMm8IKjZCCHY1mBImO/sIQqa7MjpcLulmnOmAXorbAgfG9ZaXFrk0AafHeQRzemtQ5nvlYpl8Z58F11ZuVKudYhsciBek7SHIhHTbs99aOsb934bzlaN+lZelZfm5J0OyCJaBv7zCKPQqMuBUNioV/w2ntAY/CyY2TK2gfJb2wMjJmNNR5s7hRcWVIPpklXxE/o44NSsckDDnzA4FemD7tswK8tTftO/v+Qk04kzjHi984idYXoHWSwFAYYiZxmL2oB6OOs+MXh9dGQUbpctC2pOAeSdO0J0dO/7D+MkKtaBrYA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.12.0
Release Details
UpdatedJuly 30, 2026, 4:01 p.m.
Changelog

Hinzugefügt

  • Kontoauszüge in zwei weiteren Formaten: neben der bisherigen CSV liest die App jetzt auch CAMT.053 (XML) und MT940. Welches Format vorliegt, erkennt sie am Inhalt der Datei – die Endung spielt keine Rolle. CAMT.053 ist die bessere Wahl, wo die Bank es anbietet: Vorzeichen, Datum und Zahlungsbeteiligte stehen dort eindeutig drin, statt aus Spaltenüberschriften erraten zu werden.
  • Wachordner: Auf Wunsch liest die App Kontoauszüge selbstständig aus einem Nextcloud-Ordner ein (Einstellungen → Kontoauszüge automatisch einlesen). Den heruntergeladenen Auszug dort ablegen genügt; stündlich sieht ein Hintergrundjob nach. Verarbeitete Dateien wandern nach verarbeitet/, nicht lesbare mit Begründung nach fehler/ – gelöscht wird nichts. Setzt System-Cron voraus. Das ersetzt das Hochladen von Hand, nicht das Herunterladen bei der Bank.
  • Vorgemerkte Umsätze aus CAMT.053 werden übersprungen. Sie ändern sich beim endgültigen Buchen häufig noch und kämen sonst ein zweites Mal herein.
  • Mehrere Bankkonten werden unterschieden. Am Geldkonto lässt sich die IBAN hinterlegen (Tab Konten → Konto bearbeiten, nur bei Geldkonten); beim Zuordnen einer Bankbuchung wählt die App daraufhin das Geldkonto, auf dem der Umsatz tatsächlich gebucht wurde. Bisher landete alles auf dem ersten Bankkonto des Kontenrahmens. Ohne hinterlegte IBAN – oder wenn der Auszug keine mitbringt – bleibt es beim bisherigen Verhalten. Wer mehrere Konten führt, sollte CAMT.053 oder MT940 exportieren: dort steht die IBAN verlässlich, in der CSV mancher Bank nur eine Kontonummer.

Behoben

  • Derselbe Umsatz landet nicht mehr doppelt, wenn das Exportformat wechselt. Die Dublettenerkennung hing am eigenen Konto, und das schreiben die Formate verschieden: die CSV mancher Bank führt dort nur eine Kontonummer, CAMT.053 immer die volle IBAN. Zusätzlich zum bisherigen Vergleich prüft die App Umsätze jetzt über Datum, Betrag und Text gegen die bereits vorhandenen Bankbuchungen.

Sonstiges

  • Die Umsatzquellen liegen hinter einer gemeinsamen Schnittstelle (lib/Service/Statement/); Dublettenerkennung, Regeln und Import-Protokoll sind für alle Formate dieselben. Der MT940-Parser ist zugleich die Vorarbeit für einen späteren FinTS-Abruf, der genau dieses Format liefert.
  • Das Import-Protokoll hält fest, aus welchem Format ein Import stammt; Geldkonten können ihre IBAN tragen (Migration 122).
  • Unit-Tests für beide neuen Parser sowie ein Kreuztest, der denselben Kontoauszug in allen drei Formaten vergleicht (61 Tests).
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureYrd0NVVBI48qEcLJqlW2g3q/DsCa4M/I4Dap6Y7XZoLqHbFQtEHZiGe5WGYmrRZxZaiS38aXU62p6tx2uqB+V5cYI7xSomdVQtN/PlHS0hXRjO5OunZIpXdSaplQn0BiBhuN9iP+Vdrwc395yav9MegQE1opuH5kj2xPgKQyUbUehBedJ4rV+ePyXm2KFXsfv3DFeYjp9R16i41D+fD912hJskD3BNwIgqh0NRalj4KkwrIES46Ym7TZoZ14Jx0NJdh99l4/EXgdRicoSWEUT3aRxhbN+4qfAwa8MsDhL4K+jv4OhqDFxlD5yQKRqr6YsU9wxJ1HmMH8rutukusf18IQsgQjjl4zuwtwNFjrx18LhnUuozOQgRtVVZrQNXGneZ8ZLa7h6iZLUIkoiGtrrSyl0rXJFcg4LRmCz62Q9BaXCO9N8LhgxLa9TPKKJtoSroEbbFAHNewd5ir03uudK/UA6hr6n3GXNAtlTdyMAle9r7JY2DuvIJe+ftEHNqMC9prT2M1E2qb/nSgYk+RziNaqt4Yd5POjG65TCNEQOKIQ/aUpixnKXUFwzS+fJpFmGA1b+eULBKo0r5Q17xAluMjlw3lBsGcwozKXHc1KeCKIiZfjx9x+y1XMNuzeDaWG1g8kd2sjVTwY2vW+lS/d/R/K1GE2My5qoMILXPZ8+ko=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.11.2
Release Details
UpdatedJuly 29, 2026, 3:43 p.m.
Changelog

Behoben

  • Beträge werden nicht mehr abgeschnitten. In Tabellen hatte die Betragsspalte eine feste Breite von 100 px; längere Werte wie „28.798,68 €" wurden mit „…" gekürzt und ließen sich falsch lesen. Die Spalte wächst jetzt mit.
  • Mobil: „Buchungen" in der unteren Leiste war gekürzt („Buchun…"). Die Einträge teilen sich die Breite jetzt nach Inhalt statt zu gleichen Teilen.
  • Mobil: zu kleine Tippziele. Schaltflächen, Auswahlfelder und Eingabefelder waren teils nur 24–36 px hoch. Sie sind jetzt mindestens 44 px – auch auf Tablets, die per Finger bedient werden, aber das Desktop-Layout bekommen.
  • Mobil: lange Kontonamen im Kontenbaum wurden gekürzt und waren damit nicht mehr unterscheidbar; sie brechen jetzt um.
  • Mobil: das Ende langer Listen lag unter dem schwebenden Buchungs-Knopf und war nicht lesbar.

Sonstiges

  • Ausführliche Beschreibung und Screenshots für den Nextcloud App Store.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureDikykvZ2qeSFgT2rqRn1/K6d7txbP7OEC32gKuFsiCeigdGhCtrIHnVWHhA4ddYVzD+A5w+jgbYrYMzkgZcFS/cJE69wPzosrfHtsfrR1AXnFJprlr1fEU7gM2imvESCrjGS0s8KEeOczNzOTrhw6vtaWm4zbpYth5MLdMZmYFFTxtCQ67VIKIDNZhSVBS+dlbgKma5HobySt4IwUZeR+6qhMtZQZbmMCJ1LSuwPs6QCVTfAxXRlEBkuIdS0VYiBn3jDaoCfBV8tGZjpAG63npnwXIfJJd4HeCyDpMzDx0h/z6JpXKEcJuujT2vnrbjgCgqPOQX6qqCFru7djJ8o1BLR1pO8qNiTn194HAgOH/2cKzaJ/RbYAUXds7qW8aQgxvviJ9adZGRf3zC3jyYB49EGdYB/rKG8Lnn8mhDFkF7iXej4kwz/myXK8MTldP/xctXSC/zinorrnHaRo28XNtFDq5GazeVXpK7/9nvyt3SE49zoABnAEKDw6SYZrVCLX4+J8bbM6yk/ohFE3g1KL2/wXL1GnE1spwuz/OamTPJUqgVNJyV3MyzxG5aHpGxdj3lmctGt8eO34tXvHzofVmHvrhnEbEIcyMlphbOWD2mCiGkmltuGjJqvMJpLbSyZIe/oAXkJ7IiY3KGIRpiKlGUueiQlo0UbI1L+ubF/Uak=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.11.1
Release Details
UpdatedJuly 29, 2026, 3:03 p.m.
Changelog

Erste im Nextcloud App Store veröffentlichte Fassung. Am Programm selbst ändert sich gegenüber 0.11.0 nichts.

Sonstiges

  • Die App wird jetzt mit dem von Nextcloud ausgestellten Zertifikat signiert (appinfo/signature.json) und im App Store veröffentlicht. Das Paket zu 0.11.0 war noch unsigniert und ist deshalb nur über ein direktes Deployment aus dem GitHub-Release installierbar.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureRqufs3+r1UDzVeNY47cnz/w6ATGHouz8ape7ZHM3P5KFdQNcJ6RYVIO+epIwjLtAeVJdMgfEDJwafg1dx757MvkBsfr4fO9yBiP0yNmKeVwdm3G/7vM+WTHYg9CpRNYN2AivshD6OdD5axADiNnBU0jk+qw5szzQ77+pYkxHFMrTC1pbM8VWuTD/F+PrU0V7617dl2nDG7ZWwzjFgP65k6y3lr7hFi46LDiIvwWNv8leoggPU3YoB4YywRdXqhIHImtdBs/fauWamzU49TY22hPqSTPFsAVqyW/RI7Jw599oTCozx0W92XQilBZOGdUQb1Lr8nS+DJs6fGz6eJXbJQd2K81qqSyyIN06UcBudD6zCu5DdLuPLg0kWs7vwq5wI/4AXpBb5xadncHFtJOaNNoCJ2v7+C7d1ZaJ3kfv6ZNnVcuEYYQsNfuitHmmNzATyWSH2+hzXj/fZfpZA0vyHDLa4XkCPMwOi55IaPuvCdEaKE+RTf6hEdnul7MhU8C8BUFHKp3HlkdzJLPmffyf3vTDFoRnvtA2isMEXrkE2u9Usk9X1DlOXxn4PjmCYGNEm54YfVpTGRiY8i972c9XIjwmlpUIaqYARzgSad2kT23TXEMmzsPp7/kM2DjAqmEJbe+Lgl87Z7ZseXBHSnJXd1JjtxYJCm4og7lA2zSagvY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0

Nextcloud 31

Vereinsbuchhaltung 0.34.2
Release Details
UpdatedSept. 14, 2026, 5:57 p.m.
Changelog

Fixed: - An account's category could not be cleared: deleting the text in the “Category" field of the account dialog left the previous category in place; only a single blank space worked (issue #59). An emptied field now clears the category as expected.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureEFvqWDFNfM6FrLb9Ef+VmkLkQq/yMGhS3fFmfDXMmHq7Tkx9ebelg6+UOltGTCAywwAqFg4TlZhz+P660I/de6z9WnYhMtrvp+i2YD9HAA7JJkmUOnB9qcJH85XJJZXFAKnz+WeHzIwnA1b4PpUEcBXlbs10i5vF2TK5kZnW4sOOoj175+Fr22UYhUtgFr3OGuI3F3OtVnukYqMZvs5bbtZvZbnq16S1aC3Q9l5DyDTk3dQoTdX+mcABI833Z3tTgHevH04XqNA8JSnpYEO5VOY5FE6UIPWGEsro7N4mYBD9mfvgh1k0ID4D8M9UECA+nc1cVCA7ZvEbkD7qMcM2bdmIqkpaM7EZYND8D/DmU+kjGXi3VFkT3uBL6qiApthyohAXUE7mEMu9z9zHrhN8HMIGGOZqQnn45saBBOfPUo03E8AtacAT1zk7Lx44FloP6R2y02nt+BMf2C6rj7gaD6CSERsghlDrhtfqIjL6aGbIY/KVTE2v8oUozOQLWWT1v7YE8360mfWkDOoD9IqHVd4wnvdkPkeu17DdEMzUJNqyxu1ox08v63+cfh/Wf8X+L7uk+z80G0b/oRElAyuYahQxQimk2SwnE9IooOwdbruc/Kjh7AdPh8alW3TlD6oBlvLFTeuuUTPne0woHKSAkAAB+Mp7aWcDquPM8dCc4Ec=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.34.1
Release Details
UpdatedSept. 13, 2026, 4:18 p.m.
Changelog

Fixed: - Duplicate accounts in the autocomplete: Frequently used accounts were also listed in their category group and showed up twice in a row when searching. Now listed once. - Search field in the "Pick receipt from folder" popup sometimes didn't react: A fast click could leave focus stuck on the modal backdrop, so clicks and typing went nowhere. Fixed – the same fix now applies to the account, bank account, and member dialogs. - Icon in the "Pick from folder" button was misaligned: The button was too narrow for icon and text together. - The getting-started card briefly flashed on load: It appeared for a moment even when everything was already set up. - Period selector stayed empty after a load error: A single failed request left it empty with no error and no retry. Now retries up to three times, then shows an error.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signatures/8cYDtuFbV6E8E5R5Qpl62vNDSVzL9Isb0SpA12Gfk56tsktN+lvZ2efzPVeY1nRIkfbOAds9mbp2IqknBIUrEcVG/2PFWrah4SBCfwroQ7Za+6iJ06wRNYnLoirIi95y/ul4RJx+mh9giqP3ERfchInL4RpY7rCUxYSexKy8MrA2QB47BuTg4zBE+HtqO4t6WOjIPIwOrWYRu5dYC3hnm82PTvU/p3Azl+Zgo8L29KVwfNfU7xkRxd3mFm3VLXIF2UDbEv5PIu+G4L23EW74n2e8IMrSfgoNNI64sx4J63G7dGSspVrI3fJhG7pBa8TsISi1t3AEBKCiE7qrrsJxZ0AUMPHAGmxv64zwT/NbD6aPSREWpzYWQ+bukKDVwTa9clF/o6B4fE7/RcVPc/G5qNXACYdnlJgC4dTf0WaHmTTJoZp06+UKHjmx5SjFiSBJD2Ld8k/O/Y1vcL46kpDQSP9bqtlhyZXq1xNPedcIis01MbOeybRKvZtJL4inBXrYr3lZSaL6CmOHMm85cmSJnP5nSqrE/g15czG9/QILeKTRCe+qa4/U5kY5LcXAW8TH5BmUA8K7lFrznduHBBpPFCIx7VMW9xnmisFbf0TpqtuGnRifJm5SuTjNDvumwHBuRMGY20vwbHU1ul0tkGy4Qfb7KnPOLjSvQwCghTyfU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.34.0
Release Details
UpdatedSept. 12, 2026, 8:59 p.m.
Changelog

New: - Watch folder for receipts. Besides the internal storage and the user folder managed by the app there is a third storage type (cog → Receipts → "Storage type"): a folder in the Files app whose files, including all subfolders, can be picked when booking ("Pick from folder", with search and preview). The files stay where they are – renaming or reorganising them inside the watch folder does not break the link, the app remembers the Nextcloud file id. Receipts uploaded or photographed from the app are stored under <folder>/<year>/ and may be reorganised afterwards. The folder has to exist in the Files app beforehand and must not overlap with the watched folder for bank statements. It is chosen by clicking in the folder tree of the user's home ("Choose folder…" next to the path field) – a typo in the path is ruled out. The same tree is now available for the watched folder for bank statements. - The overview reports documents without an entry. If the watch folder holds a file that is not attached to any entry yet, the overview shows "x documents not yet assigned to an entry" – an invoice still to be paid, for instance. "View" opens the inbox with "Create entry" per file. A second tile warns about receipts whose file was deleted or moved out of the watch folder; the audit ZIP keeps listing such receipts in fehlende_dateien.txt. - The app never deletes a file in the watch folder. "Delete receipt" means "Unlink" there – the files also stay when an entry is deleted or all data is wiped. The same file may be attached to several entries, e.g. a split invoice. - When switching on, receipts the app stored under <folder>/<entry id>/ so far get their file id filled in – the existing receipt folder can become the watch folder directly. If a different folder is chosen, the old receipts count as missing until they are moved there.

Changed: - The Nextcloud viewer only opens a receipt when the file lives in the home of the signed-in user; everyone else gets the app's own view. Until now the viewer failed for anyone who did not own the storage folder. - Opening a receipt no longer creates folders, and receipts from the internal storage stay readable after switching the storage type.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureEH3jQPFfGMBQpUQwCuWN+biHwFqRxw8mnukQhkDPzmFj6KOWgEkLA3/lF1Lt7rypENDYtU9SXU715NKB8vWewF9ia1qP8o4GYsmjGVVRGD1pT9CbCqpefYpuLklQI0yyD9xXG2wK76DQe6iQW2gQQCJnIAtVCeNQpUvRmBgG1Kab0JhMNOKylIVt/wqP5jJePSNq3acxFpGmwVUr4Nzsm7wYn8gag3sjtB8GnavMg3Np0+48Z2O/tzRy9rmASVHYRPCWwrRXDEBz7qHd2ocwHFwKVTPCaRLT7jgKJ3B8RvtpFzEGr89Fkpm61hkdHi0KfWVLj55hIpiB8x4YRYcoH1CMeKok6SmlNclLExsf6XUKm37P0JTZVWpdRCw7I23UsHSUrE0J88YQlJURIMQc9wH3bqFUZza9mz44WPMf3nJ5o8bNcD3GjVh6YaQnVAFD5oEnroSoY7BYpDUawTDndqrM/24TN01ESsnFi0b5/fjT2AuSokvAXDb+/10j+nSxOZnNEeXFyL5spnW0Q0T/9U75DJ2x2BG5mi9E3OLifI/muNrh2eVSqdQJ6u2EzD0hQkTeb5TxVjCLwIogA9F3hrNzNqJY8MxLlK9Ac1kIsF5w2QJRjwjecIGlTYGU3ZN4aFc+P6AQs0M8iXpco+7yi+TWkz9n4t1DpWoNz72SMZc=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.33.0
Release Details
UpdatedSept. 10, 2026, 5:50 a.m.
Changelog

New: - The fiscal year no longer has to match the calendar year. Under the gear icon → Fiscal year you can now choose when it starts: presets cover the calendar year, October–September, the school year August–July and half-year periods (semesters), plus a custom rule with any start day and a period length of 1 to 12 months (divisors of 12). Clubs with a deviating fiscal year previously had to add up their figures outside the app (issue #8). - The header's “Year" has become a “Period". Every period carries a freely editable name – suggested as “2026" for a calendar year, “2025/26" for a deviating one and “2025/26-1" for a winter semester. Entry numbers, reports, the budget, the receipt ZIP and the year-end lock all refer to the period rather than to a year number. - Periods can be maintained individually. The boundary between two open periods can be moved – the way to a short transitional fiscal year. An empty period at either end of the chain can be removed, and the next one created at the press of a button. - Switching shows what it will do first. Before a changed rule takes effect, a preview lists the resulting periods, how many bookings will change period, and which budget figures would be lost – because when two periods merge, an account can only keep one of the two figures. Locked periods block the switch: what the general meeting approved does not move afterwards. - The cash report names the actual key dates. The asset overview used fixed column headers “Balance Jan 1" and “Balance Dec 31"; it now shows the first and last day of the selected fiscal year. - The monthly chart on the dashboard follows the fiscal year. It always ran from January to December; with October–September it now starts in October, and a semester shows six months.

Changed: - The settings section Year-end closing is now called Fiscal year and holds the rule and the list of periods alongside the locking. - The xbuc import now derives a file's fiscal year from its date range instead of the calendar year. A file for a deviating fiscal year could not be assigned at all before. Bookings outside the range are dated to the first or last day of the period rather than to January 1 / December 31. - Existing installations are unaffected: the migration creates one period per previous calendar year, running Jan 1 to Dec 31 and named after the year. Entry numbers and existing locks are left untouched. If you change nothing, you notice nothing.

Fixed: - Opening the booking dialog before the account list had loaded left the cash account empty – and booking then only reported that it was a required field. The preselection is now filled in as soon as the accounts arrive. - Switching the period right after loading occasionally showed the journal and evaluation of the previous period: of several simultaneous requests the last to arrive won, not the last one made. A choice made before the periods had loaded did not stick either.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturehjIUxR463SXRpnSDzeYpCEUzwFWSRO1ftltM9mWjHajC8UYOyRFO+a3qq7rOns+QYhP60hf3ikxj3W1DN3iUnUjrL8WSd8T5duQAubXz8pHlKS0QreKYeiecE/5cDcOFVTgUIEY1S9mlEvqW4LHFm0lG6R4tnXN9ECVQytIfxExa8rRrM3JFpYoRghY7MZ/+KitnFI6JKUGgE7bZ5Sm1tyEKXZF0T7knzzKS9lclx3Iqn8jw6jCvCmTrKSebjwjZaQwOjmkII6FKBv2xTiBJmmto3YPq8L92FbI+9LSCMHtlr3YA89ONl2xiHMXDzO9wRzyxBzWVAyHFu9pSAYxFjgtnXedEcH7O+4NzSRyI1zm0noskNMI2VbqDTrILZTmm27UT84U9vCm10dJbhbZwt/3sLWVMMGjOHVslf/JAu5psyIqUjjToSAr6ExAJNi30LB7Kehnj8O+B5LP+eVxiKnOrdkP8VY1zzn6Wj4aKnwF3AW4e2itJCCAKTjGjPLROnBpxHgKRy7oTllQJR6HjfQjpSNauFGmhi7lv4d9VVZ6pVA79XwJOv2GQqJiavL0Q2Z9hEqrzQ4b+sy1Gg1QvQ/w8pElcDgBIgUiwW8yUKX1J+R4b3C9/8QFl9l4Of0KJbwVle4CIg/GK9x+BLrE88mzM65wqPF/DZqkEgPPc1VU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.32.0
Release Details
UpdatedSept. 7, 2026, 6:52 p.m.
Changelog

New: - Entries can be edited straight from the account statement. When you spot a mistake while going through an account in the Accounts tab, you can fix it on the spot: the pencil at the end of the row opens the same entry dialog as the Entries tab – for the description, both accounts, and turning the entry into a split entry. Until now you had to note the entry number, switch views and search for it there (issue #39). - Receipts are visible in the account statement. If an entry has a receipt attached, the row shows the paperclip and a click opens it. That includes the auditor role, which cannot change anything otherwise. - A tidier row: Reassign and Delete now live in the three-dot menu, exactly as in the Entries tab. Otherwise the row would have wrapped onto a second line in narrow windows.

Fixed: - The account statement refreshes after an entry is edited. Description, contra account and running balance used to sit there outdated until the next account switch whenever the entry had been changed elsewhere.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureURbs7rR+ibIaCXawEIGE7845WACZzgIYr/uWGqG2NfgzeFJzARFjuikGP1MGA9oOcQkwrLYk/ZNuIqXLVeOOTn6IeFo5CiCoQUzkOcEft2nPrtk4cSb+/HNBiAQ7HqcaILq9C7Y89sTyH1CpGJd3mvi2nrg3ZrLGc4oK+nelIk6WepYW0Ggl+35ScDPURnqVqvsxOKX7yyiQ7l8P+CMAVajpLXHiliixH5e34MIWs7cLhFucXHrGXnhkSqbtGNLX9pqZ9HNukNyPnpf17Ab2XJxyEzHhBp79Z+HBrGvcgkKPXjDy8nugD0RzRX470VPrE9MtJlz/w+7Ldq9TmSAqdrpq6/+GRtoTQke4EHoX6Y5q6G+eQg6sL6YDTKzFVetE3SQAVM2L4sx+W8hNjRvTyryDyCcktJSyd4luyRKK1FMOYy+Gh7jxSkwC0J9TbpnKSOiZlhCrY6ixlah4Bj87IuXoEeJSYh2XrTv2LfUN/UORaE3QP4FZKrP5wzlo12eacp/yM73IElhE0NNOapPlQo/pwPKHpd3LVXRaohJny760AtExPYmj1NmK3EIfaj9HxoltiTMCDROuC0LvLaAvmFNlaChqZ/W1c0+6KjWTtXIIyLCd1ysGAQkHJATUHtO9OHAE3/fOjIsnOaLSIYIpQJV23DyfxiOcUFx+cOk2rwQ=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.31.2
Release Details
UpdatedSept. 7, 2026, 6:03 p.m.
Changelog

Fixed: - In Firefox the year in date fields is fully visible again. Since version 109 Firefox draws a calendar button inside the input, but does not account for it in the width Nextcloud gives to every input field – it therefore covered the last digits of the year, turning "07/09/2026" into a visible "07/09/202" (issue #43). Every date field in the app is now wide enough: entry date, next and first due date, mandate date, opening balance, open items, SEPA due date and the short report's period. - On phones the buttons inside dialogs are thumb-sized again. The 44px minimum for touch targets only applied outside dialogs – Nextcloud attaches dialog content to a different place in the page, so the rule never reached it. In the entry dialog Cancel and Book were only 34px tall and the Income/Expense toggles 40px; this now applies in every dialog. The round help button next to the spheres is properly round again – it was stretched into an oval on phones and on the desktop alike – and grows to full touch-target size under a finger. - The receipt ZIP export contains all receipts again. With the receipt storage set to app-internal, the archive came out empty and listed every receipt in fehlende_dateien.txt as not found – even though each one opened and downloaded perfectly on its own (issue #40). The files were never gone: while building the archive the app read them in a way that only exists for storage inside the Nextcloud file tree, not for the app-internal one. Only the ZIP export was affected, and only with app-internal storage. On top of that, fehlende_dateien.txt now states the reason for each entry instead of reporting every failure as "not found".

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signature5YJYB6EPPa7PoTfCkG8zixyMAiUog1fe+KV73/tIghJV/YWJ2d8W3yzLqUaLj+1Tv4Sy2jwftL4Jk3kXyRCHrosVPR+k7YMPgRJ1BuJrSHTK23gVm8iwQpiHTCY5HqoKZUI47wrxaHkq2ULydZnlnxZWfLvBLV8FXpPUw3oxmkCsHVeqgA3MYXfeKbU5a60Yh9gxOQh9DabCxJJGPPFAB7uBd7ZYJPPhoY7pN955VazN/Zhls3rjU0qWKFqmZehQp7VFesrHmzgxbHe7IGTTH9lNldx/JzPHXTbiBa8ybcvsruOI4OxdGam4ubaAXWPSX71Yo7JLW7lF35UW1/mILLNSkfHxw48sEciHTE0PeDfVY3PKtWuhpgAK4VP/04LbWBOHbx96jXfpV6TguNlwZMdiWvanwJyKGeO8PkiH6gVSut00BGnmC6gxBueGUD5WIGBVqDwhiLFx3EsSGiAyCPy2ZIpBHN8Bu40iooLMCog6vu7w+4cKzVgJSHejwLVSyfvNt1yfNczYj2yarA3zh3eqS+A05Q5N9thr2QXOe753mz2KBd7z/vCIWpCC34RLnlFVXaZj4sure62IUx397INnCUAsxaRqPkkh/9g3QeLOJ3JloL3RV3jIz8VM/37NbHQTApFs78ImdXGnGZ7/YuGcr8J15y7n/BOkEFAsTsw=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.31.1
Release Details
UpdatedSept. 6, 2026, 7:52 p.m.
Changelog

Fixed: - The report sub-tabs are fully reachable again on narrow screens. The bar holding Summary, Reporting groups, Spheres, Reserves, Budget and Log ran off the screen and could not be swiped – it ended after Spheres, and the More exports button was out of reach as well (issue #38). The bar can now be swiped sideways and indicates at its edges that there is more to come; jumping straight to one of the later tabs from the help or the bottom bar scrolls it into view automatically. The same applies to the sub-tabs under Entries and Contributions and – with the Nextcloud sidebar open or with longer labels – on the desktop too. - Amount fields now show the amount the way it appears next to them: "20.000,00 €" instead of "20000". In the budget, the Plan column was a bare number sitting next to the formatted Actual and Difference columns – with four- and five-digit figures it was hard to tell 5,000 from 50,000 (issue #34). The same applies to every other amount field: entry amount and split lines, opening balance, open items, membership fees and the default fee. While editing, the field still shows the bare value so that typing does not fight a live format; both notations are accepted – "20000", "20.000,00" or "20000.5". Anything unreadable restores the previous value instead of silently setting it to 0. - The treasurer's report and the short report moved into the More exports menu on phones. As separate buttons they no longer fitted into the row and pushed the menu off screen. The short report's date field is now part of that menu; nothing changes on the desktop.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureB1QJYSJ6p+q4O5Yi2GBFhXTyaZTxxSwnNZJACVeCSRKygre2q5fbtLy1CCvZ/VBYEBYnuSvcz3uK4Q7ylzoiuLiMkK5y38ntbeFgLvZPgguK3uyJtCEmSXuvFwUUvk51ZFasjy13rg4o3d0HLLSrzPAUAFOu236jwO4Z6QmRSTcJJloyw5sDP3ykLrT5DZT3ZtduaPGq9EsZTV5AWUj6zdWK8LQTFcbX73KbGp/ao1qeXF0AZbVVoJI7GRIbu7Znz1TjknMY18B5XkDHHXw9vxkejtTs/vYfGm0mWREPxymjZJOzA9UuhO4zsdxipDckbBNFmceOYokYx3360e0Ho3qg/AHowOinzVJbDah8pL2ZKXFsrlToNgFADdVGw7V9M0IM4zoIgw7n/wZ2WHZkL8SE3B+vdKEcK2yWemqpyA0rns1hG6pmvMCcTCFvLsuJVfZs/ar6STyT9GuA8IZvYrU6Syhawo8UAXEUfIQeYdi38i11S745xNIXvrbKCpDodmxJ4hvfx/XTsi9TilQPRI174s6rjTzFpNI+wm5lGoiYRfFBFRi3xT9X5sSnGkcw+sie9Y664BLDDn2vf0n1T0bVyPLyKewN+GYz/tomrdJAhUmQx0xuBcR2hFNQQ2QoDwwlhifo7y9Pb2Vo5jJhea0sr/494Z9pUy0s29xfoF8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.31.0
Release Details
UpdatedSept. 4, 2026, 9:09 p.m.
Changelog

New: - The header now shows the funds across all cash accounts, no longer just the first one. Until now the top right only ever showed the first cash account by account number – anyone running a cash box (1000) and a bank account (1200) therefore saw the cash box of all things, while the bank account stayed invisible (issue #31). The figure is now called Funds and adds up every cash account; the tooltip breaks it down by account and names the transactions not yet assigned. If the club runs only one cash account, its name still appears there – nothing changes for those clubs. - Individual cash accounts can be left out of that figure. For cash accounts the account dialog offers a new Counts towards the funds shown in the header flag (default: on). A fixed-term deposit account can thus stay out of the day-to-day figure without disappearing from the books: the cash report, the assets overview and the trial balance keep counting every cash account. The flag is display only and is therefore not locked by the finalization of a fiscal year either. - The cash-account table on the dashboard and in the evaluation has a total row – as soon as the club runs more than one cash account; with a single one it would merely repeat the row above it. If at least one account is excluded from the funds figure, an of which funds (header) row appears below it, and the accounts concerned are marked as such in the list – so it stays clear how the figure at the top comes about.

Changed: - Clicking an account that has sub-accounts now expands them. Previously this only worked through the small arrow in front of it, which was easy to miss. Collapsing still goes through the arrow – a second click on the row deliberately does not collapse it again, otherwise you could not select a parent account without closing it. - The posting text now grows with its content. Longer text wraps and is shown in full instead of running off the side of the field – when creating a posting as well as when editing one. The value itself stays single-line, so nothing changes for the journal, exports or the API. - Dialogs have a little more room to the edge. Content and buttons used to sit rather close to it.

Fixed: - The charts ignored dark mode. Axis labels and grid lines stayed black and were barely visible on a dark background – both on the overview and in the reports. The cause was a check for a theme--dark class that Nextcloud never sets, so the condition was always false. The charts now read their colours straight from Nextcloud's design variables and therefore follow any theme – light, dark, high contrast, and club colours set through the theming app. Changing the theme while the app is open redraws them. - Success and error messages (toasts) appeared at the bottom left. Nextcloud still shows its own messages at the top right, so one screen ended up with two kinds of toast in two different corners. @nextcloud/dialogs 7.5.0 moved them to the bottom left and dropped the position option; the app now puts them back where they belong. - The active button had a white border. Visible on the Income/Expense switch in the posting dialog, on active filter chips, on the underline of the active sub-tab and on the side selector when reassigning. Nextcloud claims button.active for its own pressed state and overrode the app's border colour. - The focus ring was clipped in the posting dialog. Tabbing through the dialog showed only a sliver of the ring around Income and Expense – the switch cut it off. - The posting dialog could be scrolled sideways. The hidden receipt file input claimed its full intrinsic width and pushed the dialog past its edge, producing a scrollbar. - Accounts with sub-accounts broke out of the account tree. They were bold and noticeably taller than their siblings, and their columns sat a few pixels further right. The cause was the expand arrow: on parent accounts it is a button, and Nextcloud gives every button a minimum height of 34px plus a margin – which grew the row to 46px while leaf rows stayed at 29px. All rows are now the same height and weight; the arrow alone marks an account as having children. The faint placeholder dot in front of accounts without sub-accounts is gone as well – it looked like a bullet point; the placeholder still keeps the column aligned. - Text hugged the edge in the "What's new" dialog. It now uses the same inner spacing as every other dialog.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureRpdiBEtKAA1ZA51YvSoVDbENkvtlBocEabzuohgcm5qFUGiUGZLMXzQtGk9xSeAhUOvjMeAsfzeOlQ5ZJTjU7Yp6W0AbHdAALFHCIPiGJTNqUzaHccYXA191IHp/KXpy89kFXUNzX2tBZnnIU4hWOzNXodidjSnuIZnAxBoiZoTSkg12tbtJ0rzCrAoFjolbx1vWBKg+lKGaMtM6qXgGbSNcylqMZ3PIuYeEJ3S+v4OAJcNGnIQtmBWaljdWvh7c6y5GlfQWwvbS6b7leLv99/sRNoaVXId+fXRvUul8O+42tLZ0mpk4GUx0UiE5QtiuagSylE3tmLXvK0F1zm3N56uymcP1PW8p84jbXDszxIDQQfnolu/WOca8gE+l9dBzx1ms/C4LtsfEQw5yzZOSuzxz4Q0PUOmz7A2TKQ0vccRz9qaazd93hhl/+6QGJ1fOfA5vxtbtTwtuONfAgtSkXrKj3uGZU3Q5uu2l2e6a/R0cpYIYexhIk+Xnc0NlOK6t9uNQdH1CTpZ7Rj4FpTteRnIHJTWLTn5RMXW/bJBFTsBoNOAvBIq4RalYd25avk2pnmAI8rQzEgU8+oSJV4Zb5L47lrA5nlVYWn+G0hw83K/dm8/8aRvkhv0th1kE4IrqSWbZ/BD9i8oSNGnQ2mU4O1Z+Jhjkjh55oge2PeLgQWw=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.30.0
Release Details
UpdatedAug. 31, 2026, 8:36 p.m.
Changelog

New: - Receipts can now be attached while creating a posting on the desktop, too. On the desktop the New posting dialog shows the same Receipts section as the edit dialog: the selected files sit in a list (with a remove button) and are uploaded as soon as the posting is saved. Until now this only existed in the mobile view (windows up to 640 px) – on the desktop you had to save the posting first and then open it again (issue #29). File type and size are checked as soon as you pick a file: anything the server will not take (only PDF, JPG, PNG, GIF, WebP; 20 MB at most) is reported by name right away instead of after the posting has been saved. If an upload fails anyway – a dropped connection, say – the files concerned stay in the dialog and can be sent to the meanwhile created posting via Upload again, while the other receipts are already attached. While saving and uploading, the button is disabled so that a second click cannot turn into a second posting.

Fixed: - The Attach button could only be reached with the mouse. The file field behind it was hidden via hidden and therefore dropped out of the tab order – anyone operating the app from the keyboard could not get to the receipts at all. The field is now focusable and shows the focus on the button, on mobile as well as on the desktop.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturefVul/2TJkdc0pI4s1Y3nesPADFrMVwkimF+/qhyka+ikknmlAgb8tVmNFcoT/lKpQrXG/w/qLfY/kGi8v7iBgZz9KZE5ShnnvaV69P1nZkJWaRz+8tzAumubC/5P/lWtQPUsOCkt4MDYknxDIPjkSLv7v/MnqxIfsuG01OnhgzG0cu27t3TRvVjQF6gnJ4sdD0ceokH5Ntnk63elMqDo8EjxZu7/WTktjZuwKWZPgtReRyKVaNsWU5XnhVA+X2tshjvfHNt7UeWq/+T5TJFCIkjF+jUCYwYm2Z71pttdi1qsOMRi/CchrA/a4fAAR9aD/tzLLzgNWXKLywQfFAv6T84bsVOpz0hqq72GSvbYMSRNYlF9e9J//8zOPxxqP+Jq+gFb7jCT+BW76He0nz8luWqvktz/njyxs1QrtS/ITvB8H4YYhJRvw17+zci41DNn4UyumhyxVBk6QNbKCDTrtzsMSOdVqEWDEzgc9JXy1ag2yrrEZPnCIJHckwT50UUkOXwsJWVW/22QIH6Z+k+CZKYeqDcp4GbHiGowvVlnuGcrS5Sc2iA/7ERgc3hHdgEdZ+VNJIr3eiWwnfJba8Ws8wRXeTpw/7qFoAtOkaWen9O3oYmQA6AYiO6yeXG3/QJjQ/KovDPr40ffDA1Fsj79PMIH08ZXjWEPPztSTaNYRoM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.29.1
Release Details
UpdatedAug. 30, 2026, 9:02 p.m.
Changelog

Fixed: - Success and error messages (toasts) rendered as bare text in the top-left corner. Since 0.29.0, confirmations such as "Settings saved." sat unstyled across the header instead of appearing as a box at the bottom left. The cause was updating @nextcloud/dialogs to 7.5.0: the library's toasts now carry hashed CSS classes whose styling only its bundled stylesheet knows – up to 7.4.1, Nextcloud's server CSS had quietly styled the then-global Toastify class names, so the app's missing stylesheet import never showed. Both script entry points now load the stylesheet themselves; a static test and a sharpened e2e test guard this (the previous one only checked that the message text appears, not that it is styled).

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureZNu+0GfB6CNdCwdO8JIIAFJufLn9soTS6/P1RXqQaPN4Oekr/TyxcLVuvcVuNzEYDBGFw9HDZFvX/2GIoeGoK/39vfOELcpkWr9L1K216j14IueTtzIhOtOWr3D1IaMJ+DJ/mNRU6WPvQFV39z80ZOml6fiUJ+FIE99l3VljDq5laYJo9a9MmQfnsOgj7chk0hMp9Y239P2srKL4dX57wU3tTbKdGVpE9qUNqpeGd7GFoCrz/N245oj9hjnIYUcIpEb7/05fgc7ka2/9n5EE0eHHZHxeDe4sRIFTmoitUkiXNvdxF2v5a7VVaECeZIQBoLVBfsVn+w4s9JzIbUMfz2V3ZtTG+EZt91lcD7PcJQwOp1JLRMGZFVv38CW65cCaIFNWya+YoMV/+C63sM2yjuO1WLDHdOOcBdwosksiljUSpnl/MhcCFAUyPMsugG5y5aQSnwXcEQ8C5tMUPTPZv4DCI7mAaSrliAkg2llZeU74XWy7FNvlp7ILZYPgFbBJOd+LB+qXy5DTArfTYhFspVZEPUGdMXS6hq1ApJcd9ZwT1rHbZimEGDx7EhAcmMZK3oIpPrYr0ULRqpSub/rcV1GgLsS1zryfb26r4T1qQrP0qwajmpIBLsOhQNODbD+ejcSrQECDw6BTaBlm278v3OrwQVSiOTWw4+EoCF2HxeY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.29.0
Release Details
UpdatedAug. 30, 2026, 4:45 p.m.
Changelog

Changed: - "Cost center" is now "reporting group". The report, the Manage reporting groups button, the field in the account dialog, all messages, the in-app help and the manual now use this term; in German Auswertungsgruppe. The trigger was a question from an accountant (issue #7): in cost accounting, a cost center is a second dimension on each posting line – an amount is allocated across cost centers independently of the account it is posted to. This app does something else: it groups accounts, and an account belongs to at most one group. The old name therefore promised a capability that does not exist – and strictly speaking there is no such thing as a result per cost center anyway, because a cost center carries costs, not income. Nothing about the functionality changes: the same three groupings, the same assignments, the same figures. Groups you created, their codes and names are kept unchanged; no conversion is needed. To split one amount across two groups, you still create two accounts for it (ideally as sub-accounts of a shared parent) and split the posting across them with Split…; manual chapter 5.4 now says so explicitly. Internally everything stays as it was – table vbh_costcenters, column cost_center_id, setting cost_center_mode and the /api/costcenters route are unchanged, and there is no migration. Older entries in the audit log keep their original wording.

Fixed: - A deleted collecting account blocked the entire settings page. If a collecting account had been selected under "Contributions & SEPA" and the data was then wiped via "Delete all data" (or an import with reset), the setting pointed at an account that no longer existed. From then on every save on the settings page failed with "The selected collecting account was not found." – including the club name or the receipt storage, because the page always sends the full set of fields. Resetting the data and deleting a single account now clear that setting as well, and it is only validated when it actually changes, so an account that became invalid later (after removing its IBAN, say) no longer paralyses the other sections.

  • A deleted Nextcloud user blocked the entire settings page. If a Nextcloud user was configured under "Receipts" (receipt storage) or "Bank data" (watched folder) and that user was later deleted in Nextcloud, every save on the settings page failed with "The specified Nextcloud user for the … does not exist." – including the club name, because the page always sends the full set of fields. Deleting a Nextcloud user now clears both settings as well: the receipt storage falls back to the app-internal storage and the watched folder is switched off. The user is also only validated when it actually changes – for the deletions the app never learns about (a foreign user backend, a restored database dump, a deletion while the app was disabled).

  • No Nextcloud user could be selected in the settings any more. This affected "Receipts" (receipt storage) and "Bank data" (watched folder): both dropdowns only offered "— internal (AppData) —" resp. "— off —", the list of Nextcloud users stayed empty. When the settings moved into the Nextcloud settings (0.25.0), the page lost its binding to the user list – the list was still being loaded, but no longer passed on to those two sections. As a result, receipts could no longer be stored in a user's folder and the watched folder could not be set up.

  • Illegible labels and wrongly coloured buttons. The app used Nextcloud's light status background tones as text and accent colours: "Expense" in the posting dialog was white on pale pink, the remainder shown while splitting was barely readable, edge markers and warning stripes faded to pastels. The dark theme was also tied to the operating system setting instead of the choice in the Nextcloud profile – picking "Dark theme" there while the system was light produced light colours on a dark background. And several of the app's buttons (the income/expense toggle, the checklist links, "Skip", the suggestion chips) were painted blue by Nextcloud's generic button rule. An automated contrast sweep across twelve views in light and dark theme found nine WCAG AA violations before and none after; Nextcloud's high-contrast themes are now picked up correctly as well. Two superfluous separator lines in the header area are gone, too.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureyQHwNNxrBjVIKt7MFaMKoeJwKVfhHDcVQwZDFVsw8Si/nVH9ZKTFaSh3U40O+M9pUMS0orOFnbrKEjuQ9VlcDRYhzlxkzal2X2gSNnVZEnMSEEWT4M+1wyvGfy0aPh+KmX9u1udqC6ERlVJXzWU6Bwn2/oUuktI+/j3LjlegsuiW/OeDz1raNNoYvl7p6f5dSuSfItaPqtcbGjjefw+75WZhJXdf/kwkJWPLPkU16i8PZsR8VsShq0ZQV/8HtgSQJ2o3HVwpELHA2onV8rmNbvOsvLj10PxDjYlD8jNom4YuAMCpn9cx2ynOtVS0bQFHHmhtqdq7E4sumSJkf5m1m2n/Y5R5mID1qiCEAtXNcyoRhOz0Dl7bnq4Lj7KtxYTHxurHdRAo/XSngwP3Uk0Tm+H2HP+m2qDCxLpY8aBR7ISrTzR4YsvwRZCv+7U96RhMVJ23Zv4tRf3SW+ohI+hRwLWYQkyfbKOht+i0EvuZMjubbOUgOMdwHMRVQfqF1IV1YFN3IV1+IfkdeTl2KuyFd6h7ecg9KjmUcE4ByS9TZdU1O+uF8MLBmzLBsqTKKNCruUXgOOJAeOcewfPsxJkZj3yzH/EmAiS2Yww1MZRI323vh3gkk+Nk4OzvQeidOwX6wq1cR9AEZGUpIrzyTDqIYI6S8Y+c/nxQDCyCBtZ0s+8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.28.0
Release Details
UpdatedAug. 24, 2026, 9:25 p.m.
Changelog

Fixed: - The interface stayed German even with Nextcloud set to English. Until now the app loaded its translation bundle straight from the app directory as a file (l10n/<language>.json). Nextcloud's shipped .htaccess only serves files with certain extensions from there – .json is not among them, so the request ends up in index.php and comes back as a 404. The attempt therefore failed silently in every normal installation and the app kept showing its German source strings (typical nginx configurations behave the same way). Translations now come from a dedicated endpoint (/api/l10n/<language>), which is not affected by that restriction. Server-side text – manual, audit guide, error messages – was never affected.

  • The confirmation for posting a SEPA collection showed a red "Delete" button. Two dialogs were affected – "Mark collection as executed" and "Undo return" – both left the button label to the dialog's default, which is meant for deleting actions. They now read "Post" and "Undo" and are no longer red. The default label is translatable as well; until now it read "Löschen" even in the English interface.

  • The buttons in the SEPA collection list were cut off. The action column is fixed at 160 pixels – a width meant for three icon buttons. The four text buttons ("Show rows", "Download XML", "Mark as collected", "Discard") wrapped onto separate lines there, the widest one stuck out of the column, and that made the table wider than its frame: the buttons sat half outside on the right, and the "Created" column was clipped on the left. From 900 pixels of window width they now sit side by side; below that they still stack, but inside the column. The same applied to "Undo return" in the expanded collection list.

  • "The accounting was changed by another person" – after your own entry. The app compares its state with the server every 20 seconds, but a change detected that way only counted as your own for 15 seconds. Since the comparison runs less often than that window – and is deferred further while an import is running – the app regularly reported your own larger actions as someone else's change. The measure is no longer a fixed window but the moment your state last provably matched the server: anything you wrote after that explains the difference. Genuine changes by other people are still reported.

  • Sphere, reserve and cost center names stayed German. They came from fixed strings in ReportService and never went through translation, so the English interface read "Ideeller Bereich" instead of "Non-profit purpose". This affected the sphere overview, the reserves overview and the built-in cost center names.

  • 22 missing English translations added. Among them the default-fee hint in the member import, the labels on the SEPA collection cards ("Total", "Due", "created"), the "What's new" dialog and the first-run hints in the help – all of which showed up in German in the English interface. A sweep of all 850 strings in the code against l10n/en.json now comes back without a gap.

New: - Member lists with English column headings. The CSV import now recognises English column names alongside the German ones (Name, Email, IBAN, BIC, Mandate, Amount, Frequency, Start date plus common variants) as well as English frequency values (monthly, quarterly, semiannual, yearly, annually). The English manual already described these column names – now they actually work. Existing German lists keep working unchanged.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureInHxPFEZyBd3yG1z+2uy6aKBsx6FyoN3f5ANpltNQ5cdO4ka3WjXGr2qoXoxzwiAF8GuehGrB49Y6PG/J0rD+NDfxrlsdagjW962RfIAbfy7iuyWyAJXG5zzUuCtBXrNsF+xX2p0oJCgxu3pP7py734yG2C0O8QlnzfNMv587XwlN5T8u4tnxZBpaFgDppx4M8T64wwirD6fXIHZ2XscD6Z93lTwONEJ6QinuT5GVXPz/xALj09jIfau0QUlf7ASK7ZW+RafURPvEJv4yoDfz9pG2K5rp6j9eKsRy542OlgWasYWiQ/AsOAzhrlbXE6I5tc0RV+PgpE+1XeFrZCKk7Eh1bBFUjBEpd8wrdaN4SatC3izCdry/SGmO7cZnD+pO7aYtOmDpPUKJcu3AByHkWNj9XR2o++1dlBDHBgVc5pI1LZrkFsS0COfvBle46qoasWmG1O6FCUtHe5bG13owgxzujgc1X9OuTc0PojlMQObD3h7aiwwYFHhQKellpUdYiW/VBfWSIb6pEHDkronPwWG1LitX7khY8/Nwfc02xDIDhq547Q3S+pYaIB4uh8mkr37bdQf/ThAwKHRBCaaRpFfq/mflPgLy1xHJ5G7VWdGTaUo2DL9ABLuSLG0q0x4kjt5cJVZlgNpkDJzvxjndy1t7mU3KR5XB/VNqiV1gm0=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.27.2
Release Details
UpdatedAug. 23, 2026, 9:40 a.m.
Changelog

Fixed: - "What's new" popup from Nextcloud showed "[object Object]" instead of text. The 0.27.1 entry still had a ### Fixed sub-heading in its changelog entry; Nextcloud's popup renderer (marked v18) can no longer process Markdown headings correctly (see note above) and shows "[object Object]" in its place, while the rest of the text renders fine. From this version on, changelog entries avoid ### headings.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureNgfXL4Rfqyk2fMRoXHkcuOpie+84LH1qIhuhJ+Sfs4K29Xy5fbifWMVhWM2HBTEhfNqQaqLJzVzi4BVDV1rjlvMjD4O35H5QACv4J8/3jiw76kJTS44yTA5zVcnhWhBCqr6yuB8jTx7hco1x7uCo2ywbJvjJ187R36mNfVm6ZjcKhTDNwRmM0vKJz4GaOubDo4btXQbQpFhFUPAUVRpfRTVYfJKvuEOmTo2NWScedIG8pFocJL97l9EAymq0XconkOSporGYKouX6WalbuG9k+EEdPsrNaRRilNfOGQ2ffVXy/nMK4Z7SiF/ZGuFA5K0VI3TlV/KkIjm1o50gjAnu/9kko9C4aqijlY/chU/h84MDfwGC3omb00NHhd9aCuaLp3JoZfoDgQjdtSrQQA/n/EC3o2WwXJknTUxamNroeviXVFrhNl7CtI98yXhVExWePLfdmVb4eCDZl9+BsibH6nM/tQV52hToGpSyYJ+xUehhKV64dOQjf+f7BaTo+uK18vXNin/3lph6p+sLUkB4T1nli5F2kajhzZDA1Q0AC6JlWQ8YiakUO+94I5FqFruv46S+89VTbE3co9cY8kbPImIAT00o+g7N6E+SUPvFYCryYYElWJkv8TdUBGkA2wYRshimV3lcg2nDNrQmvQfk6y3ttSXstnqlnOQd/gdyi4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.27.1
Release Details
UpdatedAug. 23, 2026, 9:08 a.m.
Changelog

Fixed

  • Broken "what's new" popup from Nextcloud itself. After updating to 0.27.0, Nextcloud's own app-update popup (independent of this app's in-app dialog) showed "What's new in {app} 0.27.0" followed by "[object Object]" instead of actual text. Cause: since 0.27.0, info.xml carried the app name in two <name> elements (German/English) for a localized App Store title – but Nextcloud's update notification reads the name at that point without a language code and can't handle multiple <name> elements (a Nextcloud core bug). <name> is single-language again; <summary>/<description> remain bilingual.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureaeAWQtCQuWsCH4+c3wMP1uOdvyL3Q9PzYaU51NlPZUEdQAKmgJ+hr6P3RcagnAVVx9RKun88DqgEASp3wfO4PQoctWxw1f3x8uj+jEw/Lsm8/kKfOJRzBWMOHRyOhnvUDQeNtmJ3D/63gftHG2+KWgiEBSAuMf1hqoR/4fg+zuqh9sxiuwAEwDYgP6JMEs8zgLC9bfcbRgjpg9upN/G1pGYkFgIFWNkhO+ETFSj/Qvd5V5o1fMhP58GPNQFsLOy6/sMhxqznyvqr4cgBfQyd4BETkrJ7GY+6EFD0NmGy6SDiSwRYzBgbkaRyjZAd1DSg/Sybuztz8SzWstRdyse43I6DhndKTFj/keK4I8JJperJv8NVF2/y+ZBQwZIywDns4uuAvXbYmi6soFJFiu2RV2DMSnmR90g2Y07mp+pMQ3S4XBpS+cFaBcxElefyrCGMe1dEnhLWgyITH9gHgfztT4KFzaTWc3XGRH6RUbPxyyxwWsa+C7PnA7S5MgegXrXichoDdAQecWRUqTBf61nQOJB9i83dMYQBzLeFdEMWG9MDcPfJrasHG5hFRkBctvY6j5yrLhZHu3u0hEeX8xk3/nTSZbkpBjklAooT1qb46Za+EA2TbGKv5UPb3S1pONIqIN01poeZ1dRhry3ddlt+WdLbwfeFm9GvOaj1/xDivVE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.27.0
Release Details
UpdatedAug. 22, 2026, 4:51 p.m.
Changelog

New

  • README, manual and audit guide are now also available in English. README.md, CHANGELOG.md (from this version onward) and HANDBUCH.md are now also available as *.en.md, with a language switcher at the top of each file. info.xml now carries <name>/<summary>/<description> in both languages, so the App Store automatically shows the right one. The manual served in-app (/api/help/handbuch) and the printable audit guide for auditors (/api/help/pruefleitfaden) now detect the user's Nextcloud language setting and serve English instead of German once it's set to English. The chapter deep links from the in-app help (HelpModal) now point to language-independent anchors (section-<chapter>) instead of slugs derived from the (then translated) heading text.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureMi3raDuOYadKfpzYefG7vj6dVm3swn9+mt9ruKaYeQxm5nlbfNi9FewA5R6IJqVP0EcpSSE1h7LfXS25LueCsPlRyIWQ5nz+qr2dQkynflesWDyZzoVt/lSCcQyUfJN0RP+dVXBCcpiltKKKg2FNZzxxmj9BxgL1nUimMSi48FG7xwmFRXeXcBX/fIAF2EOnOCwVF2vlZ18jju+bJQATEQZ5cH2jIWi7g1gD2eWlQYUie6Qww8WU2n33XikVLQpVwDuk6TFz7aSJJ/Rq09b1w4uJhUCIq9fnV0e88dSMjrjj4C/rJdgf2+J/BFcvKJh9KVkBNzkm4FkTxRyRpTew+wqeem5+EdsAHoyKggJqLmbS7KSujXscwA8SzSzvwd+v+MoJSHu8I6V8Fo5Y9z0b119jg9itfR3X5lNsly2bVj6SrMrEAGo+ER2nNWCwDs38/3+2bgXPAZrdnyER+kqpPy3NgdCRiGAK2wWo/T+5fS5P1wncauXqaDLPH7V4wHNBAib9cxUgaiyDzxl+uvH4v+SZC1IMlEfwfZGZjUJnBTY8OVLpNC03LNDVgQkBp65plEnfavZ4oyd4vc6RSA7y9lr57WtuE3eaOohGp4OoWZaOn8T3T1OnzIGMbryiTGF771CikEdUNFbhGi3KAi+mz7CGv3ZVTZCkdyqnoOopXUs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.26.0
Release Details
UpdatedAug. 22, 2026, 3:27 p.m.
Changelog

Neu

  • „Was ist neu"-Hinweis nach Updates. Nach einem Update zeigt die App jeder Person einmalig einen kurzen, auf ihre Rolle zugeschnittenen Hinweis, was sich geändert hat – statt dass Neuerungen nur zufällig auffallen oder gar nicht bemerkt werden. Der zuletzt gesehene Stand wird pro Nextcloud-Konto serverseitig gemerkt (nicht nur im Browser), damit er auf allen Geräten derselben Person konsistent erscheint. Über Hilfe → „Was ist neu in Version …" lässt er sich jederzeit erneut aufrufen. Nicht jede Version bekommt einen Eintrag – reine Fehlerbehebungen bleiben unerwähnt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureSSJGYRSPKYldBCTeEervEPuSTfCzZo4MueT61i50B0YTBi7eSIAZT8c4YPEN2OpNjr8ZZHeGBGjgRqVRHaa9ewHtue5Qp6UDCdeCw5O9G+pIHNIXY4kENM87wt+15KOrQ99WvuX69vR5L07S3AFcoGEFocuB9IYgItFt5hTNi6+MyNgMt4IoN0nHgON9oCBrGxo6zxDuhZMrE4n0hYAxtgH5iFUmWEn2OjPvlYrkWnKXo9G4v0/4fR0xVM+N/6wg6Zgmox/4NPKfU+BjiQ5D+erMxOzxm0CDb9tCVk4BK7Za/vnkJtpcb34h4M2NJWTHgWsnkUlmPLvIPbwNtWOgvuyAOOUoviJLJaU1nt17AFHSaHwC5WQtDbF38WyPOKMupMhvjLYZsAAxrMogZUE0Mf51aUUxfm4wFsWRp+kjkQtFd/yavBZpL3qKvcAg25Doc3AtJEpar0Zxd8T6sQx6S+rkzcQRmWemAsq3gQO/WwqKIwOwiXy7ny2m9SZqY1ILL/8S4CZFw+kuZuwT9OjOIIMbxXpAt5R9tpXMqDTGRWmfZ+UEaM3G5TGPBqWPG8xOM0Tj2yocFSGGMFZfqSmRvuDKbogFaTzcrGg12i1a78tOSFDi93IqeZfPLEaD248RKbSDzVAyWkvx5aZDPmJoawif7uCMsGyEP5RQH0FwWHY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.24.3
Release Details
UpdatedAug. 15, 2026, 8:01 p.m.
Changelog

Geändert

  • Beiträge → Mitglieder: Bearbeiten-Button zeigt jetzt das Stift-Symbol statt des Texts „Bearbeiten“ – konsistent mit den übrigen Bearbeiten-Buttons in Tabellenzeilen (Buchungen → Regeln, Journal).
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureF0vMWEnRu1h2zXCbNEoRJPpy8dqSTmHO/nDWrvyWGXZbI3yyjjjWNoUVyVnjdXiQvSRdwGpMm5zMTft0hXf1UVa5VqcCvVh1OpqSIS26VB8CUAO9ZjP1fmQsaj3t/MOcOfLqrJo9H/JYa5jXgZalnQexVhNN6si9CvTGkZEopjwq/q5f/8bwuS3K25Ich3VIFJXp1ay6YFNjhPnfY5T2SGVBVNE0/Tzen5gTL3LtJnhzoP3//aArkzqH1RjgQC+nOr4Za/wXCRrfg5rbnxpFC6oirrNmvtaw3Ot4y3MVoSktp0h+ssRodoO4DFQtr3GohwajY5+QA6pKhGuDwgvpJjKWUa9TJzCxqFkNsrOkx1P/CjNwLneTUraAZlSuyen8mpQjrJePzpSQSZTn4VPTcrM6+BcrUrygURMz3zEhdDdRRGJQJV+CWxDTLFMbDoZQfuYZWI9RBkesC3HjwMYy9rdmAsmV3Ygnp6JrM/z11qklkCZBkxBzizAuR6GSmTGDdVJ3YDRVL3j/BccLKdrTIaSbTsGAwHT2rDO5LSrikLoou8kcxKvgQf64JgaO0DedpxEcMAk6dWRTxLo2EjXVjDaOBIHg2yT5JCBb/N/PKJ/fx+2iwol/PjGIWWHZT4/lvDOnUjygZ6u12s1MQRieORB/zO0xz8jeIAf7X7xbJdg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.24.1
Release Details
UpdatedAug. 15, 2026, 6:04 p.m.
Changelog

Behoben

  • Modal-Überschriften schwebten am Browserfensterrand statt im Popup: NcModals :name-Titel hängt CSS-seitig als Geschwister von .modal-container, nicht darin – bei zentrierten Dialogen (Einstellungen, Neue Buchung, neues Konto, Kostenstellen verwalten, Sphären zuordnen, Mitglied aufnehmen, Importe, Hilfe, Bankverbindung wechseln, Plan-Stand, Willkommens-Assistent) klaffte dadurch eine Lücke zwischen Titel und Box. Betroffene Dialoge rendern die Überschrift jetzt selbst im Inhalt; auf dem Handy (size="full") bleibt der eingebaute Titel-Balken, der dort korrekt über der Box sitzt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturemZBEME1oniTSxTY9AmcBwrzJDrnU2MPLyQSXHoUEf9D42t3aQ+3A+GsoTO5B9K28MZwblObWytuz6tF5XjeF/o7V7bwag+KfSwVn1fWo2v8Jzqh/KzZ5cSDorHEjhRMLrr0v7zGXM+J+VSHdxtQ7X4JhOtnRMEtq8eD5/ogYZd7IwCTkyXkG9dMvvIDqO0npTQc6SegFiWr5vQqnBmcTf4YSb5to3j9OgPfeHJslrr01r2KJFo86iwexm6hS57d/QgldWkSPBWcQX/mO3Ss5j7HwP3LdrvgfLq9KbUeS/+iYkPXHmL76edhDIU2iNq6pHg7dDKFekFWOEnCp2jPx7yyzffLZ+vSDSgCca08FHdXcLPIqyihAtzM0oeQYQ/b9CQaVq4h1vKKpYrsS5Dexl5y3fY3LfwzJBZ4gNLaSIcixGphGf8L/vxQCvpqsKox76CniRA5f+ad11pkbK+0xCXPUZYfm7x+Rdz5tGfEHnlI+S76OHBTnHfksY2sXMki0iGDad5iYFr6TjGAKWZA9Exlgvuh1I0ZWnCP2ItwHeTVbAPsupVazB8aDTuBSr4HxeM16XnAZAthMgdJtQAkVqjV8iiyKnOKYLohSlaaTbFLjNDHhvbAEa+sgdDUyQhEr6nv+yM4gElpqjtu6E5sb7FlCGn/RIfflVeR2y5w45bU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.24.0
Release Details
UpdatedAug. 15, 2026, 5:37 p.m.
Changelog

Geändert

  • Berichte → Kostenstellen/Sphären: Bericht bekommt die volle Höhe, Pflege wandert ins Modal: Seit 0.22.3 hing die Pflege (Kostenstellen anlegen/ zuordnen, Sphären zuweisen) als zweiter, oft sehr hoher Block unter der Split-Ansicht (Baum + Detail) im selben Scrollcontainer – der eigentliche Bericht war dadurch auf min-height: 360px gedeckelt, während die Pflege den Großteil der Seite einnahm. Die Pflege öffnet jetzt als NcModal über die Buttons „Kostenstellen verwalten" bzw. „Sphären zuordnen" oben rechts im Bericht (gleiches Muster wie „+ Mitglied"/„Liste einlesen" im Reiter Beiträge) sowie zusätzlich über „Konten zuordnen" direkt bei der Baumzeile „– nicht zugeordnet". Der Kostenstellen-Modus (Gruppierung) bleibt sichtbar, da er den Bericht selbst steuert – er ist jetzt ein Auswahlfeld in der Kopfzeile statt einer Karte im Pflege-Modal. Damit entfallen auch die CSS-Sonderfälle aus 0.23.0/0.23.1 (.vbh-sectionbody.is-split hatte nur wegen des zweiten Blocks flex-direction: column und ein eigenes .vbh-section-divider-Padding gebraucht).
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureF4fcHxqtwK40/pbTvqEDMLCdTPDegYcr9z834SwpPuVWNTebRNgwEDPMkdeFqpQkrAANpyo+818P/va/RY/OPVdRo12pkmyZVkdOcW7F6GtIpAj6GHKJBw60oxJ4VT6eld5b/GaMD6d9kkfYCuiCziaVtM0p1RIwBWNSmqrH6Ru/yEQftJx8Zbqg6+QgDOy/PGWZ9b/73fPFfifNu0btD9K3XEvJGAJp2GRLuUiIki8eeUHf/3fMDj1xPFtr9y6avxoNkgBS2Zqfi6OLXfRNK2lqHdbUbcmXU1f56Qfgx/KnOy/yrkVSjs0pzGUOAl1vCZTp0Yzq7+uuUD5jVMvpGBJ953jvEPXlM7DzHmElf9VL2rcy7SFHKjB80A8FptkdSMCG4qe3HUU/W0ImlUhf6BD0p3t1ElHI/SEsjjggabLebxk8B+nNOAyWJWCagiEA615yaEzTiH5kH+UylKzGXvih2CZvcGeGo59m808ySvRCtkskfyyDDMpv8GU2kzeFPsCdB0DOO1SyNFfeJznKMLu+fX3H0phF8IhcrwnVCloeGt5p6VPzfgAOcT3MlUDVDqoQcfyoJk+Z0+qGaoJ0F7cLA7+PnsgRpEsI6/J2XHDnCkimNPWJFDn7JAh33aDYx03CKXaXwVnx5D48V8oF4wrk5OMt+lK8YVjJ/z5UKk4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.23.1
Release Details
UpdatedAug. 15, 2026, 4:41 p.m.
Changelog

Behoben

  • Berichte → Kostenstellen/Sphären: kein Rand, weder oben in der Split-Ansicht noch im Pflegepanel darunter: Nachbesserung zum 0.23.0-Fix, der die Split-Ansicht (.vbh-splitinner) wieder auf volle Breite brachte. Zwei getrennte Stellen hatten trotzdem noch keinen Rand, weil beide bislang nur implizit vom umgebenden .vbh-sectionbody profitierten, das für Kostenstellen/Sphären aber bewusst auf padding: 0 gesetzt ist (die Split-Ansicht managt Innenabstände sonst selbst) – bei der vorherigen ~1px-Quetschung war das nie sichtbar:
  • .vbh-splitinner selbst (Baum + Detail: kein oberer/linker Rand) – jetzt eigenes padding-top/padding-left.
  • das darunterliegende Pflegepanel (CostCenterPanel/SphereAssignPanel, umschlossen von .vbh-section-divider, das sonst nur als <h3>-Trenn- linie in schon gepolsterten Containern vorkommt) – jetzt eigenes horizontales Padding auf .vbh-sectionbody.is-split > .vbh-section-divider.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureJUeU+au31gmFileGZvqfqHdz76kVE7sRd5xouf9LGjP4c8r9h8aQbrSozYWtASvPi8iCRh+FoqWauREynx88pz3ZnI0+FJfQBn/SIxy/ZyBSfiNyTVIwCi8NTYlp1Zo479tDt81my6+kaVDjfCRdZbyncuHugwpZbyxeoRuKtH21NenZVmGviCplJhiHgXYKUS6W4cgOMZ0IeOeP5aSlaigfbf39v5wf7nEPtGRMVmjmODXRa2T74Rbwmf6i8ujxgKklBeIY9jimJWqoQ5gMas5eE/swEnQsiy2xNgw71xBUtkyrMWKLw0LvPg5u2czJ1RlDVcQoC9MRUs3lY2N7A7mlkIIOaNCH+VFwpYddpR+yZRpCqaLUf4NyRynzUnk/p/PIvcWwhmL6tz2Z59ksgrvKLjcZqhE693JLvXKDVWXwjxg7tMUHBpVR8lwKyEAfXxQiuLkktTeCaHqEsA1ag94uVirj8GgJwzrpYBP6hPuopBgZ5yqto6nDLNfTzA6xzYhcYBM4Hi7M8XmK/AMr791kATi2pjVSq7RmYBGUneyRe40dqUDCR87pVzgQuink8cELbyDpAXlhO5TqAd/yxxmqrdX/HXWHiWSBuEj4qU2y0zcfhi5G2oLdaA5Fkr4PO874E5I8Eco51QUZFUG1LLPCBrIl3YkL0MicAqpEIe8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=31.0.0,<36.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.6.0
Vereinsbuchhaltung 0.22.4
Release Details
UpdatedAug. 15, 2026, 12:35 p.m.
Changelog

Geändert

  • App-Store-Beschreibung aktualisiert: Das seit 0.20.0 bestehende Beiträge-&-SEPA-Modul (Mitgliederverwaltung, Lastschriftmandate, Sammeleinzug, eigener Reiter) fehlte dort drei Releases lang komplett. Ergänzt, außerdem CAMT.053/MT940 und der Wachordner beim Kontoauszug-Import – bisher war dort nur CSV-CAMT genannt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signature4LRi0axgsMDOcm6JxlvfjNIxZrlCLVndYp1Nj1ffQ3gJMixwlFkR0kI8Eri3poO2kHRfnc5hFZZh+0qQ3nFBBDPLoSXIlwXOdh0C3/CsZxPvyYSFjbW5ZP6+e0LhExYd7UMl1lNeXNqAgfqw2GBiwRXeBFf1lwkcoDWJY6GF8U2KDSwttbjQny3cK60u4nHfHM0ye+NochsmaoUdUyJCuvV1fsERFp2bDYt8KmwJWB6gIX7koTp+4JXIEFzxuREAij0b5A8XOZlMQvlGYKcZatwyR8oQXFPOLUBRt3yZgAfWx9+nx9GXaMQYQ2l1p3nv9C/TmgiMdpALvHfhFCBnqIVvcEBMizpNmRyPEelbb1Q3N4/2kRmbqV0e5dApltmb6zdcdWGl26PIGyTjgmN0jFiftM9OGIcinCBBH6vEpo/y6GBsthf1cLbBGYYe+qZMamxruF58MQ01KCkCzUtGSENUVfJKtS04v7+0gB0SPMkAh/KJb4bNf9qajfqD+1apWm5ceWBtTY293YlqGfEDDXPWeRfp1YcFfxkul4H/tLwVeonyFQJBZ7FTxeDUAeY+JlrruIs79av7ERKGFbS/4LHdQc1G992yy6BvTFVK5f/7M0tWAgYteUHD0IVdKlPRPiGrg+oycs/XN6v+RE9uLdHSJrUIMJZXf79DNpI47fo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.22.3
Release Details
UpdatedAug. 15, 2026, 12:31 p.m.
Changelog

Behoben

  • Konto-/Kategorie-Auswahl auf dem Handy war unbedienbar: Das Bottom-Sheet zur Kontoauswahl (AccountPickerSheet.vue) rendete zwar in den DOM, blieb aber unsichtbar und unklickbar hinter dem Buchungsdialog – Nextclouds eigenes Core-CSS (#content { position: fixed }) erzeugt einen Stacking-Context, in dem das Sheet trotz hohem z-index gefangen war, während NcModal (der Buchungsdialog) dem entkommt, weil @nextcloud/vue seine Modals an document.body teleportiert. Das Sheet tut das jetzt auch (<teleport to="body">). Gefunden im Gesamt-App-Review, siehe APP-REVIEW.md.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureknAf0tPINZuLUg1pagqwrKg05TXChSaJ4x8RZTzPAJb0p3KwCoujY9sFQcjXmJGzu+Zb/3V0yNdJrzeZYVdl6272s6V0D28Yk2t7wFeyY1EKr/HsX0KjIQ4g8iCbZ13JfZOftXuoIIbGNYCR/N1r9R3559J49r0npp2F7ieEZ79eCdehumskUMxvjLnElh2tB4rfxk/JH42/PoBPuftBGJTQo3N6g5B9GmFIWKEE+EytiSN7F0Y8PCWdXts4rNQDaPvWnu40GHvJHfLv9wfX/21Kjtt8pB2WdJFWAvkrDLMXFsAwOJsQ+nprVm9jRQzQv2BmP4K4eBoHietPezxrJSqHgfFSz8jG0yTWRgOaj/BdSv8AbgxvubwS9F+l1HDNzj2tFH4WjiITbYv/MdZWmhz8+aTtlhet5uB61eSwGoO8r0Gwss/NoWcO/oq9beqH7Z8uWr4724Q2r+58PWZFdeZ4HNH5PzJxnNaew0KY0sb6HDkdKUbcgXwxywImKJuNQU2J9HWKrWlledlf2gXOmHpcHhH8mfiKgiQ4I5SN9w9ikJ33UROZfBK1kt9CRmwW09oPsV8ARAS3pp0l8wnTsdwuIYxMWoWoIqGgWfdfUTUfXljwsjKl88/wlxj/E4QOjYxJlOo7AOr2XnMjzgDHb5AD6eyPxpzvu0hLDUQCmUg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.22.2
Release Details
UpdatedAug. 15, 2026, 9:12 a.m.
Changelog

In appinfo/info.xml direkt von 0.21.0 auf 0.22.1 gesprungen und dann auf 0.22.2 weitergezählt, ohne dass 0.22.0/0.22.1 je getaggt oder veröffentlicht wurden – dieser Abschnitt fasst beide Zwischenstände zu einem einzigen, tatsächlich veröffentlichten Release zusammen.

Neu

  • Standard-Beitrag (Zahnrad → Beiträge & SEPA): ein einmal hinterlegter Betrag/Frequenz füllt „Mitglied aufnehmen" vor und greift auch im CSV-Import, wenn eine Zeile ein Start-Datum, aber keinen eigenen Betrag hat – bei 80–100 Mitgliedern mit demselben Satz sonst 80–100 Mal derselbe Wert von Hand.

Geändert

  • Navigation aufgeräumt. Das Zahnrad-Menü „Einstellungen & Import" hatte über die Entwicklungszeit 16 Abschnitte angesammelt – Einrichtung und laufende Arbeit ungetrennt nebeneinander. Neu:
  • Reiter „Beiträge" (Hauptnavigation, erscheint automatisch sobald das Modul genutzt wird): Mitgliederliste und SEPA-Sammeleinzug, vorher zwei Abschnitte im Einstellungen-Modal. Kennzahl im Reiter zeigt Beiträge im Rückstand.
  • Unterreiter „Regeln" (Tab Buchungen): Auto-Zuordnungsregeln, dort wo sie auch entstehen (Blitz-Button beim Zuordnen).
  • Kostenstellen- und Sphären-Pflege jetzt direkt in den gleichnamigen Berichten statt im Zahnrad – inklusive des Kostenstellen-Modus.
  • Das Zahnrad selbst fasst jetzt nur noch sieben statt 16 Abschnitte (Verein, Belege, Bankdaten, Beiträge & SEPA, Berechtigungen, Jahresabschluss, Daten). Der Wegweiser-Hinweis „Kontoumsätze importieren" darin entfällt ersatzlos – der Import steht seit 0.19 im Tab „Buchungen".
  • Keine Datenbank-Migration nötig; bestehende Installationen mit Mandaten/Beiträgen sehen den neuen Reiter sofort.
  • Import-Verlauf konsolidiert. Die Liste „Bisherige CSV-Importe" unter Einstellungen → Daten zeigte dieselben Angaben (Dateiname, neu, Dubletten) wie das Änderungsprotokoll ein zweites Mal – beide wurden bei jedem Import parallel beschrieben. Die Liste entfällt; im Protokoll (Berichte → Protokoll) blendet der neue Schnellfilter „nur Importe" alles andere aus. Die dafür genutzte Tabelle vbh_imports wird per Migration entfernt.
  • Buchhalter darf Mitglieder, SEPA-Mandate und den Einzug jetzt vollständig verwalten (vorher Verwalter-only) – die naheliegende Rollenzuweisung für eine Kassiererin ohne Rechtevergabe-Befugnis war sonst vom ganzen Reiter „Beiträge" ausgesperrt.
  • Mitgliederliste und Einzug zeigen auf dem Handy Karten statt einer siebenspaltigen Tabelle, die dort zeilenweise Buchstabe für Buchstabe umbrach.
  • Aktionsspalte der Mitgliederliste verdichtet. Seltene Aktionen (Bankverbindung wechseln, Mandat widerrufen, Löschen) stecken jetzt in einem Menü, „Bearbeiten" bleibt sichtbar – auch am Desktop ragte die Spalte vorher über den sichtbaren Bereich hinaus.

Behoben

  • E-Mail-Adressen mit Umlaut im lokalen Teil („m.müller@gmx.de") galten beim Anlegen eines Mandats und beim CSV-Import als ungültig – betraf reale, bei gmx.de/web.de/t-online.de zustellbare Adressen.
  • Bestätigungsdialoge für „Mitglieder übernehmen" und „Rückstand nachholen" zeigten einen roten „Löschen"-Button statt einer zum Anlegen passenden Beschriftung.
  • Der Reiter „Beiträge" blitzte beim Laden der App kurz auf, bevor er endgültig erschien.

Details und die zugrundeliegenden Personas/Testfälle siehe BEITRAEGE-REVIEW.md.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signaturex48JlqGMXQOEaHamNLU5I92XD8JO7RRlVz+NQWzdhhCHRf7bzPbVOwBBtNofZkAjw6FX/GYplKBB5R3C0SoybBvYu/czmifo5N7buFkuxe7GwMcRLe3nbRixjNY/qxWW5aEuR8PLaD/QHkRSWqc6aiUG+rg3kLKhpcug8CSn2IxCXVwALeB73oUz8P7UxsKtnmHyGOyi4SxCsog23Rt+LNgALU47xdN5sM6/rkt6HkO38pI/+CHzJWE7P+OrG+omt9q4LPrA+eTKIRgU8UUdVRv99ll+63WmgdBEUvn3DANgw6gjGHOdN3TPRqCbIpAXh1LD91NFg6J+e9DnbvkcZAWbPddUsYMyyCaXGtBSd6aCU5i4TwwHOpIisQZzWyFivOMcW1upaa+iHkVxU+ny82ED+ylXnp5QOn9k/502fdfKMSeEwV1Qs4i/K2nSjkXwxQUYP6nOt/0A4/+WLWOyCLneyqG+osmnrr+4jDuVNHw8i6rZHMkZuZlc9WWSllRHQvMG/2fktCtMGYTc71qYlm/sEw9V9yRDoJhuXgNEJJH9HgG59he/3ieUaRGWqzjNCfMa7slFbdIjjJlqvKeLpILU2vWPRdBTObn4drbtg8qaAegN+yntfAz9aAfDgceWjfhvkzacXkhQef+bHrTa1KDhf/U7Plj/8i2NmpnY3ZI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.3
Release Details
UpdatedAug. 7, 2026, 6:52 a.m.
Changelog

Geändert

  • Berichte-Seite: Reiter und Buttons wirkten überladen. Im Auswertung-Tab brachen bis zu 7 Export-Buttons (Kassenbericht, Kurzbericht, Beleg-ZIP, Prüfleitfaden, Saldenliste, E/A-Übersicht, Mehrjahresübersicht) neben den 6 Reitern mehrzeilig um und nahmen viel Platz ein. Kassenbericht und Kurzbericht – laut Handbuch die beiden meistgenutzten Berichte – bleiben direkt anklickbar, die übrigen fünf stecken jetzt in einem Menü „Weitere Exporte".
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureOPqKJZTl/5Eygp/CIw4spwFaccWUoG73jv1LRUd6Tn9lnr1Bdr/S2ki+dv3BrDSW1wXcPrTDWPvDEc08RQK7sCTBp5Uo1siR+hb9KEyq46iHPLHUfEQEy94s+fl2afy/yEpSK666eTpE5IEXfCOrvwhULbgrpbXMX5aEgK6cc9l8xjAMIA2t1+F1OXWKw7ikHuRVO+lh3Ky59SDzHKOkzh1cRhYNRw+4OgZiPTbUy1+08t0ZnIHpiLh/jpzTZvtTSbJxnLyv6T0YLX0KiiwuN581bajt9WgGasza81LGA3vzl5flfv9ULCwJgh5P2KS4yTBEF0/dVtn9k9cCL9s2Gx+RRBBgnZzSjynIOGOBq/jY0u3MhYhBiJ85sqZ9YbmK6Y6FJ+wVSIkAy9syctsz1mkz8E6o/KlrQS+Yx1gV/LPJo2aGLkgLOrW3bvlYZZgH/qFoHt9ZQ1RRqNp77k1lJz0JTZ8eEcXRuhTQrOoBtDyBwpVcPKbsKKi7WEtX8GwIVdxnvjlGTHGoXdn0TYI9ZhzRuk9C9d7eBn63SJv3XYazKRAj8GRZy82rTMPHaDVSNry5m9wN/mHWBAPzG/Lq750BqaMPnR3TT6+Z6U+hZ74mfRMqYbeLER+wXy9w3wS1sgqhrXFJP9k9uyaMzsK/q0VSEJx72CScqih0TFkTI2M=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.2
Release Details
UpdatedAug. 6, 2026, 12:57 p.m.
Changelog

Behoben

  • Kassenbericht und Kurzbericht erschienen auf Englisch, obwohl die Nextcloud-Oberfläche auf Deutsch stand. Nextclouds L10NFactory hält eine Sprache nur dann für „verfügbar", wenn im l10n/-Ordner der App eine Datei dazu liegt – für Deutsch gab es bisher keine, weil es ja die Quellsprache des Codes ist und l10n/de.json daher als überflüssig galt. Ohne diese Datei überspringt findLanguage() die deutsche Spracheinstellung des Nutzers und landet beim harten Fallback Englisch. Betroffen waren nur die serverseitig gerenderten Berichte (IL10N::t() direkt im PHP); die Vue-Oberfläche hat ihr eigenes, clientseitiges Übersetzungssystem und war nicht betroffen. Eine leere l10n/de.json reicht als Fix: sie macht Deutsch für Nextcloud „bekannt", ohne dass echte Übersetzungen nötig wären.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureSbvziLbdB13/4hZgbyRXt9y/XzLhT8WkHOT2/9zeTJden7m9Z9SbW7fdHzSiocnsJm/7A0mCQDslCbz5k7806djc792pRVlDFLlZhMOQGfSvFYhEwwVNaSYfk2TeR0boQoJrOKoFWyYa396LF5k4Ya4YE2uAmqpMBRv7Wm4LTTvp4EDqPIxXObEQbOGaAafkReTEQYE4h4Xzijrh+oo8BBpzhpcLiGKYpgpIGeQDmUeVGWpyh0ySGtf+46ENTC5Az+538hfY/fEQl6QtsHf9CacbSvEh+n6Lx2/gIQwjKN7FQsOM4w/3LQV/qlHqpFpoLEAJeG3/2IfbBnxKeuH0OZIFAslWtz2smxG5k9dYxn/nvFotD9meCvGWxwpeXFztx+zgv+zlcUOTdX0DQjRQQsnFGRejL+Pztl9TkG4I9ufke0DVm1/BYBhZdZ3cqf3QG3sSGDbsav5W4G+4BxVBe0y4ZDH35aVDV0cDh0HYfwfkVzqVwOcaf9NVfvoNFC2KVJXR/VlkEW9SPDRmLbafb+caQ6yqi0lviNq2x6V3xEcGS6ckQrjsiA1scbmFOFE5lE4jwdS9khHH7ZkLN0LyRtZagQMiaHI44rbfaxPCwE17U21RqJ3kR3kNJVOPcRSYycVzHmg3UKq0+Le6iF+X1XffZDgE9T1Z+9oIIvK8T64=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.1
Release Details
UpdatedAug. 5, 2026, 4:17 p.m.
Changelog

Geändert

  • Buchungsjournal: Zeilen brachen durch bis zu 4 Aktions-Icons zweizeilig um. „Regel anlegen" und „Löschen" stecken jetzt in einem Menü-Button; Beleg (falls vorhanden) und „Bearbeiten" bleiben direkt anklickbar. Damit passt jede Zeile wieder auf eine Zeile.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturelEiCh6gxSU93Jga+RtuXGddDMZuIP64Hl/hFEOOQYTCOMvsqCOL3CNkDY6Iv2nGBvOoyIF+N4woWkjDEmr30UKKmQ1bk2UYrszPPInXzqzS6TjiIs1i4s6h9lbu3Nb3Qiaat9j6b9kQGugayntbmEzSJdQ1Z1eNZAXQPqvxrmuy+uxUiIQntmDvQNWC4rBG9Gb+NmeGBiRe43NUR9q5A6UEADee5q1f2Ek8u/xVmjW9Cq/0lrbQkrtnDP8W6ZE7blpl6WBA970ImtF2uhYhaNA6XveNzSr5X1Tj8pgx9V2SA6tDRzL1KCYGFFpFH1HTADlUXCmZ3B3+hMx+TXNCs8nR4QJqKGd6vliMXi0yKYaZJ7hXfwOcF6fbTbqb9cNx04bhTEgz6Sy1cohvaVDI1ZbXZYoz+e+0FpO++1GOdxDoPSxi51v0mAlM1bVNRlZznlwKVO+CzsMLa4JrTnoRuF82ZS84GYn4lNAN0YfTofJNDWuoC99W27c8nkM+hHinkg/enqEB1EOeLHr03Ot6R18wbZZ7deZ8k39eWsAdW1JeV1xsYfuWgFv8uoi60gygHz0T5WixyIu1Qw8JzBw/p+qqlhxgzjw94PGbiiH5Qsew1srd86mKccReKp27yqFPdNix6htxHVtY8WV5e4w6u+qsu4nXfzMXUixLflmgDgLg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.0
Release Details
UpdatedAug. 5, 2026, 7:42 a.m.
Changelog

Behoben

  • Vorgemerkte Umsätze im CSV-Import konnten zu Dubletten führen. Die CSV-CAMT-Kontoauszüge führen anders als CAMT.053 keinen eigenen Statuscode, sondern schreiben den Buchungsstand als Klartext in die Spalte „Info" – „Umsatz vorgemerkt" wurde bislang nicht ausgewertet. Ändert sich ein solcher Umsatz beim endgültigen Buchen (typischerweise das Datum), erkannte ihn ein späterer, sich überschneidender Import nicht mehr als bereits vorhanden. CamtCsvParser überspringt vorgemerkte Zeilen jetzt wie schon Camt053Parser es für „PDNG" tut.

Hinzugefügt

  • Nicht zugeordnete Bankumsätze lassen sich jetzt löschen. Bisher gab es dafür keinen Weg – ein Umsatz, den die Dublettenerkennung bei einem sich überschneidenden Kontoauszugs-Import nicht als bereits vorhanden erkannt hat, ließ sich weder zuordnen (dann läge er doppelt im Journal) noch wieder loswerden. Der Papierkorb-Knopf in „Zuzuordnen" löscht einen einzelnen, noch nicht verbuchten Umsatz; bereits zugeordnete bleiben wie gehabt nur über den zugehörigen Buchungssatz löschbar.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureBnkYSlWxHsYfloYtjM8qy7z4ZHro+XGTush4dekzY9sqA99C2YPzzt9ZdF5u9607GP7kFZVea924jYOKfadCsC34UnDyxbRsbUoRuj8zAgP7dbvSVj6SNqfa3B1ZdH8aHGQmPzF4qmdObFx+9rQRJcOGIkGWbAHBkg044dyzwLWnNwpB4O2h91bIEm+0ArsA6VLtP6qW9os9e75pcNbNKl9O/kybpbM+5tdtSrz28PvR7R9Hngf3SyBUi3uwKpwMafUoj0IfMnTBxCyBH7Flq7m7OFJMOGz/TakXRoq/YxFydmV9dVeSP2VhZ/FxyMipMG1C9pmQ8yQq+JHEN2ZO6q1aWP/jcXb58JkSHrfFVx/R7y+uhbaOABUGBsdUy9+LepV5fGB1/BdVUbYA04G0ulC+5n0ixOYhzZsW0XWtKMykeuI5h75yil1rINce0/FA035SlhPIjPdrMKoTPS9GmwUvebCIYgbt39PzVUjT0GXJ5k9DA31GC81X2o+l/JLyLX1OW+e225KlRQfXdgjB0QUAPiaHelgiKB+T1FWUvb//BL+Gyc/mfGnA5VUNoyp7rxxOO3cQ05LbxiiNeyGodnAVNih6BqQUDk//N6q58dX9M9AUmo2pGstsn/WHwW/qyt00y47nrBp4dp+Z4opbKNDhxjIDm7xTQWFmfluVjfY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.18.0
Release Details
UpdatedAug. 2, 2026, 4:11 p.m.
Changelog

Hinzugefügt

  • Weitere Mehrsprachigkeit im Backend. Kassenbericht und Kurzbericht (beide als druckfertige HTML-Seite) sowie das Änderungsprotokoll (Berichte → Protokoll) erscheinen jetzt in der Sprache des Nextcloud-Profils statt fest auf Deutsch.
  • Alle bisher noch deutschen Fehler- und Bestätigungsmeldungen der Controller sind übersetzt, ebenso die Prüfmeldungen beim Anlegen und Ändern von Buchungen (Soll-Haben-Kontrolle) und die Fehlermeldungen der CAMT-/MT940-/CSV-Kontoauszugs-Parser.

Technisch

  • Statische Prüfmethoden (JournalService::validateLines(), JournalService::reassignPlan(), BookingService::validateParts()), die auch direkt aus PHPUnit-Tests ohne laufende Nextcloud-Instanz aufgerufen werden, liefern jetzt stabile Fehlercodes statt fertigem Text; die Übersetzung passiert in einer begleitenden Instanzmethode mit Zugriff auf IL10N. Die Parser (CamtCsvParser, Camt053Parser, Mt940Parser, XbucParser) erhalten IL10N als optionalen, in Tests weglassbaren Konstruktorparameter mit deutschem Fallback-Text.

Bekannte Lücken

  • Der CSV-Export der Auswertungen ist noch vollständig Deutsch.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureyT7SVmIOpa+ZxIYuUUiftY1NmsPnETQbPKz5hXSyXYJ2fSqVm/OBPOJyoI2EpaGulf2AqkZr3w8jXrWuh4U3J1m4IuaAK8zGhD47WCAzxFGZxc8iy6ITh0OckjLneDWxMwoQHJO/IggRVjBEaZXKdD2wrFPMjkXDUTBvlMr/YKJFE6bd1qJJ5UKXQedO51aNuRQR/O9UrXJ8IR6F5SmyWzrEvr8F/hNdiQioDnTA2vk1iB2bTciuc9qnQd13m1i43ToUuZfYSYflxBhAq/kMOCrUsICqXo3wy88DNIVuwaiEIPrXuMUBDXsmjcnh0dtku/iVTiOpPtkDjucmJ5bhLcuylyC1sYFt6d5emJlqMUOWHmhzC4eoQc9nv2uSq/VgCVUJd0V4dihQivViVEot+acr/xuHinPVt7YikF5ejoWt9//f8huYVa7O1dR2mKoY+nyOscA1lF1kFo7OYZ30KnerD5qjLJo508MDMWtAb7Pfzw3P423Jssl1h0zAPk7e2UWu+5ImshK7nr5+07Owyt/h41ASF4FeW8ePiUbn1hHgf86avEjbtMrQXajpZJp1AddBYuGCa19+V6jgLory4k8mLyTdCOz3O0nFTjEEU3hhq+BPbaoaztKx3W0FOtBsFEO/FyhaAxffkGjbU88lQoDSP9rX3lgH8oKX++nUHSY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.17.0
Release Details
UpdatedAug. 2, 2026, 3:16 p.m.
Changelog

Der erste sichtbare Schritt zur Mehrsprachigkeit: wer Nextcloud auf Englisch eingestellt hat, sieht jetzt eine englische Oberfläche statt einer deutschen mit englischen Brocken drumherum.

Hinzugefügt

  • Englische Übersetzung. Alle Vue-Komponenten der Oberfläche – jeder Tab, jeder Dialog, jede Fehler- und Bestätigungsmeldung – sowie die häufigsten Fehlermeldungen des Backends sind jetzt ins Englische übersetzt (l10n/en.json). Einen eigenen Sprachschalter braucht die App dafür nicht: wer sein Nextcloud-Profil auf Englisch stellt, bekommt automatisch die englische Fassung. Die Quelltexte im Code bleiben bewusst Deutsch – der Herkunftssprache der App –, Deutsch ist also unverändert die Fallback-Sprache.
  • Video in der App-Store-Beschreibung verlinkt.

Technisch

  • Eigener Lademechanismus für Übersetzungen im Frontend (src/lib/l10n.js): die Bibliothek @nextcloud/l10n geht davon aus, dass Englisch die Quellsprache ist, und lädt dafür gar kein Übersetzungsbundle – bei einer deutschen Quellsprache wäre das genau die falsche Sprache.
  • IL10N ist jetzt per Konstruktor in die Controller und Services injiziert, die nutzerseitige Fehlermeldungen werfen.

Bekannte Lücken

  • Kassenbericht, Kurzbericht, Prüfleitfaden und die CSV-Exporte sind noch vollständig Deutsch.
  • Ein paar Backend-Prüfungen (u. a. die Soll-Haben-Kontrolle beim Buchen, die CAMT-/MT940-Parser) bleiben vorerst Deutsch – sie sind bewusst ohne Nextcloud-Abhängigkeit gehalten, damit sie sich ohne laufende Instanz testen lassen.
  • Das Änderungsprotokoll (Berichte → Protokoll) zeigt seine Einträge weiterhin auf Deutsch.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureroXOT9h02u08zVmBOEm4AgtrqTyByeTNHUynP/GLWlj1W/PSVXK7rwHxjWbw/fnoVsuvroo5FdxY6sTMKgwWfcCYW9WC49dJylKK1FX8oKws1LefX9HqQbZvFeJ9L3grLLht92mwMthzuRfrCaQDygDBmpv1o3PhbrqJpox0zfx1jWd6jJhDpBeBjIcfBf+CyKan8BSSdwFjRUzCoJBIz+cHAB27MY5PfvrDdFmUtjHLvU/MifISIkMiVhxKtY1CnQtJd58t0zJcFvN0qjB85+DAAV9nR6YCcZjNw8UbCdetu5CThcQBPHJLnRXIIf+WP88PgRYkxgRw9d8QKMf2zklGsVTPJdtvacI9V2F5JOIimelYg3V4WacqcpO2F2xOfs6jXVS2E8MFAloWofhNnfVuTINQiHz8Ckw49QlyEr8Up6yEZ28tgJh0AKpQWsLUZ+SUd4PA2obilUrsFjFkEhAUbAPtu0kdKD6l3NYa9oXB4a2Pun6gNpD1qvhmRudPvyIGoYCoAsOstLAehk+eAiF6lfFLe/o0V+RiOn4L2lPt5c96acCwesJD9yZQbZIfbYFM5ddheBSYaJRzyLYJWsK2IETagwH4XVvH/vClPytgMNHiOG/s6LALfsQSUTzz8ktLZqU+U1BHlmqXaR9M2lvlEu2G9O+5ueYM3D3kX5E=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.16.0
Release Details
UpdatedAug. 1, 2026, 9:03 a.m.
Changelog

Diese Version bringt kaum sichtbare Neuerungen: sie räumt den Programmcode auf und sichert ihn gegen Fehler ab, die bisher niemand bemerkt hätte. Ein solcher Fehler kam dabei ans Licht – und er betraf ausgerechnet die Kassenprüfung.

Behoben

  • Der Beleg-Export als ZIP brach ab, sobald ein Beleg im Zeitraum lag. Die Funktion rief eine Methode auf, die es in PHP gar nicht gibt (ZipArchive::addStream); der Download endete mit einem Serverfehler statt mit einem Archiv. Betroffen war genau die Funktion, die eine Kassenprüfung braucht, um alle Belege eines Jahres auf einmal zu bekommen. Die Belege werden jetzt blockweise ins Archiv geschrieben – der Speicherbedarf bleibt wie vorgesehen niedrig, auch bei einem Jahr voller PDFs.
  • Der Kassenbericht ignorierte die dunkle Darstellung. Wer ihn bei dunklem Systemdesign öffnete, bekam schwarze Schrift auf weißem Grund in einem sonst dunklen Fenster – der Kurzbericht konnte es längst. Beide Berichte teilen sich jetzt dieselbe Gestaltung. Am Ausdruck ändert sich nichts.
  • Beispieldaten konnten halb angelegt liegenbleiben. Fehlte ein Konto des Standard-Kontenrahmens, brach das Anlegen mitten in den Buchungen ab. Jetzt meldet die App vorher, welches Konto fehlt.

Geändert

  • Die Rechenregeln aller Auswertungen liegen jetzt an einer Stelle. Die Frage, welches Konto mit welchem Vorzeichen ins Ergebnis eingeht, war an acht Stellen einzeln ausgeschrieben – in den Exporten, in der Saldenliste und in den Berichten. Eine Änderung daran musste bisher überall nachgezogen werden. An den Zahlen ändert sich nichts; sie sind jetzt nur an einer Stelle festgelegt und erstmals automatisiert geprüft.
  • Der Sortier-Vergleich der Tabellen war dreifach vorhanden und ist es nun einmal. Sortierung und Sicherheitsabfragen sind damit in allen Ansichten garantiert gleich.

Technisch

  • Statische Analyse (PHPStan, Stufe 5) läuft jetzt bei jeder Änderung mit und fand die drei oben genannten Fehler.
  • Der 1149 Zeilen lange ExportController ist in Dienste aufgeteilt: CSV, Beleg-Archiv und die druckfertigen Berichte je für sich, der Controller behält nur die Auslieferung (158 Zeilen).
  • Frontend-Unit-Tests (Vitest) für die Rechen- und Anzeigehelfer; der Testbestand wächst von 118 auf 210 Tests.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureVJDiJR0wAF6OF052v41IlOKnSdqYFS+pI1+dFRngpf5U228GkukeyPqI033CH4Q3hummVmpRiAFGTi5n9g403rp88tFm8lw69XuqW2KKFwDkzc5EE0wVs3AVJgHeREn/NotbVAVvItr6+4wdPE4vKY4MnSVrwwPFWyQPhYMcy7ps0GEKQOKIIg8K5FiRvpgFF4M8/24xcDJSX9P6ySetzjjCUewbWBCq90qjAkf1dedOmwpk/WJ6EzDMuOpXjK866ruUFpU6UMHarVV5JY0IO97AJym3rJVUbtF7pkCI4gQVjVAFmcux+rnXm7vLN5EHGRF9cQCgy5REcQAKavKY0k2KS48L/zRjsvzEv0dY/IWAraVowHLkJUDonnUelUPZJ3J6S6CekKswO2oQdXnCc2jGNSY7QS8s2ck9NsnCSeX66hEMC4fI8cZUTeFM5sr4IP7ABKXq4f/DOZ2kl1klwKZjVeCSkD5SQvB4Lt5vq+kj2CzULsoM5EyrxLuvdYt/cOMluMhFdKg8H0Mubcc/TnIMEMGj2ODw7z7z1g5KQdGDPYEQ2JDgUKQ2gxW9exq98q0FmXq95K1ppLvC0c8sDezQF5leB2eVH/c0yDzc6xsDpWbkc9MQiNLofdqyXWHBvvrqKnl7x7qBn8U9BdefGUuFba3HekdHxLZFAm6OPsg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.15.0
Release Details
UpdatedJuly 31, 2026, 6:56 p.m.
Changelog

Behoben

  • Gelöschte Buchung gab ihren Bankumsatz nicht wieder frei. Wurde ein Buchungssatz gelöscht, der durch das Zuordnen eines Bankumsatzes entstanden war, blieb der Umsatz auf „zugeordnet" stehen – mit einem Verweis auf einen Buchungssatz, den es nicht mehr gab. Er tauchte danach nirgends mehr auf: nicht unter Zuzuordnen (dort stehen nur offene Umsätze) und nicht in den Salden (die kennen nur Buchungen). Auch die Bank-Abstimmung führte ihn weder als gebucht noch als offen, sodass der Kontostand still vom Bankauszug abwich. Der Umsatz steht jetzt nach dem Löschen wieder unter Zuzuordnen und lässt sich neu zuordnen – derselbe Stand wie beim Aufheben einer Zuordnung.
  • Belege eines Jahres konnten beim xbuc-Import verloren gehen. Die Dublettenprüfung des Zusammenführ-Imports beschrieb eine Splittbuchung nur über eine ihrer Zeilen. Eine eingehende Buchung, die zufällig auf diesen Teilbetrag passte, galt dadurch als bereits vorhanden und wurde stillschweigend übersprungen. Der Vergleich betrachtet jetzt die ganze Buchung, und beide Seiten des Vergleichs bilden ihren Schlüssel an derselben Stelle.
  • Beleg löschen konnte einen Datensatz ohne Datei hinterlassen. Die Datei wurde vor dem Datensatz entfernt; schlug das Löschen des Datensatzes fehl, blieb ein Beleg zurück, der sich nicht mehr öffnen ließ. Jetzt gilt auch hier die Reihenfolge, die beim Löschen einer ganzen Buchung längst galt: erst der Datensatz, dann – nach erfolgreichem Abschluss – die Datei.

Geändert

  • Der Jahresabschluss schützt jetzt auch die Konten-Stammdaten. Bisher war ein festgeschriebenes Geschäftsjahr nur gegen Änderungen an den Buchungen gesichert. Über das Konto ließ sich sein Bericht trotzdem nachträglich verschieben: Ein Wechsel der Kontoart dreht das Vorzeichen, ein Wechsel des Geldkonto-Kennzeichens verschiebt das Konto zwischen Vermögensübersicht und Einnahmen-/Ausgaben-Rechnung – das archivierte Jahresergebnis änderte sich, ohne dass eine einzige Buchung angefasst wurde. Kontoart, Geldkonto- Kennzeichen, Sphäre, Rücklagen-Art und Kostenstelle lassen sich deshalb nicht mehr ändern, solange das Konto in einem abgeschlossenen Jahr bebucht ist; wer die Änderung braucht, eröffnet das Jahr wieder und schließt es danach erneut ab. Nummer, Name, Kategorie, Aktiv-Schalter und Überkonto bleiben frei änderbar – sie ändern nur Beschriftungen, keine Beträge.
  • Konten stehen jetzt im Änderungsprotokoll. Anlegen, Ändern und Löschen eines Kontos wurden bisher nicht protokolliert – ausgerechnet die Stammdaten, aus denen jede Auswertung gerechnet wird, waren für die Kassenprüfung unsichtbar. Bei einer Änderung vermerkt das Protokoll zusätzlich, ob ein auswertungsrelevantes Feld betroffen war.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureP7cVaIPv213NPHt6juPqCRD4S2odKrN+G8KhhxyDeKw7BKUxrWvSaOiQCEwBmvQzUCYWUDf0OacHyUlh6nmJEWFmuux3X6wIY3AuGQx/gg37EMyMCod8JA82iPNAMLXML1bEIeU9RGEIbmtdc6CmNEV+TlEBCp02kskc/V1FytAkCREPOCfCr7DodbD6FZtrjN+VloewQblps1KCCye9tm1v7mMDRDexPv2jiATXsKqS/D/ostXEh/SGTtX1saXxlFpMJss8WYgRNCMbzGMW6i+k2ND/iiEAzBFBKwFY0w4YunU4zo2x6Y3z7SCPeSLP0AagS4LI2vv5vKeq2jHyqtnXTS6Zi6tba2P6ObB0stmW6lzc6p58UW3Dvw9Irm58hAa7QqvqUheI2t0haws3Cah2/e95eOqk/+tFcGS1k6C1sPVQVlcEFjMyLN2a88YKW32okbQhzCEixkockVQQbWfY40Shqg64ZSfGGR6VAgHck6rioYnQJE2H5+3SexdzsYkJVY2jJ00tLIdCDpq2Z3M5AZSjxHpGcRyJ+w+6EIx10SbOdsqxQw0/FEnAC8Bk4d1vcodBZBwXFav/Ew6diriLx49vhFQZvlvmshNbREyFYiWskPUKE46NTOVHZVGZqLlkQD4vFbu61PWYR8swhuYhqMwPbsxkzbxIf2JQuQU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.13.0
Release Details
UpdatedJuly 31, 2026, 8:50 a.m.
Changelog

Hinzugefügt

  • Frei definierbare Kostenstellen. Bisher leitete die App die Kostenstelle aus dem Kontenrahmen ab – entweder aus der zweiten Zahlengruppe der Kontonummer oder „ein Konto = eine Kostenstelle". Beides setzt einen bestimmten Kontenaufbau voraus. Jetzt lassen sich Kostenstellen unter Einstellungen → Kostenstellen frei anlegen und Konten ihnen ausdrücklich zuordnen; beliebige Konten können so zu einem Projekt zusammengefasst werden. Der neue Modus heißt „Frei definierte Kostenstellen" (Einstellungen → Kostenstellen-Modus, nur Verwalter). Die beiden bisherigen Modi bleiben unverändert Standard – bestehende Auswertungen ändern sich nicht. Die Zuordnung geht einzeln im Konto-Dialog oder für viele Konten auf einmal. Angelegte Kostenstellen erscheinen im Bericht auch ohne zugeordnetes Konto, damit eine fehlende Zuordnung sichtbar ist.
  • Umbuchen direkt im Kontoauszug. Wer beim Durchblättern eines Kontos (Tab Konten) eine falsch zugeordnete Buchung findet, bucht sie an Ort und Stelle auf ein anderes Konto um – der Umweg über das Journal entfällt. Umbuchen lässt sich jede Seite der Buchung, also auch das Gegenkonto. Geändert wird ausschließlich die Kontozuordnung; Betrag, Datum, Beschreibung und die Gegenseite bleiben, sodass Soll und Haben nicht auseinanderlaufen können. Abgeschlossene Geschäftsjahre bleiben gesperrt, jede Umbuchung steht im Änderungsprotokoll, und eine zwischenzeitliche Änderung durch jemand anderen wird erkannt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturerYLg9/W+aZy3UR2gm/vOTWoLkk4IZrBuLDSsMcqIA1ezxdDhM4DCie+hHnru5bowZ4ZqOE8XmhrBYJCF9F8Wg3zyklma7eMmTKWMHy0mlys+/SYrmnPOfrzUyA/3PvFLNztuRJgyVeL/bI/0fp4QQ5YUTHG6oQHcY9NZXeB1Yy9AJAOP/oBHHdA9RDSONWvDJKgpLAgKBHcpj8J9SPCeVOviwHla4B2fbLKjpJu185Ee7SsvjXQJYatX0SV1/Hy65I0o5xfst63HfBj8vMYkiu6vxz3bU8kp5jUJKWWmDiB9qQHByk5srK1Wu/R/gZKgfxp+EtU1SWYaZFIU5ZlynNgtZpx63083sBz/UgryqKitjmOvD1Qw1UAi4sP5BMm8IKjZCCHY1mBImO/sIQqa7MjpcLulmnOmAXorbAgfG9ZaXFrk0AafHeQRzemtQ5nvlYpl8Z58F11ZuVKudYhsciBek7SHIhHTbs99aOsb934bzlaN+lZelZfm5J0OyCJaBv7zCKPQqMuBUNioV/w2ntAY/CyY2TK2gfJb2wMjJmNNR5s7hRcWVIPpklXxE/o44NSsckDDnzA4FemD7tswK8tTftO/v+Qk04kzjHi984idYXoHWSwFAYYiZxmL2oB6OOs+MXh9dGQUbpctC2pOAeSdO0J0dO/7D+MkKtaBrYA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.12.0
Release Details
UpdatedJuly 30, 2026, 4:01 p.m.
Changelog

Hinzugefügt

  • Kontoauszüge in zwei weiteren Formaten: neben der bisherigen CSV liest die App jetzt auch CAMT.053 (XML) und MT940. Welches Format vorliegt, erkennt sie am Inhalt der Datei – die Endung spielt keine Rolle. CAMT.053 ist die bessere Wahl, wo die Bank es anbietet: Vorzeichen, Datum und Zahlungsbeteiligte stehen dort eindeutig drin, statt aus Spaltenüberschriften erraten zu werden.
  • Wachordner: Auf Wunsch liest die App Kontoauszüge selbstständig aus einem Nextcloud-Ordner ein (Einstellungen → Kontoauszüge automatisch einlesen). Den heruntergeladenen Auszug dort ablegen genügt; stündlich sieht ein Hintergrundjob nach. Verarbeitete Dateien wandern nach verarbeitet/, nicht lesbare mit Begründung nach fehler/ – gelöscht wird nichts. Setzt System-Cron voraus. Das ersetzt das Hochladen von Hand, nicht das Herunterladen bei der Bank.
  • Vorgemerkte Umsätze aus CAMT.053 werden übersprungen. Sie ändern sich beim endgültigen Buchen häufig noch und kämen sonst ein zweites Mal herein.
  • Mehrere Bankkonten werden unterschieden. Am Geldkonto lässt sich die IBAN hinterlegen (Tab Konten → Konto bearbeiten, nur bei Geldkonten); beim Zuordnen einer Bankbuchung wählt die App daraufhin das Geldkonto, auf dem der Umsatz tatsächlich gebucht wurde. Bisher landete alles auf dem ersten Bankkonto des Kontenrahmens. Ohne hinterlegte IBAN – oder wenn der Auszug keine mitbringt – bleibt es beim bisherigen Verhalten. Wer mehrere Konten führt, sollte CAMT.053 oder MT940 exportieren: dort steht die IBAN verlässlich, in der CSV mancher Bank nur eine Kontonummer.

Behoben

  • Derselbe Umsatz landet nicht mehr doppelt, wenn das Exportformat wechselt. Die Dublettenerkennung hing am eigenen Konto, und das schreiben die Formate verschieden: die CSV mancher Bank führt dort nur eine Kontonummer, CAMT.053 immer die volle IBAN. Zusätzlich zum bisherigen Vergleich prüft die App Umsätze jetzt über Datum, Betrag und Text gegen die bereits vorhandenen Bankbuchungen.

Sonstiges

  • Die Umsatzquellen liegen hinter einer gemeinsamen Schnittstelle (lib/Service/Statement/); Dublettenerkennung, Regeln und Import-Protokoll sind für alle Formate dieselben. Der MT940-Parser ist zugleich die Vorarbeit für einen späteren FinTS-Abruf, der genau dieses Format liefert.
  • Das Import-Protokoll hält fest, aus welchem Format ein Import stammt; Geldkonten können ihre IBAN tragen (Migration 122).
  • Unit-Tests für beide neuen Parser sowie ein Kreuztest, der denselben Kontoauszug in allen drei Formaten vergleicht (61 Tests).
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureYrd0NVVBI48qEcLJqlW2g3q/DsCa4M/I4Dap6Y7XZoLqHbFQtEHZiGe5WGYmrRZxZaiS38aXU62p6tx2uqB+V5cYI7xSomdVQtN/PlHS0hXRjO5OunZIpXdSaplQn0BiBhuN9iP+Vdrwc395yav9MegQE1opuH5kj2xPgKQyUbUehBedJ4rV+ePyXm2KFXsfv3DFeYjp9R16i41D+fD912hJskD3BNwIgqh0NRalj4KkwrIES46Ym7TZoZ14Jx0NJdh99l4/EXgdRicoSWEUT3aRxhbN+4qfAwa8MsDhL4K+jv4OhqDFxlD5yQKRqr6YsU9wxJ1HmMH8rutukusf18IQsgQjjl4zuwtwNFjrx18LhnUuozOQgRtVVZrQNXGneZ8ZLa7h6iZLUIkoiGtrrSyl0rXJFcg4LRmCz62Q9BaXCO9N8LhgxLa9TPKKJtoSroEbbFAHNewd5ir03uudK/UA6hr6n3GXNAtlTdyMAle9r7JY2DuvIJe+ftEHNqMC9prT2M1E2qb/nSgYk+RziNaqt4Yd5POjG65TCNEQOKIQ/aUpixnKXUFwzS+fJpFmGA1b+eULBKo0r5Q17xAluMjlw3lBsGcwozKXHc1KeCKIiZfjx9x+y1XMNuzeDaWG1g8kd2sjVTwY2vW+lS/d/R/K1GE2My5qoMILXPZ8+ko=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.11.2
Release Details
UpdatedJuly 29, 2026, 3:43 p.m.
Changelog

Behoben

  • Beträge werden nicht mehr abgeschnitten. In Tabellen hatte die Betragsspalte eine feste Breite von 100 px; längere Werte wie „28.798,68 €" wurden mit „…" gekürzt und ließen sich falsch lesen. Die Spalte wächst jetzt mit.
  • Mobil: „Buchungen" in der unteren Leiste war gekürzt („Buchun…"). Die Einträge teilen sich die Breite jetzt nach Inhalt statt zu gleichen Teilen.
  • Mobil: zu kleine Tippziele. Schaltflächen, Auswahlfelder und Eingabefelder waren teils nur 24–36 px hoch. Sie sind jetzt mindestens 44 px – auch auf Tablets, die per Finger bedient werden, aber das Desktop-Layout bekommen.
  • Mobil: lange Kontonamen im Kontenbaum wurden gekürzt und waren damit nicht mehr unterscheidbar; sie brechen jetzt um.
  • Mobil: das Ende langer Listen lag unter dem schwebenden Buchungs-Knopf und war nicht lesbar.

Sonstiges

  • Ausführliche Beschreibung und Screenshots für den Nextcloud App Store.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureDikykvZ2qeSFgT2rqRn1/K6d7txbP7OEC32gKuFsiCeigdGhCtrIHnVWHhA4ddYVzD+A5w+jgbYrYMzkgZcFS/cJE69wPzosrfHtsfrR1AXnFJprlr1fEU7gM2imvESCrjGS0s8KEeOczNzOTrhw6vtaWm4zbpYth5MLdMZmYFFTxtCQ67VIKIDNZhSVBS+dlbgKma5HobySt4IwUZeR+6qhMtZQZbmMCJ1LSuwPs6QCVTfAxXRlEBkuIdS0VYiBn3jDaoCfBV8tGZjpAG63npnwXIfJJd4HeCyDpMzDx0h/z6JpXKEcJuujT2vnrbjgCgqPOQX6qqCFru7djJ8o1BLR1pO8qNiTn194HAgOH/2cKzaJ/RbYAUXds7qW8aQgxvviJ9adZGRf3zC3jyYB49EGdYB/rKG8Lnn8mhDFkF7iXej4kwz/myXK8MTldP/xctXSC/zinorrnHaRo28XNtFDq5GazeVXpK7/9nvyt3SE49zoABnAEKDw6SYZrVCLX4+J8bbM6yk/ohFE3g1KL2/wXL1GnE1spwuz/OamTPJUqgVNJyV3MyzxG5aHpGxdj3lmctGt8eO34tXvHzofVmHvrhnEbEIcyMlphbOWD2mCiGkmltuGjJqvMJpLbSyZIe/oAXkJ7IiY3KGIRpiKlGUueiQlo0UbI1L+ubF/Uak=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.11.1
Release Details
UpdatedJuly 29, 2026, 3:03 p.m.
Changelog

Erste im Nextcloud App Store veröffentlichte Fassung. Am Programm selbst ändert sich gegenüber 0.11.0 nichts.

Sonstiges

  • Die App wird jetzt mit dem von Nextcloud ausgestellten Zertifikat signiert (appinfo/signature.json) und im App Store veröffentlicht. Das Paket zu 0.11.0 war noch unsigniert und ist deshalb nur über ein direktes Deployment aus dem GitHub-Release installierbar.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureRqufs3+r1UDzVeNY47cnz/w6ATGHouz8ape7ZHM3P5KFdQNcJ6RYVIO+epIwjLtAeVJdMgfEDJwafg1dx757MvkBsfr4fO9yBiP0yNmKeVwdm3G/7vM+WTHYg9CpRNYN2AivshD6OdD5axADiNnBU0jk+qw5szzQ77+pYkxHFMrTC1pbM8VWuTD/F+PrU0V7617dl2nDG7ZWwzjFgP65k6y3lr7hFi46LDiIvwWNv8leoggPU3YoB4YywRdXqhIHImtdBs/fauWamzU49TY22hPqSTPFsAVqyW/RI7Jw599oTCozx0W92XQilBZOGdUQb1Lr8nS+DJs6fGz6eJXbJQd2K81qqSyyIN06UcBudD6zCu5DdLuPLg0kWs7vwq5wI/4AXpBb5xadncHFtJOaNNoCJ2v7+C7d1ZaJ3kfv6ZNnVcuEYYQsNfuitHmmNzATyWSH2+hzXj/fZfpZA0vyHDLa4XkCPMwOi55IaPuvCdEaKE+RTf6hEdnul7MhU8C8BUFHKp3HlkdzJLPmffyf3vTDFoRnvtA2isMEXrkE2u9Usk9X1DlOXxn4PjmCYGNEm54YfVpTGRiY8i972c9XIjwmlpUIaqYARzgSad2kT23TXEMmzsPp7/kM2DjAqmEJbe+Lgl87Z7ZseXBHSnJXd1JjtxYJCm4og7lA2zSagvY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0

Nextcloud 30

Vereinsbuchhaltung 0.22.4
Release Details
UpdatedAug. 15, 2026, 12:35 p.m.
Changelog

Geändert

  • App-Store-Beschreibung aktualisiert: Das seit 0.20.0 bestehende Beiträge-&-SEPA-Modul (Mitgliederverwaltung, Lastschriftmandate, Sammeleinzug, eigener Reiter) fehlte dort drei Releases lang komplett. Ergänzt, außerdem CAMT.053/MT940 und der Wachordner beim Kontoauszug-Import – bisher war dort nur CSV-CAMT genannt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signature4LRi0axgsMDOcm6JxlvfjNIxZrlCLVndYp1Nj1ffQ3gJMixwlFkR0kI8Eri3poO2kHRfnc5hFZZh+0qQ3nFBBDPLoSXIlwXOdh0C3/CsZxPvyYSFjbW5ZP6+e0LhExYd7UMl1lNeXNqAgfqw2GBiwRXeBFf1lwkcoDWJY6GF8U2KDSwttbjQny3cK60u4nHfHM0ye+NochsmaoUdUyJCuvV1fsERFp2bDYt8KmwJWB6gIX7koTp+4JXIEFzxuREAij0b5A8XOZlMQvlGYKcZatwyR8oQXFPOLUBRt3yZgAfWx9+nx9GXaMQYQ2l1p3nv9C/TmgiMdpALvHfhFCBnqIVvcEBMizpNmRyPEelbb1Q3N4/2kRmbqV0e5dApltmb6zdcdWGl26PIGyTjgmN0jFiftM9OGIcinCBBH6vEpo/y6GBsthf1cLbBGYYe+qZMamxruF58MQ01KCkCzUtGSENUVfJKtS04v7+0gB0SPMkAh/KJb4bNf9qajfqD+1apWm5ceWBtTY293YlqGfEDDXPWeRfp1YcFfxkul4H/tLwVeonyFQJBZ7FTxeDUAeY+JlrruIs79av7ERKGFbS/4LHdQc1G992yy6BvTFVK5f/7M0tWAgYteUHD0IVdKlPRPiGrg+oycs/XN6v+RE9uLdHSJrUIMJZXf79DNpI47fo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.22.3
Release Details
UpdatedAug. 15, 2026, 12:31 p.m.
Changelog

Behoben

  • Konto-/Kategorie-Auswahl auf dem Handy war unbedienbar: Das Bottom-Sheet zur Kontoauswahl (AccountPickerSheet.vue) rendete zwar in den DOM, blieb aber unsichtbar und unklickbar hinter dem Buchungsdialog – Nextclouds eigenes Core-CSS (#content { position: fixed }) erzeugt einen Stacking-Context, in dem das Sheet trotz hohem z-index gefangen war, während NcModal (der Buchungsdialog) dem entkommt, weil @nextcloud/vue seine Modals an document.body teleportiert. Das Sheet tut das jetzt auch (<teleport to="body">). Gefunden im Gesamt-App-Review, siehe APP-REVIEW.md.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureknAf0tPINZuLUg1pagqwrKg05TXChSaJ4x8RZTzPAJb0p3KwCoujY9sFQcjXmJGzu+Zb/3V0yNdJrzeZYVdl6272s6V0D28Yk2t7wFeyY1EKr/HsX0KjIQ4g8iCbZ13JfZOftXuoIIbGNYCR/N1r9R3559J49r0npp2F7ieEZ79eCdehumskUMxvjLnElh2tB4rfxk/JH42/PoBPuftBGJTQo3N6g5B9GmFIWKEE+EytiSN7F0Y8PCWdXts4rNQDaPvWnu40GHvJHfLv9wfX/21Kjtt8pB2WdJFWAvkrDLMXFsAwOJsQ+nprVm9jRQzQv2BmP4K4eBoHietPezxrJSqHgfFSz8jG0yTWRgOaj/BdSv8AbgxvubwS9F+l1HDNzj2tFH4WjiITbYv/MdZWmhz8+aTtlhet5uB61eSwGoO8r0Gwss/NoWcO/oq9beqH7Z8uWr4724Q2r+58PWZFdeZ4HNH5PzJxnNaew0KY0sb6HDkdKUbcgXwxywImKJuNQU2J9HWKrWlledlf2gXOmHpcHhH8mfiKgiQ4I5SN9w9ikJ33UROZfBK1kt9CRmwW09oPsV8ARAS3pp0l8wnTsdwuIYxMWoWoIqGgWfdfUTUfXljwsjKl88/wlxj/E4QOjYxJlOo7AOr2XnMjzgDHb5AD6eyPxpzvu0hLDUQCmUg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.22.2
Release Details
UpdatedAug. 15, 2026, 9:12 a.m.
Changelog

In appinfo/info.xml direkt von 0.21.0 auf 0.22.1 gesprungen und dann auf 0.22.2 weitergezählt, ohne dass 0.22.0/0.22.1 je getaggt oder veröffentlicht wurden – dieser Abschnitt fasst beide Zwischenstände zu einem einzigen, tatsächlich veröffentlichten Release zusammen.

Neu

  • Standard-Beitrag (Zahnrad → Beiträge & SEPA): ein einmal hinterlegter Betrag/Frequenz füllt „Mitglied aufnehmen" vor und greift auch im CSV-Import, wenn eine Zeile ein Start-Datum, aber keinen eigenen Betrag hat – bei 80–100 Mitgliedern mit demselben Satz sonst 80–100 Mal derselbe Wert von Hand.

Geändert

  • Navigation aufgeräumt. Das Zahnrad-Menü „Einstellungen & Import" hatte über die Entwicklungszeit 16 Abschnitte angesammelt – Einrichtung und laufende Arbeit ungetrennt nebeneinander. Neu:
  • Reiter „Beiträge" (Hauptnavigation, erscheint automatisch sobald das Modul genutzt wird): Mitgliederliste und SEPA-Sammeleinzug, vorher zwei Abschnitte im Einstellungen-Modal. Kennzahl im Reiter zeigt Beiträge im Rückstand.
  • Unterreiter „Regeln" (Tab Buchungen): Auto-Zuordnungsregeln, dort wo sie auch entstehen (Blitz-Button beim Zuordnen).
  • Kostenstellen- und Sphären-Pflege jetzt direkt in den gleichnamigen Berichten statt im Zahnrad – inklusive des Kostenstellen-Modus.
  • Das Zahnrad selbst fasst jetzt nur noch sieben statt 16 Abschnitte (Verein, Belege, Bankdaten, Beiträge & SEPA, Berechtigungen, Jahresabschluss, Daten). Der Wegweiser-Hinweis „Kontoumsätze importieren" darin entfällt ersatzlos – der Import steht seit 0.19 im Tab „Buchungen".
  • Keine Datenbank-Migration nötig; bestehende Installationen mit Mandaten/Beiträgen sehen den neuen Reiter sofort.
  • Import-Verlauf konsolidiert. Die Liste „Bisherige CSV-Importe" unter Einstellungen → Daten zeigte dieselben Angaben (Dateiname, neu, Dubletten) wie das Änderungsprotokoll ein zweites Mal – beide wurden bei jedem Import parallel beschrieben. Die Liste entfällt; im Protokoll (Berichte → Protokoll) blendet der neue Schnellfilter „nur Importe" alles andere aus. Die dafür genutzte Tabelle vbh_imports wird per Migration entfernt.
  • Buchhalter darf Mitglieder, SEPA-Mandate und den Einzug jetzt vollständig verwalten (vorher Verwalter-only) – die naheliegende Rollenzuweisung für eine Kassiererin ohne Rechtevergabe-Befugnis war sonst vom ganzen Reiter „Beiträge" ausgesperrt.
  • Mitgliederliste und Einzug zeigen auf dem Handy Karten statt einer siebenspaltigen Tabelle, die dort zeilenweise Buchstabe für Buchstabe umbrach.
  • Aktionsspalte der Mitgliederliste verdichtet. Seltene Aktionen (Bankverbindung wechseln, Mandat widerrufen, Löschen) stecken jetzt in einem Menü, „Bearbeiten" bleibt sichtbar – auch am Desktop ragte die Spalte vorher über den sichtbaren Bereich hinaus.

Behoben

  • E-Mail-Adressen mit Umlaut im lokalen Teil („m.müller@gmx.de") galten beim Anlegen eines Mandats und beim CSV-Import als ungültig – betraf reale, bei gmx.de/web.de/t-online.de zustellbare Adressen.
  • Bestätigungsdialoge für „Mitglieder übernehmen" und „Rückstand nachholen" zeigten einen roten „Löschen"-Button statt einer zum Anlegen passenden Beschriftung.
  • Der Reiter „Beiträge" blitzte beim Laden der App kurz auf, bevor er endgültig erschien.

Details und die zugrundeliegenden Personas/Testfälle siehe BEITRAEGE-REVIEW.md.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signaturex48JlqGMXQOEaHamNLU5I92XD8JO7RRlVz+NQWzdhhCHRf7bzPbVOwBBtNofZkAjw6FX/GYplKBB5R3C0SoybBvYu/czmifo5N7buFkuxe7GwMcRLe3nbRixjNY/qxWW5aEuR8PLaD/QHkRSWqc6aiUG+rg3kLKhpcug8CSn2IxCXVwALeB73oUz8P7UxsKtnmHyGOyi4SxCsog23Rt+LNgALU47xdN5sM6/rkt6HkO38pI/+CHzJWE7P+OrG+omt9q4LPrA+eTKIRgU8UUdVRv99ll+63WmgdBEUvn3DANgw6gjGHOdN3TPRqCbIpAXh1LD91NFg6J+e9DnbvkcZAWbPddUsYMyyCaXGtBSd6aCU5i4TwwHOpIisQZzWyFivOMcW1upaa+iHkVxU+ny82ED+ylXnp5QOn9k/502fdfKMSeEwV1Qs4i/K2nSjkXwxQUYP6nOt/0A4/+WLWOyCLneyqG+osmnrr+4jDuVNHw8i6rZHMkZuZlc9WWSllRHQvMG/2fktCtMGYTc71qYlm/sEw9V9yRDoJhuXgNEJJH9HgG59he/3ieUaRGWqzjNCfMa7slFbdIjjJlqvKeLpILU2vWPRdBTObn4drbtg8qaAegN+yntfAz9aAfDgceWjfhvkzacXkhQef+bHrTa1KDhf/U7Plj/8i2NmpnY3ZI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.3
Release Details
UpdatedAug. 7, 2026, 6:52 a.m.
Changelog

Geändert

  • Berichte-Seite: Reiter und Buttons wirkten überladen. Im Auswertung-Tab brachen bis zu 7 Export-Buttons (Kassenbericht, Kurzbericht, Beleg-ZIP, Prüfleitfaden, Saldenliste, E/A-Übersicht, Mehrjahresübersicht) neben den 6 Reitern mehrzeilig um und nahmen viel Platz ein. Kassenbericht und Kurzbericht – laut Handbuch die beiden meistgenutzten Berichte – bleiben direkt anklickbar, die übrigen fünf stecken jetzt in einem Menü „Weitere Exporte".
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureOPqKJZTl/5Eygp/CIw4spwFaccWUoG73jv1LRUd6Tn9lnr1Bdr/S2ki+dv3BrDSW1wXcPrTDWPvDEc08RQK7sCTBp5Uo1siR+hb9KEyq46iHPLHUfEQEy94s+fl2afy/yEpSK666eTpE5IEXfCOrvwhULbgrpbXMX5aEgK6cc9l8xjAMIA2t1+F1OXWKw7ikHuRVO+lh3Ky59SDzHKOkzh1cRhYNRw+4OgZiPTbUy1+08t0ZnIHpiLh/jpzTZvtTSbJxnLyv6T0YLX0KiiwuN581bajt9WgGasza81LGA3vzl5flfv9ULCwJgh5P2KS4yTBEF0/dVtn9k9cCL9s2Gx+RRBBgnZzSjynIOGOBq/jY0u3MhYhBiJ85sqZ9YbmK6Y6FJ+wVSIkAy9syctsz1mkz8E6o/KlrQS+Yx1gV/LPJo2aGLkgLOrW3bvlYZZgH/qFoHt9ZQ1RRqNp77k1lJz0JTZ8eEcXRuhTQrOoBtDyBwpVcPKbsKKi7WEtX8GwIVdxnvjlGTHGoXdn0TYI9ZhzRuk9C9d7eBn63SJv3XYazKRAj8GRZy82rTMPHaDVSNry5m9wN/mHWBAPzG/Lq750BqaMPnR3TT6+Z6U+hZ74mfRMqYbeLER+wXy9w3wS1sgqhrXFJP9k9uyaMzsK/q0VSEJx72CScqih0TFkTI2M=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.2
Release Details
UpdatedAug. 6, 2026, 12:57 p.m.
Changelog

Behoben

  • Kassenbericht und Kurzbericht erschienen auf Englisch, obwohl die Nextcloud-Oberfläche auf Deutsch stand. Nextclouds L10NFactory hält eine Sprache nur dann für „verfügbar", wenn im l10n/-Ordner der App eine Datei dazu liegt – für Deutsch gab es bisher keine, weil es ja die Quellsprache des Codes ist und l10n/de.json daher als überflüssig galt. Ohne diese Datei überspringt findLanguage() die deutsche Spracheinstellung des Nutzers und landet beim harten Fallback Englisch. Betroffen waren nur die serverseitig gerenderten Berichte (IL10N::t() direkt im PHP); die Vue-Oberfläche hat ihr eigenes, clientseitiges Übersetzungssystem und war nicht betroffen. Eine leere l10n/de.json reicht als Fix: sie macht Deutsch für Nextcloud „bekannt", ohne dass echte Übersetzungen nötig wären.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureSbvziLbdB13/4hZgbyRXt9y/XzLhT8WkHOT2/9zeTJden7m9Z9SbW7fdHzSiocnsJm/7A0mCQDslCbz5k7806djc792pRVlDFLlZhMOQGfSvFYhEwwVNaSYfk2TeR0boQoJrOKoFWyYa396LF5k4Ya4YE2uAmqpMBRv7Wm4LTTvp4EDqPIxXObEQbOGaAafkReTEQYE4h4Xzijrh+oo8BBpzhpcLiGKYpgpIGeQDmUeVGWpyh0ySGtf+46ENTC5Az+538hfY/fEQl6QtsHf9CacbSvEh+n6Lx2/gIQwjKN7FQsOM4w/3LQV/qlHqpFpoLEAJeG3/2IfbBnxKeuH0OZIFAslWtz2smxG5k9dYxn/nvFotD9meCvGWxwpeXFztx+zgv+zlcUOTdX0DQjRQQsnFGRejL+Pztl9TkG4I9ufke0DVm1/BYBhZdZ3cqf3QG3sSGDbsav5W4G+4BxVBe0y4ZDH35aVDV0cDh0HYfwfkVzqVwOcaf9NVfvoNFC2KVJXR/VlkEW9SPDRmLbafb+caQ6yqi0lviNq2x6V3xEcGS6ckQrjsiA1scbmFOFE5lE4jwdS9khHH7ZkLN0LyRtZagQMiaHI44rbfaxPCwE17U21RqJ3kR3kNJVOPcRSYycVzHmg3UKq0+Le6iF+X1XffZDgE9T1Z+9oIIvK8T64=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.1
Release Details
UpdatedAug. 5, 2026, 4:17 p.m.
Changelog

Geändert

  • Buchungsjournal: Zeilen brachen durch bis zu 4 Aktions-Icons zweizeilig um. „Regel anlegen" und „Löschen" stecken jetzt in einem Menü-Button; Beleg (falls vorhanden) und „Bearbeiten" bleiben direkt anklickbar. Damit passt jede Zeile wieder auf eine Zeile.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturelEiCh6gxSU93Jga+RtuXGddDMZuIP64Hl/hFEOOQYTCOMvsqCOL3CNkDY6Iv2nGBvOoyIF+N4woWkjDEmr30UKKmQ1bk2UYrszPPInXzqzS6TjiIs1i4s6h9lbu3Nb3Qiaat9j6b9kQGugayntbmEzSJdQ1Z1eNZAXQPqvxrmuy+uxUiIQntmDvQNWC4rBG9Gb+NmeGBiRe43NUR9q5A6UEADee5q1f2Ek8u/xVmjW9Cq/0lrbQkrtnDP8W6ZE7blpl6WBA970ImtF2uhYhaNA6XveNzSr5X1Tj8pgx9V2SA6tDRzL1KCYGFFpFH1HTADlUXCmZ3B3+hMx+TXNCs8nR4QJqKGd6vliMXi0yKYaZJ7hXfwOcF6fbTbqb9cNx04bhTEgz6Sy1cohvaVDI1ZbXZYoz+e+0FpO++1GOdxDoPSxi51v0mAlM1bVNRlZznlwKVO+CzsMLa4JrTnoRuF82ZS84GYn4lNAN0YfTofJNDWuoC99W27c8nkM+hHinkg/enqEB1EOeLHr03Ot6R18wbZZ7deZ8k39eWsAdW1JeV1xsYfuWgFv8uoi60gygHz0T5WixyIu1Qw8JzBw/p+qqlhxgzjw94PGbiiH5Qsew1srd86mKccReKp27yqFPdNix6htxHVtY8WV5e4w6u+qsu4nXfzMXUixLflmgDgLg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.0
Release Details
UpdatedAug. 5, 2026, 7:42 a.m.
Changelog

Behoben

  • Vorgemerkte Umsätze im CSV-Import konnten zu Dubletten führen. Die CSV-CAMT-Kontoauszüge führen anders als CAMT.053 keinen eigenen Statuscode, sondern schreiben den Buchungsstand als Klartext in die Spalte „Info" – „Umsatz vorgemerkt" wurde bislang nicht ausgewertet. Ändert sich ein solcher Umsatz beim endgültigen Buchen (typischerweise das Datum), erkannte ihn ein späterer, sich überschneidender Import nicht mehr als bereits vorhanden. CamtCsvParser überspringt vorgemerkte Zeilen jetzt wie schon Camt053Parser es für „PDNG" tut.

Hinzugefügt

  • Nicht zugeordnete Bankumsätze lassen sich jetzt löschen. Bisher gab es dafür keinen Weg – ein Umsatz, den die Dublettenerkennung bei einem sich überschneidenden Kontoauszugs-Import nicht als bereits vorhanden erkannt hat, ließ sich weder zuordnen (dann läge er doppelt im Journal) noch wieder loswerden. Der Papierkorb-Knopf in „Zuzuordnen" löscht einen einzelnen, noch nicht verbuchten Umsatz; bereits zugeordnete bleiben wie gehabt nur über den zugehörigen Buchungssatz löschbar.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureBnkYSlWxHsYfloYtjM8qy7z4ZHro+XGTush4dekzY9sqA99C2YPzzt9ZdF5u9607GP7kFZVea924jYOKfadCsC34UnDyxbRsbUoRuj8zAgP7dbvSVj6SNqfa3B1ZdH8aHGQmPzF4qmdObFx+9rQRJcOGIkGWbAHBkg044dyzwLWnNwpB4O2h91bIEm+0ArsA6VLtP6qW9os9e75pcNbNKl9O/kybpbM+5tdtSrz28PvR7R9Hngf3SyBUi3uwKpwMafUoj0IfMnTBxCyBH7Flq7m7OFJMOGz/TakXRoq/YxFydmV9dVeSP2VhZ/FxyMipMG1C9pmQ8yQq+JHEN2ZO6q1aWP/jcXb58JkSHrfFVx/R7y+uhbaOABUGBsdUy9+LepV5fGB1/BdVUbYA04G0ulC+5n0ixOYhzZsW0XWtKMykeuI5h75yil1rINce0/FA035SlhPIjPdrMKoTPS9GmwUvebCIYgbt39PzVUjT0GXJ5k9DA31GC81X2o+l/JLyLX1OW+e225KlRQfXdgjB0QUAPiaHelgiKB+T1FWUvb//BL+Gyc/mfGnA5VUNoyp7rxxOO3cQ05LbxiiNeyGodnAVNih6BqQUDk//N6q58dX9M9AUmo2pGstsn/WHwW/qyt00y47nrBp4dp+Z4opbKNDhxjIDm7xTQWFmfluVjfY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.18.0
Release Details
UpdatedAug. 2, 2026, 4:11 p.m.
Changelog

Hinzugefügt

  • Weitere Mehrsprachigkeit im Backend. Kassenbericht und Kurzbericht (beide als druckfertige HTML-Seite) sowie das Änderungsprotokoll (Berichte → Protokoll) erscheinen jetzt in der Sprache des Nextcloud-Profils statt fest auf Deutsch.
  • Alle bisher noch deutschen Fehler- und Bestätigungsmeldungen der Controller sind übersetzt, ebenso die Prüfmeldungen beim Anlegen und Ändern von Buchungen (Soll-Haben-Kontrolle) und die Fehlermeldungen der CAMT-/MT940-/CSV-Kontoauszugs-Parser.

Technisch

  • Statische Prüfmethoden (JournalService::validateLines(), JournalService::reassignPlan(), BookingService::validateParts()), die auch direkt aus PHPUnit-Tests ohne laufende Nextcloud-Instanz aufgerufen werden, liefern jetzt stabile Fehlercodes statt fertigem Text; die Übersetzung passiert in einer begleitenden Instanzmethode mit Zugriff auf IL10N. Die Parser (CamtCsvParser, Camt053Parser, Mt940Parser, XbucParser) erhalten IL10N als optionalen, in Tests weglassbaren Konstruktorparameter mit deutschem Fallback-Text.

Bekannte Lücken

  • Der CSV-Export der Auswertungen ist noch vollständig Deutsch.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureyT7SVmIOpa+ZxIYuUUiftY1NmsPnETQbPKz5hXSyXYJ2fSqVm/OBPOJyoI2EpaGulf2AqkZr3w8jXrWuh4U3J1m4IuaAK8zGhD47WCAzxFGZxc8iy6ITh0OckjLneDWxMwoQHJO/IggRVjBEaZXKdD2wrFPMjkXDUTBvlMr/YKJFE6bd1qJJ5UKXQedO51aNuRQR/O9UrXJ8IR6F5SmyWzrEvr8F/hNdiQioDnTA2vk1iB2bTciuc9qnQd13m1i43ToUuZfYSYflxBhAq/kMOCrUsICqXo3wy88DNIVuwaiEIPrXuMUBDXsmjcnh0dtku/iVTiOpPtkDjucmJ5bhLcuylyC1sYFt6d5emJlqMUOWHmhzC4eoQc9nv2uSq/VgCVUJd0V4dihQivViVEot+acr/xuHinPVt7YikF5ejoWt9//f8huYVa7O1dR2mKoY+nyOscA1lF1kFo7OYZ30KnerD5qjLJo508MDMWtAb7Pfzw3P423Jssl1h0zAPk7e2UWu+5ImshK7nr5+07Owyt/h41ASF4FeW8ePiUbn1hHgf86avEjbtMrQXajpZJp1AddBYuGCa19+V6jgLory4k8mLyTdCOz3O0nFTjEEU3hhq+BPbaoaztKx3W0FOtBsFEO/FyhaAxffkGjbU88lQoDSP9rX3lgH8oKX++nUHSY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.17.0
Release Details
UpdatedAug. 2, 2026, 3:16 p.m.
Changelog

Der erste sichtbare Schritt zur Mehrsprachigkeit: wer Nextcloud auf Englisch eingestellt hat, sieht jetzt eine englische Oberfläche statt einer deutschen mit englischen Brocken drumherum.

Hinzugefügt

  • Englische Übersetzung. Alle Vue-Komponenten der Oberfläche – jeder Tab, jeder Dialog, jede Fehler- und Bestätigungsmeldung – sowie die häufigsten Fehlermeldungen des Backends sind jetzt ins Englische übersetzt (l10n/en.json). Einen eigenen Sprachschalter braucht die App dafür nicht: wer sein Nextcloud-Profil auf Englisch stellt, bekommt automatisch die englische Fassung. Die Quelltexte im Code bleiben bewusst Deutsch – der Herkunftssprache der App –, Deutsch ist also unverändert die Fallback-Sprache.
  • Video in der App-Store-Beschreibung verlinkt.

Technisch

  • Eigener Lademechanismus für Übersetzungen im Frontend (src/lib/l10n.js): die Bibliothek @nextcloud/l10n geht davon aus, dass Englisch die Quellsprache ist, und lädt dafür gar kein Übersetzungsbundle – bei einer deutschen Quellsprache wäre das genau die falsche Sprache.
  • IL10N ist jetzt per Konstruktor in die Controller und Services injiziert, die nutzerseitige Fehlermeldungen werfen.

Bekannte Lücken

  • Kassenbericht, Kurzbericht, Prüfleitfaden und die CSV-Exporte sind noch vollständig Deutsch.
  • Ein paar Backend-Prüfungen (u. a. die Soll-Haben-Kontrolle beim Buchen, die CAMT-/MT940-Parser) bleiben vorerst Deutsch – sie sind bewusst ohne Nextcloud-Abhängigkeit gehalten, damit sie sich ohne laufende Instanz testen lassen.
  • Das Änderungsprotokoll (Berichte → Protokoll) zeigt seine Einträge weiterhin auf Deutsch.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureroXOT9h02u08zVmBOEm4AgtrqTyByeTNHUynP/GLWlj1W/PSVXK7rwHxjWbw/fnoVsuvroo5FdxY6sTMKgwWfcCYW9WC49dJylKK1FX8oKws1LefX9HqQbZvFeJ9L3grLLht92mwMthzuRfrCaQDygDBmpv1o3PhbrqJpox0zfx1jWd6jJhDpBeBjIcfBf+CyKan8BSSdwFjRUzCoJBIz+cHAB27MY5PfvrDdFmUtjHLvU/MifISIkMiVhxKtY1CnQtJd58t0zJcFvN0qjB85+DAAV9nR6YCcZjNw8UbCdetu5CThcQBPHJLnRXIIf+WP88PgRYkxgRw9d8QKMf2zklGsVTPJdtvacI9V2F5JOIimelYg3V4WacqcpO2F2xOfs6jXVS2E8MFAloWofhNnfVuTINQiHz8Ckw49QlyEr8Up6yEZ28tgJh0AKpQWsLUZ+SUd4PA2obilUrsFjFkEhAUbAPtu0kdKD6l3NYa9oXB4a2Pun6gNpD1qvhmRudPvyIGoYCoAsOstLAehk+eAiF6lfFLe/o0V+RiOn4L2lPt5c96acCwesJD9yZQbZIfbYFM5ddheBSYaJRzyLYJWsK2IETagwH4XVvH/vClPytgMNHiOG/s6LALfsQSUTzz8ktLZqU+U1BHlmqXaR9M2lvlEu2G9O+5ueYM3D3kX5E=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.16.0
Release Details
UpdatedAug. 1, 2026, 9:03 a.m.
Changelog

Diese Version bringt kaum sichtbare Neuerungen: sie räumt den Programmcode auf und sichert ihn gegen Fehler ab, die bisher niemand bemerkt hätte. Ein solcher Fehler kam dabei ans Licht – und er betraf ausgerechnet die Kassenprüfung.

Behoben

  • Der Beleg-Export als ZIP brach ab, sobald ein Beleg im Zeitraum lag. Die Funktion rief eine Methode auf, die es in PHP gar nicht gibt (ZipArchive::addStream); der Download endete mit einem Serverfehler statt mit einem Archiv. Betroffen war genau die Funktion, die eine Kassenprüfung braucht, um alle Belege eines Jahres auf einmal zu bekommen. Die Belege werden jetzt blockweise ins Archiv geschrieben – der Speicherbedarf bleibt wie vorgesehen niedrig, auch bei einem Jahr voller PDFs.
  • Der Kassenbericht ignorierte die dunkle Darstellung. Wer ihn bei dunklem Systemdesign öffnete, bekam schwarze Schrift auf weißem Grund in einem sonst dunklen Fenster – der Kurzbericht konnte es längst. Beide Berichte teilen sich jetzt dieselbe Gestaltung. Am Ausdruck ändert sich nichts.
  • Beispieldaten konnten halb angelegt liegenbleiben. Fehlte ein Konto des Standard-Kontenrahmens, brach das Anlegen mitten in den Buchungen ab. Jetzt meldet die App vorher, welches Konto fehlt.

Geändert

  • Die Rechenregeln aller Auswertungen liegen jetzt an einer Stelle. Die Frage, welches Konto mit welchem Vorzeichen ins Ergebnis eingeht, war an acht Stellen einzeln ausgeschrieben – in den Exporten, in der Saldenliste und in den Berichten. Eine Änderung daran musste bisher überall nachgezogen werden. An den Zahlen ändert sich nichts; sie sind jetzt nur an einer Stelle festgelegt und erstmals automatisiert geprüft.
  • Der Sortier-Vergleich der Tabellen war dreifach vorhanden und ist es nun einmal. Sortierung und Sicherheitsabfragen sind damit in allen Ansichten garantiert gleich.

Technisch

  • Statische Analyse (PHPStan, Stufe 5) läuft jetzt bei jeder Änderung mit und fand die drei oben genannten Fehler.
  • Der 1149 Zeilen lange ExportController ist in Dienste aufgeteilt: CSV, Beleg-Archiv und die druckfertigen Berichte je für sich, der Controller behält nur die Auslieferung (158 Zeilen).
  • Frontend-Unit-Tests (Vitest) für die Rechen- und Anzeigehelfer; der Testbestand wächst von 118 auf 210 Tests.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureVJDiJR0wAF6OF052v41IlOKnSdqYFS+pI1+dFRngpf5U228GkukeyPqI033CH4Q3hummVmpRiAFGTi5n9g403rp88tFm8lw69XuqW2KKFwDkzc5EE0wVs3AVJgHeREn/NotbVAVvItr6+4wdPE4vKY4MnSVrwwPFWyQPhYMcy7ps0GEKQOKIIg8K5FiRvpgFF4M8/24xcDJSX9P6ySetzjjCUewbWBCq90qjAkf1dedOmwpk/WJ6EzDMuOpXjK866ruUFpU6UMHarVV5JY0IO97AJym3rJVUbtF7pkCI4gQVjVAFmcux+rnXm7vLN5EHGRF9cQCgy5REcQAKavKY0k2KS48L/zRjsvzEv0dY/IWAraVowHLkJUDonnUelUPZJ3J6S6CekKswO2oQdXnCc2jGNSY7QS8s2ck9NsnCSeX66hEMC4fI8cZUTeFM5sr4IP7ABKXq4f/DOZ2kl1klwKZjVeCSkD5SQvB4Lt5vq+kj2CzULsoM5EyrxLuvdYt/cOMluMhFdKg8H0Mubcc/TnIMEMGj2ODw7z7z1g5KQdGDPYEQ2JDgUKQ2gxW9exq98q0FmXq95K1ppLvC0c8sDezQF5leB2eVH/c0yDzc6xsDpWbkc9MQiNLofdqyXWHBvvrqKnl7x7qBn8U9BdefGUuFba3HekdHxLZFAm6OPsg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.15.0
Release Details
UpdatedJuly 31, 2026, 6:56 p.m.
Changelog

Behoben

  • Gelöschte Buchung gab ihren Bankumsatz nicht wieder frei. Wurde ein Buchungssatz gelöscht, der durch das Zuordnen eines Bankumsatzes entstanden war, blieb der Umsatz auf „zugeordnet" stehen – mit einem Verweis auf einen Buchungssatz, den es nicht mehr gab. Er tauchte danach nirgends mehr auf: nicht unter Zuzuordnen (dort stehen nur offene Umsätze) und nicht in den Salden (die kennen nur Buchungen). Auch die Bank-Abstimmung führte ihn weder als gebucht noch als offen, sodass der Kontostand still vom Bankauszug abwich. Der Umsatz steht jetzt nach dem Löschen wieder unter Zuzuordnen und lässt sich neu zuordnen – derselbe Stand wie beim Aufheben einer Zuordnung.
  • Belege eines Jahres konnten beim xbuc-Import verloren gehen. Die Dublettenprüfung des Zusammenführ-Imports beschrieb eine Splittbuchung nur über eine ihrer Zeilen. Eine eingehende Buchung, die zufällig auf diesen Teilbetrag passte, galt dadurch als bereits vorhanden und wurde stillschweigend übersprungen. Der Vergleich betrachtet jetzt die ganze Buchung, und beide Seiten des Vergleichs bilden ihren Schlüssel an derselben Stelle.
  • Beleg löschen konnte einen Datensatz ohne Datei hinterlassen. Die Datei wurde vor dem Datensatz entfernt; schlug das Löschen des Datensatzes fehl, blieb ein Beleg zurück, der sich nicht mehr öffnen ließ. Jetzt gilt auch hier die Reihenfolge, die beim Löschen einer ganzen Buchung längst galt: erst der Datensatz, dann – nach erfolgreichem Abschluss – die Datei.

Geändert

  • Der Jahresabschluss schützt jetzt auch die Konten-Stammdaten. Bisher war ein festgeschriebenes Geschäftsjahr nur gegen Änderungen an den Buchungen gesichert. Über das Konto ließ sich sein Bericht trotzdem nachträglich verschieben: Ein Wechsel der Kontoart dreht das Vorzeichen, ein Wechsel des Geldkonto-Kennzeichens verschiebt das Konto zwischen Vermögensübersicht und Einnahmen-/Ausgaben-Rechnung – das archivierte Jahresergebnis änderte sich, ohne dass eine einzige Buchung angefasst wurde. Kontoart, Geldkonto- Kennzeichen, Sphäre, Rücklagen-Art und Kostenstelle lassen sich deshalb nicht mehr ändern, solange das Konto in einem abgeschlossenen Jahr bebucht ist; wer die Änderung braucht, eröffnet das Jahr wieder und schließt es danach erneut ab. Nummer, Name, Kategorie, Aktiv-Schalter und Überkonto bleiben frei änderbar – sie ändern nur Beschriftungen, keine Beträge.
  • Konten stehen jetzt im Änderungsprotokoll. Anlegen, Ändern und Löschen eines Kontos wurden bisher nicht protokolliert – ausgerechnet die Stammdaten, aus denen jede Auswertung gerechnet wird, waren für die Kassenprüfung unsichtbar. Bei einer Änderung vermerkt das Protokoll zusätzlich, ob ein auswertungsrelevantes Feld betroffen war.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureP7cVaIPv213NPHt6juPqCRD4S2odKrN+G8KhhxyDeKw7BKUxrWvSaOiQCEwBmvQzUCYWUDf0OacHyUlh6nmJEWFmuux3X6wIY3AuGQx/gg37EMyMCod8JA82iPNAMLXML1bEIeU9RGEIbmtdc6CmNEV+TlEBCp02kskc/V1FytAkCREPOCfCr7DodbD6FZtrjN+VloewQblps1KCCye9tm1v7mMDRDexPv2jiATXsKqS/D/ostXEh/SGTtX1saXxlFpMJss8WYgRNCMbzGMW6i+k2ND/iiEAzBFBKwFY0w4YunU4zo2x6Y3z7SCPeSLP0AagS4LI2vv5vKeq2jHyqtnXTS6Zi6tba2P6ObB0stmW6lzc6p58UW3Dvw9Irm58hAa7QqvqUheI2t0haws3Cah2/e95eOqk/+tFcGS1k6C1sPVQVlcEFjMyLN2a88YKW32okbQhzCEixkockVQQbWfY40Shqg64ZSfGGR6VAgHck6rioYnQJE2H5+3SexdzsYkJVY2jJ00tLIdCDpq2Z3M5AZSjxHpGcRyJ+w+6EIx10SbOdsqxQw0/FEnAC8Bk4d1vcodBZBwXFav/Ew6diriLx49vhFQZvlvmshNbREyFYiWskPUKE46NTOVHZVGZqLlkQD4vFbu61PWYR8swhuYhqMwPbsxkzbxIf2JQuQU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.13.0
Release Details
UpdatedJuly 31, 2026, 8:50 a.m.
Changelog

Hinzugefügt

  • Frei definierbare Kostenstellen. Bisher leitete die App die Kostenstelle aus dem Kontenrahmen ab – entweder aus der zweiten Zahlengruppe der Kontonummer oder „ein Konto = eine Kostenstelle". Beides setzt einen bestimmten Kontenaufbau voraus. Jetzt lassen sich Kostenstellen unter Einstellungen → Kostenstellen frei anlegen und Konten ihnen ausdrücklich zuordnen; beliebige Konten können so zu einem Projekt zusammengefasst werden. Der neue Modus heißt „Frei definierte Kostenstellen" (Einstellungen → Kostenstellen-Modus, nur Verwalter). Die beiden bisherigen Modi bleiben unverändert Standard – bestehende Auswertungen ändern sich nicht. Die Zuordnung geht einzeln im Konto-Dialog oder für viele Konten auf einmal. Angelegte Kostenstellen erscheinen im Bericht auch ohne zugeordnetes Konto, damit eine fehlende Zuordnung sichtbar ist.
  • Umbuchen direkt im Kontoauszug. Wer beim Durchblättern eines Kontos (Tab Konten) eine falsch zugeordnete Buchung findet, bucht sie an Ort und Stelle auf ein anderes Konto um – der Umweg über das Journal entfällt. Umbuchen lässt sich jede Seite der Buchung, also auch das Gegenkonto. Geändert wird ausschließlich die Kontozuordnung; Betrag, Datum, Beschreibung und die Gegenseite bleiben, sodass Soll und Haben nicht auseinanderlaufen können. Abgeschlossene Geschäftsjahre bleiben gesperrt, jede Umbuchung steht im Änderungsprotokoll, und eine zwischenzeitliche Änderung durch jemand anderen wird erkannt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturerYLg9/W+aZy3UR2gm/vOTWoLkk4IZrBuLDSsMcqIA1ezxdDhM4DCie+hHnru5bowZ4ZqOE8XmhrBYJCF9F8Wg3zyklma7eMmTKWMHy0mlys+/SYrmnPOfrzUyA/3PvFLNztuRJgyVeL/bI/0fp4QQ5YUTHG6oQHcY9NZXeB1Yy9AJAOP/oBHHdA9RDSONWvDJKgpLAgKBHcpj8J9SPCeVOviwHla4B2fbLKjpJu185Ee7SsvjXQJYatX0SV1/Hy65I0o5xfst63HfBj8vMYkiu6vxz3bU8kp5jUJKWWmDiB9qQHByk5srK1Wu/R/gZKgfxp+EtU1SWYaZFIU5ZlynNgtZpx63083sBz/UgryqKitjmOvD1Qw1UAi4sP5BMm8IKjZCCHY1mBImO/sIQqa7MjpcLulmnOmAXorbAgfG9ZaXFrk0AafHeQRzemtQ5nvlYpl8Z58F11ZuVKudYhsciBek7SHIhHTbs99aOsb934bzlaN+lZelZfm5J0OyCJaBv7zCKPQqMuBUNioV/w2ntAY/CyY2TK2gfJb2wMjJmNNR5s7hRcWVIPpklXxE/o44NSsckDDnzA4FemD7tswK8tTftO/v+Qk04kzjHi984idYXoHWSwFAYYiZxmL2oB6OOs+MXh9dGQUbpctC2pOAeSdO0J0dO/7D+MkKtaBrYA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.12.0
Release Details
UpdatedJuly 30, 2026, 4:01 p.m.
Changelog

Hinzugefügt

  • Kontoauszüge in zwei weiteren Formaten: neben der bisherigen CSV liest die App jetzt auch CAMT.053 (XML) und MT940. Welches Format vorliegt, erkennt sie am Inhalt der Datei – die Endung spielt keine Rolle. CAMT.053 ist die bessere Wahl, wo die Bank es anbietet: Vorzeichen, Datum und Zahlungsbeteiligte stehen dort eindeutig drin, statt aus Spaltenüberschriften erraten zu werden.
  • Wachordner: Auf Wunsch liest die App Kontoauszüge selbstständig aus einem Nextcloud-Ordner ein (Einstellungen → Kontoauszüge automatisch einlesen). Den heruntergeladenen Auszug dort ablegen genügt; stündlich sieht ein Hintergrundjob nach. Verarbeitete Dateien wandern nach verarbeitet/, nicht lesbare mit Begründung nach fehler/ – gelöscht wird nichts. Setzt System-Cron voraus. Das ersetzt das Hochladen von Hand, nicht das Herunterladen bei der Bank.
  • Vorgemerkte Umsätze aus CAMT.053 werden übersprungen. Sie ändern sich beim endgültigen Buchen häufig noch und kämen sonst ein zweites Mal herein.
  • Mehrere Bankkonten werden unterschieden. Am Geldkonto lässt sich die IBAN hinterlegen (Tab Konten → Konto bearbeiten, nur bei Geldkonten); beim Zuordnen einer Bankbuchung wählt die App daraufhin das Geldkonto, auf dem der Umsatz tatsächlich gebucht wurde. Bisher landete alles auf dem ersten Bankkonto des Kontenrahmens. Ohne hinterlegte IBAN – oder wenn der Auszug keine mitbringt – bleibt es beim bisherigen Verhalten. Wer mehrere Konten führt, sollte CAMT.053 oder MT940 exportieren: dort steht die IBAN verlässlich, in der CSV mancher Bank nur eine Kontonummer.

Behoben

  • Derselbe Umsatz landet nicht mehr doppelt, wenn das Exportformat wechselt. Die Dublettenerkennung hing am eigenen Konto, und das schreiben die Formate verschieden: die CSV mancher Bank führt dort nur eine Kontonummer, CAMT.053 immer die volle IBAN. Zusätzlich zum bisherigen Vergleich prüft die App Umsätze jetzt über Datum, Betrag und Text gegen die bereits vorhandenen Bankbuchungen.

Sonstiges

  • Die Umsatzquellen liegen hinter einer gemeinsamen Schnittstelle (lib/Service/Statement/); Dublettenerkennung, Regeln und Import-Protokoll sind für alle Formate dieselben. Der MT940-Parser ist zugleich die Vorarbeit für einen späteren FinTS-Abruf, der genau dieses Format liefert.
  • Das Import-Protokoll hält fest, aus welchem Format ein Import stammt; Geldkonten können ihre IBAN tragen (Migration 122).
  • Unit-Tests für beide neuen Parser sowie ein Kreuztest, der denselben Kontoauszug in allen drei Formaten vergleicht (61 Tests).
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureYrd0NVVBI48qEcLJqlW2g3q/DsCa4M/I4Dap6Y7XZoLqHbFQtEHZiGe5WGYmrRZxZaiS38aXU62p6tx2uqB+V5cYI7xSomdVQtN/PlHS0hXRjO5OunZIpXdSaplQn0BiBhuN9iP+Vdrwc395yav9MegQE1opuH5kj2xPgKQyUbUehBedJ4rV+ePyXm2KFXsfv3DFeYjp9R16i41D+fD912hJskD3BNwIgqh0NRalj4KkwrIES46Ym7TZoZ14Jx0NJdh99l4/EXgdRicoSWEUT3aRxhbN+4qfAwa8MsDhL4K+jv4OhqDFxlD5yQKRqr6YsU9wxJ1HmMH8rutukusf18IQsgQjjl4zuwtwNFjrx18LhnUuozOQgRtVVZrQNXGneZ8ZLa7h6iZLUIkoiGtrrSyl0rXJFcg4LRmCz62Q9BaXCO9N8LhgxLa9TPKKJtoSroEbbFAHNewd5ir03uudK/UA6hr6n3GXNAtlTdyMAle9r7JY2DuvIJe+ftEHNqMC9prT2M1E2qb/nSgYk+RziNaqt4Yd5POjG65TCNEQOKIQ/aUpixnKXUFwzS+fJpFmGA1b+eULBKo0r5Q17xAluMjlw3lBsGcwozKXHc1KeCKIiZfjx9x+y1XMNuzeDaWG1g8kd2sjVTwY2vW+lS/d/R/K1GE2My5qoMILXPZ8+ko=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.11.2
Release Details
UpdatedJuly 29, 2026, 3:43 p.m.
Changelog

Behoben

  • Beträge werden nicht mehr abgeschnitten. In Tabellen hatte die Betragsspalte eine feste Breite von 100 px; längere Werte wie „28.798,68 €" wurden mit „…" gekürzt und ließen sich falsch lesen. Die Spalte wächst jetzt mit.
  • Mobil: „Buchungen" in der unteren Leiste war gekürzt („Buchun…"). Die Einträge teilen sich die Breite jetzt nach Inhalt statt zu gleichen Teilen.
  • Mobil: zu kleine Tippziele. Schaltflächen, Auswahlfelder und Eingabefelder waren teils nur 24–36 px hoch. Sie sind jetzt mindestens 44 px – auch auf Tablets, die per Finger bedient werden, aber das Desktop-Layout bekommen.
  • Mobil: lange Kontonamen im Kontenbaum wurden gekürzt und waren damit nicht mehr unterscheidbar; sie brechen jetzt um.
  • Mobil: das Ende langer Listen lag unter dem schwebenden Buchungs-Knopf und war nicht lesbar.

Sonstiges

  • Ausführliche Beschreibung und Screenshots für den Nextcloud App Store.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureDikykvZ2qeSFgT2rqRn1/K6d7txbP7OEC32gKuFsiCeigdGhCtrIHnVWHhA4ddYVzD+A5w+jgbYrYMzkgZcFS/cJE69wPzosrfHtsfrR1AXnFJprlr1fEU7gM2imvESCrjGS0s8KEeOczNzOTrhw6vtaWm4zbpYth5MLdMZmYFFTxtCQ67VIKIDNZhSVBS+dlbgKma5HobySt4IwUZeR+6qhMtZQZbmMCJ1LSuwPs6QCVTfAxXRlEBkuIdS0VYiBn3jDaoCfBV8tGZjpAG63npnwXIfJJd4HeCyDpMzDx0h/z6JpXKEcJuujT2vnrbjgCgqPOQX6qqCFru7djJ8o1BLR1pO8qNiTn194HAgOH/2cKzaJ/RbYAUXds7qW8aQgxvviJ9adZGRf3zC3jyYB49EGdYB/rKG8Lnn8mhDFkF7iXej4kwz/myXK8MTldP/xctXSC/zinorrnHaRo28XNtFDq5GazeVXpK7/9nvyt3SE49zoABnAEKDw6SYZrVCLX4+J8bbM6yk/ohFE3g1KL2/wXL1GnE1spwuz/OamTPJUqgVNJyV3MyzxG5aHpGxdj3lmctGt8eO34tXvHzofVmHvrhnEbEIcyMlphbOWD2mCiGkmltuGjJqvMJpLbSyZIe/oAXkJ7IiY3KGIRpiKlGUueiQlo0UbI1L+ubF/Uak=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.11.1
Release Details
UpdatedJuly 29, 2026, 3:03 p.m.
Changelog

Erste im Nextcloud App Store veröffentlichte Fassung. Am Programm selbst ändert sich gegenüber 0.11.0 nichts.

Sonstiges

  • Die App wird jetzt mit dem von Nextcloud ausgestellten Zertifikat signiert (appinfo/signature.json) und im App Store veröffentlicht. Das Paket zu 0.11.0 war noch unsigniert und ist deshalb nur über ein direktes Deployment aus dem GitHub-Release installierbar.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureRqufs3+r1UDzVeNY47cnz/w6ATGHouz8ape7ZHM3P5KFdQNcJ6RYVIO+epIwjLtAeVJdMgfEDJwafg1dx757MvkBsfr4fO9yBiP0yNmKeVwdm3G/7vM+WTHYg9CpRNYN2AivshD6OdD5axADiNnBU0jk+qw5szzQ77+pYkxHFMrTC1pbM8VWuTD/F+PrU0V7617dl2nDG7ZWwzjFgP65k6y3lr7hFi46LDiIvwWNv8leoggPU3YoB4YywRdXqhIHImtdBs/fauWamzU49TY22hPqSTPFsAVqyW/RI7Jw599oTCozx0W92XQilBZOGdUQb1Lr8nS+DJs6fGz6eJXbJQd2K81qqSyyIN06UcBudD6zCu5DdLuPLg0kWs7vwq5wI/4AXpBb5xadncHFtJOaNNoCJ2v7+C7d1ZaJ3kfv6ZNnVcuEYYQsNfuitHmmNzATyWSH2+hzXj/fZfpZA0vyHDLa4XkCPMwOi55IaPuvCdEaKE+RTf6hEdnul7MhU8C8BUFHKp3HlkdzJLPmffyf3vTDFoRnvtA2isMEXrkE2u9Usk9X1DlOXxn4PjmCYGNEm54YfVpTGRiY8i972c9XIjwmlpUIaqYARzgSad2kT23TXEMmzsPp7/kM2DjAqmEJbe+Lgl87Z7ZseXBHSnJXd1JjtxYJCm4og7lA2zSagvY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0

Nextcloud 29

Vereinsbuchhaltung 0.22.4
Release Details
UpdatedAug. 15, 2026, 12:35 p.m.
Changelog

Geändert

  • App-Store-Beschreibung aktualisiert: Das seit 0.20.0 bestehende Beiträge-&-SEPA-Modul (Mitgliederverwaltung, Lastschriftmandate, Sammeleinzug, eigener Reiter) fehlte dort drei Releases lang komplett. Ergänzt, außerdem CAMT.053/MT940 und der Wachordner beim Kontoauszug-Import – bisher war dort nur CSV-CAMT genannt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signature4LRi0axgsMDOcm6JxlvfjNIxZrlCLVndYp1Nj1ffQ3gJMixwlFkR0kI8Eri3poO2kHRfnc5hFZZh+0qQ3nFBBDPLoSXIlwXOdh0C3/CsZxPvyYSFjbW5ZP6+e0LhExYd7UMl1lNeXNqAgfqw2GBiwRXeBFf1lwkcoDWJY6GF8U2KDSwttbjQny3cK60u4nHfHM0ye+NochsmaoUdUyJCuvV1fsERFp2bDYt8KmwJWB6gIX7koTp+4JXIEFzxuREAij0b5A8XOZlMQvlGYKcZatwyR8oQXFPOLUBRt3yZgAfWx9+nx9GXaMQYQ2l1p3nv9C/TmgiMdpALvHfhFCBnqIVvcEBMizpNmRyPEelbb1Q3N4/2kRmbqV0e5dApltmb6zdcdWGl26PIGyTjgmN0jFiftM9OGIcinCBBH6vEpo/y6GBsthf1cLbBGYYe+qZMamxruF58MQ01KCkCzUtGSENUVfJKtS04v7+0gB0SPMkAh/KJb4bNf9qajfqD+1apWm5ceWBtTY293YlqGfEDDXPWeRfp1YcFfxkul4H/tLwVeonyFQJBZ7FTxeDUAeY+JlrruIs79av7ERKGFbS/4LHdQc1G992yy6BvTFVK5f/7M0tWAgYteUHD0IVdKlPRPiGrg+oycs/XN6v+RE9uLdHSJrUIMJZXf79DNpI47fo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.22.3
Release Details
UpdatedAug. 15, 2026, 12:31 p.m.
Changelog

Behoben

  • Konto-/Kategorie-Auswahl auf dem Handy war unbedienbar: Das Bottom-Sheet zur Kontoauswahl (AccountPickerSheet.vue) rendete zwar in den DOM, blieb aber unsichtbar und unklickbar hinter dem Buchungsdialog – Nextclouds eigenes Core-CSS (#content { position: fixed }) erzeugt einen Stacking-Context, in dem das Sheet trotz hohem z-index gefangen war, während NcModal (der Buchungsdialog) dem entkommt, weil @nextcloud/vue seine Modals an document.body teleportiert. Das Sheet tut das jetzt auch (<teleport to="body">). Gefunden im Gesamt-App-Review, siehe APP-REVIEW.md.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureknAf0tPINZuLUg1pagqwrKg05TXChSaJ4x8RZTzPAJb0p3KwCoujY9sFQcjXmJGzu+Zb/3V0yNdJrzeZYVdl6272s6V0D28Yk2t7wFeyY1EKr/HsX0KjIQ4g8iCbZ13JfZOftXuoIIbGNYCR/N1r9R3559J49r0npp2F7ieEZ79eCdehumskUMxvjLnElh2tB4rfxk/JH42/PoBPuftBGJTQo3N6g5B9GmFIWKEE+EytiSN7F0Y8PCWdXts4rNQDaPvWnu40GHvJHfLv9wfX/21Kjtt8pB2WdJFWAvkrDLMXFsAwOJsQ+nprVm9jRQzQv2BmP4K4eBoHietPezxrJSqHgfFSz8jG0yTWRgOaj/BdSv8AbgxvubwS9F+l1HDNzj2tFH4WjiITbYv/MdZWmhz8+aTtlhet5uB61eSwGoO8r0Gwss/NoWcO/oq9beqH7Z8uWr4724Q2r+58PWZFdeZ4HNH5PzJxnNaew0KY0sb6HDkdKUbcgXwxywImKJuNQU2J9HWKrWlledlf2gXOmHpcHhH8mfiKgiQ4I5SN9w9ikJ33UROZfBK1kt9CRmwW09oPsV8ARAS3pp0l8wnTsdwuIYxMWoWoIqGgWfdfUTUfXljwsjKl88/wlxj/E4QOjYxJlOo7AOr2XnMjzgDHb5AD6eyPxpzvu0hLDUQCmUg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.22.2
Release Details
UpdatedAug. 15, 2026, 9:12 a.m.
Changelog

In appinfo/info.xml direkt von 0.21.0 auf 0.22.1 gesprungen und dann auf 0.22.2 weitergezählt, ohne dass 0.22.0/0.22.1 je getaggt oder veröffentlicht wurden – dieser Abschnitt fasst beide Zwischenstände zu einem einzigen, tatsächlich veröffentlichten Release zusammen.

Neu

  • Standard-Beitrag (Zahnrad → Beiträge & SEPA): ein einmal hinterlegter Betrag/Frequenz füllt „Mitglied aufnehmen" vor und greift auch im CSV-Import, wenn eine Zeile ein Start-Datum, aber keinen eigenen Betrag hat – bei 80–100 Mitgliedern mit demselben Satz sonst 80–100 Mal derselbe Wert von Hand.

Geändert

  • Navigation aufgeräumt. Das Zahnrad-Menü „Einstellungen & Import" hatte über die Entwicklungszeit 16 Abschnitte angesammelt – Einrichtung und laufende Arbeit ungetrennt nebeneinander. Neu:
  • Reiter „Beiträge" (Hauptnavigation, erscheint automatisch sobald das Modul genutzt wird): Mitgliederliste und SEPA-Sammeleinzug, vorher zwei Abschnitte im Einstellungen-Modal. Kennzahl im Reiter zeigt Beiträge im Rückstand.
  • Unterreiter „Regeln" (Tab Buchungen): Auto-Zuordnungsregeln, dort wo sie auch entstehen (Blitz-Button beim Zuordnen).
  • Kostenstellen- und Sphären-Pflege jetzt direkt in den gleichnamigen Berichten statt im Zahnrad – inklusive des Kostenstellen-Modus.
  • Das Zahnrad selbst fasst jetzt nur noch sieben statt 16 Abschnitte (Verein, Belege, Bankdaten, Beiträge & SEPA, Berechtigungen, Jahresabschluss, Daten). Der Wegweiser-Hinweis „Kontoumsätze importieren" darin entfällt ersatzlos – der Import steht seit 0.19 im Tab „Buchungen".
  • Keine Datenbank-Migration nötig; bestehende Installationen mit Mandaten/Beiträgen sehen den neuen Reiter sofort.
  • Import-Verlauf konsolidiert. Die Liste „Bisherige CSV-Importe" unter Einstellungen → Daten zeigte dieselben Angaben (Dateiname, neu, Dubletten) wie das Änderungsprotokoll ein zweites Mal – beide wurden bei jedem Import parallel beschrieben. Die Liste entfällt; im Protokoll (Berichte → Protokoll) blendet der neue Schnellfilter „nur Importe" alles andere aus. Die dafür genutzte Tabelle vbh_imports wird per Migration entfernt.
  • Buchhalter darf Mitglieder, SEPA-Mandate und den Einzug jetzt vollständig verwalten (vorher Verwalter-only) – die naheliegende Rollenzuweisung für eine Kassiererin ohne Rechtevergabe-Befugnis war sonst vom ganzen Reiter „Beiträge" ausgesperrt.
  • Mitgliederliste und Einzug zeigen auf dem Handy Karten statt einer siebenspaltigen Tabelle, die dort zeilenweise Buchstabe für Buchstabe umbrach.
  • Aktionsspalte der Mitgliederliste verdichtet. Seltene Aktionen (Bankverbindung wechseln, Mandat widerrufen, Löschen) stecken jetzt in einem Menü, „Bearbeiten" bleibt sichtbar – auch am Desktop ragte die Spalte vorher über den sichtbaren Bereich hinaus.

Behoben

  • E-Mail-Adressen mit Umlaut im lokalen Teil („m.müller@gmx.de") galten beim Anlegen eines Mandats und beim CSV-Import als ungültig – betraf reale, bei gmx.de/web.de/t-online.de zustellbare Adressen.
  • Bestätigungsdialoge für „Mitglieder übernehmen" und „Rückstand nachholen" zeigten einen roten „Löschen"-Button statt einer zum Anlegen passenden Beschriftung.
  • Der Reiter „Beiträge" blitzte beim Laden der App kurz auf, bevor er endgültig erschien.

Details und die zugrundeliegenden Personas/Testfälle siehe BEITRAEGE-REVIEW.md.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signaturex48JlqGMXQOEaHamNLU5I92XD8JO7RRlVz+NQWzdhhCHRf7bzPbVOwBBtNofZkAjw6FX/GYplKBB5R3C0SoybBvYu/czmifo5N7buFkuxe7GwMcRLe3nbRixjNY/qxWW5aEuR8PLaD/QHkRSWqc6aiUG+rg3kLKhpcug8CSn2IxCXVwALeB73oUz8P7UxsKtnmHyGOyi4SxCsog23Rt+LNgALU47xdN5sM6/rkt6HkO38pI/+CHzJWE7P+OrG+omt9q4LPrA+eTKIRgU8UUdVRv99ll+63WmgdBEUvn3DANgw6gjGHOdN3TPRqCbIpAXh1LD91NFg6J+e9DnbvkcZAWbPddUsYMyyCaXGtBSd6aCU5i4TwwHOpIisQZzWyFivOMcW1upaa+iHkVxU+ny82ED+ylXnp5QOn9k/502fdfKMSeEwV1Qs4i/K2nSjkXwxQUYP6nOt/0A4/+WLWOyCLneyqG+osmnrr+4jDuVNHw8i6rZHMkZuZlc9WWSllRHQvMG/2fktCtMGYTc71qYlm/sEw9V9yRDoJhuXgNEJJH9HgG59he/3ieUaRGWqzjNCfMa7slFbdIjjJlqvKeLpILU2vWPRdBTObn4drbtg8qaAegN+yntfAz9aAfDgceWjfhvkzacXkhQef+bHrTa1KDhf/U7Plj/8i2NmpnY3ZI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.3
Release Details
UpdatedAug. 7, 2026, 6:52 a.m.
Changelog

Geändert

  • Berichte-Seite: Reiter und Buttons wirkten überladen. Im Auswertung-Tab brachen bis zu 7 Export-Buttons (Kassenbericht, Kurzbericht, Beleg-ZIP, Prüfleitfaden, Saldenliste, E/A-Übersicht, Mehrjahresübersicht) neben den 6 Reitern mehrzeilig um und nahmen viel Platz ein. Kassenbericht und Kurzbericht – laut Handbuch die beiden meistgenutzten Berichte – bleiben direkt anklickbar, die übrigen fünf stecken jetzt in einem Menü „Weitere Exporte".
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureOPqKJZTl/5Eygp/CIw4spwFaccWUoG73jv1LRUd6Tn9lnr1Bdr/S2ki+dv3BrDSW1wXcPrTDWPvDEc08RQK7sCTBp5Uo1siR+hb9KEyq46iHPLHUfEQEy94s+fl2afy/yEpSK666eTpE5IEXfCOrvwhULbgrpbXMX5aEgK6cc9l8xjAMIA2t1+F1OXWKw7ikHuRVO+lh3Ky59SDzHKOkzh1cRhYNRw+4OgZiPTbUy1+08t0ZnIHpiLh/jpzTZvtTSbJxnLyv6T0YLX0KiiwuN581bajt9WgGasza81LGA3vzl5flfv9ULCwJgh5P2KS4yTBEF0/dVtn9k9cCL9s2Gx+RRBBgnZzSjynIOGOBq/jY0u3MhYhBiJ85sqZ9YbmK6Y6FJ+wVSIkAy9syctsz1mkz8E6o/KlrQS+Yx1gV/LPJo2aGLkgLOrW3bvlYZZgH/qFoHt9ZQ1RRqNp77k1lJz0JTZ8eEcXRuhTQrOoBtDyBwpVcPKbsKKi7WEtX8GwIVdxnvjlGTHGoXdn0TYI9ZhzRuk9C9d7eBn63SJv3XYazKRAj8GRZy82rTMPHaDVSNry5m9wN/mHWBAPzG/Lq750BqaMPnR3TT6+Z6U+hZ74mfRMqYbeLER+wXy9w3wS1sgqhrXFJP9k9uyaMzsK/q0VSEJx72CScqih0TFkTI2M=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.2
Release Details
UpdatedAug. 6, 2026, 12:57 p.m.
Changelog

Behoben

  • Kassenbericht und Kurzbericht erschienen auf Englisch, obwohl die Nextcloud-Oberfläche auf Deutsch stand. Nextclouds L10NFactory hält eine Sprache nur dann für „verfügbar", wenn im l10n/-Ordner der App eine Datei dazu liegt – für Deutsch gab es bisher keine, weil es ja die Quellsprache des Codes ist und l10n/de.json daher als überflüssig galt. Ohne diese Datei überspringt findLanguage() die deutsche Spracheinstellung des Nutzers und landet beim harten Fallback Englisch. Betroffen waren nur die serverseitig gerenderten Berichte (IL10N::t() direkt im PHP); die Vue-Oberfläche hat ihr eigenes, clientseitiges Übersetzungssystem und war nicht betroffen. Eine leere l10n/de.json reicht als Fix: sie macht Deutsch für Nextcloud „bekannt", ohne dass echte Übersetzungen nötig wären.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureSbvziLbdB13/4hZgbyRXt9y/XzLhT8WkHOT2/9zeTJden7m9Z9SbW7fdHzSiocnsJm/7A0mCQDslCbz5k7806djc792pRVlDFLlZhMOQGfSvFYhEwwVNaSYfk2TeR0boQoJrOKoFWyYa396LF5k4Ya4YE2uAmqpMBRv7Wm4LTTvp4EDqPIxXObEQbOGaAafkReTEQYE4h4Xzijrh+oo8BBpzhpcLiGKYpgpIGeQDmUeVGWpyh0ySGtf+46ENTC5Az+538hfY/fEQl6QtsHf9CacbSvEh+n6Lx2/gIQwjKN7FQsOM4w/3LQV/qlHqpFpoLEAJeG3/2IfbBnxKeuH0OZIFAslWtz2smxG5k9dYxn/nvFotD9meCvGWxwpeXFztx+zgv+zlcUOTdX0DQjRQQsnFGRejL+Pztl9TkG4I9ufke0DVm1/BYBhZdZ3cqf3QG3sSGDbsav5W4G+4BxVBe0y4ZDH35aVDV0cDh0HYfwfkVzqVwOcaf9NVfvoNFC2KVJXR/VlkEW9SPDRmLbafb+caQ6yqi0lviNq2x6V3xEcGS6ckQrjsiA1scbmFOFE5lE4jwdS9khHH7ZkLN0LyRtZagQMiaHI44rbfaxPCwE17U21RqJ3kR3kNJVOPcRSYycVzHmg3UKq0+Le6iF+X1XffZDgE9T1Z+9oIIvK8T64=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.1
Release Details
UpdatedAug. 5, 2026, 4:17 p.m.
Changelog

Geändert

  • Buchungsjournal: Zeilen brachen durch bis zu 4 Aktions-Icons zweizeilig um. „Regel anlegen" und „Löschen" stecken jetzt in einem Menü-Button; Beleg (falls vorhanden) und „Bearbeiten" bleiben direkt anklickbar. Damit passt jede Zeile wieder auf eine Zeile.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturelEiCh6gxSU93Jga+RtuXGddDMZuIP64Hl/hFEOOQYTCOMvsqCOL3CNkDY6Iv2nGBvOoyIF+N4woWkjDEmr30UKKmQ1bk2UYrszPPInXzqzS6TjiIs1i4s6h9lbu3Nb3Qiaat9j6b9kQGugayntbmEzSJdQ1Z1eNZAXQPqvxrmuy+uxUiIQntmDvQNWC4rBG9Gb+NmeGBiRe43NUR9q5A6UEADee5q1f2Ek8u/xVmjW9Cq/0lrbQkrtnDP8W6ZE7blpl6WBA970ImtF2uhYhaNA6XveNzSr5X1Tj8pgx9V2SA6tDRzL1KCYGFFpFH1HTADlUXCmZ3B3+hMx+TXNCs8nR4QJqKGd6vliMXi0yKYaZJ7hXfwOcF6fbTbqb9cNx04bhTEgz6Sy1cohvaVDI1ZbXZYoz+e+0FpO++1GOdxDoPSxi51v0mAlM1bVNRlZznlwKVO+CzsMLa4JrTnoRuF82ZS84GYn4lNAN0YfTofJNDWuoC99W27c8nkM+hHinkg/enqEB1EOeLHr03Ot6R18wbZZ7deZ8k39eWsAdW1JeV1xsYfuWgFv8uoi60gygHz0T5WixyIu1Qw8JzBw/p+qqlhxgzjw94PGbiiH5Qsew1srd86mKccReKp27yqFPdNix6htxHVtY8WV5e4w6u+qsu4nXfzMXUixLflmgDgLg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.0
Release Details
UpdatedAug. 5, 2026, 7:42 a.m.
Changelog

Behoben

  • Vorgemerkte Umsätze im CSV-Import konnten zu Dubletten führen. Die CSV-CAMT-Kontoauszüge führen anders als CAMT.053 keinen eigenen Statuscode, sondern schreiben den Buchungsstand als Klartext in die Spalte „Info" – „Umsatz vorgemerkt" wurde bislang nicht ausgewertet. Ändert sich ein solcher Umsatz beim endgültigen Buchen (typischerweise das Datum), erkannte ihn ein späterer, sich überschneidender Import nicht mehr als bereits vorhanden. CamtCsvParser überspringt vorgemerkte Zeilen jetzt wie schon Camt053Parser es für „PDNG" tut.

Hinzugefügt

  • Nicht zugeordnete Bankumsätze lassen sich jetzt löschen. Bisher gab es dafür keinen Weg – ein Umsatz, den die Dublettenerkennung bei einem sich überschneidenden Kontoauszugs-Import nicht als bereits vorhanden erkannt hat, ließ sich weder zuordnen (dann läge er doppelt im Journal) noch wieder loswerden. Der Papierkorb-Knopf in „Zuzuordnen" löscht einen einzelnen, noch nicht verbuchten Umsatz; bereits zugeordnete bleiben wie gehabt nur über den zugehörigen Buchungssatz löschbar.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureBnkYSlWxHsYfloYtjM8qy7z4ZHro+XGTush4dekzY9sqA99C2YPzzt9ZdF5u9607GP7kFZVea924jYOKfadCsC34UnDyxbRsbUoRuj8zAgP7dbvSVj6SNqfa3B1ZdH8aHGQmPzF4qmdObFx+9rQRJcOGIkGWbAHBkg044dyzwLWnNwpB4O2h91bIEm+0ArsA6VLtP6qW9os9e75pcNbNKl9O/kybpbM+5tdtSrz28PvR7R9Hngf3SyBUi3uwKpwMafUoj0IfMnTBxCyBH7Flq7m7OFJMOGz/TakXRoq/YxFydmV9dVeSP2VhZ/FxyMipMG1C9pmQ8yQq+JHEN2ZO6q1aWP/jcXb58JkSHrfFVx/R7y+uhbaOABUGBsdUy9+LepV5fGB1/BdVUbYA04G0ulC+5n0ixOYhzZsW0XWtKMykeuI5h75yil1rINce0/FA035SlhPIjPdrMKoTPS9GmwUvebCIYgbt39PzVUjT0GXJ5k9DA31GC81X2o+l/JLyLX1OW+e225KlRQfXdgjB0QUAPiaHelgiKB+T1FWUvb//BL+Gyc/mfGnA5VUNoyp7rxxOO3cQ05LbxiiNeyGodnAVNih6BqQUDk//N6q58dX9M9AUmo2pGstsn/WHwW/qyt00y47nrBp4dp+Z4opbKNDhxjIDm7xTQWFmfluVjfY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.18.0
Release Details
UpdatedAug. 2, 2026, 4:11 p.m.
Changelog

Hinzugefügt

  • Weitere Mehrsprachigkeit im Backend. Kassenbericht und Kurzbericht (beide als druckfertige HTML-Seite) sowie das Änderungsprotokoll (Berichte → Protokoll) erscheinen jetzt in der Sprache des Nextcloud-Profils statt fest auf Deutsch.
  • Alle bisher noch deutschen Fehler- und Bestätigungsmeldungen der Controller sind übersetzt, ebenso die Prüfmeldungen beim Anlegen und Ändern von Buchungen (Soll-Haben-Kontrolle) und die Fehlermeldungen der CAMT-/MT940-/CSV-Kontoauszugs-Parser.

Technisch

  • Statische Prüfmethoden (JournalService::validateLines(), JournalService::reassignPlan(), BookingService::validateParts()), die auch direkt aus PHPUnit-Tests ohne laufende Nextcloud-Instanz aufgerufen werden, liefern jetzt stabile Fehlercodes statt fertigem Text; die Übersetzung passiert in einer begleitenden Instanzmethode mit Zugriff auf IL10N. Die Parser (CamtCsvParser, Camt053Parser, Mt940Parser, XbucParser) erhalten IL10N als optionalen, in Tests weglassbaren Konstruktorparameter mit deutschem Fallback-Text.

Bekannte Lücken

  • Der CSV-Export der Auswertungen ist noch vollständig Deutsch.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureyT7SVmIOpa+ZxIYuUUiftY1NmsPnETQbPKz5hXSyXYJ2fSqVm/OBPOJyoI2EpaGulf2AqkZr3w8jXrWuh4U3J1m4IuaAK8zGhD47WCAzxFGZxc8iy6ITh0OckjLneDWxMwoQHJO/IggRVjBEaZXKdD2wrFPMjkXDUTBvlMr/YKJFE6bd1qJJ5UKXQedO51aNuRQR/O9UrXJ8IR6F5SmyWzrEvr8F/hNdiQioDnTA2vk1iB2bTciuc9qnQd13m1i43ToUuZfYSYflxBhAq/kMOCrUsICqXo3wy88DNIVuwaiEIPrXuMUBDXsmjcnh0dtku/iVTiOpPtkDjucmJ5bhLcuylyC1sYFt6d5emJlqMUOWHmhzC4eoQc9nv2uSq/VgCVUJd0V4dihQivViVEot+acr/xuHinPVt7YikF5ejoWt9//f8huYVa7O1dR2mKoY+nyOscA1lF1kFo7OYZ30KnerD5qjLJo508MDMWtAb7Pfzw3P423Jssl1h0zAPk7e2UWu+5ImshK7nr5+07Owyt/h41ASF4FeW8ePiUbn1hHgf86avEjbtMrQXajpZJp1AddBYuGCa19+V6jgLory4k8mLyTdCOz3O0nFTjEEU3hhq+BPbaoaztKx3W0FOtBsFEO/FyhaAxffkGjbU88lQoDSP9rX3lgH8oKX++nUHSY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.17.0
Release Details
UpdatedAug. 2, 2026, 3:16 p.m.
Changelog

Der erste sichtbare Schritt zur Mehrsprachigkeit: wer Nextcloud auf Englisch eingestellt hat, sieht jetzt eine englische Oberfläche statt einer deutschen mit englischen Brocken drumherum.

Hinzugefügt

  • Englische Übersetzung. Alle Vue-Komponenten der Oberfläche – jeder Tab, jeder Dialog, jede Fehler- und Bestätigungsmeldung – sowie die häufigsten Fehlermeldungen des Backends sind jetzt ins Englische übersetzt (l10n/en.json). Einen eigenen Sprachschalter braucht die App dafür nicht: wer sein Nextcloud-Profil auf Englisch stellt, bekommt automatisch die englische Fassung. Die Quelltexte im Code bleiben bewusst Deutsch – der Herkunftssprache der App –, Deutsch ist also unverändert die Fallback-Sprache.
  • Video in der App-Store-Beschreibung verlinkt.

Technisch

  • Eigener Lademechanismus für Übersetzungen im Frontend (src/lib/l10n.js): die Bibliothek @nextcloud/l10n geht davon aus, dass Englisch die Quellsprache ist, und lädt dafür gar kein Übersetzungsbundle – bei einer deutschen Quellsprache wäre das genau die falsche Sprache.
  • IL10N ist jetzt per Konstruktor in die Controller und Services injiziert, die nutzerseitige Fehlermeldungen werfen.

Bekannte Lücken

  • Kassenbericht, Kurzbericht, Prüfleitfaden und die CSV-Exporte sind noch vollständig Deutsch.
  • Ein paar Backend-Prüfungen (u. a. die Soll-Haben-Kontrolle beim Buchen, die CAMT-/MT940-Parser) bleiben vorerst Deutsch – sie sind bewusst ohne Nextcloud-Abhängigkeit gehalten, damit sie sich ohne laufende Instanz testen lassen.
  • Das Änderungsprotokoll (Berichte → Protokoll) zeigt seine Einträge weiterhin auf Deutsch.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureroXOT9h02u08zVmBOEm4AgtrqTyByeTNHUynP/GLWlj1W/PSVXK7rwHxjWbw/fnoVsuvroo5FdxY6sTMKgwWfcCYW9WC49dJylKK1FX8oKws1LefX9HqQbZvFeJ9L3grLLht92mwMthzuRfrCaQDygDBmpv1o3PhbrqJpox0zfx1jWd6jJhDpBeBjIcfBf+CyKan8BSSdwFjRUzCoJBIz+cHAB27MY5PfvrDdFmUtjHLvU/MifISIkMiVhxKtY1CnQtJd58t0zJcFvN0qjB85+DAAV9nR6YCcZjNw8UbCdetu5CThcQBPHJLnRXIIf+WP88PgRYkxgRw9d8QKMf2zklGsVTPJdtvacI9V2F5JOIimelYg3V4WacqcpO2F2xOfs6jXVS2E8MFAloWofhNnfVuTINQiHz8Ckw49QlyEr8Up6yEZ28tgJh0AKpQWsLUZ+SUd4PA2obilUrsFjFkEhAUbAPtu0kdKD6l3NYa9oXB4a2Pun6gNpD1qvhmRudPvyIGoYCoAsOstLAehk+eAiF6lfFLe/o0V+RiOn4L2lPt5c96acCwesJD9yZQbZIfbYFM5ddheBSYaJRzyLYJWsK2IETagwH4XVvH/vClPytgMNHiOG/s6LALfsQSUTzz8ktLZqU+U1BHlmqXaR9M2lvlEu2G9O+5ueYM3D3kX5E=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.16.0
Release Details
UpdatedAug. 1, 2026, 9:03 a.m.
Changelog

Diese Version bringt kaum sichtbare Neuerungen: sie räumt den Programmcode auf und sichert ihn gegen Fehler ab, die bisher niemand bemerkt hätte. Ein solcher Fehler kam dabei ans Licht – und er betraf ausgerechnet die Kassenprüfung.

Behoben

  • Der Beleg-Export als ZIP brach ab, sobald ein Beleg im Zeitraum lag. Die Funktion rief eine Methode auf, die es in PHP gar nicht gibt (ZipArchive::addStream); der Download endete mit einem Serverfehler statt mit einem Archiv. Betroffen war genau die Funktion, die eine Kassenprüfung braucht, um alle Belege eines Jahres auf einmal zu bekommen. Die Belege werden jetzt blockweise ins Archiv geschrieben – der Speicherbedarf bleibt wie vorgesehen niedrig, auch bei einem Jahr voller PDFs.
  • Der Kassenbericht ignorierte die dunkle Darstellung. Wer ihn bei dunklem Systemdesign öffnete, bekam schwarze Schrift auf weißem Grund in einem sonst dunklen Fenster – der Kurzbericht konnte es längst. Beide Berichte teilen sich jetzt dieselbe Gestaltung. Am Ausdruck ändert sich nichts.
  • Beispieldaten konnten halb angelegt liegenbleiben. Fehlte ein Konto des Standard-Kontenrahmens, brach das Anlegen mitten in den Buchungen ab. Jetzt meldet die App vorher, welches Konto fehlt.

Geändert

  • Die Rechenregeln aller Auswertungen liegen jetzt an einer Stelle. Die Frage, welches Konto mit welchem Vorzeichen ins Ergebnis eingeht, war an acht Stellen einzeln ausgeschrieben – in den Exporten, in der Saldenliste und in den Berichten. Eine Änderung daran musste bisher überall nachgezogen werden. An den Zahlen ändert sich nichts; sie sind jetzt nur an einer Stelle festgelegt und erstmals automatisiert geprüft.
  • Der Sortier-Vergleich der Tabellen war dreifach vorhanden und ist es nun einmal. Sortierung und Sicherheitsabfragen sind damit in allen Ansichten garantiert gleich.

Technisch

  • Statische Analyse (PHPStan, Stufe 5) läuft jetzt bei jeder Änderung mit und fand die drei oben genannten Fehler.
  • Der 1149 Zeilen lange ExportController ist in Dienste aufgeteilt: CSV, Beleg-Archiv und die druckfertigen Berichte je für sich, der Controller behält nur die Auslieferung (158 Zeilen).
  • Frontend-Unit-Tests (Vitest) für die Rechen- und Anzeigehelfer; der Testbestand wächst von 118 auf 210 Tests.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureVJDiJR0wAF6OF052v41IlOKnSdqYFS+pI1+dFRngpf5U228GkukeyPqI033CH4Q3hummVmpRiAFGTi5n9g403rp88tFm8lw69XuqW2KKFwDkzc5EE0wVs3AVJgHeREn/NotbVAVvItr6+4wdPE4vKY4MnSVrwwPFWyQPhYMcy7ps0GEKQOKIIg8K5FiRvpgFF4M8/24xcDJSX9P6ySetzjjCUewbWBCq90qjAkf1dedOmwpk/WJ6EzDMuOpXjK866ruUFpU6UMHarVV5JY0IO97AJym3rJVUbtF7pkCI4gQVjVAFmcux+rnXm7vLN5EHGRF9cQCgy5REcQAKavKY0k2KS48L/zRjsvzEv0dY/IWAraVowHLkJUDonnUelUPZJ3J6S6CekKswO2oQdXnCc2jGNSY7QS8s2ck9NsnCSeX66hEMC4fI8cZUTeFM5sr4IP7ABKXq4f/DOZ2kl1klwKZjVeCSkD5SQvB4Lt5vq+kj2CzULsoM5EyrxLuvdYt/cOMluMhFdKg8H0Mubcc/TnIMEMGj2ODw7z7z1g5KQdGDPYEQ2JDgUKQ2gxW9exq98q0FmXq95K1ppLvC0c8sDezQF5leB2eVH/c0yDzc6xsDpWbkc9MQiNLofdqyXWHBvvrqKnl7x7qBn8U9BdefGUuFba3HekdHxLZFAm6OPsg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.15.0
Release Details
UpdatedJuly 31, 2026, 6:56 p.m.
Changelog

Behoben

  • Gelöschte Buchung gab ihren Bankumsatz nicht wieder frei. Wurde ein Buchungssatz gelöscht, der durch das Zuordnen eines Bankumsatzes entstanden war, blieb der Umsatz auf „zugeordnet" stehen – mit einem Verweis auf einen Buchungssatz, den es nicht mehr gab. Er tauchte danach nirgends mehr auf: nicht unter Zuzuordnen (dort stehen nur offene Umsätze) und nicht in den Salden (die kennen nur Buchungen). Auch die Bank-Abstimmung führte ihn weder als gebucht noch als offen, sodass der Kontostand still vom Bankauszug abwich. Der Umsatz steht jetzt nach dem Löschen wieder unter Zuzuordnen und lässt sich neu zuordnen – derselbe Stand wie beim Aufheben einer Zuordnung.
  • Belege eines Jahres konnten beim xbuc-Import verloren gehen. Die Dublettenprüfung des Zusammenführ-Imports beschrieb eine Splittbuchung nur über eine ihrer Zeilen. Eine eingehende Buchung, die zufällig auf diesen Teilbetrag passte, galt dadurch als bereits vorhanden und wurde stillschweigend übersprungen. Der Vergleich betrachtet jetzt die ganze Buchung, und beide Seiten des Vergleichs bilden ihren Schlüssel an derselben Stelle.
  • Beleg löschen konnte einen Datensatz ohne Datei hinterlassen. Die Datei wurde vor dem Datensatz entfernt; schlug das Löschen des Datensatzes fehl, blieb ein Beleg zurück, der sich nicht mehr öffnen ließ. Jetzt gilt auch hier die Reihenfolge, die beim Löschen einer ganzen Buchung längst galt: erst der Datensatz, dann – nach erfolgreichem Abschluss – die Datei.

Geändert

  • Der Jahresabschluss schützt jetzt auch die Konten-Stammdaten. Bisher war ein festgeschriebenes Geschäftsjahr nur gegen Änderungen an den Buchungen gesichert. Über das Konto ließ sich sein Bericht trotzdem nachträglich verschieben: Ein Wechsel der Kontoart dreht das Vorzeichen, ein Wechsel des Geldkonto-Kennzeichens verschiebt das Konto zwischen Vermögensübersicht und Einnahmen-/Ausgaben-Rechnung – das archivierte Jahresergebnis änderte sich, ohne dass eine einzige Buchung angefasst wurde. Kontoart, Geldkonto- Kennzeichen, Sphäre, Rücklagen-Art und Kostenstelle lassen sich deshalb nicht mehr ändern, solange das Konto in einem abgeschlossenen Jahr bebucht ist; wer die Änderung braucht, eröffnet das Jahr wieder und schließt es danach erneut ab. Nummer, Name, Kategorie, Aktiv-Schalter und Überkonto bleiben frei änderbar – sie ändern nur Beschriftungen, keine Beträge.
  • Konten stehen jetzt im Änderungsprotokoll. Anlegen, Ändern und Löschen eines Kontos wurden bisher nicht protokolliert – ausgerechnet die Stammdaten, aus denen jede Auswertung gerechnet wird, waren für die Kassenprüfung unsichtbar. Bei einer Änderung vermerkt das Protokoll zusätzlich, ob ein auswertungsrelevantes Feld betroffen war.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureP7cVaIPv213NPHt6juPqCRD4S2odKrN+G8KhhxyDeKw7BKUxrWvSaOiQCEwBmvQzUCYWUDf0OacHyUlh6nmJEWFmuux3X6wIY3AuGQx/gg37EMyMCod8JA82iPNAMLXML1bEIeU9RGEIbmtdc6CmNEV+TlEBCp02kskc/V1FytAkCREPOCfCr7DodbD6FZtrjN+VloewQblps1KCCye9tm1v7mMDRDexPv2jiATXsKqS/D/ostXEh/SGTtX1saXxlFpMJss8WYgRNCMbzGMW6i+k2ND/iiEAzBFBKwFY0w4YunU4zo2x6Y3z7SCPeSLP0AagS4LI2vv5vKeq2jHyqtnXTS6Zi6tba2P6ObB0stmW6lzc6p58UW3Dvw9Irm58hAa7QqvqUheI2t0haws3Cah2/e95eOqk/+tFcGS1k6C1sPVQVlcEFjMyLN2a88YKW32okbQhzCEixkockVQQbWfY40Shqg64ZSfGGR6VAgHck6rioYnQJE2H5+3SexdzsYkJVY2jJ00tLIdCDpq2Z3M5AZSjxHpGcRyJ+w+6EIx10SbOdsqxQw0/FEnAC8Bk4d1vcodBZBwXFav/Ew6diriLx49vhFQZvlvmshNbREyFYiWskPUKE46NTOVHZVGZqLlkQD4vFbu61PWYR8swhuYhqMwPbsxkzbxIf2JQuQU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.13.0
Release Details
UpdatedJuly 31, 2026, 8:50 a.m.
Changelog

Hinzugefügt

  • Frei definierbare Kostenstellen. Bisher leitete die App die Kostenstelle aus dem Kontenrahmen ab – entweder aus der zweiten Zahlengruppe der Kontonummer oder „ein Konto = eine Kostenstelle". Beides setzt einen bestimmten Kontenaufbau voraus. Jetzt lassen sich Kostenstellen unter Einstellungen → Kostenstellen frei anlegen und Konten ihnen ausdrücklich zuordnen; beliebige Konten können so zu einem Projekt zusammengefasst werden. Der neue Modus heißt „Frei definierte Kostenstellen" (Einstellungen → Kostenstellen-Modus, nur Verwalter). Die beiden bisherigen Modi bleiben unverändert Standard – bestehende Auswertungen ändern sich nicht. Die Zuordnung geht einzeln im Konto-Dialog oder für viele Konten auf einmal. Angelegte Kostenstellen erscheinen im Bericht auch ohne zugeordnetes Konto, damit eine fehlende Zuordnung sichtbar ist.
  • Umbuchen direkt im Kontoauszug. Wer beim Durchblättern eines Kontos (Tab Konten) eine falsch zugeordnete Buchung findet, bucht sie an Ort und Stelle auf ein anderes Konto um – der Umweg über das Journal entfällt. Umbuchen lässt sich jede Seite der Buchung, also auch das Gegenkonto. Geändert wird ausschließlich die Kontozuordnung; Betrag, Datum, Beschreibung und die Gegenseite bleiben, sodass Soll und Haben nicht auseinanderlaufen können. Abgeschlossene Geschäftsjahre bleiben gesperrt, jede Umbuchung steht im Änderungsprotokoll, und eine zwischenzeitliche Änderung durch jemand anderen wird erkannt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturerYLg9/W+aZy3UR2gm/vOTWoLkk4IZrBuLDSsMcqIA1ezxdDhM4DCie+hHnru5bowZ4ZqOE8XmhrBYJCF9F8Wg3zyklma7eMmTKWMHy0mlys+/SYrmnPOfrzUyA/3PvFLNztuRJgyVeL/bI/0fp4QQ5YUTHG6oQHcY9NZXeB1Yy9AJAOP/oBHHdA9RDSONWvDJKgpLAgKBHcpj8J9SPCeVOviwHla4B2fbLKjpJu185Ee7SsvjXQJYatX0SV1/Hy65I0o5xfst63HfBj8vMYkiu6vxz3bU8kp5jUJKWWmDiB9qQHByk5srK1Wu/R/gZKgfxp+EtU1SWYaZFIU5ZlynNgtZpx63083sBz/UgryqKitjmOvD1Qw1UAi4sP5BMm8IKjZCCHY1mBImO/sIQqa7MjpcLulmnOmAXorbAgfG9ZaXFrk0AafHeQRzemtQ5nvlYpl8Z58F11ZuVKudYhsciBek7SHIhHTbs99aOsb934bzlaN+lZelZfm5J0OyCJaBv7zCKPQqMuBUNioV/w2ntAY/CyY2TK2gfJb2wMjJmNNR5s7hRcWVIPpklXxE/o44NSsckDDnzA4FemD7tswK8tTftO/v+Qk04kzjHi984idYXoHWSwFAYYiZxmL2oB6OOs+MXh9dGQUbpctC2pOAeSdO0J0dO/7D+MkKtaBrYA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.12.0
Release Details
UpdatedJuly 30, 2026, 4:01 p.m.
Changelog

Hinzugefügt

  • Kontoauszüge in zwei weiteren Formaten: neben der bisherigen CSV liest die App jetzt auch CAMT.053 (XML) und MT940. Welches Format vorliegt, erkennt sie am Inhalt der Datei – die Endung spielt keine Rolle. CAMT.053 ist die bessere Wahl, wo die Bank es anbietet: Vorzeichen, Datum und Zahlungsbeteiligte stehen dort eindeutig drin, statt aus Spaltenüberschriften erraten zu werden.
  • Wachordner: Auf Wunsch liest die App Kontoauszüge selbstständig aus einem Nextcloud-Ordner ein (Einstellungen → Kontoauszüge automatisch einlesen). Den heruntergeladenen Auszug dort ablegen genügt; stündlich sieht ein Hintergrundjob nach. Verarbeitete Dateien wandern nach verarbeitet/, nicht lesbare mit Begründung nach fehler/ – gelöscht wird nichts. Setzt System-Cron voraus. Das ersetzt das Hochladen von Hand, nicht das Herunterladen bei der Bank.
  • Vorgemerkte Umsätze aus CAMT.053 werden übersprungen. Sie ändern sich beim endgültigen Buchen häufig noch und kämen sonst ein zweites Mal herein.
  • Mehrere Bankkonten werden unterschieden. Am Geldkonto lässt sich die IBAN hinterlegen (Tab Konten → Konto bearbeiten, nur bei Geldkonten); beim Zuordnen einer Bankbuchung wählt die App daraufhin das Geldkonto, auf dem der Umsatz tatsächlich gebucht wurde. Bisher landete alles auf dem ersten Bankkonto des Kontenrahmens. Ohne hinterlegte IBAN – oder wenn der Auszug keine mitbringt – bleibt es beim bisherigen Verhalten. Wer mehrere Konten führt, sollte CAMT.053 oder MT940 exportieren: dort steht die IBAN verlässlich, in der CSV mancher Bank nur eine Kontonummer.

Behoben

  • Derselbe Umsatz landet nicht mehr doppelt, wenn das Exportformat wechselt. Die Dublettenerkennung hing am eigenen Konto, und das schreiben die Formate verschieden: die CSV mancher Bank führt dort nur eine Kontonummer, CAMT.053 immer die volle IBAN. Zusätzlich zum bisherigen Vergleich prüft die App Umsätze jetzt über Datum, Betrag und Text gegen die bereits vorhandenen Bankbuchungen.

Sonstiges

  • Die Umsatzquellen liegen hinter einer gemeinsamen Schnittstelle (lib/Service/Statement/); Dublettenerkennung, Regeln und Import-Protokoll sind für alle Formate dieselben. Der MT940-Parser ist zugleich die Vorarbeit für einen späteren FinTS-Abruf, der genau dieses Format liefert.
  • Das Import-Protokoll hält fest, aus welchem Format ein Import stammt; Geldkonten können ihre IBAN tragen (Migration 122).
  • Unit-Tests für beide neuen Parser sowie ein Kreuztest, der denselben Kontoauszug in allen drei Formaten vergleicht (61 Tests).
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureYrd0NVVBI48qEcLJqlW2g3q/DsCa4M/I4Dap6Y7XZoLqHbFQtEHZiGe5WGYmrRZxZaiS38aXU62p6tx2uqB+V5cYI7xSomdVQtN/PlHS0hXRjO5OunZIpXdSaplQn0BiBhuN9iP+Vdrwc395yav9MegQE1opuH5kj2xPgKQyUbUehBedJ4rV+ePyXm2KFXsfv3DFeYjp9R16i41D+fD912hJskD3BNwIgqh0NRalj4KkwrIES46Ym7TZoZ14Jx0NJdh99l4/EXgdRicoSWEUT3aRxhbN+4qfAwa8MsDhL4K+jv4OhqDFxlD5yQKRqr6YsU9wxJ1HmMH8rutukusf18IQsgQjjl4zuwtwNFjrx18LhnUuozOQgRtVVZrQNXGneZ8ZLa7h6iZLUIkoiGtrrSyl0rXJFcg4LRmCz62Q9BaXCO9N8LhgxLa9TPKKJtoSroEbbFAHNewd5ir03uudK/UA6hr6n3GXNAtlTdyMAle9r7JY2DuvIJe+ftEHNqMC9prT2M1E2qb/nSgYk+RziNaqt4Yd5POjG65TCNEQOKIQ/aUpixnKXUFwzS+fJpFmGA1b+eULBKo0r5Q17xAluMjlw3lBsGcwozKXHc1KeCKIiZfjx9x+y1XMNuzeDaWG1g8kd2sjVTwY2vW+lS/d/R/K1GE2My5qoMILXPZ8+ko=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.11.2
Release Details
UpdatedJuly 29, 2026, 3:43 p.m.
Changelog

Behoben

  • Beträge werden nicht mehr abgeschnitten. In Tabellen hatte die Betragsspalte eine feste Breite von 100 px; längere Werte wie „28.798,68 €" wurden mit „…" gekürzt und ließen sich falsch lesen. Die Spalte wächst jetzt mit.
  • Mobil: „Buchungen" in der unteren Leiste war gekürzt („Buchun…"). Die Einträge teilen sich die Breite jetzt nach Inhalt statt zu gleichen Teilen.
  • Mobil: zu kleine Tippziele. Schaltflächen, Auswahlfelder und Eingabefelder waren teils nur 24–36 px hoch. Sie sind jetzt mindestens 44 px – auch auf Tablets, die per Finger bedient werden, aber das Desktop-Layout bekommen.
  • Mobil: lange Kontonamen im Kontenbaum wurden gekürzt und waren damit nicht mehr unterscheidbar; sie brechen jetzt um.
  • Mobil: das Ende langer Listen lag unter dem schwebenden Buchungs-Knopf und war nicht lesbar.

Sonstiges

  • Ausführliche Beschreibung und Screenshots für den Nextcloud App Store.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureDikykvZ2qeSFgT2rqRn1/K6d7txbP7OEC32gKuFsiCeigdGhCtrIHnVWHhA4ddYVzD+A5w+jgbYrYMzkgZcFS/cJE69wPzosrfHtsfrR1AXnFJprlr1fEU7gM2imvESCrjGS0s8KEeOczNzOTrhw6vtaWm4zbpYth5MLdMZmYFFTxtCQ67VIKIDNZhSVBS+dlbgKma5HobySt4IwUZeR+6qhMtZQZbmMCJ1LSuwPs6QCVTfAxXRlEBkuIdS0VYiBn3jDaoCfBV8tGZjpAG63npnwXIfJJd4HeCyDpMzDx0h/z6JpXKEcJuujT2vnrbjgCgqPOQX6qqCFru7djJ8o1BLR1pO8qNiTn194HAgOH/2cKzaJ/RbYAUXds7qW8aQgxvviJ9adZGRf3zC3jyYB49EGdYB/rKG8Lnn8mhDFkF7iXej4kwz/myXK8MTldP/xctXSC/zinorrnHaRo28XNtFDq5GazeVXpK7/9nvyt3SE49zoABnAEKDw6SYZrVCLX4+J8bbM6yk/ohFE3g1KL2/wXL1GnE1spwuz/OamTPJUqgVNJyV3MyzxG5aHpGxdj3lmctGt8eO34tXvHzofVmHvrhnEbEIcyMlphbOWD2mCiGkmltuGjJqvMJpLbSyZIe/oAXkJ7IiY3KGIRpiKlGUueiQlo0UbI1L+ubF/Uak=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.11.1
Release Details
UpdatedJuly 29, 2026, 3:03 p.m.
Changelog

Erste im Nextcloud App Store veröffentlichte Fassung. Am Programm selbst ändert sich gegenüber 0.11.0 nichts.

Sonstiges

  • Die App wird jetzt mit dem von Nextcloud ausgestellten Zertifikat signiert (appinfo/signature.json) und im App Store veröffentlicht. Das Paket zu 0.11.0 war noch unsigniert und ist deshalb nur über ein direktes Deployment aus dem GitHub-Release installierbar.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureRqufs3+r1UDzVeNY47cnz/w6ATGHouz8ape7ZHM3P5KFdQNcJ6RYVIO+epIwjLtAeVJdMgfEDJwafg1dx757MvkBsfr4fO9yBiP0yNmKeVwdm3G/7vM+WTHYg9CpRNYN2AivshD6OdD5axADiNnBU0jk+qw5szzQ77+pYkxHFMrTC1pbM8VWuTD/F+PrU0V7617dl2nDG7ZWwzjFgP65k6y3lr7hFi46LDiIvwWNv8leoggPU3YoB4YywRdXqhIHImtdBs/fauWamzU49TY22hPqSTPFsAVqyW/RI7Jw599oTCozx0W92XQilBZOGdUQb1Lr8nS+DJs6fGz6eJXbJQd2K81qqSyyIN06UcBudD6zCu5DdLuPLg0kWs7vwq5wI/4AXpBb5xadncHFtJOaNNoCJ2v7+C7d1ZaJ3kfv6ZNnVcuEYYQsNfuitHmmNzATyWSH2+hzXj/fZfpZA0vyHDLa4XkCPMwOi55IaPuvCdEaKE+RTf6hEdnul7MhU8C8BUFHKp3HlkdzJLPmffyf3vTDFoRnvtA2isMEXrkE2u9Usk9X1DlOXxn4PjmCYGNEm54YfVpTGRiY8i972c9XIjwmlpUIaqYARzgSad2kT23TXEMmzsPp7/kM2DjAqmEJbe+Lgl87Z7ZseXBHSnJXd1JjtxYJCm4og7lA2zSagvY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0

Nextcloud 28

Vereinsbuchhaltung 0.22.4
Release Details
UpdatedAug. 15, 2026, 12:35 p.m.
Changelog

Geändert

  • App-Store-Beschreibung aktualisiert: Das seit 0.20.0 bestehende Beiträge-&-SEPA-Modul (Mitgliederverwaltung, Lastschriftmandate, Sammeleinzug, eigener Reiter) fehlte dort drei Releases lang komplett. Ergänzt, außerdem CAMT.053/MT940 und der Wachordner beim Kontoauszug-Import – bisher war dort nur CSV-CAMT genannt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signature4LRi0axgsMDOcm6JxlvfjNIxZrlCLVndYp1Nj1ffQ3gJMixwlFkR0kI8Eri3poO2kHRfnc5hFZZh+0qQ3nFBBDPLoSXIlwXOdh0C3/CsZxPvyYSFjbW5ZP6+e0LhExYd7UMl1lNeXNqAgfqw2GBiwRXeBFf1lwkcoDWJY6GF8U2KDSwttbjQny3cK60u4nHfHM0ye+NochsmaoUdUyJCuvV1fsERFp2bDYt8KmwJWB6gIX7koTp+4JXIEFzxuREAij0b5A8XOZlMQvlGYKcZatwyR8oQXFPOLUBRt3yZgAfWx9+nx9GXaMQYQ2l1p3nv9C/TmgiMdpALvHfhFCBnqIVvcEBMizpNmRyPEelbb1Q3N4/2kRmbqV0e5dApltmb6zdcdWGl26PIGyTjgmN0jFiftM9OGIcinCBBH6vEpo/y6GBsthf1cLbBGYYe+qZMamxruF58MQ01KCkCzUtGSENUVfJKtS04v7+0gB0SPMkAh/KJb4bNf9qajfqD+1apWm5ceWBtTY293YlqGfEDDXPWeRfp1YcFfxkul4H/tLwVeonyFQJBZ7FTxeDUAeY+JlrruIs79av7ERKGFbS/4LHdQc1G992yy6BvTFVK5f/7M0tWAgYteUHD0IVdKlPRPiGrg+oycs/XN6v+RE9uLdHSJrUIMJZXf79DNpI47fo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.22.3
Release Details
UpdatedAug. 15, 2026, 12:31 p.m.
Changelog

Behoben

  • Konto-/Kategorie-Auswahl auf dem Handy war unbedienbar: Das Bottom-Sheet zur Kontoauswahl (AccountPickerSheet.vue) rendete zwar in den DOM, blieb aber unsichtbar und unklickbar hinter dem Buchungsdialog – Nextclouds eigenes Core-CSS (#content { position: fixed }) erzeugt einen Stacking-Context, in dem das Sheet trotz hohem z-index gefangen war, während NcModal (der Buchungsdialog) dem entkommt, weil @nextcloud/vue seine Modals an document.body teleportiert. Das Sheet tut das jetzt auch (<teleport to="body">). Gefunden im Gesamt-App-Review, siehe APP-REVIEW.md.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureknAf0tPINZuLUg1pagqwrKg05TXChSaJ4x8RZTzPAJb0p3KwCoujY9sFQcjXmJGzu+Zb/3V0yNdJrzeZYVdl6272s6V0D28Yk2t7wFeyY1EKr/HsX0KjIQ4g8iCbZ13JfZOftXuoIIbGNYCR/N1r9R3559J49r0npp2F7ieEZ79eCdehumskUMxvjLnElh2tB4rfxk/JH42/PoBPuftBGJTQo3N6g5B9GmFIWKEE+EytiSN7F0Y8PCWdXts4rNQDaPvWnu40GHvJHfLv9wfX/21Kjtt8pB2WdJFWAvkrDLMXFsAwOJsQ+nprVm9jRQzQv2BmP4K4eBoHietPezxrJSqHgfFSz8jG0yTWRgOaj/BdSv8AbgxvubwS9F+l1HDNzj2tFH4WjiITbYv/MdZWmhz8+aTtlhet5uB61eSwGoO8r0Gwss/NoWcO/oq9beqH7Z8uWr4724Q2r+58PWZFdeZ4HNH5PzJxnNaew0KY0sb6HDkdKUbcgXwxywImKJuNQU2J9HWKrWlledlf2gXOmHpcHhH8mfiKgiQ4I5SN9w9ikJ33UROZfBK1kt9CRmwW09oPsV8ARAS3pp0l8wnTsdwuIYxMWoWoIqGgWfdfUTUfXljwsjKl88/wlxj/E4QOjYxJlOo7AOr2XnMjzgDHb5AD6eyPxpzvu0hLDUQCmUg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.22.2
Release Details
UpdatedAug. 15, 2026, 9:12 a.m.
Changelog

In appinfo/info.xml direkt von 0.21.0 auf 0.22.1 gesprungen und dann auf 0.22.2 weitergezählt, ohne dass 0.22.0/0.22.1 je getaggt oder veröffentlicht wurden – dieser Abschnitt fasst beide Zwischenstände zu einem einzigen, tatsächlich veröffentlichten Release zusammen.

Neu

  • Standard-Beitrag (Zahnrad → Beiträge & SEPA): ein einmal hinterlegter Betrag/Frequenz füllt „Mitglied aufnehmen" vor und greift auch im CSV-Import, wenn eine Zeile ein Start-Datum, aber keinen eigenen Betrag hat – bei 80–100 Mitgliedern mit demselben Satz sonst 80–100 Mal derselbe Wert von Hand.

Geändert

  • Navigation aufgeräumt. Das Zahnrad-Menü „Einstellungen & Import" hatte über die Entwicklungszeit 16 Abschnitte angesammelt – Einrichtung und laufende Arbeit ungetrennt nebeneinander. Neu:
  • Reiter „Beiträge" (Hauptnavigation, erscheint automatisch sobald das Modul genutzt wird): Mitgliederliste und SEPA-Sammeleinzug, vorher zwei Abschnitte im Einstellungen-Modal. Kennzahl im Reiter zeigt Beiträge im Rückstand.
  • Unterreiter „Regeln" (Tab Buchungen): Auto-Zuordnungsregeln, dort wo sie auch entstehen (Blitz-Button beim Zuordnen).
  • Kostenstellen- und Sphären-Pflege jetzt direkt in den gleichnamigen Berichten statt im Zahnrad – inklusive des Kostenstellen-Modus.
  • Das Zahnrad selbst fasst jetzt nur noch sieben statt 16 Abschnitte (Verein, Belege, Bankdaten, Beiträge & SEPA, Berechtigungen, Jahresabschluss, Daten). Der Wegweiser-Hinweis „Kontoumsätze importieren" darin entfällt ersatzlos – der Import steht seit 0.19 im Tab „Buchungen".
  • Keine Datenbank-Migration nötig; bestehende Installationen mit Mandaten/Beiträgen sehen den neuen Reiter sofort.
  • Import-Verlauf konsolidiert. Die Liste „Bisherige CSV-Importe" unter Einstellungen → Daten zeigte dieselben Angaben (Dateiname, neu, Dubletten) wie das Änderungsprotokoll ein zweites Mal – beide wurden bei jedem Import parallel beschrieben. Die Liste entfällt; im Protokoll (Berichte → Protokoll) blendet der neue Schnellfilter „nur Importe" alles andere aus. Die dafür genutzte Tabelle vbh_imports wird per Migration entfernt.
  • Buchhalter darf Mitglieder, SEPA-Mandate und den Einzug jetzt vollständig verwalten (vorher Verwalter-only) – die naheliegende Rollenzuweisung für eine Kassiererin ohne Rechtevergabe-Befugnis war sonst vom ganzen Reiter „Beiträge" ausgesperrt.
  • Mitgliederliste und Einzug zeigen auf dem Handy Karten statt einer siebenspaltigen Tabelle, die dort zeilenweise Buchstabe für Buchstabe umbrach.
  • Aktionsspalte der Mitgliederliste verdichtet. Seltene Aktionen (Bankverbindung wechseln, Mandat widerrufen, Löschen) stecken jetzt in einem Menü, „Bearbeiten" bleibt sichtbar – auch am Desktop ragte die Spalte vorher über den sichtbaren Bereich hinaus.

Behoben

  • E-Mail-Adressen mit Umlaut im lokalen Teil („m.müller@gmx.de") galten beim Anlegen eines Mandats und beim CSV-Import als ungültig – betraf reale, bei gmx.de/web.de/t-online.de zustellbare Adressen.
  • Bestätigungsdialoge für „Mitglieder übernehmen" und „Rückstand nachholen" zeigten einen roten „Löschen"-Button statt einer zum Anlegen passenden Beschriftung.
  • Der Reiter „Beiträge" blitzte beim Laden der App kurz auf, bevor er endgültig erschien.

Details und die zugrundeliegenden Personas/Testfälle siehe BEITRAEGE-REVIEW.md.

Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
Signaturex48JlqGMXQOEaHamNLU5I92XD8JO7RRlVz+NQWzdhhCHRf7bzPbVOwBBtNofZkAjw6FX/GYplKBB5R3C0SoybBvYu/czmifo5N7buFkuxe7GwMcRLe3nbRixjNY/qxWW5aEuR8PLaD/QHkRSWqc6aiUG+rg3kLKhpcug8CSn2IxCXVwALeB73oUz8P7UxsKtnmHyGOyi4SxCsog23Rt+LNgALU47xdN5sM6/rkt6HkO38pI/+CHzJWE7P+OrG+omt9q4LPrA+eTKIRgU8UUdVRv99ll+63WmgdBEUvn3DANgw6gjGHOdN3TPRqCbIpAXh1LD91NFg6J+e9DnbvkcZAWbPddUsYMyyCaXGtBSd6aCU5i4TwwHOpIisQZzWyFivOMcW1upaa+iHkVxU+ny82ED+ylXnp5QOn9k/502fdfKMSeEwV1Qs4i/K2nSjkXwxQUYP6nOt/0A4/+WLWOyCLneyqG+osmnrr+4jDuVNHw8i6rZHMkZuZlc9WWSllRHQvMG/2fktCtMGYTc71qYlm/sEw9V9yRDoJhuXgNEJJH9HgG59he/3ieUaRGWqzjNCfMa7slFbdIjjJlqvKeLpILU2vWPRdBTObn4drbtg8qaAegN+yntfAz9aAfDgceWjfhvkzacXkhQef+bHrTa1KDhf/U7Plj/8i2NmpnY3ZI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.3
Release Details
UpdatedAug. 7, 2026, 6:52 a.m.
Changelog

Geändert

  • Berichte-Seite: Reiter und Buttons wirkten überladen. Im Auswertung-Tab brachen bis zu 7 Export-Buttons (Kassenbericht, Kurzbericht, Beleg-ZIP, Prüfleitfaden, Saldenliste, E/A-Übersicht, Mehrjahresübersicht) neben den 6 Reitern mehrzeilig um und nahmen viel Platz ein. Kassenbericht und Kurzbericht – laut Handbuch die beiden meistgenutzten Berichte – bleiben direkt anklickbar, die übrigen fünf stecken jetzt in einem Menü „Weitere Exporte".
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureOPqKJZTl/5Eygp/CIw4spwFaccWUoG73jv1LRUd6Tn9lnr1Bdr/S2ki+dv3BrDSW1wXcPrTDWPvDEc08RQK7sCTBp5Uo1siR+hb9KEyq46iHPLHUfEQEy94s+fl2afy/yEpSK666eTpE5IEXfCOrvwhULbgrpbXMX5aEgK6cc9l8xjAMIA2t1+F1OXWKw7ikHuRVO+lh3Ky59SDzHKOkzh1cRhYNRw+4OgZiPTbUy1+08t0ZnIHpiLh/jpzTZvtTSbJxnLyv6T0YLX0KiiwuN581bajt9WgGasza81LGA3vzl5flfv9ULCwJgh5P2KS4yTBEF0/dVtn9k9cCL9s2Gx+RRBBgnZzSjynIOGOBq/jY0u3MhYhBiJ85sqZ9YbmK6Y6FJ+wVSIkAy9syctsz1mkz8E6o/KlrQS+Yx1gV/LPJo2aGLkgLOrW3bvlYZZgH/qFoHt9ZQ1RRqNp77k1lJz0JTZ8eEcXRuhTQrOoBtDyBwpVcPKbsKKi7WEtX8GwIVdxnvjlGTHGoXdn0TYI9ZhzRuk9C9d7eBn63SJv3XYazKRAj8GRZy82rTMPHaDVSNry5m9wN/mHWBAPzG/Lq750BqaMPnR3TT6+Z6U+hZ74mfRMqYbeLER+wXy9w3wS1sgqhrXFJP9k9uyaMzsK/q0VSEJx72CScqih0TFkTI2M=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.2
Release Details
UpdatedAug. 6, 2026, 12:57 p.m.
Changelog

Behoben

  • Kassenbericht und Kurzbericht erschienen auf Englisch, obwohl die Nextcloud-Oberfläche auf Deutsch stand. Nextclouds L10NFactory hält eine Sprache nur dann für „verfügbar", wenn im l10n/-Ordner der App eine Datei dazu liegt – für Deutsch gab es bisher keine, weil es ja die Quellsprache des Codes ist und l10n/de.json daher als überflüssig galt. Ohne diese Datei überspringt findLanguage() die deutsche Spracheinstellung des Nutzers und landet beim harten Fallback Englisch. Betroffen waren nur die serverseitig gerenderten Berichte (IL10N::t() direkt im PHP); die Vue-Oberfläche hat ihr eigenes, clientseitiges Übersetzungssystem und war nicht betroffen. Eine leere l10n/de.json reicht als Fix: sie macht Deutsch für Nextcloud „bekannt", ohne dass echte Übersetzungen nötig wären.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureSbvziLbdB13/4hZgbyRXt9y/XzLhT8WkHOT2/9zeTJden7m9Z9SbW7fdHzSiocnsJm/7A0mCQDslCbz5k7806djc792pRVlDFLlZhMOQGfSvFYhEwwVNaSYfk2TeR0boQoJrOKoFWyYa396LF5k4Ya4YE2uAmqpMBRv7Wm4LTTvp4EDqPIxXObEQbOGaAafkReTEQYE4h4Xzijrh+oo8BBpzhpcLiGKYpgpIGeQDmUeVGWpyh0ySGtf+46ENTC5Az+538hfY/fEQl6QtsHf9CacbSvEh+n6Lx2/gIQwjKN7FQsOM4w/3LQV/qlHqpFpoLEAJeG3/2IfbBnxKeuH0OZIFAslWtz2smxG5k9dYxn/nvFotD9meCvGWxwpeXFztx+zgv+zlcUOTdX0DQjRQQsnFGRejL+Pztl9TkG4I9ufke0DVm1/BYBhZdZ3cqf3QG3sSGDbsav5W4G+4BxVBe0y4ZDH35aVDV0cDh0HYfwfkVzqVwOcaf9NVfvoNFC2KVJXR/VlkEW9SPDRmLbafb+caQ6yqi0lviNq2x6V3xEcGS6ckQrjsiA1scbmFOFE5lE4jwdS9khHH7ZkLN0LyRtZagQMiaHI44rbfaxPCwE17U21RqJ3kR3kNJVOPcRSYycVzHmg3UKq0+Le6iF+X1XffZDgE9T1Z+9oIIvK8T64=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.1
Release Details
UpdatedAug. 5, 2026, 4:17 p.m.
Changelog

Geändert

  • Buchungsjournal: Zeilen brachen durch bis zu 4 Aktions-Icons zweizeilig um. „Regel anlegen" und „Löschen" stecken jetzt in einem Menü-Button; Beleg (falls vorhanden) und „Bearbeiten" bleiben direkt anklickbar. Damit passt jede Zeile wieder auf eine Zeile.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturelEiCh6gxSU93Jga+RtuXGddDMZuIP64Hl/hFEOOQYTCOMvsqCOL3CNkDY6Iv2nGBvOoyIF+N4woWkjDEmr30UKKmQ1bk2UYrszPPInXzqzS6TjiIs1i4s6h9lbu3Nb3Qiaat9j6b9kQGugayntbmEzSJdQ1Z1eNZAXQPqvxrmuy+uxUiIQntmDvQNWC4rBG9Gb+NmeGBiRe43NUR9q5A6UEADee5q1f2Ek8u/xVmjW9Cq/0lrbQkrtnDP8W6ZE7blpl6WBA970ImtF2uhYhaNA6XveNzSr5X1Tj8pgx9V2SA6tDRzL1KCYGFFpFH1HTADlUXCmZ3B3+hMx+TXNCs8nR4QJqKGd6vliMXi0yKYaZJ7hXfwOcF6fbTbqb9cNx04bhTEgz6Sy1cohvaVDI1ZbXZYoz+e+0FpO++1GOdxDoPSxi51v0mAlM1bVNRlZznlwKVO+CzsMLa4JrTnoRuF82ZS84GYn4lNAN0YfTofJNDWuoC99W27c8nkM+hHinkg/enqEB1EOeLHr03Ot6R18wbZZ7deZ8k39eWsAdW1JeV1xsYfuWgFv8uoi60gygHz0T5WixyIu1Qw8JzBw/p+qqlhxgzjw94PGbiiH5Qsew1srd86mKccReKp27yqFPdNix6htxHVtY8WV5e4w6u+qsu4nXfzMXUixLflmgDgLg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.19.0
Release Details
UpdatedAug. 5, 2026, 7:42 a.m.
Changelog

Behoben

  • Vorgemerkte Umsätze im CSV-Import konnten zu Dubletten führen. Die CSV-CAMT-Kontoauszüge führen anders als CAMT.053 keinen eigenen Statuscode, sondern schreiben den Buchungsstand als Klartext in die Spalte „Info" – „Umsatz vorgemerkt" wurde bislang nicht ausgewertet. Ändert sich ein solcher Umsatz beim endgültigen Buchen (typischerweise das Datum), erkannte ihn ein späterer, sich überschneidender Import nicht mehr als bereits vorhanden. CamtCsvParser überspringt vorgemerkte Zeilen jetzt wie schon Camt053Parser es für „PDNG" tut.

Hinzugefügt

  • Nicht zugeordnete Bankumsätze lassen sich jetzt löschen. Bisher gab es dafür keinen Weg – ein Umsatz, den die Dublettenerkennung bei einem sich überschneidenden Kontoauszugs-Import nicht als bereits vorhanden erkannt hat, ließ sich weder zuordnen (dann läge er doppelt im Journal) noch wieder loswerden. Der Papierkorb-Knopf in „Zuzuordnen" löscht einen einzelnen, noch nicht verbuchten Umsatz; bereits zugeordnete bleiben wie gehabt nur über den zugehörigen Buchungssatz löschbar.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureBnkYSlWxHsYfloYtjM8qy7z4ZHro+XGTush4dekzY9sqA99C2YPzzt9ZdF5u9607GP7kFZVea924jYOKfadCsC34UnDyxbRsbUoRuj8zAgP7dbvSVj6SNqfa3B1ZdH8aHGQmPzF4qmdObFx+9rQRJcOGIkGWbAHBkg044dyzwLWnNwpB4O2h91bIEm+0ArsA6VLtP6qW9os9e75pcNbNKl9O/kybpbM+5tdtSrz28PvR7R9Hngf3SyBUi3uwKpwMafUoj0IfMnTBxCyBH7Flq7m7OFJMOGz/TakXRoq/YxFydmV9dVeSP2VhZ/FxyMipMG1C9pmQ8yQq+JHEN2ZO6q1aWP/jcXb58JkSHrfFVx/R7y+uhbaOABUGBsdUy9+LepV5fGB1/BdVUbYA04G0ulC+5n0ixOYhzZsW0XWtKMykeuI5h75yil1rINce0/FA035SlhPIjPdrMKoTPS9GmwUvebCIYgbt39PzVUjT0GXJ5k9DA31GC81X2o+l/JLyLX1OW+e225KlRQfXdgjB0QUAPiaHelgiKB+T1FWUvb//BL+Gyc/mfGnA5VUNoyp7rxxOO3cQ05LbxiiNeyGodnAVNih6BqQUDk//N6q58dX9M9AUmo2pGstsn/WHwW/qyt00y47nrBp4dp+Z4opbKNDhxjIDm7xTQWFmfluVjfY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.18.0
Release Details
UpdatedAug. 2, 2026, 4:11 p.m.
Changelog

Hinzugefügt

  • Weitere Mehrsprachigkeit im Backend. Kassenbericht und Kurzbericht (beide als druckfertige HTML-Seite) sowie das Änderungsprotokoll (Berichte → Protokoll) erscheinen jetzt in der Sprache des Nextcloud-Profils statt fest auf Deutsch.
  • Alle bisher noch deutschen Fehler- und Bestätigungsmeldungen der Controller sind übersetzt, ebenso die Prüfmeldungen beim Anlegen und Ändern von Buchungen (Soll-Haben-Kontrolle) und die Fehlermeldungen der CAMT-/MT940-/CSV-Kontoauszugs-Parser.

Technisch

  • Statische Prüfmethoden (JournalService::validateLines(), JournalService::reassignPlan(), BookingService::validateParts()), die auch direkt aus PHPUnit-Tests ohne laufende Nextcloud-Instanz aufgerufen werden, liefern jetzt stabile Fehlercodes statt fertigem Text; die Übersetzung passiert in einer begleitenden Instanzmethode mit Zugriff auf IL10N. Die Parser (CamtCsvParser, Camt053Parser, Mt940Parser, XbucParser) erhalten IL10N als optionalen, in Tests weglassbaren Konstruktorparameter mit deutschem Fallback-Text.

Bekannte Lücken

  • Der CSV-Export der Auswertungen ist noch vollständig Deutsch.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureyT7SVmIOpa+ZxIYuUUiftY1NmsPnETQbPKz5hXSyXYJ2fSqVm/OBPOJyoI2EpaGulf2AqkZr3w8jXrWuh4U3J1m4IuaAK8zGhD47WCAzxFGZxc8iy6ITh0OckjLneDWxMwoQHJO/IggRVjBEaZXKdD2wrFPMjkXDUTBvlMr/YKJFE6bd1qJJ5UKXQedO51aNuRQR/O9UrXJ8IR6F5SmyWzrEvr8F/hNdiQioDnTA2vk1iB2bTciuc9qnQd13m1i43ToUuZfYSYflxBhAq/kMOCrUsICqXo3wy88DNIVuwaiEIPrXuMUBDXsmjcnh0dtku/iVTiOpPtkDjucmJ5bhLcuylyC1sYFt6d5emJlqMUOWHmhzC4eoQc9nv2uSq/VgCVUJd0V4dihQivViVEot+acr/xuHinPVt7YikF5ejoWt9//f8huYVa7O1dR2mKoY+nyOscA1lF1kFo7OYZ30KnerD5qjLJo508MDMWtAb7Pfzw3P423Jssl1h0zAPk7e2UWu+5ImshK7nr5+07Owyt/h41ASF4FeW8ePiUbn1hHgf86avEjbtMrQXajpZJp1AddBYuGCa19+V6jgLory4k8mLyTdCOz3O0nFTjEEU3hhq+BPbaoaztKx3W0FOtBsFEO/FyhaAxffkGjbU88lQoDSP9rX3lgH8oKX++nUHSY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.17.0
Release Details
UpdatedAug. 2, 2026, 3:16 p.m.
Changelog

Der erste sichtbare Schritt zur Mehrsprachigkeit: wer Nextcloud auf Englisch eingestellt hat, sieht jetzt eine englische Oberfläche statt einer deutschen mit englischen Brocken drumherum.

Hinzugefügt

  • Englische Übersetzung. Alle Vue-Komponenten der Oberfläche – jeder Tab, jeder Dialog, jede Fehler- und Bestätigungsmeldung – sowie die häufigsten Fehlermeldungen des Backends sind jetzt ins Englische übersetzt (l10n/en.json). Einen eigenen Sprachschalter braucht die App dafür nicht: wer sein Nextcloud-Profil auf Englisch stellt, bekommt automatisch die englische Fassung. Die Quelltexte im Code bleiben bewusst Deutsch – der Herkunftssprache der App –, Deutsch ist also unverändert die Fallback-Sprache.
  • Video in der App-Store-Beschreibung verlinkt.

Technisch

  • Eigener Lademechanismus für Übersetzungen im Frontend (src/lib/l10n.js): die Bibliothek @nextcloud/l10n geht davon aus, dass Englisch die Quellsprache ist, und lädt dafür gar kein Übersetzungsbundle – bei einer deutschen Quellsprache wäre das genau die falsche Sprache.
  • IL10N ist jetzt per Konstruktor in die Controller und Services injiziert, die nutzerseitige Fehlermeldungen werfen.

Bekannte Lücken

  • Kassenbericht, Kurzbericht, Prüfleitfaden und die CSV-Exporte sind noch vollständig Deutsch.
  • Ein paar Backend-Prüfungen (u. a. die Soll-Haben-Kontrolle beim Buchen, die CAMT-/MT940-Parser) bleiben vorerst Deutsch – sie sind bewusst ohne Nextcloud-Abhängigkeit gehalten, damit sie sich ohne laufende Instanz testen lassen.
  • Das Änderungsprotokoll (Berichte → Protokoll) zeigt seine Einträge weiterhin auf Deutsch.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureroXOT9h02u08zVmBOEm4AgtrqTyByeTNHUynP/GLWlj1W/PSVXK7rwHxjWbw/fnoVsuvroo5FdxY6sTMKgwWfcCYW9WC49dJylKK1FX8oKws1LefX9HqQbZvFeJ9L3grLLht92mwMthzuRfrCaQDygDBmpv1o3PhbrqJpox0zfx1jWd6jJhDpBeBjIcfBf+CyKan8BSSdwFjRUzCoJBIz+cHAB27MY5PfvrDdFmUtjHLvU/MifISIkMiVhxKtY1CnQtJd58t0zJcFvN0qjB85+DAAV9nR6YCcZjNw8UbCdetu5CThcQBPHJLnRXIIf+WP88PgRYkxgRw9d8QKMf2zklGsVTPJdtvacI9V2F5JOIimelYg3V4WacqcpO2F2xOfs6jXVS2E8MFAloWofhNnfVuTINQiHz8Ckw49QlyEr8Up6yEZ28tgJh0AKpQWsLUZ+SUd4PA2obilUrsFjFkEhAUbAPtu0kdKD6l3NYa9oXB4a2Pun6gNpD1qvhmRudPvyIGoYCoAsOstLAehk+eAiF6lfFLe/o0V+RiOn4L2lPt5c96acCwesJD9yZQbZIfbYFM5ddheBSYaJRzyLYJWsK2IETagwH4XVvH/vClPytgMNHiOG/s6LALfsQSUTzz8ktLZqU+U1BHlmqXaR9M2lvlEu2G9O+5ueYM3D3kX5E=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.16.0
Release Details
UpdatedAug. 1, 2026, 9:03 a.m.
Changelog

Diese Version bringt kaum sichtbare Neuerungen: sie räumt den Programmcode auf und sichert ihn gegen Fehler ab, die bisher niemand bemerkt hätte. Ein solcher Fehler kam dabei ans Licht – und er betraf ausgerechnet die Kassenprüfung.

Behoben

  • Der Beleg-Export als ZIP brach ab, sobald ein Beleg im Zeitraum lag. Die Funktion rief eine Methode auf, die es in PHP gar nicht gibt (ZipArchive::addStream); der Download endete mit einem Serverfehler statt mit einem Archiv. Betroffen war genau die Funktion, die eine Kassenprüfung braucht, um alle Belege eines Jahres auf einmal zu bekommen. Die Belege werden jetzt blockweise ins Archiv geschrieben – der Speicherbedarf bleibt wie vorgesehen niedrig, auch bei einem Jahr voller PDFs.
  • Der Kassenbericht ignorierte die dunkle Darstellung. Wer ihn bei dunklem Systemdesign öffnete, bekam schwarze Schrift auf weißem Grund in einem sonst dunklen Fenster – der Kurzbericht konnte es längst. Beide Berichte teilen sich jetzt dieselbe Gestaltung. Am Ausdruck ändert sich nichts.
  • Beispieldaten konnten halb angelegt liegenbleiben. Fehlte ein Konto des Standard-Kontenrahmens, brach das Anlegen mitten in den Buchungen ab. Jetzt meldet die App vorher, welches Konto fehlt.

Geändert

  • Die Rechenregeln aller Auswertungen liegen jetzt an einer Stelle. Die Frage, welches Konto mit welchem Vorzeichen ins Ergebnis eingeht, war an acht Stellen einzeln ausgeschrieben – in den Exporten, in der Saldenliste und in den Berichten. Eine Änderung daran musste bisher überall nachgezogen werden. An den Zahlen ändert sich nichts; sie sind jetzt nur an einer Stelle festgelegt und erstmals automatisiert geprüft.
  • Der Sortier-Vergleich der Tabellen war dreifach vorhanden und ist es nun einmal. Sortierung und Sicherheitsabfragen sind damit in allen Ansichten garantiert gleich.

Technisch

  • Statische Analyse (PHPStan, Stufe 5) läuft jetzt bei jeder Änderung mit und fand die drei oben genannten Fehler.
  • Der 1149 Zeilen lange ExportController ist in Dienste aufgeteilt: CSV, Beleg-Archiv und die druckfertigen Berichte je für sich, der Controller behält nur die Auslieferung (158 Zeilen).
  • Frontend-Unit-Tests (Vitest) für die Rechen- und Anzeigehelfer; der Testbestand wächst von 118 auf 210 Tests.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureVJDiJR0wAF6OF052v41IlOKnSdqYFS+pI1+dFRngpf5U228GkukeyPqI033CH4Q3hummVmpRiAFGTi5n9g403rp88tFm8lw69XuqW2KKFwDkzc5EE0wVs3AVJgHeREn/NotbVAVvItr6+4wdPE4vKY4MnSVrwwPFWyQPhYMcy7ps0GEKQOKIIg8K5FiRvpgFF4M8/24xcDJSX9P6ySetzjjCUewbWBCq90qjAkf1dedOmwpk/WJ6EzDMuOpXjK866ruUFpU6UMHarVV5JY0IO97AJym3rJVUbtF7pkCI4gQVjVAFmcux+rnXm7vLN5EHGRF9cQCgy5REcQAKavKY0k2KS48L/zRjsvzEv0dY/IWAraVowHLkJUDonnUelUPZJ3J6S6CekKswO2oQdXnCc2jGNSY7QS8s2ck9NsnCSeX66hEMC4fI8cZUTeFM5sr4IP7ABKXq4f/DOZ2kl1klwKZjVeCSkD5SQvB4Lt5vq+kj2CzULsoM5EyrxLuvdYt/cOMluMhFdKg8H0Mubcc/TnIMEMGj2ODw7z7z1g5KQdGDPYEQ2JDgUKQ2gxW9exq98q0FmXq95K1ppLvC0c8sDezQF5leB2eVH/c0yDzc6xsDpWbkc9MQiNLofdqyXWHBvvrqKnl7x7qBn8U9BdefGUuFba3HekdHxLZFAm6OPsg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.15.0
Release Details
UpdatedJuly 31, 2026, 6:56 p.m.
Changelog

Behoben

  • Gelöschte Buchung gab ihren Bankumsatz nicht wieder frei. Wurde ein Buchungssatz gelöscht, der durch das Zuordnen eines Bankumsatzes entstanden war, blieb der Umsatz auf „zugeordnet" stehen – mit einem Verweis auf einen Buchungssatz, den es nicht mehr gab. Er tauchte danach nirgends mehr auf: nicht unter Zuzuordnen (dort stehen nur offene Umsätze) und nicht in den Salden (die kennen nur Buchungen). Auch die Bank-Abstimmung führte ihn weder als gebucht noch als offen, sodass der Kontostand still vom Bankauszug abwich. Der Umsatz steht jetzt nach dem Löschen wieder unter Zuzuordnen und lässt sich neu zuordnen – derselbe Stand wie beim Aufheben einer Zuordnung.
  • Belege eines Jahres konnten beim xbuc-Import verloren gehen. Die Dublettenprüfung des Zusammenführ-Imports beschrieb eine Splittbuchung nur über eine ihrer Zeilen. Eine eingehende Buchung, die zufällig auf diesen Teilbetrag passte, galt dadurch als bereits vorhanden und wurde stillschweigend übersprungen. Der Vergleich betrachtet jetzt die ganze Buchung, und beide Seiten des Vergleichs bilden ihren Schlüssel an derselben Stelle.
  • Beleg löschen konnte einen Datensatz ohne Datei hinterlassen. Die Datei wurde vor dem Datensatz entfernt; schlug das Löschen des Datensatzes fehl, blieb ein Beleg zurück, der sich nicht mehr öffnen ließ. Jetzt gilt auch hier die Reihenfolge, die beim Löschen einer ganzen Buchung längst galt: erst der Datensatz, dann – nach erfolgreichem Abschluss – die Datei.

Geändert

  • Der Jahresabschluss schützt jetzt auch die Konten-Stammdaten. Bisher war ein festgeschriebenes Geschäftsjahr nur gegen Änderungen an den Buchungen gesichert. Über das Konto ließ sich sein Bericht trotzdem nachträglich verschieben: Ein Wechsel der Kontoart dreht das Vorzeichen, ein Wechsel des Geldkonto-Kennzeichens verschiebt das Konto zwischen Vermögensübersicht und Einnahmen-/Ausgaben-Rechnung – das archivierte Jahresergebnis änderte sich, ohne dass eine einzige Buchung angefasst wurde. Kontoart, Geldkonto- Kennzeichen, Sphäre, Rücklagen-Art und Kostenstelle lassen sich deshalb nicht mehr ändern, solange das Konto in einem abgeschlossenen Jahr bebucht ist; wer die Änderung braucht, eröffnet das Jahr wieder und schließt es danach erneut ab. Nummer, Name, Kategorie, Aktiv-Schalter und Überkonto bleiben frei änderbar – sie ändern nur Beschriftungen, keine Beträge.
  • Konten stehen jetzt im Änderungsprotokoll. Anlegen, Ändern und Löschen eines Kontos wurden bisher nicht protokolliert – ausgerechnet die Stammdaten, aus denen jede Auswertung gerechnet wird, waren für die Kassenprüfung unsichtbar. Bei einer Änderung vermerkt das Protokoll zusätzlich, ob ein auswertungsrelevantes Feld betroffen war.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureP7cVaIPv213NPHt6juPqCRD4S2odKrN+G8KhhxyDeKw7BKUxrWvSaOiQCEwBmvQzUCYWUDf0OacHyUlh6nmJEWFmuux3X6wIY3AuGQx/gg37EMyMCod8JA82iPNAMLXML1bEIeU9RGEIbmtdc6CmNEV+TlEBCp02kskc/V1FytAkCREPOCfCr7DodbD6FZtrjN+VloewQblps1KCCye9tm1v7mMDRDexPv2jiATXsKqS/D/ostXEh/SGTtX1saXxlFpMJss8WYgRNCMbzGMW6i+k2ND/iiEAzBFBKwFY0w4YunU4zo2x6Y3z7SCPeSLP0AagS4LI2vv5vKeq2jHyqtnXTS6Zi6tba2P6ObB0stmW6lzc6p58UW3Dvw9Irm58hAa7QqvqUheI2t0haws3Cah2/e95eOqk/+tFcGS1k6C1sPVQVlcEFjMyLN2a88YKW32okbQhzCEixkockVQQbWfY40Shqg64ZSfGGR6VAgHck6rioYnQJE2H5+3SexdzsYkJVY2jJ00tLIdCDpq2Z3M5AZSjxHpGcRyJ+w+6EIx10SbOdsqxQw0/FEnAC8Bk4d1vcodBZBwXFav/Ew6diriLx49vhFQZvlvmshNbREyFYiWskPUKE46NTOVHZVGZqLlkQD4vFbu61PWYR8swhuYhqMwPbsxkzbxIf2JQuQU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.13.0
Release Details
UpdatedJuly 31, 2026, 8:50 a.m.
Changelog

Hinzugefügt

  • Frei definierbare Kostenstellen. Bisher leitete die App die Kostenstelle aus dem Kontenrahmen ab – entweder aus der zweiten Zahlengruppe der Kontonummer oder „ein Konto = eine Kostenstelle". Beides setzt einen bestimmten Kontenaufbau voraus. Jetzt lassen sich Kostenstellen unter Einstellungen → Kostenstellen frei anlegen und Konten ihnen ausdrücklich zuordnen; beliebige Konten können so zu einem Projekt zusammengefasst werden. Der neue Modus heißt „Frei definierte Kostenstellen" (Einstellungen → Kostenstellen-Modus, nur Verwalter). Die beiden bisherigen Modi bleiben unverändert Standard – bestehende Auswertungen ändern sich nicht. Die Zuordnung geht einzeln im Konto-Dialog oder für viele Konten auf einmal. Angelegte Kostenstellen erscheinen im Bericht auch ohne zugeordnetes Konto, damit eine fehlende Zuordnung sichtbar ist.
  • Umbuchen direkt im Kontoauszug. Wer beim Durchblättern eines Kontos (Tab Konten) eine falsch zugeordnete Buchung findet, bucht sie an Ort und Stelle auf ein anderes Konto um – der Umweg über das Journal entfällt. Umbuchen lässt sich jede Seite der Buchung, also auch das Gegenkonto. Geändert wird ausschließlich die Kontozuordnung; Betrag, Datum, Beschreibung und die Gegenseite bleiben, sodass Soll und Haben nicht auseinanderlaufen können. Abgeschlossene Geschäftsjahre bleiben gesperrt, jede Umbuchung steht im Änderungsprotokoll, und eine zwischenzeitliche Änderung durch jemand anderen wird erkannt.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignaturerYLg9/W+aZy3UR2gm/vOTWoLkk4IZrBuLDSsMcqIA1ezxdDhM4DCie+hHnru5bowZ4ZqOE8XmhrBYJCF9F8Wg3zyklma7eMmTKWMHy0mlys+/SYrmnPOfrzUyA/3PvFLNztuRJgyVeL/bI/0fp4QQ5YUTHG6oQHcY9NZXeB1Yy9AJAOP/oBHHdA9RDSONWvDJKgpLAgKBHcpj8J9SPCeVOviwHla4B2fbLKjpJu185Ee7SsvjXQJYatX0SV1/Hy65I0o5xfst63HfBj8vMYkiu6vxz3bU8kp5jUJKWWmDiB9qQHByk5srK1Wu/R/gZKgfxp+EtU1SWYaZFIU5ZlynNgtZpx63083sBz/UgryqKitjmOvD1Qw1UAi4sP5BMm8IKjZCCHY1mBImO/sIQqa7MjpcLulmnOmAXorbAgfG9ZaXFrk0AafHeQRzemtQ5nvlYpl8Z58F11ZuVKudYhsciBek7SHIhHTbs99aOsb934bzlaN+lZelZfm5J0OyCJaBv7zCKPQqMuBUNioV/w2ntAY/CyY2TK2gfJb2wMjJmNNR5s7hRcWVIPpklXxE/o44NSsckDDnzA4FemD7tswK8tTftO/v+Qk04kzjHi984idYXoHWSwFAYYiZxmL2oB6OOs+MXh9dGQUbpctC2pOAeSdO0J0dO/7D+MkKtaBrYA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.12.0
Release Details
UpdatedJuly 30, 2026, 4:01 p.m.
Changelog

Hinzugefügt

  • Kontoauszüge in zwei weiteren Formaten: neben der bisherigen CSV liest die App jetzt auch CAMT.053 (XML) und MT940. Welches Format vorliegt, erkennt sie am Inhalt der Datei – die Endung spielt keine Rolle. CAMT.053 ist die bessere Wahl, wo die Bank es anbietet: Vorzeichen, Datum und Zahlungsbeteiligte stehen dort eindeutig drin, statt aus Spaltenüberschriften erraten zu werden.
  • Wachordner: Auf Wunsch liest die App Kontoauszüge selbstständig aus einem Nextcloud-Ordner ein (Einstellungen → Kontoauszüge automatisch einlesen). Den heruntergeladenen Auszug dort ablegen genügt; stündlich sieht ein Hintergrundjob nach. Verarbeitete Dateien wandern nach verarbeitet/, nicht lesbare mit Begründung nach fehler/ – gelöscht wird nichts. Setzt System-Cron voraus. Das ersetzt das Hochladen von Hand, nicht das Herunterladen bei der Bank.
  • Vorgemerkte Umsätze aus CAMT.053 werden übersprungen. Sie ändern sich beim endgültigen Buchen häufig noch und kämen sonst ein zweites Mal herein.
  • Mehrere Bankkonten werden unterschieden. Am Geldkonto lässt sich die IBAN hinterlegen (Tab Konten → Konto bearbeiten, nur bei Geldkonten); beim Zuordnen einer Bankbuchung wählt die App daraufhin das Geldkonto, auf dem der Umsatz tatsächlich gebucht wurde. Bisher landete alles auf dem ersten Bankkonto des Kontenrahmens. Ohne hinterlegte IBAN – oder wenn der Auszug keine mitbringt – bleibt es beim bisherigen Verhalten. Wer mehrere Konten führt, sollte CAMT.053 oder MT940 exportieren: dort steht die IBAN verlässlich, in der CSV mancher Bank nur eine Kontonummer.

Behoben

  • Derselbe Umsatz landet nicht mehr doppelt, wenn das Exportformat wechselt. Die Dublettenerkennung hing am eigenen Konto, und das schreiben die Formate verschieden: die CSV mancher Bank führt dort nur eine Kontonummer, CAMT.053 immer die volle IBAN. Zusätzlich zum bisherigen Vergleich prüft die App Umsätze jetzt über Datum, Betrag und Text gegen die bereits vorhandenen Bankbuchungen.

Sonstiges

  • Die Umsatzquellen liegen hinter einer gemeinsamen Schnittstelle (lib/Service/Statement/); Dublettenerkennung, Regeln und Import-Protokoll sind für alle Formate dieselben. Der MT940-Parser ist zugleich die Vorarbeit für einen späteren FinTS-Abruf, der genau dieses Format liefert.
  • Das Import-Protokoll hält fest, aus welchem Format ein Import stammt; Geldkonten können ihre IBAN tragen (Migration 122).
  • Unit-Tests für beide neuen Parser sowie ein Kreuztest, der denselben Kontoauszug in allen drei Formaten vergleicht (61 Tests).
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureYrd0NVVBI48qEcLJqlW2g3q/DsCa4M/I4Dap6Y7XZoLqHbFQtEHZiGe5WGYmrRZxZaiS38aXU62p6tx2uqB+V5cYI7xSomdVQtN/PlHS0hXRjO5OunZIpXdSaplQn0BiBhuN9iP+Vdrwc395yav9MegQE1opuH5kj2xPgKQyUbUehBedJ4rV+ePyXm2KFXsfv3DFeYjp9R16i41D+fD912hJskD3BNwIgqh0NRalj4KkwrIES46Ym7TZoZ14Jx0NJdh99l4/EXgdRicoSWEUT3aRxhbN+4qfAwa8MsDhL4K+jv4OhqDFxlD5yQKRqr6YsU9wxJ1HmMH8rutukusf18IQsgQjjl4zuwtwNFjrx18LhnUuozOQgRtVVZrQNXGneZ8ZLa7h6iZLUIkoiGtrrSyl0rXJFcg4LRmCz62Q9BaXCO9N8LhgxLa9TPKKJtoSroEbbFAHNewd5ir03uudK/UA6hr6n3GXNAtlTdyMAle9r7JY2DuvIJe+ftEHNqMC9prT2M1E2qb/nSgYk+RziNaqt4Yd5POjG65TCNEQOKIQ/aUpixnKXUFwzS+fJpFmGA1b+eULBKo0r5Q17xAluMjlw3lBsGcwozKXHc1KeCKIiZfjx9x+y1XMNuzeDaWG1g8kd2sjVTwY2vW+lS/d/R/K1GE2My5qoMILXPZ8+ko=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.11.2
Release Details
UpdatedJuly 29, 2026, 3:43 p.m.
Changelog

Behoben

  • Beträge werden nicht mehr abgeschnitten. In Tabellen hatte die Betragsspalte eine feste Breite von 100 px; längere Werte wie „28.798,68 €" wurden mit „…" gekürzt und ließen sich falsch lesen. Die Spalte wächst jetzt mit.
  • Mobil: „Buchungen" in der unteren Leiste war gekürzt („Buchun…"). Die Einträge teilen sich die Breite jetzt nach Inhalt statt zu gleichen Teilen.
  • Mobil: zu kleine Tippziele. Schaltflächen, Auswahlfelder und Eingabefelder waren teils nur 24–36 px hoch. Sie sind jetzt mindestens 44 px – auch auf Tablets, die per Finger bedient werden, aber das Desktop-Layout bekommen.
  • Mobil: lange Kontonamen im Kontenbaum wurden gekürzt und waren damit nicht mehr unterscheidbar; sie brechen jetzt um.
  • Mobil: das Ende langer Listen lag unter dem schwebenden Buchungs-Knopf und war nicht lesbar.

Sonstiges

  • Ausführliche Beschreibung und Screenshots für den Nextcloud App Store.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureDikykvZ2qeSFgT2rqRn1/K6d7txbP7OEC32gKuFsiCeigdGhCtrIHnVWHhA4ddYVzD+A5w+jgbYrYMzkgZcFS/cJE69wPzosrfHtsfrR1AXnFJprlr1fEU7gM2imvESCrjGS0s8KEeOczNzOTrhw6vtaWm4zbpYth5MLdMZmYFFTxtCQ67VIKIDNZhSVBS+dlbgKma5HobySt4IwUZeR+6qhMtZQZbmMCJ1LSuwPs6QCVTfAxXRlEBkuIdS0VYiBn3jDaoCfBV8tGZjpAG63npnwXIfJJd4HeCyDpMzDx0h/z6JpXKEcJuujT2vnrbjgCgqPOQX6qqCFru7djJ8o1BLR1pO8qNiTn194HAgOH/2cKzaJ/RbYAUXds7qW8aQgxvviJ9adZGRf3zC3jyYB49EGdYB/rKG8Lnn8mhDFkF7iXej4kwz/myXK8MTldP/xctXSC/zinorrnHaRo28XNtFDq5GazeVXpK7/9nvyt3SE49zoABnAEKDw6SYZrVCLX4+J8bbM6yk/ohFE3g1KL2/wXL1GnE1spwuz/OamTPJUqgVNJyV3MyzxG5aHpGxdj3lmctGt8eO34tXvHzofVmHvrhnEbEIcyMlphbOWD2mCiGkmltuGjJqvMJpLbSyZIe/oAXkJ7IiY3KGIRpiKlGUueiQlo0UbI1L+ubF/Uak=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0
Vereinsbuchhaltung 0.11.1
Release Details
UpdatedJuly 29, 2026, 3:03 p.m.
Changelog

Erste im Nextcloud App Store veröffentlichte Fassung. Am Programm selbst ändert sich gegenüber 0.11.0 nichts.

Sonstiges

  • Die App wird jetzt mit dem von Nextcloud ausgestellten Zertifikat signiert (appinfo/signature.json) und im App Store veröffentlicht. Das Paket zu 0.11.0 war noch unsigniert und ist deshalb nur über ein direktes Deployment aus dem GitHub-Release installierbar.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD
VQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM
0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C
ggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1
VXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB
8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw
Zw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW
1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w
MOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb
78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC
6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2
IwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU
NPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w
WZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z
fuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl
lP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3
KBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc
-----END CERTIFICATE-----
SignatureRqufs3+r1UDzVeNY47cnz/w6ATGHouz8ape7ZHM3P5KFdQNcJ6RYVIO+epIwjLtAeVJdMgfEDJwafg1dx757MvkBsfr4fO9yBiP0yNmKeVwdm3G/7vM+WTHYg9CpRNYN2AivshD6OdD5axADiNnBU0jk+qw5szzQ77+pYkxHFMrTC1pbM8VWuTD/F+PrU0V7617dl2nDG7ZWwzjFgP65k6y3lr7hFi46LDiIvwWNv8leoggPU3YoB4YywRdXqhIHImtdBs/fauWamzU49TY22hPqSTPFsAVqyW/RI7Jw599oTCozx0W92XQilBZOGdUQb1Lr8nS+DJs6fGz6eJXbJQd2K81qqSyyIN06UcBudD6zCu5DdLuPLg0kWs7vwq5wI/4AXpBb5xadncHFtJOaNNoCJ2v7+C7d1ZaJ3kfv6ZNnVcuEYYQsNfuitHmmNzATyWSH2+hzXj/fZfpZA0vyHDLa4XkCPMwOi55IaPuvCdEaKE+RTf6hEdnul7MhU8C8BUFHKp3HlkdzJLPmffyf3vTDFoRnvtA2isMEXrkE2u9Usk9X1DlOXxn4PjmCYGNEm54YfVpTGRiY8i972c9XIjwmlpUIaqYARzgSad2kT23TXEMmzsPp7/kM2DjAqmEJbe+Lgl87Z7ZseXBHSnJXd1JjtxYJCm4og7lA2zSagvY=
Signature digestsha512
Dependencies
Required Nextcloud versions >=28.0.0,<35.0.0
Databases SQLite
MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.1.0,<8.5.0