GnuCash 4.1

GnuCash is a personal finance and small-business accounting software. It provides a check-book like register GUI to enter and track bank accounts, stocks, income and expenses, for double-entry accounting. It also allows to manage stock/bond/mutual fund accounts, generate graphs and reports, supports QIF/OFX/HBCI import, and transaction matching, common calculations and scheduling. It's still simple to use.

Tags c perl scheme gtk gnome accounting personal-finance
License GNU GPL
State stable

Recent Releases

4.127 Jul 2020 06:45 minor feature: Change "Petrol" (or Gas if seen in USA) to "Fuel". Some transactions are not highlighted in the matching window. Feature request: preference setting to open new tabs adjacent to currently active tab (as opposed to at the end of the tab list). OFX import crashes on import of investment transaction. .0.1 gnucash-cli seg faults on macOS Catalina. Budget Barchart was not upgraded. Expense over time has extra empty row. Printer not found. Ctrl+A in account register fields chimes after any element newly focussed. Zero Crossing in 4.0 that wasn't in 3.10. Windows: Insertion cursor invisible in Edit Account or New Account windows until text fields have content. Quickfill broken with Cyrillic input language. Typing account number to select account fails. Backspace key produces incorrect result. Best match probability calculation on import is too pessimistic Lowering the minimum value for the auto-clear preference. This is to allow user to still auto clear even when date don't match quite exactly. Account register credit/debit column headings untranslated. Crash on 'Save As' in MacOS Mojave and Gnucash 4. Global Register Preference to prompt for interest payment is not being honored.Replace the global preference item with a per-account option, enabled only on those account types where interest might be paid or charged. Transaction date is one day too early from SWIFT MT940 import. Yearly / Monthly average reporting displays zeros. New Account Hierarchy selects en_US. Accommodate Guile-3.0 in Scheme code. html-style-info Display fractional amounts as decimal in price-render. Warn against using xaccTransGetSplit for iteration instead of encouraging it. Quickfill cells: Remove the selection after a delete. Accommodate AQBanking 6 use of GWEN_TIME instead of GWEN_DATE. ensure averaging-multipler returns exact numbers rather than floats. gnucash-cli improve "-R show" to describe report. Don't leak the libofx contexts in gnc_file_ofx_import_process_file/. Make the edit d
4.028 Jun 2020 10:25 minor feature: Transfer Funds window - add Notes field. Balance is misleading in open subaccounts when different currencies are involved. Amounts ending in zero displayed as fractions. libgnucash/engine/test/test-recurrence.c: In function 'check_valid': 'result' may be used uninitialized. Register displays amount in transaction currency instead of register currency. .9: "test-gnc-path-util" failed on Debian amd64. Update latest translation from the Translation project. window-reconcile when reconciling, warn on splits having a reconcile date statement_date. window-reconcile when inputing statement_date, warn if it's after today. find-transactions add search for reconciled date. Show transaction value, not amount, for registers with subaccounts.If the register has subaccounts in different currencies and a transaction has splits in more than one, the transaction will incorrectly appear to be unbalanced if we total amounts because the balancing logic works on split values. Add instance argument to Session constructor Enables a python console to connect to the running GnuCash's session. Make python console less noisy without --de. Provide locals and globals of calling context to the python console's shell on shell init. Merge Jean Laroche's '797006_subaccounts' into maint. Add check to display warning dialog for mismatched commodities. Replicate changes in *2 files. Apply astyle to modified files. Merge Chris Mayo's iPython-into maint. Make pycons/ishell.py compatible with Python 3 and current IPython. eguile-utilities Prevent crash in balsheet-eg.scm. eguile escape-html - gnc:html-string-sanitize. qif-to-gnc Properly mark intra-QIF internal transfers. Gnucash crashes on import of a 1400-transaction (or more) CSV file. Import CSV - Single-line two-currency transactions can't be imported. gnucash --add-price-quotes can't parse drive letters on Windows. Currency Conversion Dialog appears when recording transactions between same currency accounts. Counter formats no
3.90622 Jun 2020 17:25 minor feature: Transfer Funds window - add Notes field. Balance is misleading in open subaccounts when different currencies are involved. Amounts ending in zero displayed as fractions. libgnucash/engine/test/test-recurrence.c: In function 'check_valid': 'result' may be used uninitialized. Register displays amount in transaction currency instead of register currency. .9: "test-gnc-path-util" failed on Debian amd64. Update latest translation from the Translation project. window-reconcile when reconciling, warn on splits having a reconcile date statement_date. window-reconcile when inputing statement_date, warn if it's after today. find-transactions add search for reconciled date. Show transaction value, not amount, for registers with subaccounts.If the register has subaccounts in different currencies and a transaction has splits in more than one, the transaction will incorrectly appear to be unbalanced if we total amounts because the balancing logic works on split values. Add instance argument to Session constructor Enables a python console to connect to the running GnuCash's session. Make python console less noisy without --de. Provide locals and globals of calling context to the python console's shell on shell init. Merge Jean Laroche's '797006_subaccounts' into maint. Add check to display warning dialog for mismatched commodities. Replicate changes in *2 files. Apply astyle to modified files. Merge Chris Mayo's iPython-into maint. Make pycons/ishell.py compatible with Python 3 and current IPython. eguile-utilities Prevent crash in balsheet-eg.scm. eguile escape-html - gnc:html-string-sanitize. qif-to-gnc Properly mark intra-QIF internal transfers. Gnucash crashes on import of a 1400-transaction (or more) CSV file. Import CSV - Single-line two-currency transactions can't be imported. gnucash --add-price-quotes can't parse drive letters on Windows. Currency Conversion Dialog appears when recording transactions between same currency accounts. Counter formats no
3.90515 Jun 2020 16:25 minor feature: Linux: Ubuntu 18.04LTS. MacOS: 10.13. Windows: 8.1. C++ standard is now C++17, requires gcc 8.0 or clang 6.0. Cmake 3.10. boost 1.67.0. gettext 0.19.6 for general use, 0.20 to generate gnucash.pot. glib-2.0 2.56.1, gtk 3.22.30. googletest 1.8.0. ICU, any version. libdbi 0.8.3. libxml2 2.9.4. swig 3.0.12 Now required for building from tarballs as well as from git. Webkit 2.4.11 Mac Win32, 2.14.1 Linux/BSD. A new separate executable, gnucash-cli (gnucash-cli.exe on Microsoft Windows) for doing command-line things like updating the prices in your book. gnucash-cli gains the ability to run reports from the command line. Specify reports to run by name or guid. It also provides an export format and an output file name without which it will output the report to stdout. gnucash-cli --run-report= reportname/guid datafile.gnucash gnucash-cli --run-report= reportname/guid --output-file=x.html datafile.gnucash gnucash-cli --run-report= reportname/guid --output-file=x.html --export-type=TYPE datafile.gnucash. . gnucash-cli --run-report= reportname/guid datafile.gnucash. gnucash-cli --run-report= reportname/guid --output-file=x.html datafile.gnucash. gnucash-cli --run-report= reportname/guid --output-file=x.html --export-type=TYPE datafile.gnucash. When deleting accounts the destination accounts of moved splits will be checked to ensure that they have the same commodity as the source. If they don't you'll get a warning and the opportunity to pick another account or to carry on regardless. New type-ahead search added to sequential search when selecting an account in the register: Instead of typing the first few characters of a top level account, the separator, the first few characters of the next level account and so on you may instead type a few characters of any part of a full account name and the drop-list will be filtered to contain only matching accounts. Once you have a small enough list you can use the arrow keys to select the account that you want. Python binding
3.90409 Jun 2020 00:25 minor feature: Linux: Ubuntu 18.04LTS. MacOS: 10.13. Windows: 8.1. C++ standard is now C++17, requires gcc 8.0 or clang 6.0. Cmake 3.10. boost 1.67.0. gettext 0.19.6 for general use, 0.20 to generate gnucash.pot. glib-2.0 2.56.1, gtk 3.22.30. googletest 1.8.0. ICU, any version. libdbi 0.8.3. libxml2 2.9.4. swig 3.0.12 Now required for building from tarballs as well as from git. Webkit 2.4.11 Mac Win32, 2.14.1 Linux/BSD. A new separate executable, gnucash-cli (gnucash-cli.exe on Microsoft Windows) for doing command-line things like updating the prices in your book. gnucash-cli gains the ability to run reports from the command line. Specify reports to run by name or guid. It also provides an export format and an output file name without which it will output the report to stdout. gnucash-cli --run-report= reportname/guid datafile.gnucash gnucash-cli --run-report= reportname/guid --output-file=x.html datafile.gnucash gnucash-cli --run-report= reportname/guid --output-file=x.html --export-type=TYPE datafile.gnucash. . gnucash-cli --run-report= reportname/guid datafile.gnucash. gnucash-cli --run-report= reportname/guid --output-file=x.html datafile.gnucash. gnucash-cli --run-report= reportname/guid --output-file=x.html --export-type=TYPE datafile.gnucash. When deleting accounts the destination accounts of moved splits will be checked to ensure that they have the same commodity as the source. If they don't you'll get a warning and the opportunity to pick another account or to carry on regardless. New type-ahead search added to sequential search when selecting an account in the register: Instead of typing the first few characters of a top level account, the separator, the first few characters of the next level account and so on you may instead type a few characters of any part of a full account name and the drop-list will be filtered to contain only matching accounts. Once you have a small enough list you can use the arrow keys to select the account that you want. Python binding
3.90302 Jun 2020 11:25 minor feature: Linux: Ubuntu 18.04LTS. MacOS: 10.13. Windows: 8.1. C++ standard is now C++17, requires gcc 8.0 or clang 6.0. Cmake 3.10. boost 1.67.0. gettext 0.19.6 for general use, 0.20 to generate gnucash.pot. glib-2.0 2.56.1, gtk 3.22.30. googletest 1.8.0. ICU, any version. libdbi 0.8.3. libxml2 2.9.4. swig 3.0.12 Now required for building from tarballs as well as from git. Webkit 2.4.11 Mac Win32, 2.14.1 Linux/BSD. A new separate executable, gnucash-cli (gnucash-cli.exe on Microsoft Windows) for doing command-line things like updating the prices in your book. gnucash-cli gains the ability to run reports from the command line. Specify reports to run by name or guid. It also provides an export format and an output file name without which it will output the report to stdout. gnucash --run-report= reportname/guid datafile.gnucash gnucash --run-report= reportname/guid --output-file=x.html datafile.gnucash gnucash --run-report= reportname/guid --output-file=x.html --export-type=TYPE datafile.gnucash. . gnucash --run-report= reportname/guid datafile.gnucash. gnucash --run-report= reportname/guid --output-file=x.html datafile.gnucash. gnucash --run-report= reportname/guid --output-file=x.html --export-type=TYPE datafile.gnucash. When deleting accounts the destination accounts of moved splits will be checked to ensure that they're the same as the source. If they're not you'll get a warning and the opportunity to pick another account or to carry on regardless. New type-ahead search added to sequential search when selecting an account in the register: Instead of typing the first few characters of a top level account, the separator, the first few characters of the next level account and so on you may instead type a few characters of any part of a full account name and the drop-list will be filtered to contain only matching accounts. Once you have a small enough list you can use the arrow keys to select the account that you want. Python bindings are now localized and their strin
3.90201 May 2020 10:05 minor feature: Transfer Funds window - add Notes field. Balance is misleading in open subaccounts when different currencies are involved. Amounts ending in zero displayed as fractions. libgnucash/engine/test/test-recurrence.c: In function 'check_valid': 'result' may be used uninitialized. Register displays amount in transaction currency instead of register currency. .9: "test-gnc-path-util" failed on Debian amd64. Update latest translation from the Translation project. window-reconcile when reconciling, warn on splits having a reconcile date statement_date. window-reconcile when inputing statement_date, warn if it's after today. find-transactions add search for reconciled date. Show transaction value, not amount, for registers with subaccounts.If the register has subaccounts in different currencies and a transaction has splits in more than one, the transaction will incorrectly appear to be unbalanced if we total amounts because the balancing logic works on split values. Add instance argument to Session constructor Enables a python console to connect to the running GnuCash's session. Make python console less noisy without --de. Provide locals and globals of calling context to the python console's shell on shell init. Merge Jean Laroche's '797006_subaccounts' into maint. Add check to display warning dialog for mismatched commodities. Replicate changes in *2 files. Apply astyle to modified files. Merge Chris Mayo's iPython-into maint. Make pycons/ishell.py compatible with Python 3 and current IPython. eguile-utilities Prevent crash in balsheet-eg.scm. eguile escape-html - gnc:html-string-sanitize. qif-to-gnc Properly mark intra-QIF internal transfers. Gnucash crashes on import of a 1400-transaction (or more) CSV file. Import CSV - Single-line two-currency transactions can't be imported. gnucash --add-price-quotes can't parse drive letters on Windows. Currency Conversion Dialog appears when recording transactions between same currency accounts. Counter formats no
3.90127 Apr 2020 10:05 minor feature: Transfer Funds window - add Notes field. Balance is misleading in open subaccounts when different currencies are involved. Amounts ending in zero displayed as fractions. libgnucash/engine/test/test-recurrence.c: In function 'check_valid': 'result' may be used uninitialized. Register displays amount in transaction currency instead of register currency. .9: "test-gnc-path-util" failed on Debian amd64. Update latest translation from the Translation project. window-reconcile when reconciling, warn on splits having a reconcile date statement_date. window-reconcile when inputing statement_date, warn if it's after today. find-transactions add search for reconciled date. Show transaction value, not amount, for registers with subaccounts.If the register has subaccounts in different currencies and a transaction has splits in more than one, the transaction will incorrectly appear to be unbalanced if we total amounts because the balancing logic works on split values. Add instance argument to Session constructor Enables a python console to connect to the running GnuCash's session. Make python console less noisy without --de. Provide locals and globals of calling context to the python console's shell on shell init. Merge Jean Laroche's '797006_subaccounts' into maint. Add check to display warning dialog for mismatched commodities. Replicate changes in *2 files. Apply astyle to modified files. Merge Chris Mayo's iPython-into maint. Make pycons/ishell.py compatible with Python 3 and current IPython. eguile-utilities Prevent crash in balsheet-eg.scm. eguile escape-html - gnc:html-string-sanitize. qif-to-gnc Properly mark intra-QIF internal transfers. Gnucash crashes on import of a 1400-transaction (or more) CSV file. Import CSV - Single-line two-currency transactions can't be imported. gnucash --add-price-quotes can't parse drive letters on Windows. Currency Conversion Dialog appears when recording transactions between same currency accounts. Counter formats no
3.1012 Apr 2020 07:45 minor feature: Transfer Funds window - add Notes field. Balance is misleading in open subaccounts when different currencies are involved. Amounts ending in zero displayed as fractions. libgnucash/engine/test/test-recurrence.c: In function 'check_valid': 'result' may be used uninitialized. Register displays amount in transaction currency instead of register currency. .9: "test-gnc-path-util" failed on Debian amd64. Update latest translation from the Translation project. window-reconcile when reconciling, warn on splits having a reconcile date statement_date. window-reconcile when inputing statement_date, warn if it's after today. find-transactions add search for reconciled date. Show transaction value, not amount, for registers with subaccounts.If the register has subaccounts in different currencies and a transaction has splits in more than one, the transaction will incorrectly appear to be unbalanced if we total amounts because the balancing logic works on split values. Add instance argument to Session constructor Enables a python console to connect to the running GnuCash's session. Make python console less noisy without --de. Provide locals and globals of calling context to the python console's shell on shell init. Merge Jean Laroche's '797006_subaccounts' into maint. Add check to display warning dialog for mismatched commodities. Replicate changes in *2 files. Apply astyle to modified files. Merge Chris Mayo's iPython-into maint. Make pycons/ishell.py compatible with Python 3 and current IPython. eguile-utilities Prevent crash in balsheet-eg.scm. eguile escape-html - gnc:html-string-sanitize. qif-to-gnc Properly mark intra-QIF internal transfers. Gnucash crashes on import of a 1400-transaction (or more) CSV file. Import CSV - Single-line two-currency transactions can't be imported. gnucash --add-price-quotes can't parse drive letters on Windows. Currency Conversion Dialog appears when recording transactions between same currency accounts. Counter formats no
3.929 Mar 2020 20:01 minor feature: precision of Financial Calculator seems to depend on locale. Template transaction splits are loaded in reverse order and then not sorted before saving.Actually not sorted after loading because the template accounts weren't being committed. Start Day of weekly report doesn't respond to change in localeRedefines some functions to ensure weekly grouping in transaction report obeys locale's start-of-week. GNUCash does not work with sql backend, I can open in read only mode Upgrade the splits table as well, an oversight from the original. Balance (with eguile
3.829 Dec 2019 16:45 minor feature: precision of Financial Calculator seems to depend on locale. Template transaction splits are loaded in reverse order and then not sorted before saving.Actually not sorted after loading because the template accounts weren't being committed. Start Day of weekly report doesn't respond to change in localeRedefines some functions to ensure weekly grouping in transaction report obeys locale's start-of-week. GNUCash does not work with sql backend, I can open in read only mode Upgrade the splits table as well, an oversight from the original. Balance (with eguile
3.709 Sep 2019 20:25 minor feature: precision of Financial Calculator seems to depend on locale. Template transaction splits are loaded in reverse order and then not sorted before saving.Actually not sorted after loading because the template accounts weren't being committed. Start Day of weekly report doesn't respond to change in localeRedefines some functions to ensure weekly grouping in transaction report obeys locale's start-of-week. GNUCash does not work with sql backend, I can open in read only mode Upgrade the splits table as well, an oversight from the original. Balance (with eguile
3.630 Jun 2019 09:05 minor feature: 5 install-fq-mods.cmd requires ssleay32.dll, but it's no longer installed as part of GnuCash. Update the zilla URL for the Report a GnuCash Start Menu item. Extremely slow save. Menu Tooltips Interfere with All Dialogs. File save hangs. saving file with scheduled transaction hangs: copy of scheduled transactions missing in tmp file?. Dates are erased when changing the language to de_DE. Custom Count fields won't save. GnuCash hangs loading XML file. Asset Barchart Report includes also the first day of next month transactions If the original date is an end-of-month date, we take it as an indicator they always want monthdelta dates to be end-of-months. This works for monthly/quarterly/halfyearly/annual. Wrong average balance for transactions during DST Replace average-splits with custom loop, cycling through the balancelist and splitlist, creating interval summaries along the way. Test for the report system - HTML Tests. Advanced Portfolio Report - Percentage rates not displaying leading zeros. Incorrect starting balance in TXF Report calculations. TxnCsvImport - loading of saved preset with update of seperator selection. Previously this would cause all but the first column to lose its assigned types. Tax Entity name and type for an account won't work under "Tax Reporting Options" in Gnucash 3.2. Report HTML - not possible to suppress the document header. Report HTML - it is not possible to suppress the document title. Report HTML - HTML table rows are prepended not as list elements. Report-HTML - append table column correctly. test-stress-options fails. Mortgage and Loan Repayment Setup tool crashes when exiting "Loan Repayment Options" page. Because libstdc++ on Windows doesn't support any C++ locales besides "C" and throws an exception if you try. Report formatting (justify) is broken. Aqbanking 6 will drop DTAUS Adds support for the upcoming AQBanking 6 and removes support for AQBanking earlier than 5.3.4. Change the default to show unused accounts. some date/time
3.531 Mar 2019 11:05 minor feature: GnuCash show taxes on invoice when individual taxes is not checked. On duplicating a bill, the entry dates should be set to the bill date, not to the current date - followup: Use neutral time on entry post dates instead of canonical time. Associated file with transaction is lost when moving entry between accounts. Inaccurate information provided for "Common Accounts" when using "New Account Hierarchy Setup". Treeview header combos do not work at first load. Last Reconcile Date column sorts by day of month not date. Book tool regression. Incorrect date sort order in Generic import matcher window. Some dates reset to 01/01/1970. Update of "wohnungsw" template. Version 2018 of german account template SKR49. Receivable Ageing Report invalid URL for Totals column. Crash after OFX import if line item dragged. Add new employee window may not fit on screen. Load another QIF file causes "that file already loaded" dialog. Unable to use arrow keys to advance past pre-filled text in register. test-qofsession fails on x86_32. Register text oddities HOME and END need to be treated like right and left arrow keys. OFX Import does not show source account in the transaction matching window. Remove account slot key color if there is no valid color. invoice.GetDatePosted() and other date related functions returns strange values for uninitalised dates. Button to complete an export not intuitively placed or discoverable. Crash when searching invoice by Invoice Owner. Customer Summary is giving error. Update Account colour background. Invalid transaction date-posted KVP causes date-posted to not be saved. Tab navigation From Company Address field in New Book Options. Search Search Criteria window does not scroll when added criteria exceed a certain amount. Scheduled Transactions Entered Since Last Run Are not Visible. Incorrect conversion of 0,01 USD to EUR. Incorrect amount sort order in Generic import matcher window. Can't overwrite existing MYSQL database, V3.3. gnclock table not remov
3.430 Dec 2018 20:15 minor feature: Different warnings when changing reconciled splits vs. splits linked to reconciled splits. "Save changes on closing" window waits 2 32 seconds when "Time to wait for answer" is set 0. GnuCash won't load currency fractions larger than 1000000. Also create larger fractions for the account dialog. Segmentation Fault in Transfer dialog after clearing Date field and pressing escape. Unable to overwrite sqlite3 database file. Mixed languages in error dialog. Python bindings can't find loadable modules. Commodity Register displays fractional prices. A new Preference, "Force Prices to display as decimals" on the General pane will cause prices that can't be exactly displayed as decimals to be rounded to two more places than the currency's smallest unit. If no book is opened, gnucash still asks if the user wants to save changes when opening a file. GnuCash could not obtain the lock for file://C: Users username Documents GnuCash 2.6.21 xxxx xxxx.gnucash. Unposting and reposting invoice doubles amounts. query.search_for outputs critical qof.object errors and prevents queries being run. Editing Scheduled Transaction. In addition to not begining to edit already-loaded transactions, don't try to load splits that are already loaded. It shouldn't be possible to load a transaction without also loading its splits. Segmentation fault while setting up online banking. Allow only a single instance of the assistant. Saved reports don't respect *some 'Edit report options'. Cannot go forward with empty duplicates screen. Backspace Key Inoperable After Ctrl+V. Dark Theme Text Colors Hard to Read. Only add the register-foreground class when using Gnucash built in colours. When this setting not used, the foreground colour by default will be what ever the theme has set and will be down to the user to over ride along with the other register colours. Can't overwrite gnucash DB on MariaDB. of 6 Date Posted options fail to return matching transactions. Auto-complete entry not highlighting to a
3.313 Dec 2018 03:15 minor feature: Different warnings when changing reconciled splits vs. splits linked to reconciled splits. "Save changes on closing" window waits 2 32 seconds when "Time to wait for answer" is set 0. GnuCash won't load currency fractions larger than 1000000. Also create larger fractions for the account dialog. Segmentation Fault in Transfer dialog after clearing Date field and pressing escape. Unable to overwrite sqlite3 database file. Mixed languages in error dialog. Python bindings can't find loadable modules. Commodity Register displays fractional prices. A new Preference, "Force Prices to display as decimals" on the General pane will cause prices that can't be exactly displayed as decimals to be rounded to two more places than the currency's smallest unit. If no book is opened, gnucash still asks if the user wants to save changes when opening a file. GnuCash could not obtain the lock for file://C: Users username Documents GnuCash 2.6.21 xxxx xxxx.gnucash. Unposting and reposting invoice doubles amounts. query.search_for outputs critical qof.object errors and prevents queries being run. Editing Scheduled Transaction. In addition to not begining to edit already-loaded transactions, don't try to load splits that are already loaded. It shouldn't be possible to load a transaction without also loading its splits. Segmentation fault while setting up online banking. Allow only a single instance of the assistant. Saved reports don't respect *some 'Edit report options'. Cannot go forward with empty duplicates screen. Backspace Key Inoperable After Ctrl+V. Dark Theme Text Colors Hard to Read. Only add the register-foreground class when using Gnucash built in colours. When this setting not used, the foreground colour by default will be what ever the theme has set and will be down to the user to over ride along with the other register colours. Can't overwrite gnucash DB on MariaDB. of 6 Date Posted options fail to return matching transactions. Auto-complete entry not highlighting to a
2.6.429 Sep 2014 18:36 major bugfix: Long list of bugs were fixed. - Incorrect sort order in "Sort by Statement Date". - Page Up, Page Down keys cause GnuCash to hang. - Re-numbering sub accounts crashes the program. - XML backend does not always store KVP slots. - Set all of the denominators correctly on the currency values. Convert ISO-8859-1 account chart templates to UTF-8. Python bindings. Add function gncVendorNextID, complementary to gncCustomerNextID. Use libsecret if available since gnome-keyring has been deprecated.