GnuCash is a powerful financial-accounting app that is designed to help you with all manner of financial related tasks. The app can be used to keep track of all your financial operations from your bank accounts, stocks and other income and expenses.
GnuCash supports databases including PostgreSQL, SQLite3 and MySQL (backend XML). Note, the default storage is a gzipped XML file and that using a SQL database instead is optional. Note, the default storage is a gzipped XML file and that using a SQL database instead is optional. In addition the GnuCash for Mac app bundle supports only SQLite3 out-of-the-box; users of MySQL or Postgresql will have to build and install a dbd driver.
Key Features include:
- Double entry accounting.
- Online banking support.
- Multiple currency support.
- Checkbook style registry.
- Reporting tools.
- Mutual fund and stock portfolios.
- Income and expense account management.
- HBCI support.
- General accounting ledgers.
- Vendor and customer tracking.
- OFX and QIF support.
- Statement reconciliations.
- Bill payments and invoicing.
GnuCash has been designed to be easy to use, flexible and powerful. It feels quick and intuitive to use and has a solid base around professional accounting principles, therefore it is able to provide balanced books and accurate reports.
Overall, GnuCash is well presented and contains a diverse array of accounting features such as multiple currency support, double entry accounting and invoicing. On the downside, the integrations with tax software comes up short, however it can support some online banking services.
Between 3.3 and 3.4, the following bugfixes were accomplished:
Bug 498072 - GnuCash show taxes on invoice when individual taxes is not checked
Bug 760825 - 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
Bug 767772 - Associated file with transaction is lost when moving entry between accounts
Bug 775580 - Inaccurate information provided for "Common Accounts" when using "New Account Hierarchy Setup"
Bug 779565 - Treeview header combos do not work at first load
Bug 788332 - Last Reconcile Date column sorts by day of month not date
Bug 789674 - Close Book tool regression
Bug 793156 - Incorrect date sort order in Generic import matcher window
Bug 795080 - Some dates reset to 01/01/1970
Bug 795237 - Update of "wohnungsw" template
Bug 795425 - Version 2018 of german account template SKR49
Bug 796772 - Receivable Ageing Report invalid URL for Totals column
Bug 796806 - Crash after OFX import if line item dragged
Bug 796842 - Add new employee window may not fit on screen
Bug 796849 - Load another QIF file causes "that file already loaded" dialog
Bug 796875 - Unable to use arrow keys to advance past pre-filled text in register
Bug 796878 - test-qofsession fails on x86_32.
Bug 796883 - Register text oddities
HOME and END need to be treated like right and left arrow keys.
Bug 796886 - OFX Import does not show source account in the transaction matching window
Bug 796887 - Remove account slot key color if there is no valid color
Bug 796893 - invoice.GetDatePosted() and other date related functions returns strange values for uninitalised dates.
Bug 796896 - Button to complete an export not intuitively placed or discoverable
Bug 796903 - Crash when searching invoice by Invoice Owner
Bug 796914 - Customer Summary is giving error
Bug 796915 - Update Account colour background
Bug 796940 - Invalid transaction date-posted KVP causes date-posted to not be saved.
Bug 796944 - Tab navigation From Company Address field in New Book Options
Bug 796945 - Search Search Criteria window does not scroll when added criteria exceed a certain amount
Bug 796948 - Scheduled Transactions Entered Since Last Run Are not Visible
Bug 796949 - Incorrect conversion of 0,01 USD to EUR
Bug 796960 - Incorrect amount sort order in Generic import matcher window
Bug 796961 - Can't overwrite existing MYSQL database, V3.3.
Bug 796967 - gnclock table not removed when using PostgreSQL.
Bug 796978 - Deleting a split of same account as register cancels the transaction without warning
Bug 796981 - Gnucash crashes with critical error when selecting another file
Bug 796982 - Import Bills & Invoices: change in un_escape() routine causes description and notes fields to be mangled.
Bug 796988 - Untranslated string in CSV transaction importer
Bug 796989 - some date/time does not honor user locale
Bug 796994 - Unable to generate Tax Report because of pricedb error
The following fixes and improvements were not associated with bug reports:
Set up filepath utils to determine the GNC_CONFIG_HOME in the same way as GNC_DATA_HOME.
Until now GNC_CONFIG_HOME was more or less hard-coded. Now it can be set via environment variable GNC_CONFIG_HOME. In addition it will automatically be created to avoid potential user confusion.
gnc_uri_get_components will now return NULL as protocol if the input is a normal file system path instead of a uri (it used to return 'file')
gnc_uri_get_protocol will now return NULL if the input is a normal file system path instead of a uri (it used to return 'file')
gnc_uri_is_file_protocol now returns FALSE if protocol is NULL (it used to return TRUE)
gnc_uri_is_file_uri now returns FALSE if input is a normal file system path instead of a uri (it used to return TRUE)
a new function gnc_uri_targets_local_fs will return TRUE only if its input is either a file uri or a normal file system path. This function is now mostly used instead of gnc_uri_is_file_uri in the current code base
a new function gnc_uri_is_uri is added to check whether its input is a valid uri (has protocol, path and hostname for non-file uris)
refer to 'scheme' instead of 'protocol' as that's the more formal term used in uris This involves renaming 3 functions:
gnc_uri_get_protocol -> gnc_uri_get_scheme
gnc_uri_is_known_protocol -> gnc_uri_is_known_scheme
gnc_uri_is_file_protocol -> gnc_uri_is_file_scheme
The *_protocol variants are marked as deprecated.
Additionally a number of local variables have been renamed from protocol to scheme to support this change.
Show warnings for deprecated declarations
We're about to announce our own set of deprecated functions in libgnucash. That would be pretty pointless if we also would silence all deprecation warnings at the same time...
More report code-cleanup by Chris Lam, including deprecating the following functions:
The following modules are deprecated:
Invoice: Remove H1 title and superflous option.
Printing the title twice is silly, so remove the option and the H1 display of the title. Note that the remaining title is in a div named "invoice-title" so it can be styled with CSS as the user pleases from the Report Options Layout tab.
The preference, use formal accounting labels does not update the header With a register open and you change preference 'use formal accounting labels' it does not update the register header so add a call back for the preference.
Make the grid lines of totals Budget tree view track the preferences.
Make the grid lines of the totals tree view track the preferences to match the account tree view above it.
Add routine to fix Account Color being set to "Not Set"
Previously the account color slot has been populated with "Not Set" when any field for the account has been edited and saved. This routine should run once and remove all such entries.
Performance fix in dom_chars_handler: use g_strndup instead of g_strdup
In the appdata/metadata file, rename the ID from org.gnucash.Gnucash to org.gnucash.GnuCash to match flathub, and add a launchable ID to link it to the desktop file.
Added double-click-on-file for the CSV transaction, price, and account importers and exporters.
Cleaned up a variety of issues reported by the clang static analyzer.
Allow the text options widget to use all remaining space
The text option widget used for report options has only about 3 lines visible currently and will not use any available space in the dialogue. Change the packing for this widget to expand and fill the remaining dialogue space. If there are more than one text option widget on a page then the available space will be shared equally.
Add short_labels for a few toolbar buttons with long names. That should fit a few more buttons on the toolbar.
Update iso-4217-currencies.xml, adddding VES - Bolivar Soberano, minor updates of other VE currencies.
Python 3 bindings fixes and improvements from Christoph Holterman and Sumit Bhardwaj.