Difference between revisions of "FAQ"

From GnuCash
Jump to: navigation, search
(New section on Windows parse error)
(Improve some links: protocoll; template)
 
(537 intermediate revisions by 51 users not shown)
Line 1: Line 1:
The contents of this FAQ will eventually be merged into the official GnuCash documentation:
+
[[Category:Help]] [[Category:Usage]]
{| border="1" cellpadding="5" cellspacing="0" bgcolor="white"
+
{| class="wikitable" style="margin: auto;"
 +
! scope="row"|Languages
 +
| [[Zh-hans/常见问题|简体中文]]
 +
|}
 +
 
 +
'''If you are having trouble with GnuCash, please note that our primary support channels are our [[Mailing_Lists|mailing lists]].''' The lists are the best place to read about the experiences that other users have had with GnuCash, and there are many experienced users who monitor the lists and answer questions posted there. GnuCash has mailing lists in several different languages.
 +
 
 +
There is also an [[IRC]] channel which is usually monitored by at least one developer during business hours in European and American time zones. (Usually isn't always. Our developers are all volunteers and sometimes have real-life things to which they must attend.)  Note that the IRC channel is almost entirely in English.
 +
 
 +
'''Note that ''Gnucash for Android'' is a separate project from the main GnuCash application.''' The developer seems to have abandoned it; we haven't heard anything from him since 2015 and he last interacted on [{{URL:GH}}codinguser/gnucash-android/ GitHub] in 2018. He was collecting bug reports and user feedback on [{{URL:GH}}codinguser/gnucash-android/issues GitHub] and [{{URL:UV}}forums/320493-gnucash-android UserVoice].
 +
 
 +
'''Note on iOS and iPadOS:'' GnuCash is not available in any form on Apple mobile devices.''''' There are some apps in the App Store that claim to be mobile assistants for GnuCash, including one that has misappropriated the GnuCash name and logo. Those developers have never so much as contacted us and have no connection to the project. At this writing they seem to be simple data-entry apps that can export either CSV or QIF files that GnuCash may or may not be able to import.
  
|
+
;Note: Please do not use wiki talk pages to ask for help; use the mailing lists or IRC channel.
| '''Stable'''
+
;Note for Editors: Target is to have here only a collection of questions paired with links into thematic pages. So, if a related page exists, add <q>real content</q> there and here only the link of the section.
| '''Subversion''' (in progress)
+
==General Questions==
|-
 
  
| '''Tutorial & Guide'''
+
=== Getting Help ===
| [http://www.gnucash.org/docs/v2.2/C/gnucash-guide/ gnucash-guide 2.2]
+
==== '''Q:''' I'm having trouble with GnuCash. Where can I ask for help? ====
| [http://svn.gnucash.org/docs/guide/ guide SVN]
+
:'''A:''' First of all, have you studied the [{{URL:docs:guide}}/index.html Tutorial and Concepts Guide] and the [{{URL:docs:manual}}/index.html Manual]? Also this wiki has sometimes more recent details.
|-
+
:*If you did and you have still trouble, our primary support channels are our [[Mailing_Lists|mailing lists]] in several languages.
 +
:*We also have an [[IRC]] channel which is usually monitored by at least one developer during business hours in European and American time zones. The IRC channel is almost entirely in English.
  
| '''Help'''
+
===Contributing===
| [http://www.gnucash.org/docs/v2.2/C/gnucash-help/help.html gnucash-help 2.2]
+
===='''Q:''' How can I contribute to the GnuCash project?====
| [http://svn.gnucash.org/docs/help/ help SVN]
 
|-
 
  
| '''Other Languages'''
+
:'''A:''' See [[Contributing to GnuCash]] for tangible ways you can contribute to the project.
| [http://www.gnucash.org/docs/v2.2/ browse 2.2]
 
| [http://svn.gnucash.org/docs/ browse SVN]
 
|-
 
  
|}
+
===='''Q:''' How can I make a donation to the GnuCash project?====
  
Or maybe not.
+
:'''A:''' See the [{{URL:www}}donate.phtml Donation page] for information about how you can financially support the project.
  
==General Frequently Asked Questions (FAQ) about [[GnuCash]]==
+
===Troubleshooting and Improvements===
 +
===='''Q:''' What are the basics of reporting bugs and requesting enhancements?====
  
==='''Q:''' How can I contribute to the GnuCash project?===
+
:'''A:'''  
 +
:You can find information about reporting bugs at [[Bugzilla#Commenting_on_existing_bugs_or_entering_new_ones|Reporting bugs]].
 +
:You can information about enhancement requests at [[Enhancement requests]].
  
:'''A:''' Further answers about this are on the [[Development]] wiki page.
+
:If you are new to these processes, you might find it useful to consult [http://www.catb.org/~esr/faqs/smart-questions.html How To Ask Questions The Smart Way].
  
:We're working on a more formal process to help you decide how to contribute, but for now you should subscribe to the [[Mailing Lists]] [https://lists.gnucash.org/mailman/listinfo/gnucash-user gnucash-user] and/or [https://lists.gnucash.org/mailman/listinfo/gnucash-devel gnucash-devel] and discuss what you can contribute with the participants on the lists. Please be aware that GnuCash is a large body of code written in C and Scheme (see [[FAQ#Developing GNUCash: Source Code Overview|Developing GNUCash: Source Code Overview]] if you want to know why). If these are languages that you are not willing to work with, consider contributing in other ways:
+
===='''Q:''' Something bad happened; how can I help debug?====
  
Examples:
+
:'''A:''' First, check some basic system information:
* Keep this wiki up to date.
+
:* Do you have enough free space on your saving media?
* Expand the official documentation
+
:* Do you have read and write access granted on your data file and its directory?
:[http://svn.gnucash.org/trac/browser/gnucash-docs/trunk/help/ GnuCash help documentation] and
+
::For both questions you can usually find the answer using your preferred file manager.
:[http://svn.gnucash.org/trac/browser/gnucash-docs/trunk/guide/ GnuCash Tutorial and Concepts Guide].
 
  
* If you are a foreigner, support the [[Translation|translation]] to your language and localisation to your countries rules..
+
:In the event that GnuCash does crash, experienced users might be interested in examining a ''Stack Trace''. See [[Stack Trace]] for more information.  
  
==='''Q:''' How can I make a donation to the GnuCash project?===
+
:Besides operating system details, GnuCash has three primary ways of reporting technical detail:
  
:'''A:''' The [[Development]] wiki page has information about how you can donate to the GnuCash project.  We appreciate your support.
+
# The ''user interface'' itself with
 +
#* a ''status line'' at the bottom of the main window,
 +
#* ''tooltips'', if you hover the mouse over control elements, and
 +
#* ''message boxes'' and similar dialogs.
 +
# ''Terminal statements'', which are printed to the terminal from which Gnucash was run. To access this information on Windows, KDE, or Gnome, you must run GnuCash from a command shell: 
 +
#*On Windows, run <tt>cmd.exe</tt>,
 +
#*On KDE, run Konsole,
 +
#*On Gnome, run Terminal.
 +
#:From this command line, enter <tt>gnucash</tt>. GnuCash will place any messages in this command line window.
 +
#*On {{Mac}}, statements which would be sent to the terminal on other systems appear instead on the Console. Run <tt>Applications:Utilities:Console</tt> and select <tt>Console Messages</tt> to view any console messages in the right pane of the window. Scroll to the bottom. Look for a message like <tt>....Gnucash[29751] Application Path /Applications/Gnucash.app/Contents/{{Mac}}/Gnucash-bin</tt>. This is the first of the GnuCash ''terminal'' statements.
 +
# GnuCash ''logs'', which contain most error messages. These are placed in a file called <tt>gnucash.trace</tt>. See [[Tracefile]] for more information.
  
==='''Q:''' What should I obey as a beginner in bug reporting, enhacement requesting ...?===
+
===='''Q:''' I think I found a bug. How do I report it?====
  
'''A:''' These two excellent documents, which are also translated into many languages, should help you avoid greenhorn mistakes:
+
:'''A:''' See [[Bugzilla]] for an explanation of the bug reporting process.
* [http://www.catb.org/~esr/faqs/smart-questions.html How To Ask Questions The Smart Way]; and
 
* [http://www.chiark.greenend.org.uk/~sgtatham/bugs.html How to Report Bugs Effectively].
 
  
Always keep in mind that these authors of these documents do ''not'' offer support for GnuCash — so you should read further on this wiki.
+
===='''Q:''' I really want feature XYZ but GnuCash doesn't have it. How do I get it added?====
  
E.g. as GnuCash is running in different '''version'''s under different '''operating system'''s, you should usually include the information about your configuration in your request.
+
:'''A:''' See [[Enhancement requests]] for information on this.
  
==='''Q:''' Something bad happened; how can I help debug?===
+
=== Mailing List Questions ===
 +
===='''Q:''' When I try to browse or subscribe to the mailing lists, my browser warns me it's unsafe. What's up? ====
 +
:'''A:''' That could mean the certificate was not renewed early enough. Please inform the admins by [[IRC]].
  
'''A:''' GnuCash has three primary ways of reporting technical detail:
+
===='''Q:''' Can you please configure the mailing lists so that Reply mails the list?====
  
# The user interface itself.
+
:'''A:''' The administrators of the GnuCash mailing lists are of the belief that [https://www.unicom.com/pw/reply-to-harmful.html Reply-To munging is harmful].  Please encourage the authors of Your Favorite Mail Client to respect List- headers, or train yourself to use the "Reply-To-All" command (available in every email client) when ever you want to reply to all parties; note that this works even on CC'ed / non-mailinglist email, too.
# Statements printed to the terminal from which Gnucash was run. To get this useful information, do not run Gnucash from the Start menu. Instead call a command shell like
 
::*cmd.exe under ''Windows'',
 
::*Konsole under ''KDE'' or  
 
::*Terminal under ''Gnome'' from there
 
::and inside enter <tt>gnucash</tt>.
 
  
On MacOSX, there's no need to launch from a terminal prompt. Instead, launch Applications:Utilities:Console; the terminal output will be in the console log (which is usually what is displayed after launch.
+
:''See also:'' [http://woozle.org/~neale/papers/reply-to-still-harmful.html Reply-To Still Harmful] and [https://marc.merlins.org/netrants/reply-to-useful.html Reply-To Useful].
  
Gnucash logs most error messages to a file called <tt>gnucash.trace</tt>. Instructions for finding this file on your system may be found in [[Tracefile]].
+
===='''Q:''' I can't join or leave the mailing list.====
 +
:'''A:''' Some people sign up to a ''mirror'' of the GnuCash mailing lists, rather than the GnuCash lists themselves. A mirror is a separate server which duplicates the content of another. Common examples of GnuCash mailing list mirrors are Nabble (nabble.com) and Gmane (gmane.org). Joining these systems does not sign you up with the Gnucash lists, and leaving these systems does not remove you from the Gnucash lists. If you join a mirror, but not GnuCash, your posts will go to the mirror first, and then be redirected to the GnuCash list server. However, because you are not subscribed at the GnuCash mail server, your message must pass through moderation before being released to the list. This can cause delays in responses to your request. Many users will consequently subscribe directly to the GnuCash mail server as well. ''If you have signed up at more than one server, you will need to unsubscribe at them all to stop receiving mail.'' In other words, if you unsubscribe with GnuCash, but neglect to do so with the mirror, the mirror will continue to send you mail. If you choose to sign up with a mirror site, you will need to manage both subscriptions yourself. Read [[Mailing Lists]] for some more information.
  
==='''Q:''' I think I found a bug. How do I report it?===
+
== Installation ==
  
:'''A:''' First of all, try to verify that it is indeed a bug and that it has not been reported before. Search the mail list archives at [https://lists.gnucash.org/mailman/listinfo/gnucash-devel gnucash-devel] and [https://lists.gnucash.org/mailman/listinfo/gnucash-user gnucash-user] (and [https://lists.gnucash.org/mailman/listinfo/gnucash-de gnucash-de] if you speak German). Then search the [[Bugzilla]] database.
+
===All Operating Systems===
  
:If you feel you have indeed found a bug, you can then [http://bugzilla.gnome.org/enter_bug.cgi?product=GnuCash report the bug] in the [[Bugzilla]] database.  Please bear in mind to report your bug as verbosely as possible. The trick here is to learn how to give the best information to the programmers about how to reproduce bugs. A Programmer will usually only be able to fix a bug they can see, if you can't make the programmer see your bug, it won't get fixed! Also see [[Development]] for additional tips.
+
===='''Q:''' What can I do if my Antivirus Software says my Gnucash download is infected?====
 +
:'''A:''' This is a situation which you should treat very ''carefully, but calmly''. Because the scanners sometimes give false positive results, you should collect more opinions, e.g. by using a service like [https://www.virustotal.com virustotal.com].
 +
:: If your bandwidth is very low, use the URL tab to enter the download link instead of uploading your file.
 +
:In the rare case that the service confirms the result of your scanner, let it do its work to isolate or remove the file. Then inform the GnuCash community, preferably with both:
 +
:* the full URL of the download source (sourceforge, github, mirror ...), and
 +
:* the signatures (SHA checksums) from '''both''' the source website '''and''' the calculated checksum of your downloaded file.
 +
::The first checksum should be available on the source website (e.g. README.txt at the bottom of <nowiki>https://sourceforge.net/projects/gnucash/files/gnucash (stable)/<version></nowiki>). The second checksum must be calculated from your downloaded file (e.g. run <code>sha256sum gnucash-3.0.setup.exe</code>).
  
==='''Q:''' I really want feature XYZ but GnuCash doesn't have it. How do I get it added?===
+
:;Tip: Verifying the checksum of downloads is always good practice.
  
:'''A:''' Ask nicely. :-) You can file an enhancement request at [http://bugzilla.gnome.org/enter_bug.cgi?product=GnuCash Bugzilla]. Please bear in mind to describe your proposed enhancement as verbosely as possible. The trick here is to learn how to give the best information to the programmers about what your proposed new feature should do. If you want to speed up development significantly, consider donating some money as described on [[Development]].
+
===='''Q:''' I'm trying to read the tutorial/help but it says that it's unable to find the url. What's up with that?====
  
:Note that the fastest way to get a feature added is to implement it yourself. A bug report with an attached patch is very likely to get applied quickly.
+
:'''A:''' You don't have the '''gnucash-docs''' package installed properly. Install that to the same prefix where you <tt>GnuCash</tt> installed and the docs will show up.
 +
::;Linux: If your default Desktop is not ''Gnome'', you may also need to install '''yelp'''.
  
:''See also:'' [[WishList]]
+
===='''Q:''' Why doesn't online quoting work?====
 +
: '''A:''' See [[Online_Quotes#Trouble_Shooting|Online Quotes Trouble Shooting]].
  
==='''Q:''' In the mailing lists, how can I determine from which list the messages are being sent? ===
+
===='''Q:''' How do I fix a "system error" or "unknown error" when getting stock quotes? ====
No extra tag is added to the subject line, such as [gnucash-user] or [gnucash-devel], so how can I distinguish the different lists?
 
  
:'''A:''' Each message has a header "List-Id:" such as one of the following:
+
:'''A:''' See [[Online_Quotes#Trouble_Shooting|Online Quotes Trouble Shooting]]
  
List-Id: General Accounting Discussions <gnucash-user.gnucash.org>
+
===Linux and other unixoid OSes like *BSD===
List-Id: GnuCash Software Design and Development Discussion <gnucash-devel.gnucash.org>
+
===='''Q:''' Are there no (more recent) precompiled rpms for my distro?====
etc.
 
  
:(To see these, look at the email source, or turn on "rich headers" or "full headers" in your email client program.)  You may consistently filter off of these.
+
:'''A:''' Not here, but you can use the search at https://rpm.pbone.net/ with a search string like "gnucash-{{MainVersion}}" or its ancestor for the "more stable" distributions.
  
==='''Q:''' Can you please configure the mailing lists so that Reply mails the list?===
+
===='''Q:''' Why does GnuCash start incredibly slowly on a FreeBSD system?====
  
:'''A:''' The administrators of the GnuCash mailing lists are of the belief that [http://www.unicom.com/pw/reply-to-harmful.html Reply-To munging is harmful]. Please encourage the authors of Your Favorite Mail Client to respect List- headers, or train yourself to use the "Reply-To-All" command (available in every email client) when ever you want to reply to all parties; note that this works even on CC'ed / non-mailinglist email, too.
+
:'''A:''' Your copy of GnuCash wasn't compiled correctly for [[FreeBSD]].   When you compile gnucash on FreeBSD you need to set "libltdl_cv_sys_dlopen_deplibs=yes" in the environment before running the ./configure command.
  
See also [http://woozle.org/~neale/papers/reply-to-still-harmful Reply-To Still Harmful] and [http://marc.merlins.org/netrants/reply-to-useful.html Reply-To Useful].
+
===='''Q:''' I'm running Debian/unstable, just upgraded, and GnuCash no longer works. How can I fix that?====
  
==='''Q: Is there a version/port for Windows? '''===
+
:'''A:''' Contact Debian. Read the [https://lists.gnucash.org/pipermail/gnucash-user gnucash-user archives] because someone else probably already reported the problem.
:'''A:''' Yes. Starting with release 2.2.0, GnuCash is also available as a native Windows binary.  See [[Windows]] for more recent details regarding the Windows port.
 
  
:Other related options would be coLinux, virtualization, and a Windows-based X-server hosting a remote GnuCash session.
+
===='''Q:''' I'm having trouble getting GnuCash running on Slackware====
  
==='''Q:''' What is the "SX" thing I see on the lists and IRC periodically?===
+
:'''A:''' See https://rjmarq.org/gnucash.html and http://www.slackages.com/linux/slackages/index.html
  
:'''A:''' SX stands for Scheduled Transaction, but Scheduled Transaction is a lot to type/write, so it's shortened to SX.  Scheduled Transactions are templates for entries that will occur in the future: for example, regularly recurring bills, such as utility or mortgage payments.  SX's are meant to make it easier to enter in anything that recurs on a regular basis.
+
===='''Q:''' Why does GnuCash run incredibly slowly on a Unix system using X?====
  
 +
:'''A:''' Please verify that the RENDER option is not disabled in your X configuration.  Sometimes this is done for debugging purposes, like so:
  
== Installation Troubleshooting ==
+
  Section "Extensions"
 +
    Option "RENDER" "off"
 +
  EndSection
  
===GnuCash 2.2.x Windows Troubleshooting===
+
==={{mac}}===
===='''Q:''' When running the Online Banking Setup, I get the error message Procedure entry point "_ZN10Q3DataEditC1EP7QWidgetPKc" has not been found in the DLL "QT3Support4.dll". What's up?====
+
===='''Q:''' How to install on {{mac}}? ====
: '''A:''' This means you have a not-so-new version of the Qt library installed, probably one of the 4.0.x or 4.1.x series. To run the Online Banking Setup Wizard that is shipped with GnuCash, you need to install the latest version 4.3.0 and you also need to adapt your PATH environment variable so that its bin directory shows up in the PATH. See also [[Windows#Online_Banking_Setup_Druid (needs Qt)]].
 
  
===='''Q:''' On startup I get an error message about corba-object.c and gnucash crashes. What's up?====
+
:'''A:''' Download the dmg from the links at the top of the [{{URL:www}} GnuCash website] and follow the directions at [[MacOSInstallation|{{mac}} Installation]].
: '''A:''' We don't know yet. The full error message, we've been told, looks like this:
 
<code>OTHER <> file corba-object.c: line 76 (ORBit_register_objref): assertion failed: (obj->object_key != NULL)</code>
 
: This is an unresolved bug so far. We can only guess this is what is being reported at http://bugzilla.gnome.org/show_bug.cgi?id=457100 http://bugzilla.gnome.org/show_bug.cgi?id=457841 ; maybe it helps to remove the directories ~/.gconf, ~/.gconfd, ~/.gnome2, and ~/.gnucash where ~ is your c:\Documents and Settings\Username directory.
 
  
===='''Q:''' Can I install a new gnucash version directly on top of the older existing one?====
+
===='''Q:''' I just installed GnuCash and it refuses to start when I click on it.  What is wrong? ====
: '''A:''' Yes, you can install the newer windows binary (say, 2.2.1) directly on top of the older one (say, 2.2.0).  You do not need to uninstall the older version first.
 
  
:There is one exception to this rule. Several changes to the installer system were made between 2.1.5 and 2.2.0Therefore, upgrading from 2.1.x to a 2.2.x requires an uninstall of the 2.1.x version.
+
:'''A:''' Your downloaded copy of GnuCash is most likely either corrupted or quarantined by the {{mac}} operating system (in later versions like Mojave or Catalina).
 +
:#First, check the system log for complaints about GnuCash. Open a terminal window and run the command: <syntaxhighlight lang="sh">
 +
log show --last 1d --predicate 'eventMessage contains[c] "gnucash"'
 +
</syntaxhighlight>If you find a vague complaint from launchd about <tt>Service exited with abnormal code: 1</tt>, then something is wrong with your GnuCash image, or it has been quarantined by {{mac}}.
 +
:#To check if the image of GnuCash is ''corrupted'', run the following command from the terminal window (adjust the path to match your GnuCash location): <syntaxhighlight lang="sh">
 +
spctl --assess -vv /Applications/Gnucash.app
 +
</syntaxhighlight> If the image is NOT corrupted, you should get output like: <syntaxhighlight lang="console">
 +
/Applications/Gnucash.app: accepted
 +
source=Notarized Developer ID
 +
origin=Developer ID Application: John D Ralls (Y9EHT5WMK7)
 +
</syntaxhighlight> Otherwise, your downloaded image is corruptedGo download a fresh copy and reinstall GnuCash.
 +
:#To check if the GnuCash image is ''quarantined'' by {{Mac}}, run the following command from the terminal window: <syntaxhighlight lang="sh">
 +
xattr -p com.apple.quarantine /Applications/Gnucash.app
 +
</syntaxhighlight> You may get information like so: <syntaxhighlight lang="console">
 +
0181;5eefb4fd;Chrome;E0D8DF2D-DB87-4025-A211-260183ECA9D9
 +
</syntaxhighlight> where the browser you downloaded GnuCash with is noted (Chrome in this case). You can forcibly delete this extended attribute from the GnuCash application by running the following command as a {{Mac}} Administrator: <syntaxhighlight lang="sh">
 +
xattr -d -r com.apple.quarantine /Applications/Gnucash.app
 +
</syntaxhighlight> Then retry clicking on GnuCash to launch it. It should launch successfully.
  
===='''Q:''' Why is the binary package putting all the DLLs in the gnucash folder?====
+
===='''Q:''' How can I get context menus on {{mac}}? ====
: '''A:''' Gnucash depends on approximately 50 other DLLs.  We don't know whether any of those happen to exist already in your %windir%\system32 folder.  To avoid interfering with programs depending on different versions of these DLLs, we write all the DLLs into our own folder.
 
  
"DLL hell" can be resolved by using side-by-side assemblies to keep multiple shared versions of a DLL.  However, WinSXS only became available in Windows XP, while Gnucash is built for Windows 2000.
+
:'''A:''' In GnuCash versions prior to 3.0, users can access context menus by using Control-click.
  
===='''Q:''' Are there no further informations?====
+
:To access context menus in GnuCash versions 3.0 and higher, use a two-finger click on the trackpad.  
: '''A:''' Yes, there is a special [[Windows | Windows page in the wiki]].
 
  
===GnuCash 2.0.x Troubleshooting===
+
:With version 3.0, GnuCash changed to use [[GTK3]], which interprets Control-click as a normal click. This is a limitation of GTK3, as described in [https://bugs.gnucash.org/show_bug.cgi?id=797286|bug 797286].
===='''Q:''' Why doesn't the discount from the billing terms show up when I pay an invoice?====
 
: '''A:''' Billing terms is only partially supported. The date due works but discounts don't.
 
  
===='''Q:''' How do I change the register colors?====
+
===='''Q:''' I just installed GnuCash and all the labels are in Japanese====
: '''A:''' See https://lists.gnucash.org/pipermail/gnucash-user/2006-February/015941.html for details on using a .gtkrc file to control GTK resources, including the font and colors used in the register.
+
:'''A:''' It's usually caused by something being not-quite-right in the language defaults on your Mac. Open System Preferences>Languages & Text (Snow Leopard) or International (Leopard and Tiger) and change the order of the languages, close system prefs, then repeat and change it back to the way you like it.  Try GnuCash again.
  
===='''Q:''' Why doesn't online quoting work?====
+
===='''Q:''' I want to remove GnuCash from my Mac. How do I do it?====
: '''A:''' You need to install the Finance::Quote, Crypt::SSLeay, and a few other Perl modules. If you are trying to add quotes from a cron job or a non-X session, you may need to [[Online_quote|enable dbus for the duration of the retrieval]].
+
:'''A:''' Note: These instructions apply to the stand-alone download from the GnuCash web page (and re-distributed by Homebrew). Users of MacPorts should consult the instructions for those distributions.
  
===='''Q:''' I use KDE and tried the gnucash Gnome2 port, but my fonts look ugly====
+
:Almost all of it is contained in the application bundle, Gnucash.app, which you can just drag to the trash. Gnucash's configuration files are in $HOME/Library/Application Support/Gnucash, which you can also drag to the trash. If Gnucash has ever crashed, there may be crash logs in $HOME/Library/Logs/CrashReporter/ that you'll also want to drag to the trash.  CrashReporter log filenames start with the name of the application, so the Gnucash ones will start with "Gnucash".
  
:'''A:''' The GNOME-2 port uses your GNOME font settings. You probably just need to change (or create) your gconf settings for GNOME-2. This can be done from KDE by running '''gnome-control-center''' from a '''konsole''' command line (or by using the '''Alt-F2''' run command dialog).
+
:If Finder won't let you drag Gnucash.app to the trash, it's likely that there is one or more instances of dbus-daemon (a Gtk inter-process communication program) still running. There are a couple of ways to stop them:
  
===='''Q: Running 2.0.x on Debian/Ubuntu crashes with "no code for module (g-wrap gw standard)". What does this mean?'''====
+
: * The simpler if you're comfortable with the command line is to open /Applications/Utililities/Terminal and issue the command "killall dbus-daemon".
  
:'''A:''' GnuCash uses g-wrap to interface between C and Guile.  Debian/Ubuntu have packaged g-wrap in such a way that the runtime files are separated from the development files, and don't have an explicit dependency on the runtime files.  If you get this error, it means you do not have the g-wrap runtime package installed.  You should '''install''' the package named '''guile-g-wrap''' and then gnucash should run.  See http://bugzilla.gnome.org/show_bug.cgi?id=330560
+
: * Otherwise, open /Applications/Utilities/Activity Monitor and type "dbus" into the filter window in the upper right hand corner. That will restrict the list to only instances of dbus. Select each in turn and click on the red octagon "Quit Process" tool on the left end of the toolbar and select Quit on the ensuing dialog box.  
  
The exact error message when the startup crashes is this:
+
:There may be other configuration files in hidden folders in your home directory which you'll have to delete from a Terminal command line. Those directories are:
<unnamed port>: In procedure scm-error in expression (scm-error (quote misc-error) #f ...):
+
: * .gnucash (if you've used an older version of Gnucash)
<unnamed port>: no code for module (g-wrap gw standard)
+
: * .gconf
 +
: * .gconfd
 +
: * .gnome2
 +
: * .gnome2_private
 +
: * .banking (if you've used the online banking features with an older version of Gnucash)
 +
: * .aqbanking (if you've used the online banking features with Gnucash 2.3.9 or later)
  
===='''Q:''' What does it mean when GnuCash (built with g-wrap-1.9.7) crashes with an error about a wrong type of argument in hook-run-danglers-real?'''====
+
:To delete these directories, open Applications:Utilities:Terminal and at the prompt enter
:'''A:''' There is a bug in g-wrap-1.9.7 that causes this.  You need to remove g-wrap 1.9.7, install g-wrap 1.9.6, and then rebuild GnuCash.  Then this error will go away.
 
  
The exact error message at the end of the stack trace when the startup crashes is this:
+
::<tt>rm -rf dirname</tt>
In /usr/share/gnucash/scm/hooks.scm:
+
:for each of those directories.
  22: 3  [gnc:hook-run-danglers-real "hook_report" #f]
 
 
 
.../hooks.scm:22:3: In procedure gnc:hook-run-danglers-real in expression (gnc:hook-run-danglers-real hook args):
 
.../hooks.scm:22:3: Wrong type argument in position 2: #f
 
  
===='''Q:''' What happened to my Profit and Loss report when I upgraded to 2.0?'''====
+
: Your account files are where ever you put them.  There will be corresponding [[#Q:_How_do_I_backup_my_data.3F|backup]] and log (suffix .log) files which start with the same name as your account file. You can drag the lot of them to the trash as well.
:'''A:''' The "Profit and Loss" (or P&L) report was renamed to the "Income Statement". So just run an Income Statement report and you'll get the report that you want.
 
  
===='''Q: I downgraded from GnuCash 2.2 to 2.0; what's up with this ROOT account?'''====
+
==== '''Q:''' How do I install Finance::Quote on a Mac?====
 +
:'''A:''' See [[Online_Quotes#Installing_Finance::Quote_on_macOS|Installing Finance::Quote on {{mac}}]].
  
'''A:''' The Root account is an internal change in the 2.2 code, introduced by the removal of the AccountGroup data structure. (Accounts are now their own grouping construct, but we still need a top-level "Root" account to take the place of the old top-level AccountGroup.)
+
==== '''Q:''' I copied my GnuCash data to a network drive. How do I open it from my Mac?====
 +
:'''A:''' Macs mount all network shares in the /Volumes directory, to which one can navigate in the GnuCash File Chooser.
  
If you're planning on sticking with your 2.0 install for a while, then you can re-parent each child of the "Root" Account to be a top-level account, then remove the Root account. If you're planning on using the same datafile between a 2.0.{<5} and 2.2 installation, every time you open the datafile with 2.2, the Root account will be re-inserted.
+
:First, make sure that the network folder is mounted and browsable in Finder. Note its share (not host) name: When you select a shared host in Finder, the first screen/level/column (depending on which view is selected in Finder) displays the shares available on that machine. The one you select will be the name that shows up in the /Volumes folder in the next step.
  
* NOTE: Make sure if you do downgrade from 2.2 to 2.0 that you re-parent all your accounts. Failing to do so will cause problems when you upgrade back to 2.2. Many things in 2.0 won't work until you re-parent accounts to top-level accounts.
+
:Start up GnuCash and select File->Open. On the selection list on the left you'll see entries for "File System" and "/"; they both go to the same place. Click on that, then scroll down and double-click on "Volumes". Find the share name for the remote folder, double click on that, then navigate as usual to the account file.
  
===RPM-based GnuCash versions===
+
===Microsoft Windows===
===='''Q:''' Are there no (more recent) precompiled rpms for my distro?====
+
===='''Q:''' Gnucash crashes immediately on startup====
 +
:'''A:''' This can happen for a variety of reasons.
 +
:One that pops up from time to time and is quite hard to detect unless one knows to look is having [https://www.lilypond.org Lilypond] installed. Lilypond for Microsoft Windows is built with a different version of Guile than is Gnucash, and the Lilypond installer insists on placing its path in the global path list in such a way that Gnucash finds Lilypond's Guile instead of its own, and crashes. The solution is to remove Lilypond's directory from the global path in control panel and add it to the environment settings in the Start Menu and Desktop aliases.
  
:'''A:''' Not here, but you can use the search at http://rpm.pbone.net/ with a search string like "gnucash-2.2".
+
===='''Q:''' Is there other information regarding Windows?====
 +
: '''A:''' Yes, there is a [[Windows | Windows page in the wiki]].  In particular you can also look in the [[Windows#Known_issues | Known Issues]] section on that page.
  
===SVN-built GnuCash versions===
+
===Mobile===
===='''Q:''' I checked out the svn repository, but if I try to run make, while I am offline, it fails.====
+
===='''Q:''' How do I run GnuCash on my mobile device?====
 +
:'''A:''' Unfortunately GnuCash can be built only for desktop opertaing systems. You may find apps that claim to be GnuCash compatible in various stores like Apple's App Store or Google's Play store, but they aren't GnuCash and with the exception of GnuCash for Android the developers have never even contacted the GnuCash project.
  
:'''A:''' Make asks the repository server, to build a fresh changelog file. If that can not be build, make fails. There are 2 solutions:
+
===All GnuCash versions===
* 'touch ChangeLog' before you run make.
+
===='''Q:''' GnuCash crashes on startup trying to run an SX. How do I fix this?====
* [[Subversion#Maintain_a_local_copy_of_the_repository|Maintain a local copy of the repository]].
 
  
===Macintosh OSX===
+
:'''A:''' We're still trying to track down all the various SX problems.  First, you should make sure you're running the most recent release.  Second, if you're running the most recent release and still having problems you should file a bug report with all the output on your terminal (you ARE running gnucash from a terminal, RIGHT???).  Third, you should backup your data file because the developers may want to see portions of it to help track down this problem.  Finally, run: <Syntaxhighlight lang="sh">
===='''Q: How to install on Mac OSX? '''====
+
gnucash --nofile
 +
</Syntaxhighlight>
 +
:then turn off the AutoRun option from Edit -> Preferences -> Scheduled Transactions .  Then exit and restart GnuCash and it should open your data file just fine.
  
:'''A:''' Download the dmg from the links at the top of [http://www.gnucash.org Gnucash] page or visit  [[MacOSXInstallation]] for more detailed instructions and alternatives.
+
==Configuring and Managing==
  
:'''A2:''' See also: http://homepage.mac.com/elliottmce/gnucash_guide/
+
=== Basics: Filenames, Directories, ... ===
  
===='''Q:''' I installed from the DMG download and the Help menu doesn't work. How do I install the documentation?====
+
===='''Q:''' What's the GnuCash file extension?====
:'''A:''' It's already installed, but the Help menu relies on a Gnome program (Yelp) that isn't available to the Gnucash.app bundle -- not even if you install it from Macports. Open Gnucash.app/Contents/Resources/English.lproj/GnuCash Help/help.html or Gnucash.app/Contents/Resources/English.lproj/GnuCash Guide/index.html in your browser. (For example, control-click on Gnucash.app and select "Show Pacakge Contents" from the context menu, navigate to Contents:Resources:English.lproj:Gnucash Help and double-click help.html.)
 
===='''Q:''' I installed from the DMG and I get an error about a path "not found"====
 
:'''A:''' You've probably dragged Gnucash.app to a folder whose name has a space in it (or some parent folder does). Gnucash's launcher script is a mix of shell and Apple Script, and at present it chokes on spaces in pathnames. Move Gnucash.app to a folder with no spaces (Applications is traditional) and all should be well.
 
===='''Q:''' I just installed Gnucash and all the labels are in Japanese====
 
:'''A:''' It's usually caused by something being not-quite-right in the language defaults on your mac. Open System Preferences>Languages & Text (Snow Leopard) or International (Leopard and Tiger) and change the order of the languages, close system prefs, then repeat and change it back to the way you like it. Try Gnucash again.
 
===='''Q:''' I tried to print a report, but there aren't any printers in the print dialog====
 
:'''A:''' This will be fixed in 2.3.12; in the meantime, use the "Preview" button, which will open a PDF of the report in whatever is your chosen PDF viewer (Preview.app by default); you can print from there.
 
===='''Q:''' I want to remove Gnucash from my Mac. How do I do it?====
 
:'''A:''' Note: These instructions apply to the stand-alone download hosted on Gnucash's SourceForge project. Users of MacPorts or Fink should consult the instructions for those distributions.
 
  
:Almost all of it is contained in the application bundle, Gnucash.app, which you can just drag to the trash. If you're using Gnucash 2.3.9 or later, Gnucash's configuration files are in $HOME/Library/Application Support/Gnucash, which you can also drag to the trash. If Gnucash has ever crashed, there may be crash logs in $HOME/Library/Logs/CrashReporter/ that you'll also want to drag to the trash. CrashReporter log filenames start with the name of the application, so the Gnucash ones will start with "Gnucash".
+
:'''A:''' Starting with version 2.3.15, '''.gnucash''' is the file extension for new files. Existing filenames will not be changed though and the old extensions are still recognized on most systems.
  
:If Finder won't let you drag Gnucash.app to the trash, it's likely that there is one or more instances of dbus-daemon (a gtk inter-process communication program) still running. There are a couple of ways to stop them:
+
:Earlier versions did not enforce any file naming conventions or extensions.  However, the '''.xac''' and '''.gnc''' extensions are described in the "shared-mime-info" package used by almost every distro and desktop environment to associate applications with files, and allow the file to be opened when double clicked in a file browser.
  
: * The simpler if you're comfortable with the command line is to open /Applications/Utililities/Terminal and issue the co mmand "killall dbus-daemon".
+
:'''Note:'''  '''.xac''' is short for "X-Accountant", the predecessor of GnuCash; '''.gnc''' is the "internal" three-letter-abbreviation of GnuCash.
  
: * Otherwise, open /Applications/Utilities/Activity Monitor and type "dbus" into the filter window in the upper right hand corner. That will restrict the list to only instances of dbus. Select each in turn and click on the red octagon "Quit Process" tool on the left end of the toolbar and select Quit on the ensuing dialog box.
+
===='''Q:''' Where is my GnuCash data file?====
  
:There may be other configuration files in hidden folders in your home directory which you'll have to delete from a Terminal command line. Those directories are:
+
:'''A:''' The answer depends in part on the file format you have chosen for your data.  
: * .gnucash (if you've used an older version of Gnucash)
 
: * .gconf
 
: * .gconfd
 
: * .gnome2
 
: * .gnome2_private
 
: * .banking (if you've used the online banking features with an older version of Gnucash)
 
: * .aqbanking (if you've used the online banking features with Gnucash 2.3.9 or later)
 
  
:To delete these directories, open Applications:Utilities:Terminal and at the prompt enter
+
:If you are using the default '''xml''' format, or the '''sqlite''' format, the data file is called ''something.gnucash'' and is stored in the folder you specified when you saved your file. '''Note:''' See the [[#Q: What's the gnucash file extension?|previous question]] for more information on file naming. For details of file formats see [[GnuCash XML format]] and [[SQL]].
  
::<p><tt>rm -rf dirname</tt>
+
:If you are using the '''postgres''' or '''mysql''' storage formats, then there is no data file but a database in your [[Glossary#D|DBMS]].
:for each of those directories.
 
  
:Gnucash created a symlink pointing to itself when you first launched it. It's either /opt/gnucash-2.2.9, /opt/gnucash-2.3.x, or /Library/Gnucash-2.3.x. The last can be dragged to the trash from Finder (you might have to authenticate as an administrator). The other two must be deleted from a command line, e.g.:
+
:If you do not remember where you saved your file, you can figure out where the file is by clicking ''File > Save As…'', and noting the folder in the dialog box. That is the folder your data file is located. Then, cancel the ''Save As...'' dialog box.
  
::<p><tt>sudo rm /opt/gnucash-2.2.9</tt>
+
:If the above is not possible, search your disks for directories containing ''.gnucash'' or ''.xac'' and ''.log'' files.
  
:Sudo will request your password, and you must be logged in as an administrative user. (Look in System Preferences>Users (Tiger and Leopard) or System Preferences>Accounts (Snow Leopard). For each account, there's a checkbox named "Allow user to administer this computer" -- that must be checked for the account to which you are logged in.)
+
===='''Q:''' What are the .LCK and .LNK files?====
  
:Your account files are where ever you put them. There will be corresponding backup (suffix .xac) and log (suffix .log) files which start with the same name as your account file. You can drag the lot of them to the trash as well.
+
:'''A:''' These are ''lock files'' that GnuCash creates to prevent different users from opening the same file at the same time. GnuCash creates these files when you open your data file, and deletes them when you close the file. ('''Note:''' If GnuCash crashes, these files will remain in your system, and GnuCash will warn you the next time you try to open the data file.) If GnuCash is no longer using a given file, you can remove these files safely.
  
===All GnuCash versions===
+
===='''Q:''' What are all these .gnucash and .log files filling up my directory?====
===='''Q:''' Why does Gnucash start incredibly slowly on a FreeBSD system?====
 
  
:'''A:''' Your copy of gnucash wasn't compiled correctly for [[FreeBSD]].   When you compile gnucash on FreeBSD you need to set "libltdl_cv_sys_dlopen_deplibs=yes" in the environment before running the ./configure command.
+
:'''A:''' These are backup [[File|data files]] and log files (".log") that GnuCash creates to prevent data loss.  GnuCash will remove them after a configurable amount of time (Preferences/General/"Days to retain log files").  In the normal case when your data file is ok and you don't need old versions of the file, you can remove these files safely.
  
===='''Q:''' Why does Gnucash run incredibly slowly on a unix system using X?====
+
:Note that the backup and log files have a format of <name>.YYYYMMDDHHMMSS.gnucash (or .log).  These are backup (and log) files from your data file, <name>.
  
:'''A:''' Please verify that the RENDER option is not disabled in your X configuration. Sometimes this is done for debugging purposes, like so:
+
:Note that .log files are to be used only if you are using an XML backend for the book. With SQL storage, it is not recommended to replay the .log files. The data is always saved to the data store and the possibility of data loss is minimal in that case.
 +
:This topic is covered more broadly in [{{URL:docs:guide}}/basics-backup1.html Backing Up and Recovering Data] section of the User Guide.
  
  Section "Extensions"
+
===='''Q:''' Why is my file name getting longer and longer?====
    Option "RENDER" "off"
 
  EndSection
 
  
===='''Q:''' How do I fix a system error when getting stock quotes? ====
+
:'''A:''' GnuCash creates a backup file by taking the current data file and adding the date/time to the end (YYYYMMDDHHMMSS.gnucash). So if you're using a file named "Foo.gnucash", then you'll get backups of the form:
  
:'''A:''' Try the steps below. After each step, run gnucash and see if that solution resolved the problem of retrieving stock quotes.
+
: Foo.gnucash.20100719100214.gnucash
  
:#Make sure you're running Finance::Quote 1.11 version or later.  Earlier versions can no longer retrieve currency quotes.
+
:Now assume that instead of opening "Foo.gnucash" you open one of these backup files, you make changes to it and then save the file.
:#Run the command <tt>gnc-fq-check</tt> from the command line.  The output should look like <tt>("1.11" "tsp" "vwd" .....)</tt>.  If it doesn't follow the directions to install any missing libraries.  
+
:For starters, this means you've just over-written the original backup file which is always a bad idea. Backups should never be changed.
:#Run the command  <tt>echo '(yahoo "CSCO")' |  gnc-fq-helper</tt> from the command line. You should get something that looks like <tt>(("CSCO" (symbol . "CSCO") ..... (currency . "USD")))</tt>.  If you get an error message about a missing file instead, that's your problem.  This is a dependency that gnucash doesn't know about and so doesn't check for it.  You will need to satisfy the missing dependency.
+
:Secondly since you saved changes, GnuCash will create a backup file based the file you just changed using the same naming system: it adds a date/time extension. Since the file you saved already had such an extension, you end up with a backup file named:
:#:But usually, at least under linux, it helps to run <code>gnc-fq-update</code> ''as root''.
 
:#: For Windows you should probably look at [[Windows#Finance::Quote_Problems_with_Windows_.28VISTA_32-Bit_SP1.29]].
 
:#Run gnucash from the command line with the <tt>-debug</tt> argument, attempt a quote retrieval, and then contact the developers either via email or on IRC.
 
  
===='''Q: I'm running Debian/unstable, just upgraded, and GnuCash no longer works. How can I fix that?'''====
+
: Foo.gnucash.20100719100214.gnucash.20100719112352.gnucash
  
:'''A:''' Contact Debian. Read the [https://lists.gnucash.org/pipermail/gnucash-user gnucash-user archives] because someone else probably already reported the problem.
+
:Repeating this process will add to the file name until it exceeds the operating system limits.
  
:Examples:
+
:The fix:
  
:If you get an error about gncownercreate, see https://lists.gnucash.org/pipermail/gnucash-user/2004-March/009864.html
+
:1) Don't open a backup file
 +
:1a) If you DO open a backup file, '''never''' simply save it out again, instead use Save As to give it a new name.
 +
:2) Make sure you're always using your base data file
 +
:3) If your base data file for some reason is bad, and you need to recover from a previous backup file, copy the backup file over your bad base file, for example:
  
:If you get an error about format not being found, see https://lists.gnucash.org/pipermail/gnucash-user/2004-March/009676.html
+
:   cp Foo.gnucash.20100719100214.gnucash.20100719112352.gnucash Foo.gnucash
  
:If you get an error about "Unbound variable: gnc:menuname-ncreports", it should be fixed in version 1.8.12-5.  See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=348502
+
:and then File -> Open the new file, Foo.gnucash.
  
===='''Q:''' Why do you have to depend on GNOME? It's so bloated!'''====
+
===='''Q:''' Gnucash crashed and lost a bunch of my edits. How do I recover them?====
  
'''A:''' GnuCash uses specific GNOME libraries for the following features:
+
:'''A:'''  
  
* printing (gnomeprint)
+
:The first thing to check is that you are, in fact, opening the right file. Look up in the title bar: If it has a long string of numbers starting e.g. 20111011 (2011-10-11, i.e., 11 October 2011) then you've opened the wrong file. If you haven't done this too many times, the right one should still be in the recent list in the File menu. Open it and make sure that you really have lost work.
* configuration storage (gconf)
 
* graphing (goffice)
 
* UI support (libgnomeui)
 
* HTML rendering (gtkhtml)
 
* Help (yelp)
 
  
We do this because we'd rather focus our energy on building an accounting system than a printing library, graphing library, html-rendering library, ... it's just the reasonable way to build software, and has been for years.
+
:If you're sure that you got the right file and that your work is still missing, look at the log files for that data file -- and for any backup files you might have entered data into (Those will have logfiles with names that look like filename.timestamp.gnucash.timestamp.log). Quicklook works on log files, so you can browse the log files in Finder. Find the earliest one for which data does ''not'' appear in your data file and select <tt>File>Import>Replay Gnucash .log File</tt>, then select that log file. Repeat for every subsequent log file.  
  
There's no requirement that you use the full-blown GNOME desktop environment, or run metacity as your window manager, or that you launch gnucash only from the GNOME panel, or anything like that.  We just need the libraries.  Many users run GnuCash just fine from their KDE, XFCE or even TWM desktops.
+
:Click the save button.
  
As for complaints about how "bloated" GNOME (and KDE and ...) are, it's hard to believe a system in which every app re-implemented their own support for common tasks (such as printing, help-browsing, &c.) would ultimately be less bloated.
+
:Go back to work.
  
===='''Q:''' I'm having trouble getting GnuCash running on Slackware'''====
+
:'''Warning:'' The log file will not replay business actions.''''' So if you posted invoices or processed payments or did anything else with the business functions, replaying the log '''''will destroy your data!'''''  Do ''not'' replay a log that has transactions from business feature operations or internal data structures will be completely messed up and you will have lots of trouble cleaning up later.
  
:'''A:''' See http://rjmarq.org/gnucash.html and http://www.slackages.com/linux/slackages/index.html
+
:If you did lose business feature work the only thing you can do is redo the work by hand and then make sure you click save.
  
===='''Q: GnuCash crashes on startup trying to run an SX. How do I fix this?'''====
+
:Save early, save often.
  
:'''A:''' We're still trying to track down all the various SX problems. First, you should make sure you're running the most recent release. Second, if you're running the most recent release and still having problems you should file a bug report with all the output on your terminal (you ARE running gnucash from a terminal, RIGHT???). Third, you should backup your data file because the developers may want to see portions of it to help track down this problemFinally, run:  
+
===='''Q:''' GnuCash says that it can't obtain the lock for my file. What should I do? ====
 +
:'''A:''' There are two ways to get that message:
 +
:# One is to have another instance of GnuCash running with the same file or database open. If you're using MySQL or Postgresql, or if you have your file in a service like Dropbox, the other instance might not be on the same computer.
 +
:# The other way is if GnuCash didn't shut down correctly the last time it quit, and so didn't remove the lock.
 +
:# You are using a '''sshfs''' filesystem. In this case adding the option '''-o disable_hardlink''' should make the error go away (if you have a UID/GID with the enough privileges on the remote directory).
 +
:* If you're ''absolutely sure'' that another instance of GnuCash doesn't have the same file open, click on "Open Anyway".
 +
:* Otherwise, select one of the other buttons.
 +
:;Background: When a user opens a .gnucash file with GnuCash, e.g. <tt>foo.gnucash</tt> is opened, GnuCash creates an additional file in the same folder, as a signal that this file is open and being modified.  This is the lock file. The lock file will have the same file name plus LCK extension, e.g. <tt>foo.LCK</tt> for when <tt>foo.gnucash</tt> is opened.
 +
::Before GnuCash opens the file, it looks for a file that starts with the file name you asked it to open and ends with <tt>.LCK</tt>.  If it finds this file, it gives the warning about difficulty obtaining a lockIn this case, GnuCash thinks the file you're trying to open is already open and being edited.
 +
:;Tip: While using any sort of '''syncing software''', set the software ''not to copy'' the *.LCK and the *.LNK as well as the *.log files.
 +
:;See also: [[#Q: What are the .LCK and .LNK files?]]
  
gnucash --nofile
+
===='''Q:''' I moved/renamed my data file and my reports disappeared. How do I get them back?====
  
:then turn off the AutoRun option from Edit -> Preferences -> Scheduled Transactions . Then exit and restart GnuCash and it should open your data file just fine.
+
:'''A:''' Reports are stored in a separate file in the [[Configuration Locations#GNC_DATA_HOME|GNC_DATA_HOME]]/books<ref name ="gnc_dot_dir">
 +
;Before GnuCash 3.0: [[Configuration Locations#DOT_GNUCASH_DIR]] was used. The linked page explains where its content moved.</ref> directory. File name is a url-encoded path name for the main data file. To get your reports back, copy old report file over the new reports file, then open ~/.gnome/GnuCash in your favorite editor and copy section corresponding to the old file to the section of the new file
  
 +
===='''Q:''' Why can't GnuCash find my data file anymore?  It just says: parser error : Start tag expected, '<' not found====
  
===='''Q: GnuCash crashes when I run a Custom Report saying something about a Stack OverflowWhat does this mean?'''====
+
:'''A:''' We're very sorry, but you just shot yourself in the foot.  GnuCash uses [[Configuration Locations#GNC_DATA_HOME|GNC_DATA_HOME]]/ to store metadata files.  In particular, [[Configuration Locations#GNC_DATA_HOME|GNC_DATA_HOME]]/books stores metadata about your data filesIn versions 1.8 and earlier the metadata file was named as the encoded name of the full path to your datafile, but as of 2.0 this was changed and the metadata file is just named the same as the data file.  So if you saved your data file into [[Configuration Locations#GNC_DATA_HOME|GNC_DATA_HOME]]/books and updated your versions, GnuCash just overwrote your data file with the metadata file.  You'll need to copy a backup file and move it somewhere outside of [[Configuration Locations#GNC_DATA_HOME|GNC_DATA_HOME]] and tell GnuCash to look there by using the File -> Open feature to load the new datafile.
  
:; Note : This problem no longer happens as of GnuCash 2.0.
+
:'''Note:''' This should no longer happen as someday [in 2011?] the metafiles got the extension '''.gcm''' ''GnuCash Metafile'', while by default datafiles get '''.gnucash'''. Nevertheless it is a bad idea to store your datafile in this application settings folder.
  
:'''A:''' There is a problem with the Save Report feature when you save the report settings for a report with the same name as a default report.  This problem manifests itself as a recursive execution and causes the program to crash.  To keep yourself from hitting this bug, make sure you always change the name of a report before you try to "Save Report".  To change the report name click the "Options" button in the toolbar.  Note that the "Save Report" button really means "Save Report Options" or "Make Into Custom Report".
+
===='''Q:''' How can I change the number of the most recent files (MRU) list?====
  
If you get into this situation the easiest way to get back a working system is to delete your saved reports:
+
:'''A:''' It is amost the same as in the next question, but instead of deleting <tt>fileX</tt>, you have to edit <tt>maxfiles</tt> in <tt>/org/gnucash/GnuCash/history/</tt>. In version 4.6 or prior, settings are located in <tt>/org/gnucash/history/</tt>. If you decrease the number, you should also delete the superflous <tt>fileX</tt> entries.
* Exit gnucash
+
:;ToDo: Split off an "Accessing GSettings" and link it from both questions.
* Delete the file ~/.gnucash/saved-reports-1.8* (or ~/.gnucash/saved-reports-2.* if you run a more recent version)
 
* Restart gnucash
 
  
If you do not want to lose all your saved reports, you can edit the saved-reports-* file and remove the corrupt report entry. Locate the problem report definition, and delete the entire section, which begins with a line of semicolons (";") and continues until the next occurrence of a line of semicolons. If GnuCash will not load your file after deleting a report (i.e., it begins to load but crashes while setting up the screen), you will have to edit the file in ~/.gnucash/books/{yourfile} so that GnuCash doesn't attempt to open the missing report. This file has entries for each tab to open on startup. Each tab is headed with "[Page x]"; removing an entry prevents it from loading on startup.
+
===='''Q:''' I have deleted a gnucash file from my computer. How can I remove that file from the File menu's short list (MRU) as well?====
  
This is a known bugFor more information see http://bugzilla.gnome.org/show_bug.cgi?id=168250
+
:'''A:''' The list of files you see in the File menu is the list of '''most recently used''' files (MRU). Strictly speaking the items in this list are still "recently used" even if you deleted the file from your computer in the meantime (you won't be able to open it anymore from the File menu). So it's really only a cosmetic issue. But if it bothers you enough and you really want the obsolete entries removed, please read on.
 +
:Depending on your version of GnuCash, the MRU list is stored in different locations.
 +
:;GnuCash 2.6 and newer: The MRU list files is stored in the default ''preferences system'' of your operating system:
 +
::;Linux and similar: The MRU list is stored in '''dconf'''. You can use a tool called <tt>dconf-editor</tt> to manipulate the dconf database. You may need to install it using your distribution's software management system first. Then open the DConf Editor gui tool, and use it to modify the <tt>/org/gnucash/GnuCash/history</tt> tree. In version 4.6 or older, settings are located in <tt>/org/gnucash/history/</tt>.
 +
:::The default number of recently used files shown is set to 4. This can be set to other values by changing the value of <tt>maxfiles</tt> in the same window.
 +
::;{{mac}}: The MRU list is stored in '''defaults'''. This is accessed in <tt>Terminal</tt> via the defaults(1) command. To remove a particular file (e.g., the fourth) from the list you can say:
 +
:::'''N.B.:''' In version 4.6 or older, the path in instructions below needs to be changed to <tt>/org/gnucash/history/</tt>. <syntaxhighlight lang="sh">
 +
defaults delete -app Gnucash "/org/gnucash/GnuCash/history/file4"
 +
</syntaxhighlight>
 +
:::To change it, say <syntaxhighlight lang="sh">
 +
defaults write -app Gnucash "/org/gnucash/GnuCash/history/file4" "/Users/john/Desktop/MyAccounts.gnucash"</syntaxhighlight> To display all of the stored Gnucash preferences, use <syntaxhighlight lang="sh">
 +
defaults read -app Gnucash
 +
</syntaxhighlight> To change the number of files listed, use <syntaxhighlight lang="sh">
 +
defaults write -app Gnucash "/org/gnucash/GnuCash/history/maxfiles" -int 6
 +
</syntaxhighlight> The value must be between 0 and 10 inclusive.
 +
:::;N.B.: You may need to provide a full path to GnuCash like <syntaxhighlight lang="sh">
 +
defaults read -app /Users/john/Applications/Gnucash
 +
</syntaxhighlight> or use the domain like <syntaxhighlight lang="sh">
 +
defaults read org.gnucash.Gnucash
 +
</syntaxhighlight>
 +
::;Windows: The MRU list is stored in the '''Windows registry'''. You can use the <tt>regedit</tt> tool to manipulate it. This tool is installed on Windows by default. You can find the MRU list under:
 +
:::[Version 4.7 or newer] <tt>HKEY_CURRENT_USER/Software/GSettings/org/gnucash/GnuCash/history</tt>.
 +
:::[Version 4.6 or older] <tt>HKEY_CURRENT_USER/Software/GSettings/org/gnucash/history</tt>.
 +
:::To change the number of files displayed create a new <tt>DWord</tt> item <tt>maxfiles</tt> and set it to a decimal number between 0 and 10.
 +
:;GnuCash 2.4 and older: The MRU list is stored in an independent preferences database called GConf. GnuCash doesn't have a direct way to edit this. Depending on your operating system there are different ways to alter it:
 +
::;Linux and similar: You can use a tool called ''gconf-editor'' to manipulate GConf. You may need to install it using your distribution's software management system first. Then open the GConf Editor gui tool, and use it to modify the <tt>/apps/gnucash/history</tt> tree.
 +
::;{{mac}}: As with Windows gconf editor is not available on this platform and you will have to hand edit the gconf files using a text editor while GnuCash or other Gnome based programs are '''not''' running. The file you will want to change is
 +
:::<tt>~/.gconf/apps/gnucash/history/%gconf.xml</tt>. This file is in xml.
 +
::;Windows: On Windows the gconf editor tool is not available. Here you will have to hand edit the gconf files using a text editor while GnuCash or other Gnome based programs are '''not''' running. The file you will want to change is normally 
 +
:::;Windows XP: <tt>c:\Documents and Settings\<user>\.gconf\apps\gnucash\history\%gconf.xml</tt>
 +
:::;Windows 7:<tt>c:\Users\<user>\.gconf\apps\gnucash\history\%gconf.xml</tt>
 +
:::This file is in xml.
  
===='''Q:''' I'm trying to read the tutorial/help but it says that it's unable to find the url.  What's up with that?====
+
===Questions about Backups===
  
:'''A1:''' You don't have the '''gnucash-docs''' package installed.  Install that to the same prefix where you installed gnucash and the docs/tutorial will show up properly.
+
===='''Q:''' How do I backup my data?====
:: If your default Desktop is not ''Gnome'', you may also need to install '''yelp'''.
+
:'''A:''' See [[Backup]] page.
  
:'''A2:''' You ran in an "really stable" [open]SuSE bug.
+
===='''Q:''' How do I backup my GC environment, including preferences?====
 +
:'''A:''' See [[Backup]] page.
  
==GnuCash Files and managing a GnuCash installation==
+
===Customizing the Appearance===
  
==='''Q:''' What's the gnucash file extension?===
+
===='''Q:''' How do I change the appearance of GnuCash?====
 +
: '''A:''' GnuCash uses GTK to manage its appearance. GTK is a multi-platform toolkit for creating graphical user interfaces. GTK uses various ''resource files'' to manage this.
  
:'''2.2.x and earlier'''
+
::'''Note:''' Resource files are not created by default, so none may exist on your system.
  
: GnuCash does not enforce any particular file naming convention or extension. However, the following extensions are described in the "shared-mime-info" package used by almost every distro and desktop environment to associate applications with files. Naming your datafile with one of these extensions will allow the gnucash to be opened when a file is seen and activated in a file browser.
+
:;GnuCash version 3.0 and later: use the GTK3 Toolkit. See [[GTK3]] for more information.
 +
:;GnuCash version 2: uses the GTK2 Toolkit. See [[GTK2]] for more information.
  
:* .xac (short for "X-Accountant", the predecessor of GnuCash), still in use for your backup files,
+
===='''Q:''' How do I change the appearance of reports?====
:* .gnc (the "internal" three-letter-abbreviation of GnuCash)
+
: '''A:''' The appearance of GnuCash reports can be changed under <tt>Edit->Stylesheets</tt>.
:* .gnucash (recommended and the only one that works on Windows)
 
  
:'''2.3.15+ and 2.4.x'''
+
===='''Q:''' How do I change the register colors?====
 +
: '''A:'''
 +
:; For GnuCash 3.0 and up: see [[GTK3#Register_Appearance|GTK3 Register Appearance]].
 +
:; For GnuCash 2.6.3 to 2.6.21: see [[GTK2#Register_Appearance|GTK2 Register Appearance]].
  
:Starting with GnuCash 2.3.15, .gnucash is enforced as file extension for new files. Existing filenames will not be changed though and the old extensions are still recognized on most systems.
+
===='''Q:''' I'm vision-impaired. How do I make GnuCash more accessible?====
 +
: '''A:''' First, tell GnuCash to ''not'' use <tt>custom colors</tt> as described in [[GTK3#Register_Appearance|GTK3 Register Appearance]] and [[GTK2#Register_Appearance|GTK2 Register Appearance]] for versions before 3.0.
 +
:* Both Gtk3 and Gtk2 provide <tt>HighContrast</tt> and <tt>HighContrastInverse</tt> themes. On Linux the theme is set ''globally''. On {{Mac}} and Microsoft Windows you must set it ''for Gtk''. The setting key is <code>gtk-theme-name</code>. On Gtk2 you'll set it in your resource file; on Gtk3 you'll add a line <syntaxhighlight lang="ini">gtk-theme-name=HighContrast</syntaxhighlight> under settings in settings.ini. <tt>HighContrastInverse</tt> presents light text on a dark background.
 +
:* On Gtk3 you have the additional option of setting <syntaxhighlight lang="ini">gtk-application-prefer-dark-theme=true</syntaxhighlight> in settings.ini that will work with any theme that provides a dark mode.
 +
:* Adjust the font name and font size to something you're comfortable with, see [[GTK3#Typefaces]] or the example file in [[GTK2]].
  
==='''Q:''' Where is my GnuCash data file?===
+
===='''Q:''' Where can I find the GTK resource file?====
 +
: '''A:''' Both the path to the GTK resource file and the file name used are different for each platform supported by GnuCash.
  
:'''A:''' The data file is called ''something.gnucash'', where ''something'' is the name you specified when you first saved the file. See the previous question if you are using an older version of GnuCash and need to figure out the data filename extension.
+
::Information about the GTK path is available at [[Configuration Locations#GTK_CONFIG_HOME|GTK Configuration locations]].
  
:To figure out where the file is, open up GnuCash and note down the name of the file that appears in the title bar. Then, click ''File > Save As…'', and note down which folder the ''Save As…'' dialog box opens in. That is the folder your data file is located. Then, cancel the ''Save As...'' dialog box.
+
::Information about the GTK files that may exist on your machine is available at [[Configuration_Locations#In_GTK_CONFIG_HOME|GTK file names]].
  
:If the history got lost, search your disk for directories containing ''.gnucash'' or ''.xac'' and ''.log'' files.
+
::For additional information about using these tools, also see the [[GTK2]] and [[GTK3]] pages.
  
==='''Q:''' Why can't GnuCash find my data file anymore? It just says: parser error : Start tag expected, '<' not found===
+
===='''Q:''' How do I get prices to display as decimals instead of fractions?====
  
:'''A:''' We're very sorry, but you just shot yourself in the foot.  GnuCash uses $HOME/.gnucash to store metadata files.  In particular, $HOME/.gnucash/books stores metadata about your data files.  In versions 1.8 and earlier the metadata file was named as the encoded name of the full path to your datafile, but as of 2.0 this was changed and the metadata file is just named the same as the data file.  So if you saved your data file into $HOME/.gnucash/books and updated your versions, GnuCash just overwrote your data file with the metadata file.  You'll need to copy a backup file and move it somewhere outside of $HOME/.gnucash and tell GnuCash to look there by using the File -> Open feature to load the new datafile.
+
:'''A:''' In Preferences>Number, Date, Time check the first option, 'Force Prices to display as decimals".
  
==='''Q:''' When I try to open my datafile on Windows, I get "Parse error". What happened ?===
+
::Numbers in GnuCash are always stored as rational numbers; Amounts and Values will be rounded to their smallest allowed fraction, which is nowadays always a decimal, but prices must be an exact ratio of the rounded amount and value. By default GnuCash will display prices that cannot be expressed exactly (no rounding) as a decimal in exact fractional form, that looks like 23 + 7/13. The above option will ''display'' that price with the currency's smallest unit plus 2 decimals; in this case 23.5385 assuming that the currency is one with a 1/100 smallest unit.
  
:'''A:''' There is a peculiarity in GnuCash on Windows when you use the Opening balance tab of the account dialog. If you enter a two-digit year in that tab, the date is not saved properly. Subsequently, when you reopen your datafile afterwards, GnuCash thinks it's invalid. If you encounter such a situation, you can attempt to fix your data file manually.
+
===='''Q:''' I use KDE, but my fonts look ugly====
:* Make a copy of your data file and uncompress it (with a tool like 7Zip).
 
:* Open the uncompressed file with a text editor such as Wordpad or Notepad++. This is an xml file. xml looks a bit like html, but uses different tag names.
 
:* Look for transaction sections that are missing a <trn:date-posted section>. If you find such transactions, add the <trn:date-posted> section below the <trn:currency> section, like so:
 
 
 
  <trn:currency>
 
  ...
 
  </trn:currency>
 
  <trn:date-posted>
 
  <ts:date>2011-07-06 00:00:00 -0400</ts:date>
 
  </trn:date-posted>
 
:* Obviously, you can enter the date that suits you, but keep the format as shown.
 
:* When all transactions have a <trn.date-posted> section, save your file.
 
:* It should now open with GnuCash again
 
  
:'''Note:''' You could run into the same problem when you enter opening balances via the New Account Hierarchy Assistant. The solution is the same: you will have to add the missing <trn:date-posted> sections
+
:'''A:''' GnuCash uses your GTK font settings. You probably just need to change (or create) your GTK settings for Gnucash. If your '''KDE System Settings''' have no module ''GTK'', just run the '''[https://help.gnome.org/users/control-center/index.html.en gnome-control-center]''' from a '''konsole''' command line (or by using the '''Alt-F2''' run command dialog).
  
==='''Q: What are all these .gnucash and .log files filling up my directory?'''===
+
===GnuCash Localization (L10N) and Font Issues===
  
:'''A:''' These are backup [[File|data files]] (".gnucash"; it was ".xac" in versions before 2.4) and log files (".log") that GnuCash creates to prevent data loss.  Gnucash will remove them after a configurable amount of time (Preferences/General/"Days to retain log files").  In the normal case when your data file is ok and you don't need old versions of the file, you can remove these files safely.
+
===='''Q:''' I want to use GnuCash in my own language====
  
:You should notice that the backup and log files have a format of <name>.YYYYMMDDHHMMSS.gnucash (or .log).  These are backup (and log) files from your data file, <name>.
+
:'''A:''' See [[Locale_Settings]].
  
==='''Q: Why is my file name getting longer and longer?'''===
+
===='''Q:''' I want to use GnuCash in a different language than my monetary/decimal separator====
  
:'''A:''' GnuCash creates a backup file by taking the current data file and adding the date/time to the end (YYYYMMDDHHMMSS.gnucash). Older versions up to 2.3.x still used the form YYYYMMDDHHMMSS.xac - from GnuCashs ancestor XAccountant. So if you're using a file named "Foo.gnucash", then you'll get backups of the form:
+
:'''A:''' Then you want to set the LC_MONETARY envrionment variable different from the LANG: "env LC_MONETARY=fr_FR".
  
: Foo.gnucash.20100719100214.gnucash
+
===='''Q:''' I'm a Mac user and I want to use Gnucash in a language different from my system settings.====
  
:Now assume that instead of opening "Foo.gnucash" you open one of these backup files, you make changes to it and then save the file.
+
:'''A:''' See [[Locale_Settings#Changing_the_Language_on_OSX]].
:For starters, this means you've just over-written the original backup file which is always a bad idea. Backups should never be changed.
 
:Secondly since you saved changes, GnuCash will create a backup file based the file you just changed using the same naming system: it adds a date/time extension. Since the file you saved already had such an extension, you end up with a backup file named:
 
  
: Foo.gnucash.20100719100214.gnucash.20100719112352.gnucash
+
===='''Q:''' How get I rid of strange unreadable characters?====
  
:Repeating this process will add to the file name until it exceeds the operating system limits.
+
:'''A:''' You need a font in which the respective characters are defined. Your system tools usually offer some font viewer to test them. See [[#Customizing_the_Appearance|Customizing_the_Appearance]] for guidance on changing font settings in general.
  
:The fix:
+
===='''Q:''' I dislike some of the new currency symbols of GnuCash 2.6====
  
:1) Don't open a backup file
+
:'''A:''' If you really know a symbol is wrong or outdated,
:1a) If you DO open a backup file, '''never''' simply save it out again, instead use Save As to give it a new name.
+
:::follow [[#Q: I think I found a bug. How do I report it?]] and file it against the component ''Currency and Commodity''.
:2) Make sure you're always using your base data file
+
:::Don't forget to add a link to a reliable source like wikipedia or your central bank.
:3) If your base data file for some reason is bad, and you need to recover from a previous backup file, copy the backup file over your bad base file, for example:
+
::In between and otherwise:
 +
:::Tools->Security editor
 +
::: checkmark <tt>Show national currencies</tt>,
 +
::: open the CURRENCY tree,
 +
::: search the ISO symbol of that currency and click <tt>edit</tt>,
 +
::: replace <tt>Display Symbol</tt> with your desired text
 +
::: and confirm it by clicking <tt>OK</tt>.
  
:  cp Foo.gnucash.20100719100214.gnucash.20100719112352.gnucash Foo.gnucash
+
=== Using Different Versions, Up And Downgrade ===
  
:and then File -> Open the new file, Foo.gnucash.
+
===='''Q:''' Can I exchange Gnucash file with any other version of GnuCash?====
  
==='''Q: Can a new GnuCash release still read my old data file?'''===
+
:'''A:''' Not quite.
 +
:* You can always upgrade to a higher release. In most cases you can go back and forth between adjacent major releases.
 +
::There have been some exceptions:
 +
::* To go back from 3.x to 2.x, you should first go back to 2.6.21.
 +
::* 2.6 and 2.4 files were not interchangeable if you had used the [[Credit Notes]] feature in 2.6.
 +
::* Reading 2.2 in 2.0 would not work, if you had created [[Scheduled Transactions]].
  
:'''A:''' The answer depends on how much forward you want to go.
+
===='''Q:''' Can a new GnuCash release still read my old data file?====
  
; Minor releases : GnuCash maintains full compatibility between minor releases. So a file you have created with 2.2.5 will work with 2.2.9 and the other way around.
+
:'''A:''' The answer depends on how much forward you want to go. See [[Development_Process#Release_Version_Numbering|GnuCash Release Version Numbering]] for an explanation of the system.
  
; Major releases : The data format between major release can change. However, the GnuCash developers try very hard to be as compatible as possible. Each major series is normally at least compatible with the previous major series. So if you have a data file created with GnuCash 2.0.3, you should be able to open this with for example 2.2.5. Skipping a major release may cause issues though.
+
:; Bugfix releases : GnuCash maintains full compatibility between Bugfix releases. So a file you created with 2.2.5 would work with 2.2.9 and the other way around.
  
:You can skip major releases by doing the conversion in two steps. Suppose you want to jump from version 1.8.12 to 2.2.9. To do so, you should first open the file with a GnuCash 2.0.x release, save it from within 2.0.x and then open the saved file in 2.2.9.
+
:; Major releases : The data format between major release can change. However, the GnuCash developers try very hard to be as compatible as possible. Each major series is normally at least compatible with the previous major series. So, for example, if you have a data file created with 2.0.3, you should be able to open this with 2.2.5. Skipping a major release may cause issues though, and is not recommended. Instead, you are advised to at least open and save your file in the intervening major release first.  
  
; Important : When moving from one major release to another, you are best to run "Check & Repair" when opening the file for the first time in the new release. Specifically when running it after moving to a new major release, it may deal with data format issues the old release ignored, but the new release has problems with (like for example [https://bugzilla.gnome.org/show_bug.cgi?id=340372 bug #340372].
+
::'''Important:''' When moving from one major release to another, you are advised to run "Check & Repair" when opening the file for the first time in the new release. Specifically when running it after moving to a new major release, it may address data format issues that the old release ignored, but with which the new release has problems (like for example [{{BugURL}}/show_bug.cgi?id=340372 bug #340372]).
  
; Unstable releases : The unstable (or development) releases can make improvements to the data format or provide new data formats altogether (like storing gnucash data into a database). For unstable releases, compatibility is not guaranteed, not even between minor releases. (Such an incompatibility was introduced for example in the new database backend between development releases 2.3.3 and 2.3.4.) The reason is simple, these releases are to test new functionality, not for long term production use. You should therefore only use development releases on copies of your data or on separate test data.
+
:; Unstable releases : The unstable (or development) releases can make improvements to the data format or provide new data formats altogether (like storing gnucash data into a database). For unstable releases, compatibility is not guaranteed, not even between Bugfix releases. The reason is simple: these releases are to test new functionality, not for long term production use. You should therefore only use development releases on copies of your data or on separate test data.
  
==='''Q: And the other way around ? Can an old GnuCash release read a data file created with a new release?'''===
+
===='''Q:''' And the other way around ? Can an old GnuCash release read a data file created with a new release?====
  
 
:'''A:''' Here as well, the answer depends on how far apart your releases are.
 
:'''A:''' Here as well, the answer depends on how far apart your releases are.
  
; Minor releases : Again, GnuCash maintains full compatibility between minor releases. So a file you have created with 2.2.9 will work with 2.2.5 and the other way around.
+
:; Bugfix releases : Again, GnuCash maintains full compatibility between Bugfix releases. So a file you have created with 2.2.9 will work with 2.2.5 and the other way around.
  
; Major releases : This is trickier. In general here as well, GnuCash tries to be at least backwards compatible with its previous major release, although this may not always work. Here are some of the potential problems
+
:; Major releases : This is trickier. In general here as well, GnuCash tries to be at least backwards compatible with its previous major release, although this may not always work. Here are some of the potential problems:
:* If new functionality results in new fields in the data file, these new fields will not be visible in the old release. Depending on how these fields were added, this would cause your data file to be unreadable by the old release or the new fields will simply be ignored (but retained !). Obviously the latter is the preferred solution as it keeps backward compatibility. But it may technically not be possible to implement the new fields that way.
+
::* If new functionality results in new fields in the data file, these new fields will not be visible in the old release. Depending on how these fields were added, this would cause your data file to be unreadable by the old release or the new fields will simply be ignored (but retained). Obviously the latter is the preferred solution as it keeps backward compatibility, but it may technically not be possible to implement.
:* For example, the new scheduled transaction system in 2.2 breaks compatibility with 2.0. If you don't use scheduled transactions in GnuCash 2.2.x, you can use your data file in 2.0.x as well. But that's not possible if you do use scheduled transactions.
 
:* The upcoming 2.4 release will introduce several new ways to store data (in databases). Obviously, if you store your data in such a new format, you won't be able to read this in earlier GnuCash series. But the 2.4 series also still supports the xml format of the previous releases. If you want to use a datafile in both 2.4 and older releases, you will have to use this xml format.
 
  
==='''Q: Is it possible to provide security for GC data using CFS, etc.?'''===
+
=== Multiple Computers, Users, ... ===
==='''Q: "Can you please add a password feature?"'''===
 
  
:'''A:''' The core developers – which includes those with long-term experience with well-known names/brands in computer security – believe that each app should do one thing well, and leave other concerns to other apps. Especially "tricky", critical concerns like data security. In this case, GnuCash would do a poor job of being a good security application.  You're encouraged to use an encrypted file system to store your critical data files — GnuCash and others.
+
===='''Q:''' Can I use GnuCash with multiple users? Maybe via the SQL backend?====
  
Encrypted filesystem options:
+
:'''A:''' That depends on what you mean exactly. You can share your data file with others, for example by storing it on a network mounted drive. Note that this will enforce serialized, exclusive access to the data file and editing; there is no real support for simultaneous editing.  File-locking is employed on this file, so it should be NFS-safe.  SMB-safe locking is unknown.
  
* [http://loop-aes.sourceforge.net/loop-AES.README Loop-AES]. See Example 7.3 in particular for setting up an encrypted specifically-mountable loopback partition.
+
: Even the dbi (SQL) backend which comes with GnuCash 2.4 is currently not designed for true multi-user access. Trying to work with multiple users at the same time in the same database will be prevented by means of a locking mechanism. Circumventing that can cause data loss. You can however share the database with different users, provided you ensure serialized, exclusive access. In other words, only one user at the time should have GnuCash open with that database. Once this users closes their GnuCash session, another user can start GnuCash on this database.
* [http://arg0.net/users/vgough/encfs EncFS]
 
* See [http://article.gmane.org/gmane.comp.gnome.apps.gnucash.devel/832 gnucash-devel thread]. Note that the link in the post does not work, but this one does: [http://www.crypto.com/software/ crypto.com].
 
* CFS is fairly old code, and has some flakiness, but does work with modern systems (e.g., see pkgsrc/security/cfs  in NetBSD's pkgsrc).
 
* NetBSD's cgd(4), which is a cryptographic layer for an entire block device
 
* FreeBSD's geom-based encryption
 
* TCFS
 
* [http://www.truecrypt.org/ TrueCrypt], multi-platform open source encrypted block device
 
  
Other Solutions:
+
===='''Q:''' I'm running GnuCash under GNU/Linux. Can I give another user access to my GnuCash files?====
* [http://gentoo-wiki.com/TIP_Encrypted_GNUCash GnuPG and a script.]
 
  
Note that if you use the online banking features within GnuCash, you should be aware that your account numbers and user IDs are stored in plain text in ~/.banking/settings.conf. You should encrypt this file in addition to your gnucash data file.
+
:'''A:''' Yes, as long as both of you do not access them at the same time.  You do it the same way you'd share files of any type under Linux: put them in a folder that both of you have access to, and change the permissions so that you both can read from and write to the files. You really don't want more than one person to have them open for editing at the same time, however, as whoever saves last will overwrite the changes of whoever saves first.
  
==='''Q: I'm running gnucash under Linux.  Can I give another user access to my gnucash files?'''===
+
===='''Q:''' I use the same account on multiple computers (through a repository), how do I also transfer the reports I currently have open?====
  
:'''A:''' Yes, as long as both of you do not access them at the same time. You do it the same way you'd share files of any type under Linux: put them in a folder that both of you have access to, and change the permissions so that you both can read from and write to the files. You really don't want more than one person to have them open for editing at the same time, however, as whoever saves last will overwrite the changes of whoever saves first.
+
:'''A''': Copy your book's gcm file from [[Configuration Locations#GNC_DATA_HOME|GNC_DATA_HOME]]/books to the same location on your other computers (before 3.0 that would be [[Configuration Locations#HOME|HOME]]/.gnucash/books instead on Linux and Windows).
 +
:Alternatively you can save your report configurations. These report configurations will be found in [[Configuration Locations#GNC_DATA_HOME|GNC_DATA_HOME]]/saved-reports-x.y (again before 3.0 that would be [[Configuration Locations#HOME|HOME]]/.gnucash/saved-reports-x.y instead on Linux and Windows). If you copy that file to your other computer you will have the same reports available.
 +
 
 +
===='''Q:''' I just got a new computer. What should I copy over from my old one?====
 +
:'''A''': You need to copy the same files that you'd backup, so see [[Backup]].
 +
:* If your new computer runs a ''different operating system'' from the old one the configuration locations will be different, see [[Configuration Locations]].
 +
:* If you're ''upgrading to GnuCash 3.x'' from an older version at the same time as the upgrade, copy the configuration files to the older version location and let GnuCash move them to the new locations.
 +
 
 +
=== SQL Database ===
 +
===='''Q:''' Is there a database backend?====
 +
:'''A:''' An abstraction layer has been created using first GDA but then replaced with DBI, which has proved to work well.
 +
 
 +
This is the first step in making GnuCash suitable for simultaneous multiuser use. Until this is complete almost all users are better off with the XML backend.
 +
 
 +
===='''Q:''' Should I use the XML or database backend?====
 +
 
 +
:'''A:''' Until GnuCash supports simultaneous multiuser use almost all users are better off with the XML backend.
 +
 
 +
===='''Q:''' Is the Postgres DB / SQL backend supported?====
 +
 
 +
:'''A:''' GnuCash versions 2.4 and later releases support SQL via the DBI backend.  It supports '''PostgreSQL''', '''MySQL''' and '''SQLite3''' databases.
 +
 
 +
:;Some history: A first PostgreSQL backend was introduced in the 1.6 code line, but it never supported any features introduced since the 1.6 release, especially the Business features and Scheduled Transactions.  Even so, modulo those features, the Postgres backend should still basically function, even in the 2.2 release.  However, since the 2.0 release, some user-interface elements relating to using the Postgres backend are no longer available; use a <code>postgres://</code> url from the command-line to access it.
 +
 
 +
::This first Postgres backend has been considered obsolete by the core developers since the 2.0 release and has been removed from the 2.4 release.
 +
 
 +
::In 2006, work started to create a '''GDA'''-based backend to replace the Postgres-specific backend.  The GDA backend was replaced with a '''DBI''' backend as of 2Q 2008. This DBI backend is what eventually has been released with GnuCash 2.4 late December 2010.
  
==='''Q: How do I backup my GC environment, including preferences?'''===
+
===='''Q:''' Can I open my GnuCash SQL database with another program, perhaps Microsoft Access?====
  
:'''A:''' At first you should save your actual [[#Q:_Where_is_my_GnuCash_data_file.3F|GnuCash ledger file]]. It is  up to you if you wish to save the backup and log files ''.gnucash'' or ''.xac'', ''.log'' (see [[#Q:_What.27s_the_gnucash_file_extension.3F|gnucash file extension]]). For your preferences you need also to save
+
:'''A:''' A qualified yes. To use a PC program like Access (or Open Office's Database) you'll need the ODBC driver for whichever database you decided to use. You can of course query the database using the tools that database engine (SQLite3, MySQL, or PostgreSQL) provides, including embedded sql programming tools.
* '''$HOME/.gnucash''' - most of your preferences, adjusted report settings, ...
 
* '''$HOME/.gconf/apps/gnucash/''' - the visual settings like column width, history, ...
 
* '''$HOME/.[aq]banking''' - if you are using the [[AqBanking]] online banking. In older versions it was named ''.banking'' but ''.aqbanking'' is the current name.
 
: Before the usage of ''GConf'' that settings were stored in
 
* '''$HOME/.gnome/GnuCash''' and
 
* '''$HOME/.gnome/accels/GnuCash'''.
 
  
==='''Q: I use the same account on multiple computers (through a repository), how do I also transfer the reports I currently have open?'''===
+
:Qualified, though, because the relation information isn't encoded in the database: there aren't any foreign keys defined at present. All of the relations are established in C or Scheme code in the GnuCash libraries. What's more, there's a lot of data stored in a single "key/value" table which has relations to almost every other table in the database. Because of these limitations, we insist that you '''''must not write to the GnuCash database except through the GnuCash libraries.'''''
  
:'''A''': Copy all of $HOME/.gnucash and $HOME/.gnome/GnuCash. Alternatively, from 1.8.10 onwards you can "save a report", which will be saved in $HOME/.gnucash/saved-reports-2.0 . If you copy that file to your other computer, you will have the same reports available.
+
:The table layouts are documented at [[SQL]]
  
==='''Q:''' I moved/renamed my data file and my reports disappeared. How do I get them back?===
+
===='''Q:''' Opening an sqlite3 datafile which is on a smb network drive crashes GnuCash====
 +
===='''Q:''' Saving to sqlite3 on a smb network drive gives locking errors====
  
:'''A:''' Reports are stored in a separate file in the ~/.gnucash/books directory. File name is a url-encoded path name for the main data file. To get your reports back, copy old report file over the new reports file, then open ~/.gnome/GnuCash in your favorite editor and copy section corresponding to the old file to the section of the new file
+
:'''A:''' It seems some smb servers don't deal well with the low level file locking required by sqlite3. It was experienced when the sqlite3 file resided on a Windows XP machine and accessed from a linux machine that mounted the Windows drive via cifs. It is very likely OS X clients will run into the same issue.
  
=== '''Q''': Somehow I managed to close the account view tab. How can I get it back? ===
+
: There is a way to solve this (at least on linux): if you mount your Windows drive, add the option "nobrl" to the mount command (or in /etc/fstab). This will disable the offending low level locking mechanism. You should be aware though that this will risk file corruption if two users are using this data file at the same time. Since GnuCash doesn't support multiuser, simultaneous access anyway, this shouldn't be a problem though.
  
:'''A:''' A new account view tab can be opened from the menu. This is slightly different depending on the version of GnuCash you are using:
+
:For further details about this problem, you can check these links:
:; GnuCash 2.2.9 and before : File -> New -> New Accounts Page
+
:#[{{BugURL}}/show_bug.cgi?id=637886 GnuCash bug 637886] and particularly [{{BugURL}}/show_bug.cgi?id=637886#c20 comment 20] which summarizes the issue
:; GnuCash 2.3 and later : View -> New Accounts Page
+
:#[https://bugzilla.samba.org/show_bug.cgi?id=5994 Samba bug 5994], which seems to lie at the core of the issue.
 +
 
 +
===='''Q:''' I tried to start up GnuCash 2.4.1 on my SQL database and I got an error about libdbi and large numbers====
  
==='''Q: Is there a database backend?'''===
+
:'''A:''' Libdbi is a library that we use to generalize access to the SQL databases we support. Unfortunately the default way to compile it doesn't agree with some compilers, resulting in its inability to work with large numbers... the large numbers that we use to store amounts. That means that you'll lose a lot of data if you try to use a SQL backend with the library in place. We've encountered several Linux distributions that have the buggy libdbi, so we inserted a test into Gnucash to catch it. You can [{{BugURL}}/show_bug.cgi?id=611936 read the bug report] for technical details, but if this happens to you, you should file a bug report with your distribution. If you're able to build programs, you can build your own libdbi with different parameters to avoid the bug (again, details are in [{{BugURL}}/show_bug.cgi?id=611936 the bug report]). Otherwise, you'll have to use the XML backend.
An abstraction layer has been created using first GDA but then replaced with DBI, which has proved to work well.
 
  
This is the first step in making GnuCash suitable for simultaneous multiuser use. Until this is complete almost all users are better off with the XML backend.
+
=== Security: Encryption, Password Feature ===
  
==='''Q: Should I use the XML or database backend?'''===
+
===='''Q:''' Is it possible to provide security for GC data using CFS, etc.?====
Until GnuCash supports simultaneous multiuser use almost all users are better off with the XML backend.
 
  
==='''Q: Is the Postgres DB / SQL backend supported?'''===
+
===='''Q:''' Can you please add a password feature?====
  
:'''A:''' GnuCash versions 2.4 and later release support SQL via the dbi backend. Dbi supports PostGresql, MySQL and Sqlite3 databases.
+
:'''A:''' The core developers – which includes those with long-term experience with well-known names/brands in computer security – believe that each app should do one thing well, and leave other concerns to other apps. This is especially "tricky" when it comes to critical concerns like data security. In this case, GnuCash would do a poor job of providing good data security.  You're encouraged to use an encrypted file system to store your critical data files — GnuCash and others.
  
:Previous GnuCash releases contained a postgresql specific backend which was introduced in GnuCash 1.6. This backend however didn't support the business functions and in general hasn't been maintained since. It has been removed for 2.4.
+
:Encrypted filesystem options:
  
:<u>Some history:</u>
+
:* [http://loop-aes.sourceforge.net/loop-AES.README Loop-AES]. See Example 7.3 in particular for setting up an encrypted specifically-mountable loopback partition.
 +
:* [https://arg0.net/users/vgough/encfs EncFS]
 +
:* See [https://article.gmane.org/gmane.comp.gnome.apps.gnucash.devel/832 gnucash-devel thread]. Note that the link in the post does not work, but this one does: [https://www.crypto.com/software/ crypto.com].
 +
:* CFS is fairly old code, and has some flakiness, but does work with modern systems (e.g., see pkgsrc/security/cfs  in NetBSD's pkgsrc).
 +
:* NetBSD's cgd(4), which is a cryptographic layer for an entire block device
 +
:* FreeBSD's geom-based encryption
 +
:* TCFS
  
:The postgres/SQL backend was introduced in the 1.6 code line, but it never supported any features introduced since the 1.6 release, especially the Business features and Scheduled Transactions. Even so, modulo those features, the postgres backend should still basically function, even in the 2.2 release.  However, since the 2.0 release, some user-interface elements relating to using the postgres backend are no longer available; use a <code>postgres://</code> url from the command-line to access it.
+
:Other Solutions:
 +
:* Based on [https://wikigentoo.ksiezyc.pl/TIP_Encrypted_GNUCash.htm GnuPG and a script] are [[Syncencrypt windows construction]] and [[Syncencrypt linux construction‎]]. <!-- original URL http://www.gentoo-wiki.info/TIP_Encrypted_GNUCash gets redirected to spam -->
  
:In 2006, work started to create a GDA-based backend to replace the postgres-specific backend.  The GDA backend was replaced with a DBI backend as of 2Q 2008. This DBI backend is what eventually has been released with GnuCash 2.4 late December 2010.
+
:That being said, there has been some discussion of a password protection feature, but neither of those discussions led to anyone implementing a solution. See e.g. https://gnucash.uservoice.com/suggestions/1547269 and the thread following of https://lists.gnucash.org/pipermail/gnucash-devel/2013-June/035754.html
  
:The postgres backend has been considered obsolete by the core developers since the 2.0 release and has been removed from the 2.4 release.
+
:Note that if you use the online banking features within GnuCash, you should be aware that your account numbers and user IDs are stored in plain text in your '''AqBanking settings''', which are stored in
 +
:* ~/.banking/settings.conf for old aqbanking versions and somehwere in
 +
:* ~/.aqbanking/ for newer versions (in various files below this folder)
 +
:You should encrypt this file in addition to your gnucash data file.
  
==='''Q: Can I open my Gnucash SQL database with another program, perhaps Microsoft Access?'''===
+
=== OS/Distribution Specific Issues ===
  
:'''A:''' A qualified yes. To use a PC program like Access (or Open Office's Database) you'll need the ODBC driver for whichever database you decided to use. You can of course query the database using the tools that database engine (Sqlite3, MySql, or Postgresql) provides, including embedded sql programming tools.
+
==== [Novell|open]SuSE ====
 +
====='''Q:''' Trying to open the help menu under SuSE, I get the error: "GnuCash could not find the files for the help documentation."=====
 +
:'''A:''' For some reason SuSE seems always to have bugs relating to the GC docs.
 +
:* You may have to use YaST to install the
 +
:** <tt>yelp</tt> and
 +
:** <tt>gnucash-docs</tt> packages.
 +
:* In SuSE 11.4 replacing the symlink
 +
::: <tt>/usr/bin/gnome-help -> susehelp</tt>
 +
:: with
 +
::: <tt>/usr/bin/gnome-help  -> /usr/bin/yelp</tt>
 +
::allows GC Help -> Contents to show as expected.
 +
:For older SuSE versions: gnome-help has moved from /opt/ to /usr/.
  
:Qualified, though, because the relation information isn't encoded in the database: There aren't any foreign keys defined at present. All of the relations are established in C or Scheme code in the Gnucash libraries. What's more, there's a lot of data stored in a single "key/value" table which has relations to almost every other table in the database. Because of these limitations, we insist that you '''''must not write to the Gnucash database except through the Gnucash libraries.'''''
+
==== Windows ====
  
:The table layouts are documented at [[SQL]]
+
===== '''Q:''' I cannot get any report to display not even the sample reports. All that displays is an empty tab. =====
  
==='''Q: Can I use GnuCash with multiple users?  Maybe via the SQL backend?'''===
+
:'''A:''' This is the subject of an [{{BugURL}}/show_bug.cgi?id=645273 open bug #645273].  The solution, paraphrasing bug report comment 40:
 +
:* Click on Start Button
 +
:* click on Control Panel
 +
:* Select Network and Internet (view by category)
 +
:* Click on Internet Options
 +
:* Select the Programs Tab
 +
:* At the bottom of the tab, select Set Progams
 +
:* Select the bottom option "Set program access and computer defaults"
 +
:* You are then asked to chose a configuration:
 +
:* Extend the "Custom" configuration section by clicking on the double down arrow at the right (this step may not be necessary). If you are already using a "Custom" configuration, note the settings so you can go back to them once the problem is fixed.
 +
:* Scroll up then click on the radio button to use the "Microsoft Windows" configuration.
  
:'''A:''' That depends on what you mean exactly. You can share your data file with others, for example by storing it on a network mounted drive. Note that this will enforce serialized, exclusive access to the data file and editing; there is no real support for simultaneous editing. File-locking is employed on this file, so it should be NFS-safe.  SMB-safe locking is unknown.
+
:Note that once this configuration has been saved once, you are free to make any change you like to the "Set program access and computer defaults" section. The first change of these settings seems to cure the issue for good. These instructions are for Windows 7 - other windows versions may be slightly different.
  
: Even the dbi (SQL) backend which comes with GnuCash 2.4 is currently not designed for true multi-user access. Trying to work with multiple users at the same time in the same database will be prevented by means of a locking mechanism. Circumventing that can cause data loss. You can however share the database with different users, provided you ensure serialized, exclusive access. In other words, only one user at the time should have GnuCash open with that database. Once this users closes his GnuCash session, another user can start GnuCash on this database.
+
====='''Q:''' When I try to open my datafile on Windows, I get "Parse error". What happened ?=====
  
==='''Q: Opening an sqlite3 datafile which is on a smb network drive crashes GnuCash'''===
+
:'''A:''' There is a peculiarity in GnuCash on Windows when you use the Opening balance tab of the account dialog. If you enter a two-digit year in that tab, the date is not saved properly. Subsequently, when you reopen your datafile afterwards, GnuCash thinks it's invalid. If you encounter such a situation, you can attempt to fix your data file manually.
==='''Q: Saving to sqlite3 on a smb network drive gives locking errors'''===
+
:* Make a copy of your data file and uncompress it (with a tool like 7Zip).
 +
:* Open the uncompressed file with a text editor such as Wordpad or Notepad++. This is an xml file. xml looks a bit like html, but uses different tag names.
 +
:* Look for transaction sections that are missing a <trn:date-posted section>. If you find such transactions, add the <trn:date-posted> section below the <trn:currency> section, like so: <Syntaxhighlight lang="xml">
 +
  <trn:currency>
 +
  ...
 +
  </trn:currency>
 +
  <trn:date-posted>
 +
  <ts:date>2011-07-06 00:00:00 -0400</ts:date>
 +
  </trn:date-posted>
 +
</Syntaxhighlight>
 +
:* Obviously, you can enter the date that suits you, but keep the format as shown.
 +
:* When all transactions have a <trn.date-posted> section, save your file.
 +
:* It should now open with GnuCash again
  
:'''A:''' It seems some smb servers don't deal well with the low level file locking required by sqlite3. It was experienced when the sqlite3 file resided on a Windows XP machine and accessed from a linux machine that mounted the Windows drive via cifs. It is very likely OS X clients will run into the same issue.
+
:You could run into the same problem when you enter opening balances via the New Account Hierarchy Assistant. The solution is the same: you will have to add the missing <trn:date-posted> sections.
  
: There is a way to solve this (at least on linux): if you mount your Windows drive, add the option "nobrl" to the mount command (or in /etc/fstab). This will disable the offending low level locking mechanism. You should be aware though that this will risk file corruption if two users are using this data file at the same time. Since GnuCash doesn't support multiuser, simultaneous access anyway, this shouldn't be a problem though.
+
:'''Note:''' This problem was reported in [{{BugURL}}/show_bug.cgi?id=611853 this bug] and still occured in all versions of GnuCash 2.4.x released before 2012-06-25. It was fixed in version 2.6.0.
  
:For further details about this problem, you can check these links:
+
====='''Q:''' Windows with firewall enabled won't let me save as to a MySQL/Postgresql database on the same machine. What gives?=====
:#[https://bugzilla.gnome.org/show_bug.cgi?id=637886 GnuCash bug 637886] and particularly [https://bugzilla.gnome.org/show_bug.cgi?id=637886#c20 comment 20] which summarizes the issue
 
:#[https://bugzilla.samba.org/show_bug.cgi?id=5994 Samba bug 5994], which seems to lie at the core of the issue.
 
  
==='''Q: Windows with firewall enabled won't let me save as to a MySQL/Postgresql database on the same machine. What gives?''' ===
 
 
:'''A: (Short version)''' Most likely your firewall is blocking access. Try ''127.0.0.1'' as hostname instead of ''localhost''. Alternatively, you can open the appropriate ports on your firewall for MySQL access (TCP/3306) or Postgresql (TCP/5432). This alternative allows connections to your MySQL/Postgresql installation from other machines in your local network as well, which may or may not be what you want.
 
:'''A: (Short version)''' Most likely your firewall is blocking access. Try ''127.0.0.1'' as hostname instead of ''localhost''. Alternatively, you can open the appropriate ports on your firewall for MySQL access (TCP/3306) or Postgresql (TCP/5432). This alternative allows connections to your MySQL/Postgresql installation from other machines in your local network as well, which may or may not be what you want.
  
Line 532: Line 641:
  
 
:So if you specify ''localhost'' as the hostname, you actually pretend to connect to MySQL on your machine from the outside and hit the Windows (or equivalent) firewall. By using ''127.0.0.1'' on the other hand, your connection remains truly internal and is not filtered by the firewall.
 
:So if you specify ''localhost'' as the hostname, you actually pretend to connect to MySQL on your machine from the outside and hit the Windows (or equivalent) firewall. By using ''127.0.0.1'' on the other hand, your connection remains truly internal and is not filtered by the firewall.
 +
===={{Mac}}====
 +
====='''Q:''' The wrong file opens when I double-click a GnuCash file in Finder.=====
 +
:'''A:''' GnuCash doesn't get the FileOpen notification from Finder until after it has already opened the last used file, so it ignores the notification. The same applies to using the <tt>open</tt> command from a Terminal prompt. You can tell GnuCash to open a specific file from Terminal by passing the path as the last argument to e.g. <SyntaxHighlight lang="sh">
 +
/Applications/Gnucash.app/Contents/MacOS/Gnucash ~/Accounts/mybook.gnucash
 +
</SyntaxHighlight>
 +
From the Desktop you must open GnuCash and use '''File>Open''' or the most recently used list on the '''File''' menu to select the file you want.
  
==='''Q: I tried to start up Gnucash 2.4.1 on my SQL database and I got an error about libdbi and large numbers'''===
+
==Questions about [[Using GnuCash]]==
 +
;Note: We have a [[Using GnuCash|specific page]], but a few aspects are still not built in there:
  
:'''A:''' Libdbi is a library that we use to generalize access to the SQL databases we support. Unfortunately the default way to compile it doesn't agree with some compilers, resulting in its inability to work with large numbers... the large numbers that we use to store amounts. That means that you'll lose a lot of data if you try to use a SQL backend with the library in place. We've encountered several Linux distributions that have the buggy libdbi, so we inserted a test into Gnucash to catch it. You can [https://bugzilla.gnome.org/show_bug.cgi?id=611936 read the bug report] for technical details, but if this happens to you, you should file a bug report with your distribution. If you're able to build programs, you can build your own libdbi with different parameters to avoid the bug (again, details are in [https://bugzilla.gnome.org/show_bug.cgi?id=611936 the bug report]). Otherwise, you'll have to use the XML backend.
+
==='''Q:''' Can I have multiple data files open at the same time? ===
  
==='''Q: Can I exchange Gnucash file with any other version of GnuCash?''' ===
+
:'''A:''' GnuCash doesn't support this within the same instance of the program, but you can open separate instances of GnuCash each with their own data file. There are several methods:
:'''A:''' Not quite.
+
:;The easiest way for all OSes except {{Mac}}: Use your preferred filemanager and double-click the data files you want to open.
:* You can always upgrade from versions >= 1.8 to a higher version number (yet true for 2.2.3).
+
:;Use the command line or create shortcuts: The procedure varies by operating system:
:* You can read 2.0 in 1.8.x fine.
+
::;{{Mac}}: from a Terminal window, enter the following command, replacing 'path/to/your/data_file.gnucash' with the full path to the additional file you want to open.
:* Reading 2.2 in 2.0 will not work, if you have scheduled transactions.
+
:::<SyntaxHighlight lang="sh" inline>/Applications/Gnucash.app/Contents/MacOS/Gnucash path/to/your/data_file.gnucash &</SyntaxHighlight><ref name="ampersand">The trailing ampersand detaches the Gnucash instance from the terminal session. You will get your command prompt back to either open an additional data file, or you can simply close the Terminal.app window.</ref>
 +
:::This can also be scripted with a facility such as Automator.app to provide a file selection or installed as a service or workflow to use on Gnucash data files directly.
 +
::;Linux:
 +
:::;On a command line:<SyntaxHighlight lang="sh" inline>
 +
gnucash <path/to/your/data_file[n]> &</SyntaxHighlight><ref name="ampersand" /><ref name="commandpath">If you have installed multiple versions of gnucash installed, prefix <tt>gnucash</tt> by the path to the desired version like <tt>/usr/bin</tt> from distribution or <tt>/usr/local/bin</tt> for a self compiled version.</ref>
 +
:::;Create .desktop files: Adjust the command line like before and the name, e.g. <tt>gnucash-private.desktop</tt> and <tt>gnucash-business.desktop</tt>. Then you can add them to your start menu, desktop, or favourites ...
 +
::;Windows:
 +
:::;Method A: GUI only, recommended for occasional use:
 +
:::# Open the first instance in the usual way, and open the first file.
 +
:::# Press and hold <code>Shift</code>, click the GC icon or tab on the taskbar, and release <code>Shift</code>.
 +
:::# A second instance of GC will start up. It will try to open the same file that is already open, but will display the "could not obtain the lock" message. Select <tt>Open Red-Only</tt>.
 +
:::# When the GC interface appears, select File » Open in the menu and open the second file.
 +
:::;Method B: Windows shortcuts, recommended for frequent use:
 +
:::# Right-click in an empty spot in your Start Menu or on your desktop and select New » Shortcut.
 +
:::# In the first dialog, type the full path of the GC program and, after a space, the full path of the first GC data file. Example:<SyntaxHighlight lang="bat">
 +
"C:\Program Files (x86)\gnucash\bin\gnucash.exe" D:\$\GnuCash\File1.gnucash</SyntaxHighlight>
 +
:::#;Note: Double quotes are required when the path contains spaces.
 +
:::# In the second dialog, assign a short display name, such as File1.
 +
:::# Repeat steps 1-3 for File2.
 +
:::You can now double-click either shortcut, or both of them, to work with one or both files at a time. With a file name in the command line of the shortcut, that instance of GC opens that file rather than the most recent file.
 +
<references />
 +
 
 +
=== '''Q:''' Somehow I managed to close the account view tab. How can I get it back? ===
 +
 
 +
:'''A:''' A new account view tab can be opened from the menu. This is slightly different depending on the version of GnuCash you are using:
 +
:; GnuCash 2.3 and later : View -> New Accounts Page
 +
:; GnuCash 2.2.9 and before : File -> New -> New Accounts Page
 +
 
 +
=== '''Q:''' Where is the Gnucash Register?===
 +
:'''A:''' Go to File -> New -> New Accounts Page. You'll see a list of accounts. Click on any account and you'll bring up its register.
 +
 
 +
:If you were a Quicken user, you probably don't want to see income and expense accounts in the list, at least initially, so go to View -> Filter By... and uncheck Income and Expense.
  
==='''Q: How can I count the accounts or transactions in my GnuCash file?'''===
+
==='''Q:''' How can I count the accounts or transactions in my GnuCash file?===
  
:'''A:''' zcat $DATAFILE |grep -c "act:name"
+
:'''A:''' If you use
 +
:* the xml backend
 +
:** with compression enabled: <tt>zcat $DATAFILE |grep -c "act:name"</tt>
 +
:** uncompressed: <tt>cat $DATAFILE |grep -c "act:name"</tt> on the command line
 +
:* an SQL backend: the usual <tt> SELECT COUNT(*) ...;</tt> in your [[Glossary#D|DBMS]]
 
:for the accounts.
 
:for the accounts.
  
:Substitute 'grep -c "trn:desc"' to get the number of transactions. [https://lists.gnucash.org/pipermail/gnucash-devel/2008-February/022395.html] You should also replace $DATAFILE |with the right name.
+
:Substitute 'grep -c "trn:desc"' to get the number of transactions. [https://lists.gnucash.org/pipermail/gnucash-devel/2008-February/022395.html] You should also replace $DATAFILE with the right name.
 
 
==Questions about Using [[GnuCash]]==
 
  
 
==='''Q:''' Is there a way to merge two accounts into one? ===
 
==='''Q:''' Is there a way to merge two accounts into one? ===
Line 560: Line 709:
  
 
(With the XML file backend, it is possible to merge accounts by directly editing the data file in a text editor, but this is risky and not recommended)
 
(With the XML file backend, it is possible to merge accounts by directly editing the data file in a text editor, but this is risky and not recommended)
 +
 +
==='''Q:''' Is there a way to merge two GnuCash files? ===
 +
 +
See [[Merging GnuCash Files]].
  
 
==='''Q:''' How can I reorder accounts in the account tree?===
 
==='''Q:''' How can I reorder accounts in the account tree?===
Line 571: Line 724:
 
The Account Code field can contain any value you wish, which can be used in the Account Tree to sort the column and thus the rows.  Unfortunately, this is a pretty heavy-handed sort that applies to the whole view, not just a sub-tree.
 
The Account Code field can contain any value you wish, which can be used in the Account Tree to sort the column and thus the rows.  Unfortunately, this is a pretty heavy-handed sort that applies to the whole view, not just a sub-tree.
  
==='''Q:''' How do I order transactions in a register so deposits are before withdrawls?===
+
==='''Q:''' How do I order transactions in a register so deposits are before withdrawals?===
  
'''A:''' The "standard order" for sorting in a register is based on the entry date of the transaction, followed by the "num" field.   While the granularity on the "date entered" field is down to the second internally, one can only edit the year-month-day from the register UI.  As such, there are two primary ways to force the sorting of deposits before withdrawls:
+
'''A:''' Enter deposits (debits) first, then withdrawals (credits).
  
# Misuse the "num" field to control ordering.
+
When ordering transactions in a register window (the display of transactions for a particular account), you're really ordering the splits for that account. The fields examined, in order, are:
# Edit the datafile to adjust the hours:minutes:seconds of the <trn:date-entered> tag of the relevant <gnc:transaction> (of the deposit) to be before the withdrawl.
+
# The Posted Date. This is the one that's visible and editable in the register window.
 +
# The Transaction's Num field 'unless' you have selected "Use Split Action Field for Number" in the Accounts tab of Book Options (accessed by File>Properties in the menus) in which case it will sort on the Action field for the split 'in the account displayed on the register window'. Note that there is also a preference on the General tab to make that selection automatically on new files.
 +
# The Transaction Entry Date/time: This is the date and time that the transaction was first created. It is not editable in the User Interface.
 +
# The Transaction Description field.
 +
# The Split's memo field.
 +
# The Reconcile field.
 +
# The amount of the split.
 +
# The value of the split.
 +
# The Reconcile Date.
 +
# The GUID identifying the split.
 +
 
 +
Thus the Num or Action field is consulted only if the Posted Date is the same, the Entry Date/Time only if the Num or Action fields are the same, and so on.
 +
 
 +
This question is sometimes asked as "how do I reorder transactions so that they'll match my bank statement?". Don't. You're keeping your own books, not the bank's. Use the Reconcile window to reconcile the two.
 +
 
 +
If you insist on reordering, the only way to do it in the UI is to edit the Num fields on the transactions in question or the Action field for the split if you've selected that option; this might cause you problems if you're using that field for something else, like check numbers.
  
 
==='''Q:''' The View menu has an option to not show voided transactions.  How do I void a transaction?===
 
==='''Q:''' The View menu has an option to not show voided transactions.  How do I void a transaction?===
  
:'''A:''' See https://lists.gnucash.org/pipermail/gnucash-user/2005-July/014281.html
+
:'''A:''' Select the transaction. From the 'Transaction' menu select 'Void Transaction'. When prompted, type in a reason and then click the OK button.
 +
 
 +
==='''Q:''' I'd like to write my own custom reports. Where should I start?===
 +
 
 +
:'''A:''' See [[Custom Reports]].
 +
 
 +
:In short, customizing reports requires some (small) knowledge of the programming language Scheme. Also, a customized report (e.g. the "multicolumn report") can be saved by clicking on the menu item "File -> Add report" (older versions: "Save report"), which will save the report into the file [[Configuration Locations#GNC_DATA_HOME|GNC_DATA_HOME]]/saved-reports-2.0 so that it appears as a menu item at the next startup of gnucash. The saved reports will appear in the menu "Reports -> Custom".
 +
 
 +
:Alternatively, each report can be created in a Scheme file in order to show up as a menu entry.
 +
 
 +
==='''Q:''' How do I save the options I have set on a built-in report as a custom report?===
 +
 
 +
:'''A:''' Run the report, edit the options as desired, and be sure to '''change the name of the report''' on the "General" tab of the options window. Report names must be unique. The "Add Report" entry in the "File" menu will be disabled until after you have changed the report name.
 +
:The report will be saved in the file C:\Users\%username%\.gnucash\saved-reports-2.4 (in case of GnuCash 2.4.x and 2.6 Windows 7 installed on drive C:). See [[Configuration_Locations]] for the location of the saved reports file in more recent versions.
  
 
==='''Q:''' GnuCash won't let me save my customized report===
 
==='''Q:''' GnuCash won't let me save my customized report===
  
I have carefully customized the options for my report and now want to save my modifications so I don't have to do all this work again the next time I need this report. But the "Save Report" button and menu item are disabled. How can I solve this ?
+
:I have carefully customized the options for my report and now want to save my modifications so I don't have to do all this work again the next time I need this report. But the "Save Report" button and menu item are disabled. How can I solve this ?
  
 
:'''A:''' You have to change the title of your report (in the options). GnuCash will then allow you to save the report.
 
:'''A:''' You have to change the title of your report (in the options). GnuCash will then allow you to save the report.
  
==='''Q:''' How do I set up and track budgets?===
+
==='''Q:''' How can I save my custom check printing configuration?===
  
:'''A:''' There is budgeting support in GnuCash 2.0. Your testing and feedback is encouraged!  See the [http://www.gnucash.org/docs/v2.0/C/gnucash-guide/chapter15.html budgets chapter] in the concepts guide  or [[Budgets]] elsewhere on this wiki for more info.
+
:'''A:''' Currently, you cannot use the user interface to save your custom check printing definitions. If you are comfortable making a few simple edits to a scheme file, though, you can redefine one of the existing definitions to print correctly on your checks. To do this, first use the "print cheque" dialog box to add in your custom coordinates to get a check printed correctly. (Note that these dimensions count up from the lower-left of the check. Big numbers move the text up and to the right.)
  
==='''Q:''' When I print a cheque/check, the memo area remains empty... how do I fill that?===
+
:Once you have the dimensions necessary to print correctly on one of your checks, you can edit the gnucash/scm/printing/print-check.scm file to change one of the existing definitions to print to your checks. The area that you need to change is labelled "stock-check-formats", and probably currently contains two format definitions. Change either one you like. Note that the dimensions defined here are not in the same order as those in the dialog box you were just working in. Now, you'll proabably have to restart gnucash for your new format definition to work.
  
:'''A:''' Fill in the Transaction Notes field, visible via View -> Double Line mode.
+
:To keep track of any progress to enhance this part of the application, check out the bugzilla bug 311062: {{BugURL}}/show_bug.cgi?id=311062
  
==='''Q:''' Is there book-closing support, yet?===
+
==='''Q:''' How do I set up and track budgets?===
  
:'''A:''' Since 2.2.4, there is a menu item for {Tools > Close Book}.  Feedback welcome.
+
:'''A:''' There is budgeting support in GnuCash 2.0. Your testing and feedback is encouraged!  See the [{{URL:docs:guide}}©/chapter_budgets.html budgets chapter] in the concepts guide or [[Budgets]] on this wiki for more info.
  
For other versions, a not-unreasonable work around is to copy your data file, and edit it to add zeroing transactions to each income/expense account. Also note that the reports should be able to provide accurate data even without zeroing transactions, so your P&L and Balance Sheet reports will still work. However your account balances won't show year-to-date.
+
==='''Q:''' When I print a cheque/check, the memo area remains empty... how do I fill that?===
  
Other methods:
+
:'''A:''' Fill in the Transaction Notes field, visible via View -> Double Line mode.
* '''One File Per Year''' At the end of each year you can start a new GnuCash file for the next year.  The easiest way to do this and start with all your old account names is to use File-&gt;Export-&gt;Accounts.  Give it the name you intend to use for the new year.  Then do File-&gt;Open and select the name you just saved.  You will need to transfer over your starting balances, but at least the account names are there.
 
  
These are the steps:
+
==='''Q:''' Is there book-closing support?===
# record all transactions that occurred in current year
 
#''optional'' take inventory of all possessions - add the values to Fixed Assets
 
#record the end value of all Asset and Liability accounts - these will be the opening balances (from Equity-&gt;Opening Balances) for the new year
 
#zero out all income and expense accounts (transfer balance to Equity-&gt;Income$YEAR and Equity-&gt;Expense$YEAR accounts)
 
#cancel all recurring transactions in current year file
 
#export accounts (File-&gt;Export-&gt;Export Accounts) to new year file
 
#Open new year file
 
#Delete old or unused accounts
 
#Create opening balance in new years Asset and Liability Accounts from values from current year (from step 3) from Equity-&gt;Opening Balances account
 
#recreate recurring transactions
 
#add StockQuote information - click on Tools-&gt;Price Editor-&gt;Get Quotes
 
  
* '''New Account Branch for Year-End Totals''' Another method is to transfer your year-end Expense and Income totals to Equity.  It is recommended to completely close out the previous year and archive a copy of your GnuCash data file before doing this.  <p> Choose File-&gt;New Account and create an equity account for "2005 Year End".  For each expense and income account, create a transaction on the last day of the year to shift the balance out of the expense account into the 2005 Year End account.  The account report for the "2005 Year End" account makes a good summary of the information.</p> <p>Some people prefer to make separate accounts for<br>Equity-&gt;Year End-&gt; 2005 Expenses<br> Equity-&gt;Year End-&gt; 2005 Income<br>so that the chart of accounts itself gives a nice summary year over year.<br> This method had the advantage that when entering new transactions, the auto-complete features will still work.  It has the  disadvantage that running reports that cross the year boundary will be skewed.  Some people move any real transactions that occurred on December 31st to December 30th, so that reports can be run from January 1st through December 30th for the year.
+
:'''A:''' See [[Closing Books]].
* The third party tool [https://sourceforge.net/projects/jgnucashlib/ jGnucashEditor] comes with a [http://apps.sourceforge.net/mediawiki/jgnucashlib/index.php?title=SplitterToolPlugin splitter-plugin] that can split your gnucash-file at a given date keeping balances, accounts, invoices, customers and stock-quotes intact.
 
  
 
==='''Q:''' How do I use variables and formula in scheduled transactions?===
 
==='''Q:''' How do I use variables and formula in scheduled transactions?===
  
:'''A:''' In lieu of formal documentation, see the following:
+
:'''A:''' See [[Scheduled Transactions]].
* http://lists.gnucash.org/pipermail/gnucash-user/2005-January/012479.html
 
* http://lists.gnucash.org/pipermail/gnucash-user/2005-February/012964.html
 
* http://lists.gnucash.org/pipermail/gnucash-user/2005-May/013746.html
 
* http://lists.gnucash.org/pipermail/gnucash-user/2006-March/016060.html
 
  
==='''Q:''' With a security that issues ReturnOfCapital in Canada, how do I include a return of capital in GnuCash? ===
+
==='''Q:''' How do I enter a Return of Capital transaction in GnuCash? ===
  
Further information of the question: I invest in a security which issues ReturnOfCapital, which in Canada results in a decrease in the cost base of the investement for capital gains purposes.   
+
:'''A''': When a security issues a return of capital, the cost basis of the security is reduced. This affects any future calculations of capital gains.   
:'''A''': Australia has similar stocks which can be handled as follows.
 
 
 
Remember that a debit (DR) for asset/liability accounts means an increase.
 
  
 +
:Remember that a debit (DR) for asset/liability accounts means an increase. <!-- Fixme: Better use a table here? --><Syntaxhighlight lang="Console">
 
Initial purchase of security (say $1000 of Dodgy Brothers Ltd)
 
Initial purchase of security (say $1000 of Dodgy Brothers Ltd)
 
   Cash at bank (asset) 1000.00 CR
 
   Cash at bank (asset) 1000.00 CR
 
   Dodgy Brothers Ltd (asset) 1000.00 DR
 
   Dodgy Brothers Ltd (asset) 1000.00 DR
  
Dodgy Brothers Ltd pays $50 dividend and $50 capital return
+
Dodgy Brothers Ltd pays $50 capital return
   Cash at bank (asset) 100.00 DR
+
   Cash at bank (asset) 50.00 DR
 
   Dodgy Brothers Ltd (asset) 50.00 CR
 
   Dodgy Brothers Ltd (asset) 50.00 CR
  Dividends (income) 50.00 CR
+
</Syntaxhighlight>
 +
:This reduces the cost basis of Dodgy Brothers Ltd to $950.
  
This reduces the cost of Dodgy Brothers Ltd to $950.
+
==='''Q:''' How do I enter ISOs (Incentive Stock Options) that I exercised for a nonpublic company, which are valuable only on paper?===
  
==='''Q:''' I exercised ISOs (Incentive Stock Options) for a nonpublic company, valuable only on paper. How is this represented in GnuCash?===
+
:'''A:''' Exercised ISOs (Incentive Stock Options) are stock. When you exercise the options, you create a normal buy transaction, using the exercise price as the share price.
 
 
:'''A:''' Exercised ISOs (Incentive Stock Options) are stock.
 
 
 
:# create a "Stock" account
 
:# next to commodity, hit "Select..."
 
:# in the "Select currency/security" window, click "New"
 
:# Full name: (company name), Symbol: (doesn't matter), Type: (enter "Private"), click "OK"
 
:# once the company goes public, sell!!!
 
:(This is not a source for tax advice, but if you do exercise private ISOs, be aware that there may be serious tax implications, even though the stock can't be sold. Be sure to talk to a tax specialist about this.)
 
  
 
==='''Q:''' The fiscal year is July 1-June 30, how can I change that?===
 
==='''Q:''' The fiscal year is July 1-June 30, how can I change that?===
  
:'''A:''' There is no way to change this in the 1.8 release.  http://article.gmane.org/gmane.comp.gnome.apps.gnucash.user/12944/match=july
+
:'''A:''' Menu <code>Edit->Preferences->Accounting Period</code>, details in [{{URL:docs:manual}}/set-prefs.html#prefs-accounting-period GnuCash Help].
 
 
:The adventurous might want to look at the function <tt>gnc:get-start-cur-fin-year</tt> [and it's cousins] in <tt>gnucash/src/app-util/date-utilities.scm</tt> which encode the magic value '6' [=July in a 0-based month indexing].
 
  
 
==='''Q:''' How can I look at income/expenses/etc. on a monthly basis?===
 
==='''Q:''' How can I look at income/expenses/etc. on a monthly basis?===
Line 668: Line 820:
  
 
==='''Q:''' How do I resize my register columns?  Why can I not shrink the description column?===
 
==='''Q:''' How do I resize my register columns?  Why can I not shrink the description column?===
:'''A:''' To resize columns you grab the border between the column headers with the mouse, click on it, and stretch the column to the size you want.  HOWEVER... The Description Column is special.  It's designed to always auto-fill to fit the window size.  This means that you cannot just reduce the size of the description column because as soon as you let go it will then resize itself to fill the screen.  If you want to reduce the size of the description column then you should first resize the OTHER columns that you want bigger until the scrollbar appears on the bottom of the window.  Then (and ONLY then) will you be able to reduce the description column back to the "full size" of the window.
+
:'''A:''' Please see [{{URL:docs:guide}}/chapter_txns.html#txns-columnwidths1 Setting Column Widths] in the Tutorial and Concept Guide.
:''This issue was [https://bugzilla.gnome.org/show_bug.cgi?id=563588 reported] on Bugzilla.''
+
 
 +
:'''Note''', the Description Column is special.  It's designed to always auto-fill to fit the window size.  This means that you cannot just reduce the size of the description column, because as soon as you let go it will then resize itself to fill the screen.  If you want to reduce the size of the description column, then you should first resize the OTHER columns that you want bigger until the scrollbar appears on the bottom of the window.  Then (and ONLY then) will you be able to reduce the description column back to the "full size" of the window.
 +
:''This issue has been [{{BugURL}}/show_bug.cgi?id=563588 reported] on Bugzilla.''
 +
 
 +
:'''Note''' When in Split View the header changes depending on whether the cursor is in a transaction row or a split row. If you want to adjust the field width of e.g. the Account Field or the Reconcile Field in Split View you must have a Split row active.
 +
 
 +
:It can be difficult to recover if you reduce a column to invisibility. In that case if you're unable to grab its right edge because you keep getting the next column's edge instead, you can recover it as follows:
 +
:Quit GnuCash and open [[Configuration_Locations#GTK_DATA_HOME|GNC_DATA_DIR]]/books/your-book-name.gnucash.gcm in a text editor. It contains blocks describing each register you've ever had open with a heading that looks something like
 +
  [Register 8305149bc462f9b5d118c259df706e7b]
 +
:Don't worry about the number, just look through all of them for an entry like (balance is an example, if you shrunk a different column look for its name)
 +
  balance_width=0
 +
:It might be some other low number like 1 or 2. Change it to a bigger number, e.g.
 +
  balance_width=85
 +
:Save the file and restart GnuCash.
  
 
==='''Q:''' I corrected a mistake and now my reconciliation balance is off.  How do I fix that and reconcile my account?===
 
==='''Q:''' I corrected a mistake and now my reconciliation balance is off.  How do I fix that and reconcile my account?===
 
:'''A:''' GnuCash computes the reconciliation balance on the fly from reconciled transactions.  If you mistakenly (or unmistakenly!) unreconcile a transaction it will throw off the starting balance in the reconciliation process.  This is completely normal and expected behavior.  To correct this, just ignore the starting balance completely!  All you need to do is enter in the correct ending balance and re-reconcile the transaction.
 
:'''A:''' GnuCash computes the reconciliation balance on the fly from reconciled transactions.  If you mistakenly (or unmistakenly!) unreconcile a transaction it will throw off the starting balance in the reconciliation process.  This is completely normal and expected behavior.  To correct this, just ignore the starting balance completely!  All you need to do is enter in the correct ending balance and re-reconcile the transaction.
  
:Reconciliation is purely about the ENDING balance at a point in time.  When you reconcile you're saying that at some Date (the reconciliation date) the account has some ending balance X, and you're marking all the transactions that get you to that ending balance from the beginning of time.  The starting balance is there to guide you, but has no relevant meaning in the reconciliation process.  Actually, thats not 100% true -- the starting balance gives you the total of the already-reconciled transactions from the beginning of time that are already included in the computation.  But that's okay, you can still generally ignore it.  If you unreconcile a $1 transaction then your starting balance will be off by $1, however all you need to do is re-reconcile that $1 transaction the next time to bring it back into balance.
+
:Reconciliation is purely about the ENDING balance at a point in time.  When you reconcile you're saying that at some Date (the reconciliation date) the account has some ending balance X, and you're marking all the transactions that get you to that ending balance from the beginning of time.  The starting balance is there to guide you, but has no relevant meaning in the reconciliation process.  Actually, that's not 100% true -- the starting balance gives you the total of the already-reconciled transactions from the beginning of time that are already included in the computation.  But that's okay, you can still generally ignore it.  If you unreconcile a $1 transaction then your starting balance will be off by $1, however all you need to do is re-reconcile that $1 transaction the next time to bring it back into balance.
  
 +
==='''Q:''' I would like to add transactions from the command line with "gnucash --evaluate something". How do I do this?===
  
 +
:'''A:'''  This is not possible. You would need to convert the external transactions into a shared format such as QIF or OFX and import them using the existing application functionality.
 +
:'''A:''' Something similar could be achieved by using the python bindings. You would have to write a python script to parse the information source and feed it to gnucash.--[[User:C.holtermann|C.holtermann]] ([[User talk:C.holtermann|talk]]) 19:56, 21 June 2015 (UTC)
  
----
+
==='''Q:''' Why does the Transaction Report 'Sign Reversal' setting not work on subtotals ===
No, this doesn't work
 
Somehow, GnuCash got into it's head that I had a starting balance of -2465. When it happened to me, this was the opening month of my acount.  It has marked everything in the account which needed to be reconciled, however I was still short somewhere on the range of $4000.00.  As such, the finish button was greyed out, and I can't continue.  This is NOT an ignorable issue.
 
  
However, there is a way to fix.  Here is the crux of the issue.  If you delete a reconciled statement, GnuCash doesn't do anything.  So, go ahead and enter reconciliation with the correct ending balance. Add a transaction which deposits money (given the starting balance GnuCash has is lower) or withdraws money (if gnucash has a higher balance) from the account in question.  For mine, I added a deposit of 2465. as I needed a starting balance of 0.  Reconcile as normal (it should now come to zero,  or else you have a different problem), and click finish.  After you are done, click on the transaction that you added to cause things to work out, and delete it.  Your books will be correct, and now you can continue reconciling as normal.....
+
:'''A:''This is an internal technical limitation.
  
This is a problem, and should be fixed with a dynamic and/or editable starting balance...
+
Consider the following unrecommended, but possible account structure and transactions, and consider sample transaction report:
  
----
+
    • Bank [Asset]
Just enter a correcting transaction to get the starting balance you want. The account to transfer funds to/from would probably be Equity:Opening Balances. For example,
+
    • Business [Income]
 +
    • Business:Sales [Income]
 +
    • Business:Expenses [Expenses]
  
{| border="1" cellspacing="0" cellpadding="5" align="left"
+
Transactions as follows:
! Date
 
! Num
 
! Description
 
! Transfer
 
! R
 
! Deposit
 
! Withdrawal
 
! Balance
 
|-
 
| 06/04/2007
 
|
 
| Opening balance corrected
 
| Equity:Opening Balances
 
|
 
| 2,512.23
 
|
 
|2,512.23
 
|}
 
  
 +
    • 1-January “Sales”
 +
    • Business:Sales -$100
 +
    • Bank +$100
  
 +
    • 2-January “Expense”
 +
    • Bank -$20
 +
    • Business:Expenses +$20
  
 +
    • 3-January “Another Income”
 +
    • Bank $10
 +
    • Business -$10
  
 +
The Transaction Report for the “Business” account and children produces the following. Note the individual transaction amounts are sign-reversed as expected, but the subtotal amounts are not sign reversed. This is by design.
  
 +
::{| border="1"
 +
|'''Date''' || '''Num''' || '''Description''' || '''Memo/Notes''' || '''Account''' || '''Amount'''
 +
|-
 +
|colspan=6|Business
 +
|-
 +
|03/01/2019 || || Another Sales || || Business || $10.00
 +
|-
 +
|colspan=5|'''Total For Business''' || '''-$10.00'''
 +
|-
 +
|colspan=6|Expense
 +
|-
 +
|02/01/2019 || || Expense || ||  Business:Expense || $20.00
 +
|-
 +
|colspan=5|'''Total For Expense''' || '''$20.00'''
 +
|-
 +
|colspan=6|Income
 +
|-
 +
|01/01/2019 || || Sales || || Business:Income || $100.00
 +
|-
 +
|colspan=5|'''Total For Income''' || '''-$100.00'''
 +
|-
 +
|colspan=5|'''Grand Total''' || '''-$90.00'''
 +
|-
 +
|}
  
I hope that helps.
+
If the subtotal amounts were sign-reversed, the grand total would *add* 10+20+100 = $130 which is a nonsensical number. The grand-total therefore adds up the unreversed numbers (-10 + 20 + -100) = -90 which is a sensible number indicating $90 profit. In a more complicated scenario, the selected accounts could include Income/Expense/Asset/Liability accounts altogether, and the grand total would include amounts from all relevant accounts. The current strategy of adding up *unreversed* amounts means that addition of *all* accounts within a particular period will lead to $0 due to the accounting equation.
  
[[User:Jonnybal|Jonnybal]] 07:13, 10 March 2010 (UTC)
+
Previously (before 3.0) the subtotals/grand totals were adding *reversed* amounts, which meant, grand total for *all* accounts would be a non-sensical number, depending upon the sign reversal strategy (i.e. credit accounts / income&expense / none). This was incorrect.
  
==Importing/Exporting Data==
+
An even more complicated scenario exists whereby transactions are grouped by ‘Other account name’. eg asset accounts are chosen as source accounts, yet transactions are grouped & subtotaled according to the corresponding asset/income/expenses accounts.
  
==='''Q:''' Can I import my (USA) Discover credit-card info?===
+
There is no safe reversal strategy for the above scenarios to the author’s knowledge.
  
:'''A:''' See [[Setting up OFXDirectConnect in GnuCash 2]].  From [[OFX Direct Connect Bank Settings]], the settings you want to use are <nowiki>https://ofx.discovercard.com/</nowiki> for the Server URL and 7101 for the FID.
+
It may be easier to change the Display / Amount display setting to 'double' which will clearly separate Debit/Credit columns, and is likely to produce better subtotal amounts.
  
==='''Q:''' How can I export data?===
+
==='''Q:''' How can I print a Rental Statement for my Tenant? ===
  
:'''A:''' There's an XSLT at http://xslfactory.free.fr/ which can transform a gnucash XML file to a big gnumeric spreadsheet. The Workbook will contain several sheets; One with all the accounts, a diary with all the transactions, and on sheet by account with all the transactions. Prior to running the transform, you'll need to edit the gnucash XML file (preferably a copy of it) to include xmlns data. (Note however that as at 24th Apr '04 it doesn't include support for business objects, eg: invoices.)
+
:'''A:'''  GnuCash does not have a special Rental Statement report, but see [[Using_GnuCash#Printing_a_Rental_Report|Printing a Rental Report]].
  
:There is also http://gnucashtoqif.sourceforge.net/ which is a Java program that can transform a gnucash XML file to a QIF file.
+
==Importing/Exporting Data==
  
:One way to easily export GnuCash data to Excel is to find a report (such as the General Ledger) that  you can adjust to a satisfactory output, and export the report to an HTML file. Then open the HTML file from Microsoft Excel. (Using File>Open from within Excel, selecting "html" as the file type.) The Excel program will load the report into a spreadsheet, allowing filtering and other spreadsheet functions.
+
==='''Q:''' How do I import my data from ...===
  
:As of the 2.0 release series, the GnuCash data file may be compressed. Just gunzip the data file to see the raw XML. Alternatively you can change the saving state of the GnuCash data file by going to the General tabbed page in GnuCash Preferences dialog box (Edit->Preferences->General) and toggle the compression feature.
+
====Quicken&reg;?====
  
: Some scripts have been created to [http://www.xaprb.com/blog/2006/11/29/more-gnucash-to-mysql-tools-and-queries/ move gnucash data into a mysql database].
+
:'''A:''' Please refer to the [[Quicken Migration]] page.
  
:There is an [http://www.alice-dsl.net/gnuc2ooo/gnuc2ooo_en/intro.html OpenOffice.org macro] (Download [http://svn.gnucash.org/repo/gnucash/trunk/contrib/gnuc2ooo.py here]; download link on the other site is broken) which reads GnuCash data and imports them into OpenOffice.org's embedded database so that they can then be analyzed e.g. in OpenOffice.org Calc. Business accounts and multiple currencies are not supported.
+
====Quickbooks&reg;?====
  
==='''Q:''' I would like to add transactions from the command line with "gnucash --evaluate something". How do I do this?===
+
:'''A:''' At this time there is no way to import from Quickbooks, and there are no plans to add that functionality.  The Quickbooks QBW data format is a proprietary, non-documented file format.  So until someone documents the file format or donates a QBW file parser your best bet for importing your QB data into GnuCash would be to output your data in a CSV format and either import the CSV data directly or convert the CSV to QIF and use the QIF importer.
 +
:*[https://lwn.net/Articles/729087/ Linux Weekly News] includes an article with links to scripts to assist with transitioning from QuickBooks to GnuCash.
 +
:* Tom Olin (tomolin.net) has created an [https://gist.github.com/trolin522581/cd9b8d684b0f9e0c8aed8876b256e31e awk script] to convert QuickBooks Online journal data to CSV for import to GnuCash. Script and instructions are available on [https://gist.github.com/trolin522581/cd9b8d684b0f9e0c8aed8876b256e31e this github gist].
  
:'''A:'''  This is not possible. You would need to convert the external transactions into a shared format such as QIF or OFX and import them using the existing application functionality.
+
====Microsoft Money?====
  
==='''Q:''' Can I import historical prices or quotes?===
+
:'''A:''' Please refer to the [[Microsoft Money Migration]] page.
  
:'''A:''' No.
+
====YNAB 4?====
  
==='''Q:''' How do I convert from CSV, TSV, XLS (Excel), or SXC (OpenOffice.org Calc) to a QIF?===
+
:'''A:''' Please refer to the [[YNAB Migration]] page.
  
:'''A:''' If the CSV file has values for the date, description, amount and account of a transaction, then it's possible a simple `awk` script might work to convert the CSV file into QIF.  Let's say the CSV file "statement.csv" has the columns ( date,description,amount), as in:
+
====(USA) Discover credit card?====
  
    2006-09-27,ONLINE BILL PAYMENT: Bank of Example 123938568,250.00
+
:'''A:''' See [[Setting up OFXDirectConnect in GnuCash 2]].  From [[OFX Direct Connect Bank Settings]], the settings you want to use are <nowiki>https://ofx.discovercard.com/</nowiki> for the Server URL and 7101 for the FID.
  
:As such, the following shell script using awk will emit a suitable QIF:
+
====Comma-Separated Values (CSV) or similar?====
  
    $ ( echo '!Type:Bank'; cat statement.csv | awk -F, '{ print "D" $1; print "P" $2; print "T" $3; print "^"; }' ) > statement.qif
+
:'''A:''' It is possible to import CSV files into GnuCash using <tt>File>Import>Import Transactions from CSV</tt>.
  
:See [http://en.wikipedia.org/wiki/QIF The Wikipedia article on the QIF format] for more details about the QIF format.
+
:'''Converting from CSV, TSV, XLS (Excel), or SXC (OpenOffice.org Calc) to QIF'''
  
:Another way is to use the macros that exist for Excel and OpenOffice.org.  These macros will convert a spreadsheet file into a QIF file.  XL2QIF is a script to convert an Excel spreadsheet to a QIF file.  CALC2QIF is a script to convert an !OpenOffice.org spreadsheet to a QIF file.  These macros may be obtained at http://xl2qif.chez-alice.fr/calc2qif_en.php.
+
::Some find that QIF files are more reliable than CSV to import, and prefer to use the GnuCash QIF importer.  
  
:Jeroen van der Vegt has changed the csv2qif by Baruch Even for the (Dutch) Rabobank asc files. The python script is available at http://www.gertvanbraak.com/rabobank.py  The original file by Baruch can still be downloaded from http://baruch.ev-en.org/proj/csv2qif (Python)
+
::QIF is a flat text file of a specific format, only a few steps removed from CSV (comma separated values). CSV files can be converted into QIF in a number of ways. There are scripts that can do the transformation.  
  
:--[[User:Zachary|Zachary]] 21:12, 22 November 2006 (EST) I've written [http://zachariasoft.com/gnucash some C++ code] to convert TD Ameritrade csv files to qif. That in turn is based on [http://chordite.com/csv2qif.htm earlier work] from John McKown.
+
::See the Wikipedia article on the [https://en.wikipedia.org/wiki/QIF QIF format] for more details about the QIF format.
  
:Tomas Edwardsson has created a few scripts for converting data from Icelandic banks into QIF. They can be downloaded from http://tommi.org/gnucash/ (Perl)
+
::*One example of how another GnuCash user has converted from CSV to QIF is at: [http://baruch.ev-en.org/proj/gnucash.html]. That site documents using a Perl script to download data from a bank internet site, which was modified to export data in CSV format. A Python script was then written to convert the CSV data to QIF format, which can then be imported into GnuCash.
  
:Dave sent the following links [https://lists.gnucash.org/pipermail/gnucash-devel/2009-January/024695.html on the mailinglist]:
+
::*[https://csvconverter.biz CSVConverter] runs in a web browser. It can save mappings for future imports from the same bank. It has a Splitter type that can save multiple QIFs from a single CSV with multiple accounts. And it has a preview function that allows you to go through the CSV contents before you map it.
# *csv2ofx*  http://github.com/mulicheng/csv2ofx/tree/master
 
# http://www.mt2ofx.tk/
 
# http://xl2qif.chez-alice.fr/calc2qif_en.php
 
  
:I played around with the German Raiffeisenbank CSV exports. Since it has German-style number and data formatting and other intricacies, even GnuCash 2.3.2 cannot import it. I used the existing Mastercard csv import as a base and modified it to read these files correctly. Note that right now, "EUR" is fixed as currency. Happy to share the file but don't have access to it right now; please email me at post-at-christophd.de and I'll send it.
+
::*It is possible to use an `awk` script for simpler CSV files.  Let's say the CSV file "statement.csv" has the columns ( date,description,amount), as in:
--[[User:Christophd|Christophd]] 07:54, 15 July 2009 (UTC)
+
:::<code>2006-09-27,ONLINE BILL PAYMENT: Bank of Example 123938568,250.00</code>
  
:'''GGInternational.net''' provides a '''Free Online Converter''' which runs on any Internet Browser in any platform, such as Windows/Mac/Linux.
+
:::The following shell script using awk will emit a suitable QIF: <Syntaxhighlight lang="sh">
:You have the ability to save your mappings to re-use it when importing from the same bank.
+
( echo '!Type:Bank'; cat statement.csv | awk -F, '{ print "D" $1; print "P" $2; print "T" $3; print "^"; }' ) > statement.qif
:You can use the Splitter type to save multiple QIFs from a single CSV with multiple accounts.
+
</Syntaxhighlight>
:Sleek layout and great user interface allowing you to go through the CSV contents before you map it.
+
::*Another way is to use the macros that exist for Excel and OpenOffice.org.  These macros will convert a spreadsheet file into a QIF or OFX file.
:Please visit this link to starting importing few clicks away: [CSV to QIf Converter http://csvtoqif.gginternational.net/]
+
:::*[http://xl2qif.chez-alice.fr xl2qif] offers options for Excel (xl2qif) and OpenOffice (calc2qif) macros to convert to QIF.
 +
:::*[https://github.com/mulicheng/csv2ofx csv2ofx] is a Python project to convert CSV to OFX.
  
:'''Converting Postbanken's CSVs to QIF''' (might also work with other norwegian banks, like '''DnB NOR'''):
+
::*[[User:Christophd|Christophd]] posted on 15 July 2009 to gnucash-user and offered a modified CSV importer for German '''Raiffeisenbank''' data, which had German-style number and data formatting and other intricacies, that gave GnuCash difficulty. The file can be obtained by contacting him via email at post-at-christophd.de.
:Download this awk file: http://dl.dropbox.com/u/8186126/postbanken.awk
 
:Usage: awk -f postbanken.awk kontoutskrift.csv > import.qif
 
  
==='''Q:''' My bank doesn't offer OFX or QIF but only CSV or similar. How can I import my statement data?===
+
==='''Q:''' How do I get the most benefit from the Bayesian learning algorithm while importing?===
  
:'''A:''' QIF is a flat text file of a specific format, only a few steps removed from CSV (comma separated values). There are scripts that can do the transfer. Take a look at how another GnuCash user has solved your problem: http://baruch.ev-en.org/proj/gnucash.html "I very quickly found that I'm way too lazy to hand enter the bank statements into GnuCash" From the same site:
+
:'''A:''' First of all you should ''always assign transactions to the right accounts'' in the import dialog - accounts names containing ''Imbalance'' are definitely wrong.
 +
: Next, start with a small subset of transactions (like one month) and assign the right accounts in the import dialog. The next time you import transactions, it will recognize this kind of transaction.
  
:It is possible to have a Perl script that was written to download the data from the Bank internet site, modified to adapt it for my needs, which is simply to export the data in CSV format. I then wrote a Python script to convert the CSV data to QIF format. The QIF files are easily imported into GnuCash with relatively very few keystrokes."
+
==='''Q:''' Can I import historical prices or quotes?===
  
:'''GGInternational.net''' provides a '''Free Online Converter''' which runs on any Internet Browser in any platform, such as Windows/Mac/Linux.
+
:'''A:''' See [[Online_Quotes#Importing_Historical_Prices_or_Quotes|Importing Historical Prices or Quotes]]
:You have the ability to save your mappings to re-use it when importing from the same bank.
 
:You can use the Splitter type to save multiple QIFs from a single CSV with multiple accounts.
 
:Sleek layout and great user interface allowing you to go through the CSV contents before you map it.
 
:Please visit this link to starting importing few clicks away: [CSV to QIf Converter http://csvtoqif.gginternational.net/]
 
  
 
==='''Q:''' My bank offers OFX Direct Connect.  How do I use that?===
 
==='''Q:''' My bank offers OFX Direct Connect.  How do I use that?===
  
:'''A:''' GnuCash uses libofx/aqbanking for OFX/QFX support, so you should look there for Direct Connect support: http://aquamaniac.de/aqbanking/ .  Also, there is a python script available that can do this for you at [ http://www.jongsma.org/gc/ ].
+
:'''A:''' GnuCash uses libofx/aqbanking for OFX/QFX support. Information on setting up AqBanking for OFX Direct Connect in GnuCash is available at [[Setting up OFXDirectConnect]].
  
:'''A:''' Information on setting up AqBanking for OFX Direct Connect in Gnucash 2 is now available at [[Setting up OFXDirectConnect in GnuCash 2]]. --[[User:Dbreiser|Dbreiser]] 00:45, 22 September 2006 (EDT)
+
==='''Q:''' Can I connect GnuCash to stock or mutual fund accounts using OFX Direct Connect?===
  
 +
:'''A:''' Aqbanking doesn't know about stock/mutual fund purchases/sales. Instead, download your data in OFX/QFX format from your broker's website and import that into GnuCash using  the <tt>File>Import>Import OFX/QFX...</tt> menu choice.
  
==='''Q:''' Which is the best way to import data from Quicken(TM)?===
+
==='''Q:''' How can I export data?===
:'''A:''' Start by making an account tree in Gnucash. There is a druid to help you, but keep at this stage to very similar names as you have used for categories and accounts in Quicken. Next export your Quicken data to a QIF format. Save this file. From the Gnucash menu select File > Import > Import QIF. Open your QIF file and follow the prompts. Match each category very carefully to your Account tree. Clicking on a highlighted line will allow you to choose from your new account tree. Match as much as you can. Then complete the import process. Look at the results and be prepared to alter the account structure and start again if you have too many "Unspecified" entries.
 
 
 
:An alternative approach to creating the account tree in Gnucash first is to include your categories and accounts in Quicken's QIF export. This option is available in many versions of Quicken. If you have this data in the QIF file, Gnucash will create your accounts automatically. After the import is completed, you can edit individual Gnucash accounts and reassign them as needed.
 
 
 
:Note that you cannot import a QDF file into GnuCash, and there are no plans to add "QDF" support anytime soon.
 
 
 
==='''Q:''' How do I import my data from Quickbooks(TM)?===
 
:'''A:''' At this time there is no way to import from Quickbooks, and there are no plans to add that functionality.  The Quickbooks QBW data format is a proprietary, non-documented file format.  So until someone documents the file format or donates a QBW file parser your best bet for importing your QB data into GnuCash would be to output your data in a CSV format and either import the CSV data directly or convert the CSV to QIF and use the QIF importer.
 
 
 
==='''Q:''' How do I import my data from Microsoft Money?===
 
:'''A:''' To transfer data use the Export Function of Mirosoft Money. Use the Loose QIF (longer names) format if available. GnuCash will create your accounts automatically from the information in the QIF files. When exporting Microsoft Money records each transation twice, once in each account's QIF. Thus for the conversion to be successful all accounts must be loaded and the Account names must match to enable GnuCash to remove the duplicates. It may be more convenient to enter Stock Codes in the Securities editor prior to importing.
 
  
====Adjustments for Accounts====
+
:'''A:''' From version 3.0, GnuCash offers the option to export some or all of your data to CSV format. Choose <tt>File>Export</tt> to see the various options available.
:Investment accounts do not record the account names in the QIF files so if an error is made in entering the account name the transaction will be duplicated. The account names can be included in the file by placing the following text at the beginning of each file:
 
!Account
 
N''Name of Account Here''
 
TInvst
 
^
 
  
:Asset accounts should start with a zero balance to import successfully otherwise the asset has no balancing transaction (it has to come from somewhere!).
+
:In addition, there are several third party tools available.
  
====Adjustments for Transactions====
+
:'''Note:''' the GnuCash data file may be '''compressed'''. External tools cannot process this directly, so the file must be decompressed before further processing. GnuCash allows a file to be saved uncompressed by unchecking the "Compress files" preference at <tt>Edit>Preferences>General</tt>. Alternatively, use [https://en.wikipedia.org/wiki/Gunzip gunzip] to decompress the data file.  
:Check for any transactions with one side in the unspecified account. These are transactions with no category specified. You should enter a category in Microsoft Money for these and transfer the data again.
 
  
:A transaction with two splits one of which is a transfer adding to zero in a single account may not transfer properly. Replace the two splits with a single transaction to the target of the transfer.
+
:* There's an [https://en.wikipedia.org/wiki/XSLT XSLT] at http://xslfactory.free.fr/ which can transform a '''GnuCash v1.8''' XML file to a big [https://en.wikipedia.org/wiki/Gnumeric Gnumeric] spreadsheet.  The workbook will contain several sheets; one with all the accounts, a diary with all the transactions, and one sheet by account with all the transactions. Prior to running the transform, you'll need to edit the GnuCash XML file (preferably a copy of it) to include xmlns data. (Note however that as at 24th Apr '04 it doesn't include support for business objects, eg: invoices.)
 +
::The xlsfactory version of the xslt spreadsheet is version 0.6. There is also a 0.7 version at [https://sites.google.com/site/gnucashexport/ https://sites.google.com/site/gnucashexport/]. This version is updated to work with '''GnuCash v2.2.6''', and may work with later versions.
  
====Final Checks====
+
:* There is also [https://gnucashtoqif.us/ GnuCash to QIF and IIF], which is a Java program that can transform a GnuCash XML file to a [https://en.wikipedia.org/wiki/QIF QIF] or [https://en.wikipedia.org/wiki/Intuit_Interchange_Format IIF] file.
  
:After conversion examine the account balances and compare with the final account balance reports from Microsoft Money. Any liabilty accounts will probably have the wrong type and a negative balance in GnuCash. Edit the Account and correct the type.
+
:* One way to easily export GnuCash data to [https://en.wikipedia.org/wiki/Microsoft_Excel Excel] or [https://en.wikipedia.org/wiki/LibreOffice_Calc LibreOffice Calc] is to find a report (such as the General Ledger) that  you can adjust to a satisfactory output, and export the report to an HTML file. Then open the HTML file from Microsoft Excel. (Using File>Open from within Excel, selecting "html" as the file type.) The Excel program will load the report into a spreadsheet, allowing filtering and other spreadsheet functions.
  
:Also check the category spending over all time from Microsoft Money with the Accounts in GnuCash.
+
:* There is an OpenOffice.org macro available. Download [https://github.com/Gnucash/gnucash/blob/master/contrib/gnuc2ooo.py here]. This macro reads GnuCash data and imports into OpenOffice.org's embedded database so that they can then be analyzed e.g. in OpenOffice.org Calc. Business accounts and multiple currencies are not supported.
  
:Once the accounts are consistent with Microsoft Money you can edit individual Gnucash accounts and reassign them as needed.
+
:* [[Ledger-CLI]] shows export to [https://en.wikipedia.org/wiki/Ledger_%28software%29 Ledger], which uses a [https://en.wikipedia.org/wiki/Comma-separated_values CSV] like file format.
 
 
:Stock Prices, Budgets and Scheduled Bills and Deposits will need to be copied manually.
 
 
 
===Q: Where is the Gnucash Register?===
 
:'''A:''' Go to File -> New -> New Accounts Page. You'll see a list of accounts. Click on any account and you'll bring up its register.
 
 
 
:If you were a Quicken user, you probably don't want to see income and expense accounts in the list, at least initially, so go to View -> Filter By... and uncheck Income and Expense.
 
 
 
==='''Q:''' While attempting to import a QIF file created by Microsoft Money, I got the message, "A bug was detected while reading the QIF file", even though I had entered a preference for vebose error messages.  Why do I not get something more informative such as a statement of the specific deviation from the QIF specification and the line number where it occured?===
 
:'''A:''' Did you read [[FAQ#Q:_Something_bad_happened.3B_how_can_I_help_debug.3F|Something bad happened; how can I help debug?]] and around?
 
:Console output, log file, ...
 
  
 
== Using Business Features ==
 
== Using Business Features ==
==='''Q:''' Can you give me a high level overview for business users?===
+
=== Basics ===
 +
===='''Q:''' Can you give me a high level overview for business users?====
  
:'''A:''' Here is the [[GnuCash Quick Start Guide For Business Users]]. A short visualisation can be seen in [http://www.youtube.com/watch?v=pYWaMYVjAXo gnucash per fatturare in ca 2 minuti].
+
:'''A:''' Here is the [[GnuCash Quick Start Guide For Business Users]]. A short visualisation can be seen in [https://www.youtube.com/watch?v=pYWaMYVjAXo gnucash per fatturare in ca 2 minuti].
  
==='''Q:''' How do you make the organization name and information appear at the top of reports? on screen, and when you print?===
+
===='''Q:''' What are the usual Billing Terms?====
  
:'''A:''' You can edit the Style Sheet (Edit -> Style Sheets) and set your company information there. That's probably the best way of doing it. You may want to create a new Style Sheet if you don't like the existing ones. The template stylesheet (stylesheet-fancy.scm) can be found in your_gnucash_directory/share/gnucash/guile-modules/gnucash/report/ . To meet Australian requirements, include your ABN as a separate line in the business address.  
+
:'''A:''' see [[Terms|Invoicing and payment terms]].
  
:The template stylesheet (stylesheet-fancy.scm) also allows you to set how large your company logo appears at the top of reports. To set this search in the style sheet for the line ' "<img src=\"" headpixmap "\">" '. Change this to ' "<img src=\"" headpixmap "\" width=\" 300\">" ' - with 300 being the width of the logo - change this figure of 300 until the logo looks good when printed. Setting the logo size here allows you to avoid the print quality problems that will come with reducing the logo size by changing your logo dimensions in pixels i.e. resizing the image in an editing program. 300 pixels per inch is the guide for a good quality print - so a 300 by 300 pixel logo image should be printed at about 1 inch square - if your logo looks pixelated when printed see if using a version with more pixels works better.
+
=== Set Up, Opening ===
  
==='''Q:''' How do you make the organization name appear on my Invoices?===
+
===='''Q:''' Is there a wizard or a description to setup basic business accounts?====
  
:'''A:''' You can go to File -> Properties and set your business' name and address on the Business page. The Invoice printer uses the data from this entry to fill in your business information.
+
:'''A:''' No. There are some basic business template accounts (e.g. for DE, IN, US) in the "New file" druid/wizard. But there are no wizards/druids for setting up a business, i.e., setting up tax tables, terms, customers, and vendors. You can do all that under the Business menu.
 +
: If Gnucash is lacking business template accounts your region and you are volunteering to share your newly created account charts, please follow the instructions at [[Translation#How to translate the files containing the new account hierarchies]].
  
 +
==== '''Q:''' How do I set up the individual customers and vendors, with their respective balances? ====
  
==='''Q:''' Can I print Invoices through LaTeX from GnuCash?===
+
:'''A:''' There are no "opening balances" for the business features.  The only way to setup an "opening balance" for a Customer (or vendor) is to create a throwaway Invoice (or Bill) for that opening balance.
  
:'''A:''' No, not directly. However, other users have created separate tools that can do this for you: http://stefans.datenbruch.de/gnucash/gc2latex.shtml and http://www.smoerz.org/gcinvoice. The latter can create invoices from arbitrary user provided templates.
+
===='''Q:''' How do you make the organization name appear on my Invoices?====
  
==='''Q:''' What are the usual Billing Terms?===
+
:'''A:''' You can go to File -> Properties and set your business' name and address on the Business page.  The Invoice printer uses the data from this entry to fill in your business information. See also [[#Q: How do you make the organization name and information appear at the top of reports? on screen, and when you print?]]
  
:'''A:''' see [[Terms|Invoicing and payment terms]].
+
=== General Handling ===
 +
===='''Q:''' Why doesn't the discount from the billing terms show up when I pay an invoice?====
 +
: '''A:''' Billing terms is only partially supported. The date due works but discounts don't.
  
==='''Q:''' How can I delete an Invoice, Customer, Vendor, or Employee?===
+
===='''Q:''' How can I delete an Invoice, Customer, Vendor, or Employee?====
  
 
:'''A:''' Quick answer: you can't.  Longer answer: you can mark the item as "inactive" (just uncheck the "active" button) and it will no longer show up in standard searches.  There are no plans to ever allow you to delete these objects.  If you really care you can just re-use them later.
 
:'''A:''' Quick answer: you can't.  Longer answer: you can mark the item as "inactive" (just uncheck the "active" button) and it will no longer show up in standard searches.  There are no plans to ever allow you to delete these objects.  If you really care you can just re-use them later.
Line 893: Line 1,051:
 
:*  Each time you seach, you should land inside a GnvInvoice block.  Delete the entire block, again making sure that you aren't leaving any spaces.
 
:*  Each time you seach, you should land inside a GnvInvoice block.  Delete the entire block, again making sure that you aren't leaving any spaces.
 
:*  The last thing you need to do is clean up the counters in two places.  You only can do this if you're deleting the LAST thing that you added.  So if you have an employee and it is the last employee you added, you can fix the employee counter.  If it is an Invoice and it is the last invoice you added, you can fix the invoice counter.  DO NOT CHANGE THE COUNTERS IF WHAT YOU'RE DELETING ISN'T THE LAST THING ADDED.
 
:*  The last thing you need to do is clean up the counters in two places.  You only can do this if you're deleting the LAST thing that you added.  So if you have an employee and it is the last employee you added, you can fix the employee counter.  If it is an Invoice and it is the last invoice you added, you can fix the invoice counter.  DO NOT CHANGE THE COUNTERS IF WHAT YOU'RE DELETING ISN'T THE LAST THING ADDED.
:** Go back to the top of document.  Find the block that starts with '''<book:slots>'''  Inside that there should be a section labeled '''<slot:key>counters</slot:key>'''.  Under that you'll find a slot:key line for each type, for example GncEmployee.  Underneath that is a slot:value.  Decrease the value by one.
+
:** In XML: Go back to the top of document.  Find the block that starts with '''<book:slots>'''  Inside that there should be a section labeled '''<slot:key>counters</slot:key>'''.  Under that you'll find a slot:key line for each type, for example GncEmployee.  Underneath that is a slot:value.  Decrease the value by one.
:*** In SQL:  
+
:** In SQL:  
:::<code>SELECT * FROM slots WHERE name="counters/gncInvoice"; ...
+
:::<code>SELECT * FROM slots WHERE name="counters/gncInvoice"; ...</code>
</code>
 
 
:*  Then scroll down a little farther and find the <gnc:count-data> fields.  Find the one that corresponds to the counter you're decreasing and lower it by one as well.
 
:*  Then scroll down a little farther and find the <gnc:count-data> fields.  Find the one that corresponds to the counter you're decreasing and lower it by one as well.
 
:*  Save your changes.
 
:*  Save your changes.
Line 902: Line 1,059:
 
:* Open the file with gnucash.  Verify everything works right.  You probably want to check account balances against what they used to be to ensure that they're right, etc.  If it doesn't match, you messed up somewhere and you're going to have to go back and do the whole thing over again.  Otherwise, you're good to go.
 
:* Open the file with gnucash.  Verify everything works right.  You probably want to check account balances against what they used to be to ensure that they're right, etc.  If it doesn't match, you messed up somewhere and you're going to have to go back and do the whole thing over again.  Otherwise, you're good to go.
  
==='''Q:''' How do I change "Invoice" to "Tax Invoice" as required in Australia?===
+
===='''Q:''' Will I be able to delete an Invoice, Customer, Vendor, or Employee in the future?====
  
:'''A:''' Edit invoice.scm and change ''(define invoice-name (N_ "Invoice Number" ))'' to ''(define invoice-name (N_ "Tax Invoice Number" ))''If you are using tax tables to calculate GST and add it as an automatic subtotal, then you should also change the line ''"grand-total" (_ "Tax")))'' to ''"grand-total" (_ "GST")))''. There's another section around line 630 which says ''(title (_ "Invoice"))'' which should be edited similarlyIf you use fancy invoice, look around line 705 for this: <tt>(gnc:html-table-cell-append-objects! invoice-cell (_"INVOICE")) Also in Easy Invoice From ->(add-html! document (sprintf #f (_ "Invoice #%d") To -> (add-html! document (sprintf #f (_ "Tax Invoice #%d")</tt>
+
:'''A:''' That's not implemented because the logic to determine that it's safe to do is... hardThere are so many interconnections between Invoices, Bills, line-items, Tax Tables, etc that making sure it's safe to delete an invoice without leaving dangling references was just ...  a lot of work. Work that I personally didn't want to do, and nobody else has come along with a way to do it securely.
 +
 
 +
:Patches are, of course, always welcome. But be warned, it's not a simple task.  Which is why it was never implemented, and why we have the "active" flag as a way to remove items from searches.
 +
 
 +
:I'm sorry you don't like itYou're welcome to help fix it.
 +
:[from the mailing list [https://lists.gnucash.org/pipermail/gnucash-user/2012-July/045259.html]]
  
:A better way would be to  substitute invoice.scm and  the other similar files,  fancy-invoice.scm and easy-invoice.scm, with files allowing editing of  tax names and titles  such as the ones in this gnucash devel list thread  entitled [http://lists.gnucash.org/pipermail/gnucash-devel/2007-September/021418.html World friendlier printable invoices]. Make sure to close all reports  before updating the files.
+
:An invoice may be reused, even for a different customer or vendor.
  
==='''Q:''' How do I handle VAT/GST on invoices, and claim VAT/GST rebates on purchases?===
+
===='''Q:''' Can I pay multiple bills/invoices/vouchers with a single payment?====
 +
 
 +
:'''A:''' Yes. When you make a payment in GnuCash you are making it against an account, not against a specific bill (or invoice, or voucher). Naturally you can only pay multiple bills from a single account in this way. Any payment you make to the account will be matched against the outstanding bills in the account in date order, earliest first (FIFO order). GnuCash will also split the payment transaction to match the individual bills. Processing payments in this way can be done from any process payment option simply by changing the payment value.
 +
 
 +
=== Tax Handling: Goods and Service Tax (GST) or Value Added Tax (VAT) ===
 +
===='''Q:''' How do I handle VAT/GST on invoices, and claim VAT/GST rebates on purchases?====
  
 
<div style="margin-left: 1cm;">
 
<div style="margin-left: 1cm;">
Line 927: Line 1,094:
 
|}
 
|}
  
There is also an [[Alternate Australian GST setup]] that might make more sense to you.
+
'''Note:''' There are also  
 +
:* an [[Alternate Australian GST setup]] and
 +
:* [https://www.raid6.com.au/posts/gnucash_AU/ Australian business invoicing with Gnucash]
 +
: which might make more sense to you.
  
====Directions for 3-account naming scheme====
+
=====Directions for 3-account naming scheme=====
 
:GST for accounts payable is easy.  Just select ''GST'' as your tax table for each transaction.  This should automatically add the GST amount to the ''Liabilities::GST::Payable'' account.
 
:GST for accounts payable is easy.  Just select ''GST'' as your tax table for each transaction.  This should automatically add the GST amount to the ''Liabilities::GST::Payable'' account.
  
Line 936: Line 1,106:
 
:Then, whenever you pay your GST amounts to the government, enter this in ''Liabilities:GST:Payments''.
 
:Then, whenever you pay your GST amounts to the government, enter this in ''Liabilities:GST:Payments''.
  
====Directions for 4-account naming scheme====
+
=====Directions for 4-account naming scheme=====
 
The following are things to note for the four-account naming scheme:
 
The following are things to note for the four-account naming scheme:
 
* Using the ''Transaction Journal'' view (This can be set as your default in ''Preferences'').  All of the following processes assume that you are using this type of transaction log, and ask you to use the one transaction to perform operations on various accounts.
 
* Using the ''Transaction Journal'' view (This can be set as your default in ''Preferences'').  All of the following processes assume that you are using this type of transaction log, and ask you to use the one transaction to perform operations on various accounts.
Line 950: Line 1,120:
 
</div>
 
</div>
  
==='''Q:''' Is there a wizard or a description to setup basic business accounts?===
+
=== Appearance and printing of Invoices etc.===
  
:'''A:''' No. There are some basic business template accounts (for US) in the "New file" druid/wizard. But there are no wizards/druids for setting up a business, i.e., setting up tax tables, terms, customers, and vendors. You can do all that under the Business menu.
+
===='''Q:''' How do you make the organization name and information appear at the top of reports? on screen, and when you print?====
  
==='''Q:''' I have a small business in Norway. How do I use GnuCash to meet Norwegian standards?===
+
:'''A:''' You can edit the Style Sheet (Edit -> Style Sheets) and set your company information there. That's probably the best way of doing it. You may want to create a new Style Sheet if you don't like the existing ones. The template stylesheet (stylesheet-fancy.scm) can be found in your_gnucash_directory/share/gnucash/guile-modules/gnucash/report/ . To meet Australian requirements, include your ABN as a separate line in the business address.
  
:'''A:''' There is a special page on [[Accounting your Business in Norway]].
+
:The template stylesheet (stylesheet-fancy.scm) also allows you to set how large your company logo appears at the top of reports. To set this search in the style sheet for the line ' "<img src=\"" headpixmap "\">" '. Change this to ' "<img src=\"" headpixmap "\" width=\" 300\">" ' - with 300 being the width of the logo - change this figure of 300 until the logo looks good when printed. Setting the logo size here allows you to avoid the print quality problems that will come with reducing the logo size by changing your logo dimensions in pixels i.e. resizing the image in an editing program. 300 pixels per inch is the guide for a good quality print - so a 300 by 300 pixel logo image should be printed at about 1 inch square - if your logo looks pixelated when printed see if using a version with more pixels works better.
 
 
==='''Q:''' Is GnuCash compliant with standards of UK Authorities?===
 
 
 
:'''A:''' There is a special page on [[Pas 76]]
 
 
 
==='''Q:''' Can I pay multiple bills/invoices/vouchers with a single payment?===
 
  
:'''A:''' Yes. When you make a payment in GnuCash you are making it against an account, not against a specific bill (or invoice, or voucher). Naturally you can only pay multiple bills from a single account in this way. Any payment you make to the account will be matched against the outstanding bills in the account in date order, earliest first (FIFO order). GnuCash will also split the payment transaction to match the individual bills. Processing payments in this way can be done from any process payment option simply by changing the payment value.
+
===='''Q:''' How do I customise the default invoice report options so my printable invoices always load with the options I want?====
 
 
==='''Q:''' How do I customise the default invoice report options so my printable invoices always load with the options I want?===
 
  
 
:'''A:''' The easy workaround is to change the options as you like and then leave the report open in a tab, simply changing the invoice number as necessary.  
 
:'''A:''' The easy workaround is to change the options as you like and then leave the report open in a tab, simply changing the invoice number as necessary.  
  
Alternatively, you can preset the default options by editing invoice.scm (found at /usr/share/gnucash/guile-modules/gnucash/report/invoice.scm - at least that's where it is on Ubuntu 8.04) as follows.  
+
:Alternatively, you can preset the default options by editing invoice.scm (found at /usr/share/gnucash/guile-modules/gnucash/report/invoice.scm - at least that's where it is on Ubuntu 8.04) as follows.  
  
Please note this file controls the Printable Invoice; if you want to customise the Fancy Invoice, you need to edit fancy-invoice.scm.  
+
:Please note this file controls the Printable Invoice; if you want to customise the Fancy Invoice, you need to edit fancy-invoice.scm.  
 
 
The default options are found starting at about line 241, which looks like this
 
  
 +
:The default options are found starting at about line 241, which looks like this <Syntaxhighlight lang="scm">
 
   (gnc:register-inv-option
 
   (gnc:register-inv-option
 
   (gnc:make-simple-boolean-option
 
   (gnc:make-simple-boolean-option
 
     (N_ "Display Columns") (N_ "Date")
 
     (N_ "Display Columns") (N_ "Date")
 
     "b" (N_ "Display the date?") #t))
 
     "b" (N_ "Display the date?") #t))
 
+
</Syntaxhighlight>
and finishing at about line 325 which looks like this
+
:and finishing at about line 325 which looks like this <Syntaxhighlight lang="scm">
 
 
 
   (gnc:register-inv-option
 
   (gnc:register-inv-option
 
   (gnc:make-text-option
 
   (gnc:make-text-option
Line 988: Line 1,148:
 
     "u" (N_ "Extra notes to put on the invoice")
 
     "u" (N_ "Extra notes to put on the invoice")
 
     (_ "Thank you for your patronage")))
 
     (_ "Thank you for your patronage")))
 +
</Syntaxhighlight>
 +
:VERY IMPORTANT. Before you change anything, please copy the original file to a new name: If you do make a mistake you may find that Gnucash won't start any more. You may also want to keep a copy of your edited file somewhere safe as when Gnucash is upgraded the file may be over-written and you would lose your changes.
  
VERY IMPORTANT. Before you change anything, please copy the original file to a new name: If you do make a mistake you may find that Gnucash won't start any more. You may also want to keep a copy of your edited file somewhere safe as when Gnucash is upgraded the file may be over-written and you would lose your changes.
+
:For the boolean options from line 241 to line 319 you can choose between #t for TRUE and #f for FALSE.
  
For the boolean options from line 241 to line 319 you can choose between #t for TRUE and #f for FALSE.
+
:You can change the text at the bottom of the invoice from "Thank you for your patronage" to anything you like but "Pay up ****head!" is unlikely to gain cooperation from your customers.
  
You can change the text at the bottom of the invoice from "Thank you for your patronage" to anything you like but "Pay up ****head!" is unlikely to gain cooperation from your customers.
+
:[[User:Jonnybal|Jonnybal]] 07:57, 10 March 2010 (UTC)
  
[[User:Jonnybal|Jonnybal]] 07:57, 10 March 2010 (UTC)
 
 
===='''Q:''' How do I remove the Tax column?====
 
===='''Q:''' How do I remove the Tax column?====
  
 
:'''A:''' In the report options, deselect the "Tax Amount" column in the "Display Columns" tab. To make this change permanent next time you start Gnucash you will need to edit invoice.scm or fancy-invoice.scm as follows.
 
:'''A:''' In the report options, deselect the "Tax Amount" column in the "Display Columns" tab. To make this change permanent next time you start Gnucash you will need to edit invoice.scm or fancy-invoice.scm as follows.
  
Set the following section in lines 276 to 279 to FALSE (that is #f instead of #t). This means your invoices won't display a tax column for all the line items.
+
:Set the following section in lines 276 to 279 to FALSE (that is #f instead of #t). This means your invoices won't display a tax column for all the line items. <Syntaxhighlight lang="scm">
 
 
 
   (gnc:register-inv-option
 
   (gnc:register-inv-option
 
   (gnc:make-simple-boolean-option
 
   (gnc:make-simple-boolean-option
 
     (N_ "Display Columns") (N_ "Tax Amount")
 
     (N_ "Display Columns") (N_ "Tax Amount")
 
     "m" (N_ "Display each entry's total total tax") #f))
 
     "m" (N_ "Display each entry's total total tax") #f))
 +
</Syntaxhighlight>
 +
:[[User:Jonnybal|Jonnybal]] 07:57, 10 March 2010 (UTC)
  
[[User:Jonnybal|Jonnybal]] 07:57, 10 March 2010 (UTC)
 
 
===='''Q:''' My business does not charge tax. How do I remove the Tax total line?====
 
===='''Q:''' My business does not charge tax. How do I remove the Tax total line?====
  
 
:'''A:''' It's probably better to leave the "Tax Total" line in even though it shows zero tax. Your customers need to know if your invoice includes tax as they might claim the tax back. They will look for the Tax line and if it shows zero they will know there is no tax to claim. If the tax line is missing then they have to guess whether the Amount Due includes tax or not and most likely they will phone you to ask.
 
:'''A:''' It's probably better to leave the "Tax Total" line in even though it shows zero tax. Your customers need to know if your invoice includes tax as they might claim the tax back. They will look for the Tax line and if it shows zero they will know there is no tax to claim. If the tax line is missing then they have to guess whether the Amount Due includes tax or not and most likely they will phone you to ask.
  
If despite this, you really want to remove the "Tax Total" line, you can do this by selecting the "Individual Taxes" checkbox in the "Display" tab of the report options. At first sight this seems odd, but it works because instead of displaying a tax total, the tax is showed as a column on each line item. If you also turn off the Tax Column as above then no taxes are shown at all.
+
:If despite this, you really want to remove the "Tax Total" line, you can do this by selecting the "Individual Taxes" checkbox in the "Display" tab of the report options. At first sight this seems odd, but it works because instead of displaying a tax total, the tax is showed as a column on each line item. If you also turn off the Tax Column as above then no taxes are shown at all.
 
 
To make this change permanent edit invoice.scm or fancy-invoice.scm as follows. In my invoice.scm its the section beginning at line 286.
 
  
 +
:To make this change permanent edit invoice.scm or fancy-invoice.scm as follows. In my invoice.scm its the section beginning at line 286. <Syntaxhighlight lang="scm">
 
   (gnc:register-inv-option
 
   (gnc:register-inv-option
 
   (gnc:make-simple-boolean-option
 
   (gnc:make-simple-boolean-option
 
     (N_ "Display") (N_ "Individual Taxes")
 
     (N_ "Display") (N_ "Individual Taxes")
 
     "o" (N_ "Display all the individual taxes?") #t))
 
     "o" (N_ "Display all the individual taxes?") #t))
 +
</Syntaxhighlight>
  
 
===='''Q:''' I have turned off the Tax Total line. How do I remove the Sub Total line?====
 
===='''Q:''' I have turned off the Tax Total line. How do I remove the Sub Total line?====
  
:'''A:''' In my invoice.scm, its the section beginning at line 419. You will see I have commented out some lines to remove the subtotal line.
+
:'''A:''' In my invoice.scm, its the section beginning at line 419. You will see I have commented out some lines to remove the subtotal line. <Syntaxhighlight lang="scm">
 
 
 
       (if (null? entries)
 
       (if (null? entries)
  (begin
+
          (begin
 
  ; I have commented out the next two lines to remove the Subtotal
 
  ; I have commented out the next two lines to remove the Subtotal
  ;     (add-subtotal-row table used-columns value-collector
+
  ;         (add-subtotal-row table used-columns value-collector
  ;       "grand-total" (_ "Subtotal"))
+
  ;                           "grand-total" (_ "Subtotal"))
 +
</Syntaxhighlight>
 +
 
 +
===='''Q:''' Can I print Invoices through LaTeX from GnuCash?====
 +
 
 +
:'''A:''' No, not directly. However, other users have created separate tools that can do this for you: http://stefans.datenbruch.de/gnucash/gc2latex.shtml and  https://foss.heptapod.net/accounting/gcinvoice. The latter can create invoices from arbitrary user provided templates, not only for LaTeX.
 +
 
 +
=== Using Multiple Currencies ===
 +
 
 +
===='''Q:''' Posting invoice or bill results in zero value transaction in Accounts Payable or Accounts Receivable - why and how to fix this?====
  
==='''Q:''' Posting invoice or bill results in zero value transaction in Accounts Payable or Accounts Receivable - why and how to fix this?===
 
 
'''A:''' This probably happens because you have a currency conflict within your invoice or bill.  
 
'''A:''' This probably happens because you have a currency conflict within your invoice or bill.  
  
Each invoice or bill may only use one currency.  When you create an invoice for a given Customer, GnuCash takes the currency setting for that Customer and uses it for the invoice. If any of the accounts you refer to from the invoice — the Accounts Payable account, the Income:Sales account, etc. — use a different currency, then when you post the invoice, GnuCash will post a value of 0 instead of the amount from the invoice. GnuCash (as of 2.2.8) also fails to give an error message about the conflict. Similar limitations apply with Vendors and Bills.
+
:Each invoice or bill may only use one currency.  When you create an invoice for a given Customer, GnuCash takes the currency setting for that Customer and uses it for the invoice. If any of the accounts you refer to from the invoice — the Accounts Payable account, the Income:Sales account, etc. — use a different currency, then when you post the invoice, GnuCash will post a value of 0 instead of the amount from the invoice. GnuCash (as of 2.2.8) also fails to give an error message about the conflict. Similar limitations apply with Vendors and Bills.
  
To prevent the problem, follow the instructions in the next answers:
+
:To prevent the problem, follow the instructions in the next answers:
  
===='''Q:''' How can I set up a customer or supplier in a foreign currency?====
+
====='''Q:''' How can I set up a customer or supplier in a foreign currency?=====
 
'''A:''' To set up customers and vendors in foreign currencies do the following:
 
'''A:''' To set up customers and vendors in foreign currencies do the following:
 
* Define the currency for the Customer. Select the Customer and click on Edit Customer, then click on Billing Information - that will show you the customer currency. Change it to whatever Currency you will use with that currency.
 
* Define the currency for the Customer. Select the Customer and click on Edit Customer, then click on Billing Information - that will show you the customer currency. Change it to whatever Currency you will use with that currency.
Line 1,047: Line 1,215:
 
* If you create invoices in multiple currencies, you will probably be best served by making multiple Accounts Receivable and Accounts Payable accounts, one for each currency you work in. Similarly, you will probably want to create multiple Income:Sales and Expense:Reimbursable Expense accounts, one for each currency. Consider using a suffix after the account name to make it clear which currency that account uses: for instance, "Accounts Receivable (CAD)", "Accounts Receivable (JPY)", etc.
 
* If you create invoices in multiple currencies, you will probably be best served by making multiple Accounts Receivable and Accounts Payable accounts, one for each currency you work in. Similarly, you will probably want to create multiple Income:Sales and Expense:Reimbursable Expense accounts, one for each currency. Consider using a suffix after the account name to make it clear which currency that account uses: for instance, "Accounts Receivable (CAD)", "Accounts Receivable (JPY)", etc.
  
===='''Q:''' How can I fix already in a wrong currency posted invoices or bills?====
+
====='''Q:''' How can I fix invoices or bills already posted in the wrong currency?=====
 +
 
 
'''A:''' To correct this problem with already-posted invoices, do the following:
 
'''A:''' To correct this problem with already-posted invoices, do the following:
 
* Find the invoice. Edit it.
 
* Find the invoice. Edit it.
Line 1,086: Line 1,255:
 
* Check the transactions under the various accounts to be sure that the amounts for this invoice are no longer zero, but instead have the correct values.
 
* Check the transactions under the various accounts to be sure that the amounts for this invoice are no longer zero, but instead have the correct values.
  
GnuCash Bugzilla entries relating to this FAQ:  
+
:GnuCash Bugzilla entries relating to this FAQ entry:  
* [http://bugzilla.gnome.org/show_bug.cgi?id=583155 Bug 583155 – Invoice creation and posting silently inserts zero amounts when currencies conflict, no error message]
+
:* [{{BugURL}}/show_bug.cgi?id=583155 Bug 583155 – Invoice creation and posting silently inserts zero amounts when currencies conflict, no error message]
* [http://bugzilla.gnome.org/show_bug.cgi?id=430187 Bug 430187 – Posting an invoice returns Zero values to the ledgers with NZD currency]
+
:* [{{BugURL}}/show_bug.cgi?id=430187 Bug 430187 – Posting an invoice returns Zero values to the ledgers with NZD currency]
 +
 
 +
=== Country/Region specific ===
 +
 
 +
===='''Q:''' I have a small business in Norway. How do I use GnuCash to meet Norwegian standards?====
 +
 
 +
:'''A:''' There is a special page on [[Accounting your Business in Norway]].
 +
 
 +
===='''Q:''' Is GnuCash compliant with standards of UK Authorities?====
 +
 
 +
:'''A:''' There is a special page on [[GB/PAS 76]]
 +
 
 +
===='''Q:''' How do I change "Invoice" to "Tax Invoice" as required in Australia?====
 +
 
 +
:'''A:''' Edit invoice.scm and change ''(define invoice-name (N_ "Invoice Number" ))'' to ''(define invoice-name (N_ "Tax Invoice Number" ))''.  If you are using tax tables to calculate GST and add it as an automatic subtotal, then you should also change the line ''"grand-total" (_ "Tax")))'' to ''"grand-total" (_ "GST")))''. There's another section around line 630 which says ''(title (_ "Invoice"))'' which should be edited similarly.  If you use fancy invoice, look around line 705 for this: <tt>(gnc:html-table-cell-append-objects! invoice-cell (_"INVOICE")) Also in Easy Invoice From ->(add-html! document (sprintf #f (_ "Invoice #%d") To -> (add-html! document (sprintf #f (_ "Tax Invoice #%d")</tt>
 +
 
 +
:A better way would be to  substitute invoice.scm and  the other similar files,  fancy-invoice.scm and easy-invoice.scm, with files allowing editing of  tax names and titles  such as the ones in this gnucash devel list thread  entitled [https://lists.gnucash.org/pipermail/gnucash-devel/2007-September/021418.html World friendlier printable invoices]. Make sure to close all reports  before updating the files.
 +
 
 +
=== Other known business issues ===
 +
 
 +
===='''Q:''' Something is messed up in my invoices/payments/credit notes. How do I fix this?====
 +
 
 +
:'''A:''' [[Business Features Issues]] covers several possible issues you can run into and proposes ways to fix them.
  
 
==Accounting Questions==
 
==Accounting Questions==
Line 1,097: Line 1,288:
  
 
: On-line:
 
: On-line:
:* http://www.dwmbeancounter.com/tutorial/lesson01.html
+
:* https://www.dwmbeancounter.com/tutorial/lesson01.html
:* http://www.middlecity.com/
+
:* https://www.middlecity.com/
 +
:* https://www.accountingcoach.com/
 
:* [http://www.accounting-and-bookkeeping-tips.com/ Accounting & Bookkeeping] Tips
 
:* [http://www.accounting-and-bookkeeping-tips.com/ Accounting & Bookkeeping] Tips
:* http://www.principlesofaccounting.com/
+
:* https://www.principlesofaccounting.com/
  
 
:Dead-tree:
 
:Dead-tree:
:* [http://www.amazon.com/dp/007163536X/103-4886644-0358234&n=283155 Schaum's Outline of Bookkeeping and Accounting]
+
:* [https://www.amazon.com/dp/007163536X/103-4886644-0358234&n=283155 Schaum's Outline of Bookkeeping and Accounting]
:* [http://www.amazon.com/dp/0071635386/103-4886644-0358234&n=283155 Schaum's Outline of Principles of Accounting I]
+
:* [https://www.amazon.com/dp/0071635386/103-4886644-0358234&n=283155 Schaum's Outline of Principles of Accounting I]
:* [http://www.amazon.com/gp/product/0028617525/qid=1147270550/sr=1-3/ref=sr_1_3/103-4886644-0358234?s=books&v=glance&n=283155 ''The Complete Idiot's Guide to Finance and Accounting'' by Michael Muckian.]
+
:* [https://www.amazon.com/gp/product/0028617525/qid=1147270550/sr=1-3/ref=sr_1_3/103-4886644-0358234?s=books&v=glance&n=283155 ''The Complete Idiot's Guide to Finance and Accounting'' by Michael Muckian.]
:* [http://www.amazon.com/dp/1419584383/103-4886644-0358234&n=283155 ''Keeping The Books'' by Linda Pinson]
+
:* [https://www.amazon.com/dp/1419584383/103-4886644-0358234&n=283155 ''Keeping The Books'' by Linda Pinson]
 +
 
 +
:Video:
 +
:* [https://www.youtube.com/playlist?p=PL259DBFA47F3B4761 Accounting I course videos from Fall 2011 by Prof. Dave Krug at Johnson County Community College]
 +
:* [https://www.youtube.com/playlist?list=PLHhe-2tIHRqEw5JRX6trtsLLlwwbpdXJX Accounting II course videos from Fall 2011 by Prof. Dave Krug at Johnson County Community College]
  
 
==='''Q:''' What are debits and credits? ===
 
==='''Q:''' What are debits and credits? ===
Line 1,114: Line 1,310:
 
:Let's start with the accounting equation: Assets = Liabilities + Equity, where Equity = Revenue - Expenses (actually equity is more than just that, but for the purpose of this explanation it will do).
 
:Let's start with the accounting equation: Assets = Liabilities + Equity, where Equity = Revenue - Expenses (actually equity is more than just that, but for the purpose of this explanation it will do).
  
:Now think of each of these catagories (Assets, Liabilities, etc) in terms of a T, with the name of the catagory above the top of the T and the transactions being recorded on either side of the vertical part of the T.  Debits are recorded on the left side of the T, Credits are recorded on the right side of the T. Lets look now at the Asset accounts.  Since the Assets are on the left side of our equation, any increase in assets must be recorded on the left side of our T, this means that an increase in assets is a Debit.  Conversely, a decrease in an asset account must be recorded on the right side of the T, meaning that it is a Credit.  Looking next at Liabilities and Equity, it is treated exactly opposite to Assets (otherwise the equation wouldn't work).  Because Liabilities and Equity are on the right side of the equation, any increase in Liabilities or Equity are recorded on the right side of the T.  This means that it is a Credit.  A decrease in Liabilites or Equity would then be recorded on the left side of the T, or a Debit.
+
:Now think of each of these categories (Assets, Liabilities, etc) in terms of a T, with the name of the category above the top of the T and the transactions being recorded on either side of the vertical part of the T.  Debits are recorded on the left side of the T, Credits are recorded on the right side of the T. Lets look now at the Asset accounts.  Since the Assets are on the left side of our equation, any increase in assets must be recorded on the left side of our T, this means that an increase in assets is a Debit.  Conversely, a decrease in an asset account must be recorded on the right side of the T, meaning that it is a Credit.  Looking next at Liabilities and Equity, it is treated exactly opposite to Assets (otherwise the equation wouldn't work).  Because Liabilities and Equity are on the right side of the equation, any increase in Liabilities or Equity are recorded on the right side of the T.  This means that it is a Credit.  A decrease in Liabilites or Equity would then be recorded on the left side of the T, or a Debit.
  
 
:Now for Revenue and Expenses.  Since both of these are a component of Equity, whether they are a Debit or Credit is tied into how Equity fits into the accounting equation.  Think of it this way, if you made money during the year, the net effect on your Assets would be an increase, or greater Debit balance.  In order for the equation to work, this would mean that Equity would also have increased, or a greater Credit balance.  In order for this to happen, Revenue would have to be a Credit, while Expenses would have to be a Debit.  The resulting Revenue minus Expense would give you a Credit balance, or an increase in Equity.  So Revenue is always a Credit, while Expenses are always Debits.
 
:Now for Revenue and Expenses.  Since both of these are a component of Equity, whether they are a Debit or Credit is tied into how Equity fits into the accounting equation.  Think of it this way, if you made money during the year, the net effect on your Assets would be an increase, or greater Debit balance.  In order for the equation to work, this would mean that Equity would also have increased, or a greater Credit balance.  In order for this to happen, Revenue would have to be a Credit, while Expenses would have to be a Debit.  The resulting Revenue minus Expense would give you a Credit balance, or an increase in Equity.  So Revenue is always a Credit, while Expenses are always Debits.
Line 1,146: Line 1,342:
  
  
==='''Q: How do I use GnuCash to calculate VAT?'''===
+
==='''Q:''' How do I use GnuCash to calculate VAT?===
  
 
:'''A:'''  Frequently discussed on the mailing list, someone please copy answer here...
 
:'''A:'''  Frequently discussed on the mailing list, someone please copy answer here...
Line 1,153: Line 1,349:
 
** https://lists.gnucash.org/pipermail/gnucash-user/2003-July/007526.html
 
** https://lists.gnucash.org/pipermail/gnucash-user/2003-July/007526.html
 
* "Handling GST and PST from Credit Card transactions"
 
* "Handling GST and PST from Credit Card transactions"
** http://lists.gnucash.org/pipermail/gnucash-user/2005-January/012791.html
+
** https://lists.gnucash.org/pipermail/gnucash-user/2005-January/012791.html
** http://lists.gnucash.org/pipermail/gnucash-user/2005-January/012807.html
+
** https://lists.gnucash.org/pipermail/gnucash-user/2005-January/012807.html
  
==='''Q: How do I use GnuCash to do depreciation?'''===
+
==='''Q:''' How do I use GnuCash to do depreciation?===
  
:'''A:''' Please check the chapter about depreciation in the [http://www.gnucash.org/docs/v1.8/C/gnucash-guide/chapter11.html Concept Guide]
+
:'''A:''' Please check the chapter about depreciation in the [{{URL:docs:guide}}/chapter_dep.html Concept Guide]
  
==='''Q: Is there a CPA (Certified Public Accountant) who uses GnuCash in my area?'''===
+
==='''Q:''' Is there a CPA (Certified Public Accountant) who uses GnuCash in my area?===
  
 
:'''A:''' If you are an accountant or bookkeeper, add your name and contact info here.
 
:'''A:''' If you are an accountant or bookkeeper, add your name and contact info here.
Line 1,167: Line 1,363:
 
|Raleigh, North Carolina || '''Kenneth M. McNees''', CPA, CISSP, CISA, CAP, CISM. || || [mailto:kennymcnees@gmail.com kennymcnees@gmail.com] || added:  December, 2007
 
|Raleigh, North Carolina || '''Kenneth M. McNees''', CPA, CISSP, CISA, CAP, CISM. || || [mailto:kennymcnees@gmail.com kennymcnees@gmail.com] || added:  December, 2007
 
|-
 
|-
|Egg Harbor Township, NJ || '''Jeff Vandrew Jr''', CPA  || || [mailto:jeffvandrewjr@vandrew.com jeffvandrewjr@vandrew.com] || added:  May, 2010 || http://www.vandrew.com
+
|Egg Harbor Township, NJ || '''Jeff Vandrew Jr''', CPA  || || [mailto:jeffvandrewjr@vandrew.com jeffvandrewjr@vandrew.com] || added:  May, 2010 || https://www.vandrew.com
 
|-
 
|-
 
|}
 
|}
  
==='''Q: What's a T-account? What's double-entry?'''===
+
==='''Q:''' What's a T-account? What's double-entry?===
  
:'''A:''' This is discussed at length in the [http://www.gnucash.org/docs/v1.8/C/gnucash-guide/ GnuCash documentation].  Also, [http://en.wikipedia.org/wiki/Double-entry_accounting Wikipedia's entry for Double-entry bookkeeping] is good.
+
:'''A:''' This is discussed at length in the [{{URL:docs:guide}} GnuCash documentation].  Also, [https://en.wikipedia.org/wiki/Double-entry_accounting Wikipedia's entry for Double-entry bookkeeping] is good.
  
==='''Q: Is there a way to schedule billing the same way we schedule transactions?'''===
+
==='''Q:''' Is there a way to schedule billing the same way we schedule transactions?===
  
 
:'''A:'''  No, unfortunately, the business features don't tie into the SX engine.
 
:'''A:'''  No, unfortunately, the business features don't tie into the SX engine.
  
==='''Q: How do I account for loaning/borrowing money to/from a friend?'''===
+
==='''Q:''' How do I account for loaning/borrowing money to/from a friend?===
  
 
:'''A:''' Money that you loan to someone represents an Asset to you.  Money you've borrowed from someone else is a Liability.  The general recommendation for account names is:
 
:'''A:''' Money that you loan to someone represents an Asset to you.  Money you've borrowed from someone else is a Liability.  The general recommendation for account names is:
Line 1,186: Line 1,382:
 
* Liabilities:Money I Owe To:[Person]
 
* Liabilities:Money I Owe To:[Person]
  
==='''Q: How do I keep track of capital gains with stocks?'''===
+
==='''Q:''' How do I keep track of capital gains with stocks?===
  
:'''A:'''  The 1.8 series of Gnucash doesn't handle capital gains in an automated fashion, so it's pretty easy to get an incorrect balance sheet after the sale of stock or some currency conversions. Recall that in the double-entry accounting that Gnucash uses, money is never created or destroyed, it only moves from one account to another...at least, in theory. The introduction of stock transactions (or really anything that involves an exchange rate) creates a situation where money can be created.
+
:'''A:'''  Both [{{URL:www}}/viewdoc.phtml?doc=help The Help Manual]  and [{{URL:www}}/viewdoc.phtml?doc=guide The Tutorial and Concepts Guide] include information to explain this important and complex topic. [{{URL:docs:guide}}/chapter_invest.html Chapter 9. Investments] introduces managing investments generally, while [{{URL:docs:guide}}/invest-sell1.html#invest-sellLots 9.7 Selling Shares] goes into detail on how to handle gains or losses resulting from stock sales.  
  
For example, let's say we have the following accounts:
+
:Capital gains can be calculated manually, or by using GnuCash's Lots feature. See [{{URL:docs:guide}}/invest-sell1.html#invest-sellLots 9.7 Selling Shares] for examples showing how to track stock sales.
<pre>
 
Assets
 
  Broker
 
    Cash
 
    XYZ Inc
 
Expenses
 
  Broker Fees
 
Income
 
  Capital Gains
 
</pre>
 
  
When we purchase stock in company XYZ, the transaction splits might look like this:
+
:Additional information on how the capital gains are calculated can be found in the [[Concept of Lots]] page.  
<pre>
 
Account                    Shares  Price    Debit    Credit
 
Assets:Broker:XYZ Inc      5        $10.00  $50.00
 
Expenses:Broker Fees                        $7.00
 
Assets:Broker:Cash                                    $57.00
 
</pre>
 
  
This is pretty straightforward. We bought five shares at $10 each, and paid a $7 commission. But you have probably already gotten this far and now you're ready to sell. If you entered the intuitive splits, money would be created and everything would get thrown out of balance:
+
:See these mailing list messages (and other messages in these threads) for further reference:
<pre>
+
::https://lists.gnucash.org/pipermail/gnucash-user/2008-March/024501.html<br>
Account                    Shares  Price    Debit    Credit
+
::https://lists.gnucash.org/pipermail/gnucash-user/2006-January/015605.html<br>
Assets:Broker:XYZ Inc      -5      $17.00            $85.00
+
::https://lists.gnucash.org/pipermail/gnucash-user/2006-January/015620.html<br>
Expenses:Broker Fees                        $7.00
+
::https://lists.gnucash.org/pipermail/gnucash-user/2006-January/015396.html<br>
Assets:Broker:Cash                          $78.00
+
::https://lists.gnucash.org/pipermail/gnucash-user/2005-July/014192.html<br>
</pre>
+
::https://lists.gnucash.org/pipermail/gnucash-user/2005-February/012863.html<br>
 +
::https://lists.gnucash.org/pipermail/gnucash-user/2005-January/012648.html
  
$35 has come from nowhere!  It's actually capital gains, but we can't just add a split for $35, because then the cash value of the transaction doesn't balance out.  Now we have to introduce a bit of unpleasantness.  We want that split for $35 from Income:Capital Gains, so to balance out the cash portion of the transaction, we create another split wherein we "purchase" 0 shares at $0 each, but spend $35 to do so:
+
==='''Q:''' What is meant by year-end closing procedures?===
<pre>
 
Account                    Shares  Price    Debit    Credit
 
Assets:Broker:XYZ Inc      -5      $17.00            $85.00
 
Expenses:Broker Fees                        $7.00
 
Assets:Broker:Cash                          $78.00
 
Income:Capital Gains                                  $35.00
 
Assets:Broker:XYZ Inc      0        $0      $35.00
 
</pre>
 
 
 
This last split exists to balance the capital gain split, but it has deeper meaning as well - it corrects the fundamental imbalance that was created by fluctuating exchange rates.  In the upcoming (as of January 2006) 2.0 release, these splits will hopefully be created automatically, but it's certainly possible to enter them by hand in the 1.8 series of Gnucash.
 
 
 
More complicated situations can be resolved in a similar manner, though calculating the capital gains by hand could be wearisome (consider a mutual fund that has been seeing regular contributions for a long time, along with the occasional dividend reinvestment and maintenance fee, and consider only selling a portion of the currently owned shares).  The Cash Flow Report and the Transaction Report can help you to calculate your cost basis, but that's beyond the scope of this question.
 
 
 
<b>Version 2.x</b> According to the thread https://lists.gnucash.org/pipermail/gnucash-user/2008-March/024501.html, it is possible to calculate capital gains on a lot basis in 2.x by following these steps:
 
 
 
<ol><li>Open the stock account's register.
 
<li>Enter the sell transaction, with no splits for capital gains.
 
<li>Select Actions->View Lots
 
<li>Click Scrub Account.</ol>
 
 
 
See these mailing list messages (and other messages in these threads) for further reference:<br>
 
https://lists.gnucash.org/pipermail/gnucash-user/2006-January/015605.html<br>
 
https://lists.gnucash.org/pipermail/gnucash-user/2006-January/015620.html<br>
 
https://lists.gnucash.org/pipermail/gnucash-user/2006-January/015396.html<br>
 
https://lists.gnucash.org/pipermail/gnucash-user/2005-July/014192.html<br>
 
https://lists.gnucash.org/pipermail/gnucash-user/2005-February/012863.html<br>
 
https://lists.gnucash.org/pipermail/gnucash-user/2005-January/012648.html
 
 
 
==='''Q: What is meant by year-end closing procedures?'''===
 
  
 
:'''A:''' Generally Accepted Accounting Practices include a procedure to "close" accounts at the end of a period (i.e., a fiscal year).  This allows for the accumulated balances in an Income statement account (Revenue and Expense) to be pertinent to the current period only.   
 
:'''A:''' Generally Accepted Accounting Practices include a procedure to "close" accounts at the end of a period (i.e., a fiscal year).  This allows for the accumulated balances in an Income statement account (Revenue and Expense) to be pertinent to the current period only.   
Line 1,256: Line 1,408:
  
  
 +
==='''Q:''' Why does the Trial Balance not have balanced Debits and Credits?===
  
== Customizing ==
+
:'''A:''' The Trial Balance debits and credits should balance when the price source is set to "average cost". See https://bugs.gnucash.org/show_bug.cgi?id=798553
 
 
==='''Q:''' I'd like to write my own custom reports. Where should I start?===
 
 
 
:'''A:''' See [[Custom Reports]].
 
 
 
:In short, customizing reports requires some (small) knowledge of the programming language Scheme. Also, a customized report (e.g. the "multicolumn report") can be saved by clicking on the menu item "File -> Add report" (older versions: "Save report"), which will save the report into the file ~/.gnucash/saved-reports-2.0 so that it appears as a menu item at the next startup of gnucash. The saved reports will appear in the menu "Reports -> Custom".
 
 
 
Alternatively, each report can be created in a Scheme file in order to show up as a menu entry.
 
 
 
==='''Q:''' How can I save my custom check printing configuration?===
 
 
 
:'''A:''' Currently, you cannot use the user interface to save your custom check printing definitions. If you are comfortable making a few simple edits to a scheme file, though, you can redefine one of the existing definitions to print correctly on your checks. To do this, first use the "print cheque" dialog box to add in your custom coordinates to get a check printed correctly. (Note that these dimensions count up from the lower-left of the check. Big numbers move the text up and to the right.)
 
 
 
:Once you have the dimensions necessary to print correctly on one of your checks, you can edit the gnucash/scm/printing/print-check.scm file to change one of the existing definitions to print to your checks. The area that you need to change is labelled "stock-check-formats", and probably currently contains two format definitions. Change either one you like. Note that the dimensions defined here are not in the same order as those in the dialog box you were just working in. Now, you'll proabably have to restart gnucash for your new format definition to work.
 
 
 
:To keep track of any progress to enhance this part of the application, check out the bugzilla bug 311062: http://bugzilla.gnome.org/show_bug.cgi?id=311062
 
 
 
==='''Q:''' How do I save the options I have set on a built-in report as a custom report?===
 
 
 
:'''A:''' Run the report, edit the options as desired, and be sure to '''change the name of the report''' on the "General" tab of the options window. Report names must be unique. The "Add Report" entry in the "File" menu will be disabled until after you have changed the report name.
 
 
 
==Questions about GnuCash Localization (L10n) and Internationalization (I18n)==
 
 
 
==='''Q: I want to use GnuCash in my own language'''===
 
 
 
:'''A:''' The answer moved to [[Locale_Settings]].
 
 
 
==='''Q: I want to use GnuCash in a different language than my monetary/decimal separator'''===
 
 
 
:'''A:''' Then you want to set the LC_MONETARY envrionment variable different from the LANG: "env LC_MONETARY=fr_FR".
 
 
 
==='''Q: I'm a Mac user and I want to use Gnucash in a language different from my system settings.'''===
 
 
 
:'''A:''' See the [http://wiki.gnucash.org/wiki/Locale_Settings#Changing_the_Language_on_OSX Wiki Article] on OSX Locale Settings.
 
  
 
==Developing GNUCash: Source Code Overview ==
 
==Developing GNUCash: Source Code Overview ==
  
==='''Q: Is the GnuCash team working on a gtk2 version?'''===
+
==='''Q:''' I heard it is too hard to compile GnuCash!===
  
:'''A:''' GnuCash 2.0, the gtk2 version, was released on July 10th, 2006.
+
==='''Q:''' Ok, what devel packages do I need in order to compile GnuCash?===
  
 +
:'''A:''' Instructions for building GnuCash can be found at [[Building]]. There, you will find references to OS-specific building instructions.
  
==='''Q: I heard it is too hard to compile GnuCash!'''===
+
==='''Q:''' Why is GnuCash written in C?===
 
 
:'''A:''' This was probably true at the time when 1.6.0 was released. It is no longer true today, as almost every distribution ships with all the necessary libraries. The easy way to do this on Linux is to use your package manager's build dependencies feature:
 
  apt-get build-deps gnucash
 
  yum-builddep gnucash
 
  zypper build-deps-install gnucash
 
 
 
The [[http://wiki.gnucash.org/wiki/MacOSX/Quartz procedure]] for building on Macintosh OSX automatically builds all of the dependencies for you, as does the [[Windows]] procedure.
 
 
 
==='''Q: Ok, what devel packages do I need in order to compile GnuCash?'''===
 
 
 
:'''A:''' The exact names of the required packages vary a bit depending upon the Linux distribution. Consult your package manager's dependency listing to find out -- then check the README.dependencies file after you check out the Gnucash source tree.
 
 
 
==='''Q: Why is GnuCash written in C?'''===
 
  
 
:'''A:''' The core functionality of GnuCash is written in C, but do not forget that much of this can be accessed through Guile (scheme).  There are a number of reasons for why GnuCash is written in C.  The first is historical, Gnucash was started in 1996 (or maybe even earlier!) and many of the OOP (C++, Java, Python) compilers were not yet mature and standarized enough on the variety of platforms considered at that time, so C was the only option at that time.  A second reason is because the standard GUI GnuCash uses is GTK, which is written in C.
 
:'''A:''' The core functionality of GnuCash is written in C, but do not forget that much of this can be accessed through Guile (scheme).  There are a number of reasons for why GnuCash is written in C.  The first is historical, Gnucash was started in 1996 (or maybe even earlier!) and many of the OOP (C++, Java, Python) compilers were not yet mature and standarized enough on the variety of platforms considered at that time, so C was the only option at that time.  A second reason is because the standard GUI GnuCash uses is GTK, which is written in C.
  
  
==='''Q: Why don't you rewrite GnuCash in programming language ''xyz'' so that I can contribute easily?'''===
+
==='''Q:''' Why don't you rewrite GnuCash in programming language ''xyz'' so that I can contribute easily?===
 
 
:'''A:''' The quick answer is "We won't". The longer answer is complex but still amounts to "We won't". GnuCash is a large body of code maintained by a small group of developers who are comfortable in C and Scheme (Guile). Actually, 80% of it is in C and approx. 13% is in Scheme/Lisp. There is no valid reason that would justify rewriting this amount of existing code in a newer language.
 
  
:Having said that, some kind folks have recently provided some python bindings to Gnucash.  They are currently available only in trunk and not yet very mature. Stay tuned. Also, GnuCash is using SWIG for the Scheme language bindings [http://www.swig.org] (new in version 2.1.0 and higher). These SWIG bindings can probably be adapted to include other languages into GnuCash without too much effort, but currently they are used only for Scheme bindings.
+
:'''A:''' Currently we are in the middle of a rewrite to C++. If that's the language ''xyz'' refers to you're definitely invited to join in the effort. For other languages the quick answer is "We won't". The longer answer is complex but still amounts to the same. GnuCash is a large body of code maintained by a small group of developers who are comfortable in C(++). Actually, 80% of it is in C and approx. 13% is in Scheme/Lisp. The intention is to replace all of this with modern C++.
  
===Q: What happened with Guppi when in the GnuCash 2.x version? Was it dropped? ===
+
:Having said that, some kind folks have provided some python bindings to Gnucash.  They are not yet very mature but can be used for basic data manipulation.  Stay tuned. Also, GnuCash is using [https://www.swig.org SWIG] for the Scheme language bindings since version 2.1.0. These SWIG bindings can probably be adapted to include other languages into GnuCash without too much effort, but currently they are used only for Scheme bindings.
:'''A: '''Guppi was dropped completely in the GnuCash 2.x version. Its features are now being implemented by ''goffice''. The gnucash-2.0.x tarball includes a copy of the goffice-0.0.4 source code. If gnucash's ./configure finds a newer goffice installed, it will use the installed goffice instead of the internal copy.
 
  
===Q: I am having problems compiling g-wrap. ===
+
==='''Q:''' Can I read the doxygen files documenting the API offline?===
Specifically during configuring: "checking if guile long_long is at least as big as gint64... no  checking if unsigned long is at least as big as guint32... no  ./configure: exit: bad non-numeric arg `size'[[...]"
 
  
:'''A:''' Try configuring guile to build with thread support (./configure --with-threads).
+
:'''A:''' At first make sure [https://en.wikipedia.org/wiki/Doxygen Doxygen] is installed on your machine. After you downloaded and configured (<code>cmake ... </code>) the GnuCash sources, you can call <Syntaxhighlight lang="sh">
 +
make doc</Syntaxhighlight> or <Syntaxhighlight lang="sh">
 +
ninja doc</Syntaxhighlight>
 +
:and then you can open <tt>src/doc/html/index.html</tt>.
  
:Also, g-wrap won't be needed from gnucash-2.1.0 onwards anymore. Neither the currently used swig nor the previously used g-wrap packages are needed anymore when compiling from tarball or when installing a binary. (Only when compiling from [[SVN]] you need swig installed.)
+
==='''Q:''' Can I run GnuCash already in the build dir?===
  
 +
:'''A:''' Usually you will run <tt>make install</tt> first and the run GnuCash. But you can also use "gnucash-build-env" to set up the right environment to run from the build dir.  So you would need to run: <Syntaxhighlight lang="sh">
 +
./src/bin/overrides/gnucash-build-env ./src/bin/gnucash</Syntaxhighlight>
  
==='''Q: Can I read the doxygen files offline?'''===
+
==='''Q:''' How do I run GnuCash under gdb and get a stack trace?===
  
:'''A:''' If you downloaded and configured (<code>./autogen.sh ; ./configure ...</code>) the sources, you can call
 
make doc
 
and then you can open src/doc/html/index.html.
 
 
==='''Q: How do I run GnuCash under gdb and get a stack trace?'''===
 
 
:'''A:''' See [[Stack Trace]] for instructions on running GnuCash under gdb to get a stack trace.
 
:'''A:''' See [[Stack Trace]] for instructions on running GnuCash under gdb to get a stack trace.
  
==Glossary==
+
==='''Q:''' Why does GnuCash depend on Gnome?===
 
 
;[http://www.aqbanking.de AqBanking] : a library, which implements the german ''Home Banking Computer Interface'' '''HBCI''' and ''Electronic Banking Internet Communication Standard'' '''EBICS''', besides '''OFX''' Direct Connect and Paypal. It is the successor of ''openHBCI''.
 
 
 
;[http://www.stack.nl/~dimitri/doxygen/ Doxygen] : a tool for the automated generation of source code documentation. [http://www.doxygen.org doxygen.org] says that "Doxygen is a documentation system for C++, C, Java, IDL (Corba and Microsoft flavors) and to some extent PHP and C#."
 
 
 
;[http://en.wikipedia.org/wiki/GAAP GAAP] : stands for "Generally Accepted Accounting Principles", the rules by which Business Accounting has to be done, especially in the U.S. and some other countries.
 
 
 
;[http://www.nongnu.org/g-wrap g-wrap] : a tool for creating Scheme interfaces to C libraries and vice versa. (replaced by swig for SVN-trunk and gnucash >= 2.2.0 anymore.)
 
 
 
;[http://www.gtk.org gtk+] : the GIMP Tool Kit. It is the underlying graphical library that is used by GIMP but also by the whole Gnome desktop. [http://www.gtk.org gtk.org] says that "GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable for projects ranging from small one-off projects to complete application suites."
 
 
 
;[http://gnuwww.epfl.ch/software/guile/guile.html guile] : is an interpreter for the Scheme programming language, packaged as a library which can be incorporated into your programs. Other interpreters for Scheme are e.g. MIT Scheme, UMB Scheme, Luna, Hobbit, and many others.
 
 
 
;[http://www.gnome.org/projects/guppi/ Guppi] : a GNOME-based framework for graphing and interactive data analysis. This library created the pie charts and bar charts in GnuCash. Unfortunately, its development has been abandoned.
 
 
 
;[http://www.hbci-zka.de/english/ HBCI/FinTS] : a bank-independent online banking protocol used by German banks. HBCI (Home Banking Computer Interface) has been developed by the German Central Banking Committee ZKA (Zentraler Kredit-Ausschuss). The standard is publicly available and is used by approx. 50% of German banks, but nowhere else in this world. Since 2002 it is called „Financial Transaction Services“ (FinTS).
 
 
 
;LibOFX : an Open Source library for OFX (see below). It was created by one of the GnuCash developers (Benoit Gregoire), originally to be the OFX interface for GnuCash.
 
 
 
;MT940 : a financial information standard defined by [http://www.swift.com SWIFT] and used by several European banks. It is also used internally in HBCI. Unfortunately, you can't download the MT940 standard, but some banks (like [http://www.omikron.de/english/Service/Kunde/Formate/mt940_S.htm this one]) publish it on their web site.
 
 
 
;[http://www.ofx.net/AboutOFX/AboutOFX.aspx OFX] : the Open Financial eXchange format. This is a financial information standard (i.e. a file format standard) documented at http://www.ofx.net/DeveloperSolutions.aspx
 
 
 
;OpenHBCI : was an Open Source implementation of the German HBCI. It was replaced in 2004 by ''AqBanking''.
 
  
;[http://schemers.org Scheme] : a functional programming language, a dialect of Lisp. There's a little more information at http://www.swiss.ai.mit.edu/projects/scheme/, where they'll tell you that "Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by Guy Lewis Steele Jr. and Gerald Jay Sussman."
+
:'''A:''' GnuCash uses the Gnome Project's [https://developer.gnome.org/references core and user interface libraries] to provide a cross-platform development environment. It's one of three Free/Libre Open Source cross-platform development environments available. Which one provides the best environment for developers or the most "native" experience to users is endlessly debatable. The early GnuCash developers chose Gnome and tightly integrated the GnuCash code with it so switching would be a long and painful process.
  
;[http://www.swig.org/ SWIG] : The ''Simplified Wrapper and Interface Generator'' is 'a tool that connects programs written in C and C++ with a variety of high-level programming languages', here for creating Scheme interfaces to C libraries and vice versa. (Replacement for g-wrap since gnucash 2.2.0 )
+
: That doesn't mean that GnuCash requires the Gnome Desktop Environment, only that the Gnome libraries that GnuCash depends on are installed. GnuCash will run on any Linux or BSD system as long as the libraries are installed; most include GnuCash in their package managers so that users needn't concern themselves with those details, and once installed GnuCash will work with any desktop environment or window manager. GnuCash releases all-in-one packages containing the required libraries for {{Mac}} and Microsoft Windows.

Latest revision as of 01:17, 28 January 2024

Languages 简体中文

If you are having trouble with GnuCash, please note that our primary support channels are our mailing lists. The lists are the best place to read about the experiences that other users have had with GnuCash, and there are many experienced users who monitor the lists and answer questions posted there. GnuCash has mailing lists in several different languages.

There is also an IRC channel which is usually monitored by at least one developer during business hours in European and American time zones. (Usually isn't always. Our developers are all volunteers and sometimes have real-life things to which they must attend.) Note that the IRC channel is almost entirely in English.

Note that Gnucash for Android is a separate project from the main GnuCash application. The developer seems to have abandoned it; we haven't heard anything from him since 2015 and he last interacted on GitHub in 2018. He was collecting bug reports and user feedback on GitHub and UserVoice.

Note on iOS and iPadOS: GnuCash is not available in any form on Apple mobile devices. There are some apps in the App Store that claim to be mobile assistants for GnuCash, including one that has misappropriated the GnuCash name and logo. Those developers have never so much as contacted us and have no connection to the project. At this writing they seem to be simple data-entry apps that can export either CSV or QIF files that GnuCash may or may not be able to import.

Note
Please do not use wiki talk pages to ask for help; use the mailing lists or IRC channel.
Note for Editors
Target is to have here only a collection of questions paired with links into thematic pages. So, if a related page exists, add real content there and here only the link of the section.

Contents

General Questions

Getting Help

Q: I'm having trouble with GnuCash. Where can I ask for help?

A: First of all, have you studied the Tutorial and Concepts Guide and the Manual? Also this wiki has sometimes more recent details.
  • If you did and you have still trouble, our primary support channels are our mailing lists in several languages.
  • We also have an IRC channel which is usually monitored by at least one developer during business hours in European and American time zones. The IRC channel is almost entirely in English.

Contributing

Q: How can I contribute to the GnuCash project?

A: See Contributing to GnuCash for tangible ways you can contribute to the project.

Q: How can I make a donation to the GnuCash project?

A: See the Donation page for information about how you can financially support the project.

Troubleshooting and Improvements

Q: What are the basics of reporting bugs and requesting enhancements?

A:
You can find information about reporting bugs at Reporting bugs.
You can information about enhancement requests at Enhancement requests.
If you are new to these processes, you might find it useful to consult How To Ask Questions The Smart Way.

Q: Something bad happened; how can I help debug?

A: First, check some basic system information:
  • Do you have enough free space on your saving media?
  • Do you have read and write access granted on your data file and its directory?
For both questions you can usually find the answer using your preferred file manager.
In the event that GnuCash does crash, experienced users might be interested in examining a Stack Trace. See Stack Trace for more information.
Besides operating system details, GnuCash has three primary ways of reporting technical detail:
  1. The user interface itself with
    • a status line at the bottom of the main window,
    • tooltips, if you hover the mouse over control elements, and
    • message boxes and similar dialogs.
  2. Terminal statements, which are printed to the terminal from which Gnucash was run. To access this information on Windows, KDE, or Gnome, you must run GnuCash from a command shell:
    • On Windows, run cmd.exe,
    • On KDE, run Konsole,
    • On Gnome, run Terminal.
    From this command line, enter gnucash. GnuCash will place any messages in this command line window.
    • On macOS, statements which would be sent to the terminal on other systems appear instead on the Console. Run Applications:Utilities:Console and select Console Messages to view any console messages in the right pane of the window. Scroll to the bottom. Look for a message like ....Gnucash[29751] Application Path /Applications/Gnucash.app/Contents/macOS/Gnucash-bin. This is the first of the GnuCash terminal statements.
  3. GnuCash logs, which contain most error messages. These are placed in a file called gnucash.trace. See Tracefile for more information.

Q: I think I found a bug. How do I report it?

A: See Bugzilla for an explanation of the bug reporting process.

Q: I really want feature XYZ but GnuCash doesn't have it. How do I get it added?

A: See Enhancement requests for information on this.

Mailing List Questions

Q: When I try to browse or subscribe to the mailing lists, my browser warns me it's unsafe. What's up?

A: That could mean the certificate was not renewed early enough. Please inform the admins by IRC.

Q: Can you please configure the mailing lists so that Reply mails the list?

A: The administrators of the GnuCash mailing lists are of the belief that Reply-To munging is harmful. Please encourage the authors of Your Favorite Mail Client to respect List- headers, or train yourself to use the "Reply-To-All" command (available in every email client) when ever you want to reply to all parties; note that this works even on CC'ed / non-mailinglist email, too.
See also: Reply-To Still Harmful and Reply-To Useful.

Q: I can't join or leave the mailing list.

A: Some people sign up to a mirror of the GnuCash mailing lists, rather than the GnuCash lists themselves. A mirror is a separate server which duplicates the content of another. Common examples of GnuCash mailing list mirrors are Nabble (nabble.com) and Gmane (gmane.org). Joining these systems does not sign you up with the Gnucash lists, and leaving these systems does not remove you from the Gnucash lists. If you join a mirror, but not GnuCash, your posts will go to the mirror first, and then be redirected to the GnuCash list server. However, because you are not subscribed at the GnuCash mail server, your message must pass through moderation before being released to the list. This can cause delays in responses to your request. Many users will consequently subscribe directly to the GnuCash mail server as well. If you have signed up at more than one server, you will need to unsubscribe at them all to stop receiving mail. In other words, if you unsubscribe with GnuCash, but neglect to do so with the mirror, the mirror will continue to send you mail. If you choose to sign up with a mirror site, you will need to manage both subscriptions yourself. Read Mailing Lists for some more information.

Installation

All Operating Systems

Q: What can I do if my Antivirus Software says my Gnucash download is infected?

A: This is a situation which you should treat very carefully, but calmly. Because the scanners sometimes give false positive results, you should collect more opinions, e.g. by using a service like virustotal.com.
If your bandwidth is very low, use the URL tab to enter the download link instead of uploading your file.
In the rare case that the service confirms the result of your scanner, let it do its work to isolate or remove the file. Then inform the GnuCash community, preferably with both:
  • the full URL of the download source (sourceforge, github, mirror ...), and
  • the signatures (SHA checksums) from both the source website and the calculated checksum of your downloaded file.
The first checksum should be available on the source website (e.g. README.txt at the bottom of https://sourceforge.net/projects/gnucash/files/gnucash (stable)/<version>). The second checksum must be calculated from your downloaded file (e.g. run sha256sum gnucash-3.0.setup.exe).
Tip
Verifying the checksum of downloads is always good practice.

Q: I'm trying to read the tutorial/help but it says that it's unable to find the url. What's up with that?

A: You don't have the gnucash-docs package installed properly. Install that to the same prefix where you GnuCash installed and the docs will show up.
Linux
If your default Desktop is not Gnome, you may also need to install yelp.

Q: Why doesn't online quoting work?

A: See Online Quotes Trouble Shooting.

Q: How do I fix a "system error" or "unknown error" when getting stock quotes?

A: See Online Quotes Trouble Shooting

Linux and other unixoid OSes like *BSD

Q: Are there no (more recent) precompiled rpms for my distro?

A: Not here, but you can use the search at https://rpm.pbone.net/ with a search string like "gnucash-5" or its ancestor for the "more stable" distributions.

Q: Why does GnuCash start incredibly slowly on a FreeBSD system?

A: Your copy of GnuCash wasn't compiled correctly for FreeBSD. When you compile gnucash on FreeBSD you need to set "libltdl_cv_sys_dlopen_deplibs=yes" in the environment before running the ./configure command.

Q: I'm running Debian/unstable, just upgraded, and GnuCash no longer works. How can I fix that?

A: Contact Debian. Read the gnucash-user archives because someone else probably already reported the problem.

Q: I'm having trouble getting GnuCash running on Slackware

A: See https://rjmarq.org/gnucash.html and http://www.slackages.com/linux/slackages/index.html

Q: Why does GnuCash run incredibly slowly on a Unix system using X?

A: Please verify that the RENDER option is not disabled in your X configuration. Sometimes this is done for debugging purposes, like so:
  Section "Extensions"
    Option "RENDER" "off"
  EndSection

macOS

Q: How to install on macOS?

A: Download the dmg from the links at the top of the GnuCash website and follow the directions at macOS Installation.

Q: I just installed GnuCash and it refuses to start when I click on it. What is wrong?

A: Your downloaded copy of GnuCash is most likely either corrupted or quarantined by the macOS operating system (in later versions like Mojave or Catalina).
  1. First, check the system log for complaints about GnuCash. Open a terminal window and run the command:
    log show --last 1d --predicate 'eventMessage contains[c] "gnucash"'
    
    If you find a vague complaint from launchd about Service exited with abnormal code: 1, then something is wrong with your GnuCash image, or it has been quarantined by macOS.
  2. To check if the image of GnuCash is corrupted, run the following command from the terminal window (adjust the path to match your GnuCash location):
    spctl --assess -vv /Applications/Gnucash.app
    
    If the image is NOT corrupted, you should get output like:
    /Applications/Gnucash.app: accepted
    source=Notarized Developer ID
    origin=Developer ID Application: John D Ralls (Y9EHT5WMK7)
    
    Otherwise, your downloaded image is corrupted. Go download a fresh copy and reinstall GnuCash.
  3. To check if the GnuCash image is quarantined by macOS, run the following command from the terminal window:
    xattr -p com.apple.quarantine /Applications/Gnucash.app
    
    You may get information like so:
    0181;5eefb4fd;Chrome;E0D8DF2D-DB87-4025-A211-260183ECA9D9
    
    where the browser you downloaded GnuCash with is noted (Chrome in this case). You can forcibly delete this extended attribute from the GnuCash application by running the following command as a macOS Administrator:
    xattr -d -r com.apple.quarantine /Applications/Gnucash.app
    
    Then retry clicking on GnuCash to launch it. It should launch successfully.

Q: How can I get context menus on macOS?

A: In GnuCash versions prior to 3.0, users can access context menus by using Control-click.
To access context menus in GnuCash versions 3.0 and higher, use a two-finger click on the trackpad.
With version 3.0, GnuCash changed to use GTK3, which interprets Control-click as a normal click. This is a limitation of GTK3, as described in 797286.

Q: I just installed GnuCash and all the labels are in Japanese

A: It's usually caused by something being not-quite-right in the language defaults on your Mac. Open System Preferences>Languages & Text (Snow Leopard) or International (Leopard and Tiger) and change the order of the languages, close system prefs, then repeat and change it back to the way you like it. Try GnuCash again.

Q: I want to remove GnuCash from my Mac. How do I do it?

A: Note: These instructions apply to the stand-alone download from the GnuCash web page (and re-distributed by Homebrew). Users of MacPorts should consult the instructions for those distributions.
Almost all of it is contained in the application bundle, Gnucash.app, which you can just drag to the trash. Gnucash's configuration files are in $HOME/Library/Application Support/Gnucash, which you can also drag to the trash. If Gnucash has ever crashed, there may be crash logs in $HOME/Library/Logs/CrashReporter/ that you'll also want to drag to the trash. CrashReporter log filenames start with the name of the application, so the Gnucash ones will start with "Gnucash".
If Finder won't let you drag Gnucash.app to the trash, it's likely that there is one or more instances of dbus-daemon (a Gtk inter-process communication program) still running. There are a couple of ways to stop them:
* The simpler if you're comfortable with the command line is to open /Applications/Utililities/Terminal and issue the command "killall dbus-daemon".
* Otherwise, open /Applications/Utilities/Activity Monitor and type "dbus" into the filter window in the upper right hand corner. That will restrict the list to only instances of dbus. Select each in turn and click on the red octagon "Quit Process" tool on the left end of the toolbar and select Quit on the ensuing dialog box.
There may be other configuration files in hidden folders in your home directory which you'll have to delete from a Terminal command line. Those directories are:
* .gnucash (if you've used an older version of Gnucash)
* .gconf
* .gconfd
* .gnome2
* .gnome2_private
* .banking (if you've used the online banking features with an older version of Gnucash)
* .aqbanking (if you've used the online banking features with Gnucash 2.3.9 or later)
To delete these directories, open Applications:Utilities:Terminal and at the prompt enter
rm -rf dirname
for each of those directories.
Your account files are where ever you put them. There will be corresponding backup and log (suffix .log) files which start with the same name as your account file. You can drag the lot of them to the trash as well.

Q: How do I install Finance::Quote on a Mac?

A: See Installing Finance::Quote on macOS.

Q: I copied my GnuCash data to a network drive. How do I open it from my Mac?

A: Macs mount all network shares in the /Volumes directory, to which one can navigate in the GnuCash File Chooser.
First, make sure that the network folder is mounted and browsable in Finder. Note its share (not host) name: When you select a shared host in Finder, the first screen/level/column (depending on which view is selected in Finder) displays the shares available on that machine. The one you select will be the name that shows up in the /Volumes folder in the next step.
Start up GnuCash and select File->Open. On the selection list on the left you'll see entries for "File System" and "/"; they both go to the same place. Click on that, then scroll down and double-click on "Volumes". Find the share name for the remote folder, double click on that, then navigate as usual to the account file.

Microsoft Windows

Q: Gnucash crashes immediately on startup

A: This can happen for a variety of reasons.
One that pops up from time to time and is quite hard to detect unless one knows to look is having Lilypond installed. Lilypond for Microsoft Windows is built with a different version of Guile than is Gnucash, and the Lilypond installer insists on placing its path in the global path list in such a way that Gnucash finds Lilypond's Guile instead of its own, and crashes. The solution is to remove Lilypond's directory from the global path in control panel and add it to the environment settings in the Start Menu and Desktop aliases.

Q: Is there other information regarding Windows?

A: Yes, there is a Windows page in the wiki. In particular you can also look in the Known Issues section on that page.

Mobile

Q: How do I run GnuCash on my mobile device?

A: Unfortunately GnuCash can be built only for desktop opertaing systems. You may find apps that claim to be GnuCash compatible in various stores like Apple's App Store or Google's Play store, but they aren't GnuCash and with the exception of GnuCash for Android the developers have never even contacted the GnuCash project.

All GnuCash versions

Q: GnuCash crashes on startup trying to run an SX. How do I fix this?

A: We're still trying to track down all the various SX problems. First, you should make sure you're running the most recent release. Second, if you're running the most recent release and still having problems you should file a bug report with all the output on your terminal (you ARE running gnucash from a terminal, RIGHT???). Third, you should backup your data file because the developers may want to see portions of it to help track down this problem. Finally, run:
gnucash --nofile
then turn off the AutoRun option from Edit -> Preferences -> Scheduled Transactions . Then exit and restart GnuCash and it should open your data file just fine.

Configuring and Managing

Basics: Filenames, Directories, ...

Q: What's the GnuCash file extension?

A: Starting with version 2.3.15, .gnucash is the file extension for new files. Existing filenames will not be changed though and the old extensions are still recognized on most systems.
Earlier versions did not enforce any file naming conventions or extensions. However, the .xac and .gnc extensions are described in the "shared-mime-info" package used by almost every distro and desktop environment to associate applications with files, and allow the file to be opened when double clicked in a file browser.
Note: .xac is short for "X-Accountant", the predecessor of GnuCash; .gnc is the "internal" three-letter-abbreviation of GnuCash.

Q: Where is my GnuCash data file?

A: The answer depends in part on the file format you have chosen for your data.
If you are using the default xml format, or the sqlite format, the data file is called something.gnucash and is stored in the folder you specified when you saved your file. Note: See the previous question for more information on file naming. For details of file formats see GnuCash XML format and SQL.
If you are using the postgres or mysql storage formats, then there is no data file but a database in your DBMS.
If you do not remember where you saved your file, you can figure out where the file is by clicking File > Save As…, and noting the folder in the dialog box. That is the folder your data file is located. Then, cancel the Save As... dialog box.
If the above is not possible, search your disks for directories containing .gnucash or .xac and .log files.

Q: What are the .LCK and .LNK files?

A: These are lock files that GnuCash creates to prevent different users from opening the same file at the same time. GnuCash creates these files when you open your data file, and deletes them when you close the file. (Note: If GnuCash crashes, these files will remain in your system, and GnuCash will warn you the next time you try to open the data file.) If GnuCash is no longer using a given file, you can remove these files safely.

Q: What are all these .gnucash and .log files filling up my directory?

A: These are backup data files and log files (".log") that GnuCash creates to prevent data loss. GnuCash will remove them after a configurable amount of time (Preferences/General/"Days to retain log files"). In the normal case when your data file is ok and you don't need old versions of the file, you can remove these files safely.
Note that the backup and log files have a format of <name>.YYYYMMDDHHMMSS.gnucash (or .log). These are backup (and log) files from your data file, <name>.
Note that .log files are to be used only if you are using an XML backend for the book. With SQL storage, it is not recommended to replay the .log files. The data is always saved to the data store and the possibility of data loss is minimal in that case.
This topic is covered more broadly in Backing Up and Recovering Data section of the User Guide.

Q: Why is my file name getting longer and longer?

A: GnuCash creates a backup file by taking the current data file and adding the date/time to the end (YYYYMMDDHHMMSS.gnucash). So if you're using a file named "Foo.gnucash", then you'll get backups of the form:
Foo.gnucash.20100719100214.gnucash
Now assume that instead of opening "Foo.gnucash" you open one of these backup files, you make changes to it and then save the file.
For starters, this means you've just over-written the original backup file which is always a bad idea. Backups should never be changed.
Secondly since you saved changes, GnuCash will create a backup file based the file you just changed using the same naming system: it adds a date/time extension. Since the file you saved already had such an extension, you end up with a backup file named:
Foo.gnucash.20100719100214.gnucash.20100719112352.gnucash
Repeating this process will add to the file name until it exceeds the operating system limits.
The fix:
1) Don't open a backup file
1a) If you DO open a backup file, never simply save it out again, instead use Save As to give it a new name.
2) Make sure you're always using your base data file
3) If your base data file for some reason is bad, and you need to recover from a previous backup file, copy the backup file over your bad base file, for example:
cp Foo.gnucash.20100719100214.gnucash.20100719112352.gnucash Foo.gnucash
and then File -> Open the new file, Foo.gnucash.

Q: Gnucash crashed and lost a bunch of my edits. How do I recover them?

A:
The first thing to check is that you are, in fact, opening the right file. Look up in the title bar: If it has a long string of numbers starting e.g. 20111011 (2011-10-11, i.e., 11 October 2011) then you've opened the wrong file. If you haven't done this too many times, the right one should still be in the recent list in the File menu. Open it and make sure that you really have lost work.
If you're sure that you got the right file and that your work is still missing, look at the log files for that data file -- and for any backup files you might have entered data into (Those will have logfiles with names that look like filename.timestamp.gnucash.timestamp.log). Quicklook works on log files, so you can browse the log files in Finder. Find the earliest one for which data does not appear in your data file and select File>Import>Replay Gnucash .log File, then select that log file. Repeat for every subsequent log file.
Click the save button.
Go back to work.
Warning: The log file will not replay business actions. So if you posted invoices or processed payments or did anything else with the business functions, replaying the log will destroy your data! Do not replay a log that has transactions from business feature operations or internal data structures will be completely messed up and you will have lots of trouble cleaning up later.
If you did lose business feature work the only thing you can do is redo the work by hand and then make sure you click save.
Save early, save often.

Q: GnuCash says that it can't obtain the lock for my file. What should I do?

A: There are two ways to get that message:
  1. One is to have another instance of GnuCash running with the same file or database open. If you're using MySQL or Postgresql, or if you have your file in a service like Dropbox, the other instance might not be on the same computer.
  2. The other way is if GnuCash didn't shut down correctly the last time it quit, and so didn't remove the lock.
  3. You are using a sshfs filesystem. In this case adding the option -o disable_hardlink should make the error go away (if you have a UID/GID with the enough privileges on the remote directory).
  • If you're absolutely sure that another instance of GnuCash doesn't have the same file open, click on "Open Anyway".
  • Otherwise, select one of the other buttons.
Background
When a user opens a .gnucash file with GnuCash, e.g. foo.gnucash is opened, GnuCash creates an additional file in the same folder, as a signal that this file is open and being modified. This is the lock file. The lock file will have the same file name plus LCK extension, e.g. foo.LCK for when foo.gnucash is opened.
Before GnuCash opens the file, it looks for a file that starts with the file name you asked it to open and ends with .LCK. If it finds this file, it gives the warning about difficulty obtaining a lock. In this case, GnuCash thinks the file you're trying to open is already open and being edited.
Tip
While using any sort of syncing software, set the software not to copy the *.LCK and the *.LNK as well as the *.log files.
See also
#Q: What are the .LCK and .LNK files?

Q: I moved/renamed my data file and my reports disappeared. How do I get them back?

A: Reports are stored in a separate file in the GNC_DATA_HOME/books[1] directory. File name is a url-encoded path name for the main data file. To get your reports back, copy old report file over the new reports file, then open ~/.gnome/GnuCash in your favorite editor and copy section corresponding to the old file to the section of the new file

Q: Why can't GnuCash find my data file anymore? It just says: parser error : Start tag expected, '<' not found

A: We're very sorry, but you just shot yourself in the foot. GnuCash uses GNC_DATA_HOME/ to store metadata files. In particular, GNC_DATA_HOME/books stores metadata about your data files. In versions 1.8 and earlier the metadata file was named as the encoded name of the full path to your datafile, but as of 2.0 this was changed and the metadata file is just named the same as the data file. So if you saved your data file into GNC_DATA_HOME/books and updated your versions, GnuCash just overwrote your data file with the metadata file. You'll need to copy a backup file and move it somewhere outside of GNC_DATA_HOME and tell GnuCash to look there by using the File -> Open feature to load the new datafile.
Note: This should no longer happen as someday [in 2011?] the metafiles got the extension .gcm GnuCash Metafile, while by default datafiles get .gnucash. Nevertheless it is a bad idea to store your datafile in this application settings folder.

Q: How can I change the number of the most recent files (MRU) list?

A: It is amost the same as in the next question, but instead of deleting fileX, you have to edit maxfiles in /org/gnucash/GnuCash/history/. In version 4.6 or prior, settings are located in /org/gnucash/history/. If you decrease the number, you should also delete the superflous fileX entries.
ToDo
Split off an "Accessing GSettings" and link it from both questions.

Q: I have deleted a gnucash file from my computer. How can I remove that file from the File menu's short list (MRU) as well?

A: The list of files you see in the File menu is the list of most recently used files (MRU). Strictly speaking the items in this list are still "recently used" even if you deleted the file from your computer in the meantime (you won't be able to open it anymore from the File menu). So it's really only a cosmetic issue. But if it bothers you enough and you really want the obsolete entries removed, please read on.
Depending on your version of GnuCash, the MRU list is stored in different locations.
GnuCash 2.6 and newer
The MRU list files is stored in the default preferences system of your operating system:
Linux and similar
The MRU list is stored in dconf. You can use a tool called dconf-editor to manipulate the dconf database. You may need to install it using your distribution's software management system first. Then open the DConf Editor gui tool, and use it to modify the /org/gnucash/GnuCash/history tree. In version 4.6 or older, settings are located in /org/gnucash/history/.
The default number of recently used files shown is set to 4. This can be set to other values by changing the value of maxfiles in the same window.
macOS
The MRU list is stored in defaults. This is accessed in Terminal via the defaults(1) command. To remove a particular file (e.g., the fourth) from the list you can say:
N.B.: In version 4.6 or older, the path in instructions below needs to be changed to /org/gnucash/history/.
defaults delete -app Gnucash "/org/gnucash/GnuCash/history/file4"
To change it, say
defaults write -app Gnucash "/org/gnucash/GnuCash/history/file4" "/Users/john/Desktop/MyAccounts.gnucash"
To display all of the stored Gnucash preferences, use
defaults read -app Gnucash
To change the number of files listed, use
defaults write -app Gnucash "/org/gnucash/GnuCash/history/maxfiles" -int 6
The value must be between 0 and 10 inclusive.
N.B.
You may need to provide a full path to GnuCash like
defaults read -app /Users/john/Applications/Gnucash
or use the domain like
defaults read org.gnucash.Gnucash
Windows
The MRU list is stored in the Windows registry. You can use the regedit tool to manipulate it. This tool is installed on Windows by default. You can find the MRU list under:
[Version 4.7 or newer] HKEY_CURRENT_USER/Software/GSettings/org/gnucash/GnuCash/history.
[Version 4.6 or older] HKEY_CURRENT_USER/Software/GSettings/org/gnucash/history.
To change the number of files displayed create a new DWord item maxfiles and set it to a decimal number between 0 and 10.
GnuCash 2.4 and older
The MRU list is stored in an independent preferences database called GConf. GnuCash doesn't have a direct way to edit this. Depending on your operating system there are different ways to alter it:
Linux and similar
You can use a tool called gconf-editor to manipulate GConf. You may need to install it using your distribution's software management system first. Then open the GConf Editor gui tool, and use it to modify the /apps/gnucash/history tree.
macOS
As with Windows gconf editor is not available on this platform and you will have to hand edit the gconf files using a text editor while GnuCash or other Gnome based programs are not running. The file you will want to change is
~/.gconf/apps/gnucash/history/%gconf.xml. This file is in xml.
Windows
On Windows the gconf editor tool is not available. Here you will have to hand edit the gconf files using a text editor while GnuCash or other Gnome based programs are not running. The file you will want to change is normally
Windows XP
c:\Documents and Settings\<user>\.gconf\apps\gnucash\history\%gconf.xml
Windows 7
c:\Users\<user>\.gconf\apps\gnucash\history\%gconf.xml
This file is in xml.

Questions about Backups

Q: How do I backup my data?

A: See Backup page.

Q: How do I backup my GC environment, including preferences?

A: See Backup page.

Customizing the Appearance

Q: How do I change the appearance of GnuCash?

A: GnuCash uses GTK to manage its appearance. GTK is a multi-platform toolkit for creating graphical user interfaces. GTK uses various resource files to manage this.
Note: Resource files are not created by default, so none may exist on your system.
GnuCash version 3.0 and later
use the GTK3 Toolkit. See GTK3 for more information.
GnuCash version 2
uses the GTK2 Toolkit. See GTK2 for more information.

Q: How do I change the appearance of reports?

A: The appearance of GnuCash reports can be changed under Edit->Stylesheets.

Q: How do I change the register colors?

A:
For GnuCash 3.0 and up
see GTK3 Register Appearance.
For GnuCash 2.6.3 to 2.6.21
see GTK2 Register Appearance.

Q: I'm vision-impaired. How do I make GnuCash more accessible?

A: First, tell GnuCash to not use custom colors as described in GTK3 Register Appearance and GTK2 Register Appearance for versions before 3.0.
  • Both Gtk3 and Gtk2 provide HighContrast and HighContrastInverse themes. On Linux the theme is set globally. On macOS and Microsoft Windows you must set it for Gtk. The setting key is gtk-theme-name. On Gtk2 you'll set it in your resource file; on Gtk3 you'll add a line
    gtk-theme-name=HighContrast
    
    under settings in settings.ini. HighContrastInverse presents light text on a dark background.
  • On Gtk3 you have the additional option of setting
    gtk-application-prefer-dark-theme=true
    
    in settings.ini that will work with any theme that provides a dark mode.
  • Adjust the font name and font size to something you're comfortable with, see GTK3#Typefaces or the example file in GTK2.

Q: Where can I find the GTK resource file?

A: Both the path to the GTK resource file and the file name used are different for each platform supported by GnuCash.
Information about the GTK path is available at GTK Configuration locations.
Information about the GTK files that may exist on your machine is available at GTK file names.
For additional information about using these tools, also see the GTK2 and GTK3 pages.

Q: How do I get prices to display as decimals instead of fractions?

A: In Preferences>Number, Date, Time check the first option, 'Force Prices to display as decimals".
Numbers in GnuCash are always stored as rational numbers; Amounts and Values will be rounded to their smallest allowed fraction, which is nowadays always a decimal, but prices must be an exact ratio of the rounded amount and value. By default GnuCash will display prices that cannot be expressed exactly (no rounding) as a decimal in exact fractional form, that looks like 23 + 7/13. The above option will display that price with the currency's smallest unit plus 2 decimals; in this case 23.5385 assuming that the currency is one with a 1/100 smallest unit.

Q: I use KDE, but my fonts look ugly

A: GnuCash uses your GTK font settings. You probably just need to change (or create) your GTK settings for Gnucash. If your KDE System Settings have no module GTK, just run the gnome-control-center from a konsole command line (or by using the Alt-F2 run command dialog).

GnuCash Localization (L10N) and Font Issues

Q: I want to use GnuCash in my own language

A: See Locale_Settings.

Q: I want to use GnuCash in a different language than my monetary/decimal separator

A: Then you want to set the LC_MONETARY envrionment variable different from the LANG: "env LC_MONETARY=fr_FR".

Q: I'm a Mac user and I want to use Gnucash in a language different from my system settings.

A: See Locale_Settings#Changing_the_Language_on_OSX.

Q: How get I rid of strange unreadable characters?

A: You need a font in which the respective characters are defined. Your system tools usually offer some font viewer to test them. See Customizing_the_Appearance for guidance on changing font settings in general.

Q: I dislike some of the new currency symbols of GnuCash 2.6

A: If you really know a symbol is wrong or outdated,
follow #Q: I think I found a bug. How do I report it? and file it against the component Currency and Commodity.
Don't forget to add a link to a reliable source like wikipedia or your central bank.
In between and otherwise:
Tools->Security editor
checkmark Show national currencies,
open the CURRENCY tree,
search the ISO symbol of that currency and click edit,
replace Display Symbol with your desired text
and confirm it by clicking OK.

Using Different Versions, Up And Downgrade

Q: Can I exchange Gnucash file with any other version of GnuCash?

A: Not quite.
  • You can always upgrade to a higher release. In most cases you can go back and forth between adjacent major releases.
There have been some exceptions:
  • To go back from 3.x to 2.x, you should first go back to 2.6.21.
  • 2.6 and 2.4 files were not interchangeable if you had used the Credit Notes feature in 2.6.
  • Reading 2.2 in 2.0 would not work, if you had created Scheduled Transactions.

Q: Can a new GnuCash release still read my old data file?

A: The answer depends on how much forward you want to go. See GnuCash Release Version Numbering for an explanation of the system.
Bugfix releases 
GnuCash maintains full compatibility between Bugfix releases. So a file you created with 2.2.5 would work with 2.2.9 and the other way around.
Major releases 
The data format between major release can change. However, the GnuCash developers try very hard to be as compatible as possible. Each major series is normally at least compatible with the previous major series. So, for example, if you have a data file created with 2.0.3, you should be able to open this with 2.2.5. Skipping a major release may cause issues though, and is not recommended. Instead, you are advised to at least open and save your file in the intervening major release first.
Important: When moving from one major release to another, you are advised to run "Check & Repair" when opening the file for the first time in the new release. Specifically when running it after moving to a new major release, it may address data format issues that the old release ignored, but with which the new release has problems (like for example bug #340372).
Unstable releases 
The unstable (or development) releases can make improvements to the data format or provide new data formats altogether (like storing gnucash data into a database). For unstable releases, compatibility is not guaranteed, not even between Bugfix releases. The reason is simple: these releases are to test new functionality, not for long term production use. You should therefore only use development releases on copies of your data or on separate test data.

Q: And the other way around ? Can an old GnuCash release read a data file created with a new release?

A: Here as well, the answer depends on how far apart your releases are.
Bugfix releases 
Again, GnuCash maintains full compatibility between Bugfix releases. So a file you have created with 2.2.9 will work with 2.2.5 and the other way around.
Major releases 
This is trickier. In general here as well, GnuCash tries to be at least backwards compatible with its previous major release, although this may not always work. Here are some of the potential problems:
  • If new functionality results in new fields in the data file, these new fields will not be visible in the old release. Depending on how these fields were added, this would cause your data file to be unreadable by the old release or the new fields will simply be ignored (but retained). Obviously the latter is the preferred solution as it keeps backward compatibility, but it may technically not be possible to implement.

Multiple Computers, Users, ...

Q: Can I use GnuCash with multiple users? Maybe via the SQL backend?

A: That depends on what you mean exactly. You can share your data file with others, for example by storing it on a network mounted drive. Note that this will enforce serialized, exclusive access to the data file and editing; there is no real support for simultaneous editing. File-locking is employed on this file, so it should be NFS-safe. SMB-safe locking is unknown.
Even the dbi (SQL) backend which comes with GnuCash 2.4 is currently not designed for true multi-user access. Trying to work with multiple users at the same time in the same database will be prevented by means of a locking mechanism. Circumventing that can cause data loss. You can however share the database with different users, provided you ensure serialized, exclusive access. In other words, only one user at the time should have GnuCash open with that database. Once this users closes their GnuCash session, another user can start GnuCash on this database.

Q: I'm running GnuCash under GNU/Linux. Can I give another user access to my GnuCash files?

A: Yes, as long as both of you do not access them at the same time. You do it the same way you'd share files of any type under Linux: put them in a folder that both of you have access to, and change the permissions so that you both can read from and write to the files. You really don't want more than one person to have them open for editing at the same time, however, as whoever saves last will overwrite the changes of whoever saves first.

Q: I use the same account on multiple computers (through a repository), how do I also transfer the reports I currently have open?

A: Copy your book's gcm file from GNC_DATA_HOME/books to the same location on your other computers (before 3.0 that would be HOME/.gnucash/books instead on Linux and Windows).
Alternatively you can save your report configurations. These report configurations will be found in GNC_DATA_HOME/saved-reports-x.y (again before 3.0 that would be HOME/.gnucash/saved-reports-x.y instead on Linux and Windows). If you copy that file to your other computer you will have the same reports available.

Q: I just got a new computer. What should I copy over from my old one?

A: You need to copy the same files that you'd backup, so see Backup.
  • If your new computer runs a different operating system from the old one the configuration locations will be different, see Configuration Locations.
  • If you're upgrading to GnuCash 3.x from an older version at the same time as the upgrade, copy the configuration files to the older version location and let GnuCash move them to the new locations.

SQL Database

Q: Is there a database backend?

A: An abstraction layer has been created using first GDA but then replaced with DBI, which has proved to work well.

This is the first step in making GnuCash suitable for simultaneous multiuser use. Until this is complete almost all users are better off with the XML backend.

Q: Should I use the XML or database backend?

A: Until GnuCash supports simultaneous multiuser use almost all users are better off with the XML backend.

Q: Is the Postgres DB / SQL backend supported?

A: GnuCash versions 2.4 and later releases support SQL via the DBI backend. It supports PostgreSQL, MySQL and SQLite3 databases.
Some history
A first PostgreSQL backend was introduced in the 1.6 code line, but it never supported any features introduced since the 1.6 release, especially the Business features and Scheduled Transactions. Even so, modulo those features, the Postgres backend should still basically function, even in the 2.2 release. However, since the 2.0 release, some user-interface elements relating to using the Postgres backend are no longer available; use a postgres:// url from the command-line to access it.
This first Postgres backend has been considered obsolete by the core developers since the 2.0 release and has been removed from the 2.4 release.
In 2006, work started to create a GDA-based backend to replace the Postgres-specific backend. The GDA backend was replaced with a DBI backend as of 2Q 2008. This DBI backend is what eventually has been released with GnuCash 2.4 late December 2010.

Q: Can I open my GnuCash SQL database with another program, perhaps Microsoft Access?

A: A qualified yes. To use a PC program like Access (or Open Office's Database) you'll need the ODBC driver for whichever database you decided to use. You can of course query the database using the tools that database engine (SQLite3, MySQL, or PostgreSQL) provides, including embedded sql programming tools.
Qualified, though, because the relation information isn't encoded in the database: there aren't any foreign keys defined at present. All of the relations are established in C or Scheme code in the GnuCash libraries. What's more, there's a lot of data stored in a single "key/value" table which has relations to almost every other table in the database. Because of these limitations, we insist that you must not write to the GnuCash database except through the GnuCash libraries.
The table layouts are documented at SQL

Q: Opening an sqlite3 datafile which is on a smb network drive crashes GnuCash

Q: Saving to sqlite3 on a smb network drive gives locking errors

A: It seems some smb servers don't deal well with the low level file locking required by sqlite3. It was experienced when the sqlite3 file resided on a Windows XP machine and accessed from a linux machine that mounted the Windows drive via cifs. It is very likely OS X clients will run into the same issue.
There is a way to solve this (at least on linux): if you mount your Windows drive, add the option "nobrl" to the mount command (or in /etc/fstab). This will disable the offending low level locking mechanism. You should be aware though that this will risk file corruption if two users are using this data file at the same time. Since GnuCash doesn't support multiuser, simultaneous access anyway, this shouldn't be a problem though.
For further details about this problem, you can check these links:
  1. GnuCash bug 637886 and particularly comment 20 which summarizes the issue
  2. Samba bug 5994, which seems to lie at the core of the issue.

Q: I tried to start up GnuCash 2.4.1 on my SQL database and I got an error about libdbi and large numbers

A: Libdbi is a library that we use to generalize access to the SQL databases we support. Unfortunately the default way to compile it doesn't agree with some compilers, resulting in its inability to work with large numbers... the large numbers that we use to store amounts. That means that you'll lose a lot of data if you try to use a SQL backend with the library in place. We've encountered several Linux distributions that have the buggy libdbi, so we inserted a test into Gnucash to catch it. You can read the bug report for technical details, but if this happens to you, you should file a bug report with your distribution. If you're able to build programs, you can build your own libdbi with different parameters to avoid the bug (again, details are in the bug report). Otherwise, you'll have to use the XML backend.

Security: Encryption, Password Feature

Q: Is it possible to provide security for GC data using CFS, etc.?

Q: Can you please add a password feature?

A: The core developers – which includes those with long-term experience with well-known names/brands in computer security – believe that each app should do one thing well, and leave other concerns to other apps. This is especially "tricky" when it comes to critical concerns like data security. In this case, GnuCash would do a poor job of providing good data security. You're encouraged to use an encrypted file system to store your critical data files — GnuCash and others.
Encrypted filesystem options:
  • Loop-AES. See Example 7.3 in particular for setting up an encrypted specifically-mountable loopback partition.
  • EncFS
  • See gnucash-devel thread. Note that the link in the post does not work, but this one does: crypto.com.
  • CFS is fairly old code, and has some flakiness, but does work with modern systems (e.g., see pkgsrc/security/cfs in NetBSD's pkgsrc).
  • NetBSD's cgd(4), which is a cryptographic layer for an entire block device
  • FreeBSD's geom-based encryption
  • TCFS
Other Solutions:
That being said, there has been some discussion of a password protection feature, but neither of those discussions led to anyone implementing a solution. See e.g. https://gnucash.uservoice.com/suggestions/1547269 and the thread following of https://lists.gnucash.org/pipermail/gnucash-devel/2013-June/035754.html
Note that if you use the online banking features within GnuCash, you should be aware that your account numbers and user IDs are stored in plain text in your AqBanking settings, which are stored in
  • ~/.banking/settings.conf for old aqbanking versions and somehwere in
  • ~/.aqbanking/ for newer versions (in various files below this folder)
You should encrypt this file in addition to your gnucash data file.

OS/Distribution Specific Issues

[Novell|open]SuSE

Q: Trying to open the help menu under SuSE, I get the error: "GnuCash could not find the files for the help documentation."
A: For some reason SuSE seems always to have bugs relating to the GC docs.
  • You may have to use YaST to install the
    • yelp and
    • gnucash-docs packages.
  • In SuSE 11.4 replacing the symlink
/usr/bin/gnome-help -> susehelp
with
/usr/bin/gnome-help -> /usr/bin/yelp
allows GC Help -> Contents to show as expected.
For older SuSE versions: gnome-help has moved from /opt/ to /usr/.

Windows

Q: I cannot get any report to display not even the sample reports. All that displays is an empty tab.
A: This is the subject of an open bug #645273. The solution, paraphrasing bug report comment 40:
  • Click on Start Button
  • click on Control Panel
  • Select Network and Internet (view by category)
  • Click on Internet Options
  • Select the Programs Tab
  • At the bottom of the tab, select Set Progams
  • Select the bottom option "Set program access and computer defaults"
  • You are then asked to chose a configuration:
  • Extend the "Custom" configuration section by clicking on the double down arrow at the right (this step may not be necessary). If you are already using a "Custom" configuration, note the settings so you can go back to them once the problem is fixed.
  • Scroll up then click on the radio button to use the "Microsoft Windows" configuration.
Note that once this configuration has been saved once, you are free to make any change you like to the "Set program access and computer defaults" section. The first change of these settings seems to cure the issue for good. These instructions are for Windows 7 - other windows versions may be slightly different.
Q: When I try to open my datafile on Windows, I get "Parse error". What happened ?
A: There is a peculiarity in GnuCash on Windows when you use the Opening balance tab of the account dialog. If you enter a two-digit year in that tab, the date is not saved properly. Subsequently, when you reopen your datafile afterwards, GnuCash thinks it's invalid. If you encounter such a situation, you can attempt to fix your data file manually.
  • Make a copy of your data file and uncompress it (with a tool like 7Zip).
  • Open the uncompressed file with a text editor such as Wordpad or Notepad++. This is an xml file. xml looks a bit like html, but uses different tag names.
  • Look for transaction sections that are missing a <trn:date-posted section>. If you find such transactions, add the <trn:date-posted> section below the <trn:currency> section, like so:
      <trn:currency>
      ...
      </trn:currency>
      <trn:date-posted>
      <ts:date>2011-07-06 00:00:00 -0400</ts:date>
      </trn:date-posted>
    
  • Obviously, you can enter the date that suits you, but keep the format as shown.
  • When all transactions have a <trn.date-posted> section, save your file.
  • It should now open with GnuCash again
You could run into the same problem when you enter opening balances via the New Account Hierarchy Assistant. The solution is the same: you will have to add the missing <trn:date-posted> sections.
Note: This problem was reported in this bug and still occured in all versions of GnuCash 2.4.x released before 2012-06-25. It was fixed in version 2.6.0.
Q: Windows with firewall enabled won't let me save as to a MySQL/Postgresql database on the same machine. What gives?
A: (Short version) Most likely your firewall is blocking access. Try 127.0.0.1 as hostname instead of localhost. Alternatively, you can open the appropriate ports on your firewall for MySQL access (TCP/3306) or Postgresql (TCP/5432). This alternative allows connections to your MySQL/Postgresql installation from other machines in your local network as well, which may or may not be what you want.
A: (Long version) The special hostname localhost is supposed to point back at the local machine. In most operating systems this is equivalent to the IP address 127.0.0.1. Windows is a notable exception here: it associates localhost with the IP address of your external network card. Although this address also routes to the local machine, this is theoretically the same thing. Unfortunately it is not. The Windows firewall makes a distinction between 127.0.0.1 and the network address of your network card. Since the first is truly local, it isn't filtered. The latter is connected to the outside world and as such is filtered.
So if you specify localhost as the hostname, you actually pretend to connect to MySQL on your machine from the outside and hit the Windows (or equivalent) firewall. By using 127.0.0.1 on the other hand, your connection remains truly internal and is not filtered by the firewall.

macOS

Q: The wrong file opens when I double-click a GnuCash file in Finder.
A: GnuCash doesn't get the FileOpen notification from Finder until after it has already opened the last used file, so it ignores the notification. The same applies to using the open command from a Terminal prompt. You can tell GnuCash to open a specific file from Terminal by passing the path as the last argument to e.g.
/Applications/Gnucash.app/Contents/MacOS/Gnucash ~/Accounts/mybook.gnucash

From the Desktop you must open GnuCash and use File>Open or the most recently used list on the File menu to select the file you want.

Questions about Using GnuCash

Note
We have a specific page, but a few aspects are still not built in there:

Q: Can I have multiple data files open at the same time?

A: GnuCash doesn't support this within the same instance of the program, but you can open separate instances of GnuCash each with their own data file. There are several methods:
The easiest way for all OSes except macOS
Use your preferred filemanager and double-click the data files you want to open.
Use the command line or create shortcuts
The procedure varies by operating system:
macOS
from a Terminal window, enter the following command, replacing 'path/to/your/data_file.gnucash' with the full path to the additional file you want to open.
/Applications/Gnucash.app/Contents/MacOS/Gnucash path/to/your/data_file.gnucash &[2]
This can also be scripted with a facility such as Automator.app to provide a file selection or installed as a service or workflow to use on Gnucash data files directly.
Linux
On a command line
gnucash <path/to/your/data_file[n]> &[2][3]
Create .desktop files
Adjust the command line like before and the name, e.g. gnucash-private.desktop and gnucash-business.desktop. Then you can add them to your start menu, desktop, or favourites ...
Windows
Method A
GUI only, recommended for occasional use:
  1. Open the first instance in the usual way, and open the first file.
  2. Press and hold Shift, click the GC icon or tab on the taskbar, and release Shift.
  3. A second instance of GC will start up. It will try to open the same file that is already open, but will display the "could not obtain the lock" message. Select Open Red-Only.
  4. When the GC interface appears, select File » Open in the menu and open the second file.
Method B
Windows shortcuts, recommended for frequent use:
  1. Right-click in an empty spot in your Start Menu or on your desktop and select New » Shortcut.
  2. In the first dialog, type the full path of the GC program and, after a space, the full path of the first GC data file. Example:
    "C:\Program Files (x86)\gnucash\bin\gnucash.exe" D:\$\GnuCash\File1.gnucash
    
    Note
    Double quotes are required when the path contains spaces.
  3. In the second dialog, assign a short display name, such as File1.
  4. Repeat steps 1-3 for File2.
You can now double-click either shortcut, or both of them, to work with one or both files at a time. With a file name in the command line of the shortcut, that instance of GC opens that file rather than the most recent file.
  1. Before GnuCash 3.0
    Configuration Locations#DOT_GNUCASH_DIR was used. The linked page explains where its content moved.
  2. 2.0 2.1 The trailing ampersand detaches the Gnucash instance from the terminal session. You will get your command prompt back to either open an additional data file, or you can simply close the Terminal.app window.
  3. If you have installed multiple versions of gnucash installed, prefix gnucash by the path to the desired version like /usr/bin from distribution or /usr/local/bin for a self compiled version.

Q: Somehow I managed to close the account view tab. How can I get it back?

A: A new account view tab can be opened from the menu. This is slightly different depending on the version of GnuCash you are using:
GnuCash 2.3 and later 
View -> New Accounts Page
GnuCash 2.2.9 and before 
File -> New -> New Accounts Page

Q: Where is the Gnucash Register?

A: Go to File -> New -> New Accounts Page. You'll see a list of accounts. Click on any account and you'll bring up its register.
If you were a Quicken user, you probably don't want to see income and expense accounts in the list, at least initially, so go to View -> Filter By... and uncheck Income and Expense.

Q: How can I count the accounts or transactions in my GnuCash file?

A: If you use
  • the xml backend
    • with compression enabled: zcat $DATAFILE |grep -c "act:name"
    • uncompressed: cat $DATAFILE |grep -c "act:name" on the command line
  • an SQL backend: the usual SELECT COUNT(*) ...; in your DBMS
for the accounts.
Substitute 'grep -c "trn:desc"' to get the number of transactions. [1] You should also replace $DATAFILE with the right name.

Q: Is there a way to merge two accounts into one?

That is, is there a way to move all transactions from one account into another? That would save a lot of time compared to moving each transaction!

A: Kind of. If you want all the transactions in one account to move/merge into another account, you can reparent the to-be-deleted account under to to-be-moved-into account, and then delete the to-be-deleted-account. GnuCash will ask you if you want to move the transactions, and you should answer "yes".
2nd A: Probably no, you must manually change each transaction. However, there are some tricks that can make this process go a little faster. Open one of the account registers and select either View→Style→Auto-Split Ledger (or View→Style→Transaction Journal). This will automatically expand all of the splits for the selected transaction. In the simplest case, each transaction will have two splits, one of them to the current account. You want to change the split assigned to the current account to be assigned to the other account instead. Double click on the account name in the split, which should select all of the text. Now instead of using the drop-down list to select the new account, simply type the new account name, using the built-in auto-completion. For example, to move a split to Expenses:Auto:Repair, you might type ex:au:r. When you then hit <enter>, the changes will be saved, and that transaction will disappear since it is no longer tied to the currently open account.

(With the XML file backend, it is possible to merge accounts by directly editing the data file in a text editor, but this is risky and not recommended)

Q: Is there a way to merge two GnuCash files?

See Merging GnuCash Files.

Q: How can I reorder accounts in the account tree?

A: Parent/Child Ordering

When editing the Child account (via "Edit Account"), you can select the parent Account. Thus, you can move Accounts up and down the tree, within the bounds of the account-type constraints. Yes, it would be nicer if one could simply drag and drop in the Account Tree.

A: Sibling Ordering

The Account Code field can contain any value you wish, which can be used in the Account Tree to sort the column and thus the rows. Unfortunately, this is a pretty heavy-handed sort that applies to the whole view, not just a sub-tree.

Q: How do I order transactions in a register so deposits are before withdrawals?

A: Enter deposits (debits) first, then withdrawals (credits).

When ordering transactions in a register window (the display of transactions for a particular account), you're really ordering the splits for that account. The fields examined, in order, are:

  1. The Posted Date. This is the one that's visible and editable in the register window.
  2. The Transaction's Num field 'unless' you have selected "Use Split Action Field for Number" in the Accounts tab of Book Options (accessed by File>Properties in the menus) in which case it will sort on the Action field for the split 'in the account displayed on the register window'. Note that there is also a preference on the General tab to make that selection automatically on new files.
  3. The Transaction Entry Date/time: This is the date and time that the transaction was first created. It is not editable in the User Interface.
  4. The Transaction Description field.
  5. The Split's memo field.
  6. The Reconcile field.
  7. The amount of the split.
  8. The value of the split.
  9. The Reconcile Date.
  10. The GUID identifying the split.

Thus the Num or Action field is consulted only if the Posted Date is the same, the Entry Date/Time only if the Num or Action fields are the same, and so on.

This question is sometimes asked as "how do I reorder transactions so that they'll match my bank statement?". Don't. You're keeping your own books, not the bank's. Use the Reconcile window to reconcile the two.

If you insist on reordering, the only way to do it in the UI is to edit the Num fields on the transactions in question or the Action field for the split if you've selected that option; this might cause you problems if you're using that field for something else, like check numbers.

Q: The View menu has an option to not show voided transactions. How do I void a transaction?

A: Select the transaction. From the 'Transaction' menu select 'Void Transaction'. When prompted, type in a reason and then click the OK button.

Q: I'd like to write my own custom reports. Where should I start?

A: See Custom Reports.
In short, customizing reports requires some (small) knowledge of the programming language Scheme. Also, a customized report (e.g. the "multicolumn report") can be saved by clicking on the menu item "File -> Add report" (older versions: "Save report"), which will save the report into the file GNC_DATA_HOME/saved-reports-2.0 so that it appears as a menu item at the next startup of gnucash. The saved reports will appear in the menu "Reports -> Custom".
Alternatively, each report can be created in a Scheme file in order to show up as a menu entry.

Q: How do I save the options I have set on a built-in report as a custom report?

A: Run the report, edit the options as desired, and be sure to change the name of the report on the "General" tab of the options window. Report names must be unique. The "Add Report" entry in the "File" menu will be disabled until after you have changed the report name.
The report will be saved in the file C:\Users\%username%\.gnucash\saved-reports-2.4 (in case of GnuCash 2.4.x and 2.6 Windows 7 installed on drive C:). See Configuration_Locations for the location of the saved reports file in more recent versions.

Q: GnuCash won't let me save my customized report

I have carefully customized the options for my report and now want to save my modifications so I don't have to do all this work again the next time I need this report. But the "Save Report" button and menu item are disabled. How can I solve this ?
A: You have to change the title of your report (in the options). GnuCash will then allow you to save the report.

Q: How can I save my custom check printing configuration?

A: Currently, you cannot use the user interface to save your custom check printing definitions. If you are comfortable making a few simple edits to a scheme file, though, you can redefine one of the existing definitions to print correctly on your checks. To do this, first use the "print cheque" dialog box to add in your custom coordinates to get a check printed correctly. (Note that these dimensions count up from the lower-left of the check. Big numbers move the text up and to the right.)
Once you have the dimensions necessary to print correctly on one of your checks, you can edit the gnucash/scm/printing/print-check.scm file to change one of the existing definitions to print to your checks. The area that you need to change is labelled "stock-check-formats", and probably currently contains two format definitions. Change either one you like. Note that the dimensions defined here are not in the same order as those in the dialog box you were just working in. Now, you'll proabably have to restart gnucash for your new format definition to work.
To keep track of any progress to enhance this part of the application, check out the bugzilla bug 311062: https://bugs.gnucash.org/show_bug.cgi?id=311062

Q: How do I set up and track budgets?

A: There is budgeting support in GnuCash 2.0. Your testing and feedback is encouraged! See the budgets chapter in the concepts guide or Budgets on this wiki for more info.

Q: When I print a cheque/check, the memo area remains empty... how do I fill that?

A: Fill in the Transaction Notes field, visible via View -> Double Line mode.

Q: Is there book-closing support?

A: See Closing Books.

Q: How do I use variables and formula in scheduled transactions?

A: See Scheduled Transactions.

Q: How do I enter a Return of Capital transaction in GnuCash?

A: When a security issues a return of capital, the cost basis of the security is reduced. This affects any future calculations of capital gains.
Remember that a debit (DR) for asset/liability accounts means an increase.
Initial purchase of security (say $1000 of Dodgy Brothers Ltd)
   Cash at bank (asset) 1000.00 CR
   Dodgy Brothers Ltd (asset) 1000.00 DR

Dodgy Brothers Ltd pays $50 capital return
   Cash at bank (asset) 50.00 DR
   Dodgy Brothers Ltd (asset) 50.00 CR
This reduces the cost basis of Dodgy Brothers Ltd to $950.

Q: How do I enter ISOs (Incentive Stock Options) that I exercised for a nonpublic company, which are valuable only on paper?

A: Exercised ISOs (Incentive Stock Options) are stock. When you exercise the options, you create a normal buy transaction, using the exercise price as the share price.

Q: The fiscal year is July 1-June 30, how can I change that?

A: Menu Edit->Preferences->Accounting Period, details in GnuCash Help.

Q: How can I look at income/expenses/etc. on a monthly basis?

A: Run the "Income/Expense barchart" report.

Q: How do I resize my register columns? Why can I not shrink the description column?

A: Please see Setting Column Widths in the Tutorial and Concept Guide.
Note, the Description Column is special. It's designed to always auto-fill to fit the window size. This means that you cannot just reduce the size of the description column, because as soon as you let go it will then resize itself to fill the screen. If you want to reduce the size of the description column, then you should first resize the OTHER columns that you want bigger until the scrollbar appears on the bottom of the window. Then (and ONLY then) will you be able to reduce the description column back to the "full size" of the window.
This issue has been reported on Bugzilla.
Note When in Split View the header changes depending on whether the cursor is in a transaction row or a split row. If you want to adjust the field width of e.g. the Account Field or the Reconcile Field in Split View you must have a Split row active.
It can be difficult to recover if you reduce a column to invisibility. In that case if you're unable to grab its right edge because you keep getting the next column's edge instead, you can recover it as follows:
Quit GnuCash and open GNC_DATA_DIR/books/your-book-name.gnucash.gcm in a text editor. It contains blocks describing each register you've ever had open with a heading that looks something like
 [Register 8305149bc462f9b5d118c259df706e7b]
Don't worry about the number, just look through all of them for an entry like (balance is an example, if you shrunk a different column look for its name)
 balance_width=0
It might be some other low number like 1 or 2. Change it to a bigger number, e.g.
 balance_width=85
Save the file and restart GnuCash.

Q: I corrected a mistake and now my reconciliation balance is off. How do I fix that and reconcile my account?

A: GnuCash computes the reconciliation balance on the fly from reconciled transactions. If you mistakenly (or unmistakenly!) unreconcile a transaction it will throw off the starting balance in the reconciliation process. This is completely normal and expected behavior. To correct this, just ignore the starting balance completely! All you need to do is enter in the correct ending balance and re-reconcile the transaction.
Reconciliation is purely about the ENDING balance at a point in time. When you reconcile you're saying that at some Date (the reconciliation date) the account has some ending balance X, and you're marking all the transactions that get you to that ending balance from the beginning of time. The starting balance is there to guide you, but has no relevant meaning in the reconciliation process. Actually, that's not 100% true -- the starting balance gives you the total of the already-reconciled transactions from the beginning of time that are already included in the computation. But that's okay, you can still generally ignore it. If you unreconcile a $1 transaction then your starting balance will be off by $1, however all you need to do is re-reconcile that $1 transaction the next time to bring it back into balance.

Q: I would like to add transactions from the command line with "gnucash --evaluate something". How do I do this?

A: This is not possible. You would need to convert the external transactions into a shared format such as QIF or OFX and import them using the existing application functionality.
A: Something similar could be achieved by using the python bindings. You would have to write a python script to parse the information source and feed it to gnucash.--C.holtermann (talk) 19:56, 21 June 2015 (UTC)

Q: Why does the Transaction Report 'Sign Reversal' setting not work on subtotals

A: This is an internal technical limitation.

Consider the following unrecommended, but possible account structure and transactions, and consider sample transaction report:

   • Bank [Asset]
   • Business [Income]
   • Business:Sales [Income]
   • Business:Expenses [Expenses]

Transactions as follows:

   • 1-January “Sales”
   • Business:Sales -$100
   • Bank +$100
   • 2-January “Expense”
   • Bank -$20
   • Business:Expenses +$20
   • 3-January “Another Income”
   • Bank $10
   • Business -$10

The Transaction Report for the “Business” account and children produces the following. Note the individual transaction amounts are sign-reversed as expected, but the subtotal amounts are not sign reversed. This is by design.

Date Num Description Memo/Notes Account Amount
Business
03/01/2019 Another Sales Business $10.00
Total For Business -$10.00
Expense
02/01/2019 Expense Business:Expense $20.00
Total For Expense $20.00
Income
01/01/2019 Sales Business:Income $100.00
Total For Income -$100.00
Grand Total -$90.00

If the subtotal amounts were sign-reversed, the grand total would *add* 10+20+100 = $130 which is a nonsensical number. The grand-total therefore adds up the unreversed numbers (-10 + 20 + -100) = -90 which is a sensible number indicating $90 profit. In a more complicated scenario, the selected accounts could include Income/Expense/Asset/Liability accounts altogether, and the grand total would include amounts from all relevant accounts. The current strategy of adding up *unreversed* amounts means that addition of *all* accounts within a particular period will lead to $0 due to the accounting equation.

Previously (before 3.0) the subtotals/grand totals were adding *reversed* amounts, which meant, grand total for *all* accounts would be a non-sensical number, depending upon the sign reversal strategy (i.e. credit accounts / income&expense / none). This was incorrect.

An even more complicated scenario exists whereby transactions are grouped by ‘Other account name’. eg asset accounts are chosen as source accounts, yet transactions are grouped & subtotaled according to the corresponding asset/income/expenses accounts.

There is no safe reversal strategy for the above scenarios to the author’s knowledge.

It may be easier to change the Display / Amount display setting to 'double' which will clearly separate Debit/Credit columns, and is likely to produce better subtotal amounts.

Q: How can I print a Rental Statement for my Tenant?

A: GnuCash does not have a special Rental Statement report, but see Printing a Rental Report.

Importing/Exporting Data

Q: How do I import my data from ...

Quicken®?

A: Please refer to the Quicken Migration page.

Quickbooks®?

A: At this time there is no way to import from Quickbooks, and there are no plans to add that functionality. The Quickbooks QBW data format is a proprietary, non-documented file format. So until someone documents the file format or donates a QBW file parser your best bet for importing your QB data into GnuCash would be to output your data in a CSV format and either import the CSV data directly or convert the CSV to QIF and use the QIF importer.
  • Linux Weekly News includes an article with links to scripts to assist with transitioning from QuickBooks to GnuCash.
  • Tom Olin (tomolin.net) has created an awk script to convert QuickBooks Online journal data to CSV for import to GnuCash. Script and instructions are available on this github gist.

Microsoft Money?

A: Please refer to the Microsoft Money Migration page.

YNAB 4?

A: Please refer to the YNAB Migration page.

(USA) Discover credit card?

A: See Setting up OFXDirectConnect in GnuCash 2. From OFX Direct Connect Bank Settings, the settings you want to use are https://ofx.discovercard.com/ for the Server URL and 7101 for the FID.

Comma-Separated Values (CSV) or similar?

A: It is possible to import CSV files into GnuCash using File>Import>Import Transactions from CSV.
Converting from CSV, TSV, XLS (Excel), or SXC (OpenOffice.org Calc) to QIF
Some find that QIF files are more reliable than CSV to import, and prefer to use the GnuCash QIF importer.
QIF is a flat text file of a specific format, only a few steps removed from CSV (comma separated values). CSV files can be converted into QIF in a number of ways. There are scripts that can do the transformation.
See the Wikipedia article on the QIF format for more details about the QIF format.
  • One example of how another GnuCash user has converted from CSV to QIF is at: [2]. That site documents using a Perl script to download data from a bank internet site, which was modified to export data in CSV format. A Python script was then written to convert the CSV data to QIF format, which can then be imported into GnuCash.
  • CSVConverter runs in a web browser. It can save mappings for future imports from the same bank. It has a Splitter type that can save multiple QIFs from a single CSV with multiple accounts. And it has a preview function that allows you to go through the CSV contents before you map it.
  • It is possible to use an `awk` script for simpler CSV files. Let's say the CSV file "statement.csv" has the columns ( date,description,amount), as in:
2006-09-27,ONLINE BILL PAYMENT: Bank of Example 123938568,250.00
The following shell script using awk will emit a suitable QIF:
( echo '!Type:Bank'; cat statement.csv | awk -F, '{ print "D" $1; print "P" $2; print "T" $3; print "^"; }' ) > statement.qif
  • Another way is to use the macros that exist for Excel and OpenOffice.org. These macros will convert a spreadsheet file into a QIF or OFX file.
  • xl2qif offers options for Excel (xl2qif) and OpenOffice (calc2qif) macros to convert to QIF.
  • csv2ofx is a Python project to convert CSV to OFX.
  • Christophd posted on 15 July 2009 to gnucash-user and offered a modified CSV importer for German Raiffeisenbank data, which had German-style number and data formatting and other intricacies, that gave GnuCash difficulty. The file can be obtained by contacting him via email at post-at-christophd.de.

Q: How do I get the most benefit from the Bayesian learning algorithm while importing?

A: First of all you should always assign transactions to the right accounts in the import dialog - accounts names containing Imbalance are definitely wrong.
Next, start with a small subset of transactions (like one month) and assign the right accounts in the import dialog. The next time you import transactions, it will recognize this kind of transaction.

Q: Can I import historical prices or quotes?

A: See Importing Historical Prices or Quotes

Q: My bank offers OFX Direct Connect. How do I use that?

A: GnuCash uses libofx/aqbanking for OFX/QFX support. Information on setting up AqBanking for OFX Direct Connect in GnuCash is available at Setting up OFXDirectConnect.

Q: Can I connect GnuCash to stock or mutual fund accounts using OFX Direct Connect?

A: Aqbanking doesn't know about stock/mutual fund purchases/sales. Instead, download your data in OFX/QFX format from your broker's website and import that into GnuCash using the File>Import>Import OFX/QFX... menu choice.

Q: How can I export data?

A: From version 3.0, GnuCash offers the option to export some or all of your data to CSV format. Choose File>Export to see the various options available.
In addition, there are several third party tools available.
Note: the GnuCash data file may be compressed. External tools cannot process this directly, so the file must be decompressed before further processing. GnuCash allows a file to be saved uncompressed by unchecking the "Compress files" preference at Edit>Preferences>General. Alternatively, use gunzip to decompress the data file.
  • There's an XSLT at http://xslfactory.free.fr/ which can transform a GnuCash v1.8 XML file to a big Gnumeric spreadsheet. The workbook will contain several sheets; one with all the accounts, a diary with all the transactions, and one sheet by account with all the transactions. Prior to running the transform, you'll need to edit the GnuCash XML file (preferably a copy of it) to include xmlns data. (Note however that as at 24th Apr '04 it doesn't include support for business objects, eg: invoices.)
The xlsfactory version of the xslt spreadsheet is version 0.6. There is also a 0.7 version at https://sites.google.com/site/gnucashexport/. This version is updated to work with GnuCash v2.2.6, and may work with later versions.
  • One way to easily export GnuCash data to Excel or LibreOffice Calc is to find a report (such as the General Ledger) that you can adjust to a satisfactory output, and export the report to an HTML file. Then open the HTML file from Microsoft Excel. (Using File>Open from within Excel, selecting "html" as the file type.) The Excel program will load the report into a spreadsheet, allowing filtering and other spreadsheet functions.
  • There is an OpenOffice.org macro available. Download here. This macro reads GnuCash data and imports into OpenOffice.org's embedded database so that they can then be analyzed e.g. in OpenOffice.org Calc. Business accounts and multiple currencies are not supported.

Using Business Features

Basics

Q: Can you give me a high level overview for business users?

A: Here is the GnuCash Quick Start Guide For Business Users. A short visualisation can be seen in gnucash per fatturare in ca 2 minuti.

Q: What are the usual Billing Terms?

A: see Invoicing and payment terms.

Set Up, Opening

Q: Is there a wizard or a description to setup basic business accounts?

A: No. There are some basic business template accounts (e.g. for DE, IN, US) in the "New file" druid/wizard. But there are no wizards/druids for setting up a business, i.e., setting up tax tables, terms, customers, and vendors. You can do all that under the Business menu.
If Gnucash is lacking business template accounts your region and you are volunteering to share your newly created account charts, please follow the instructions at Translation#How to translate the files containing the new account hierarchies.

Q: How do I set up the individual customers and vendors, with their respective balances?

A: There are no "opening balances" for the business features. The only way to setup an "opening balance" for a Customer (or vendor) is to create a throwaway Invoice (or Bill) for that opening balance.

Q: How do you make the organization name appear on my Invoices?

A: You can go to File -> Properties and set your business' name and address on the Business page. The Invoice printer uses the data from this entry to fill in your business information. See also #Q: How do you make the organization name and information appear at the top of reports? on screen, and when you print?

General Handling

Q: Why doesn't the discount from the billing terms show up when I pay an invoice?

A: Billing terms is only partially supported. The date due works but discounts don't.

Q: How can I delete an Invoice, Customer, Vendor, or Employee?

A: Quick answer: you can't. Longer answer: you can mark the item as "inactive" (just uncheck the "active" button) and it will no longer show up in standard searches. There are no plans to ever allow you to delete these objects. If you really care you can just re-use them later.
A: Quick answer: you can. Longer answer: 1 - delete Invoice entries (GncEntry clause), 2 - delete Invoice of these deleted entries (GncInvoice clause), 3 - Customer of these deleted Invoices (gncCustomer), 4 - correct counters (count-data) for those deleted positions. Try to learn database file structure. It takes one hour for me.
A: Longer Answer. You can delete them, but it is going to involve editing the XML file yourself. Take a deep breath, it's going to be okay. I'd also just like to note that while this seemed to work fine on my machine, I can't promise you 100% that this will work. Please, please, please backup before you do this. Alright, now that all that is out of the way, lets do it.
  • I am going to suggest that you clean out all the Invoices you want to delete before you do this. So go into the invoice and delete all the entries that exist in it. That will make removing data much easier.
  • First we're going to need to ungzip your gnucash file (make sure you're working in a separate directory from the directry that you ususally save your data file and that you've copied the latest version of the data file to this directory). Rename the data file to something that ends in '.gz'. So if your data file is named accounts rename it to accounts.gz.
  • Then run gzip -d accounts.gz. This will create an unzipped file with the name of accounts
  • Open up accounts in your favorite text editor.
  • The GnuCash xml format is pretty simple, but there is probably going to be a lot of data to wade through. You're going to have to start at the top of what you want to delete and work your way down.
    • If you're deleting a Customer, then you start there, then move down to all its jobs and then down to all the invoices and finally to the entries (but you shouldn't have to do this if you cleared out the invoices first.
    • If you're deleting a Job, you start with the Job, then work down to all the Invoices.
    • If you're deleting an Employee, start with the Employee and then delete all the invoices.
    • If you're deleting an Invoice, just delete the Invoice.
  • I'm going to take the case of deleting an Employee for the example. The first thing to do is to find the GncEmployee line that corresponds to the employee you want to delete. Go ahead and search the document for the string GncEmployee. This should take you right to the first employee in the file. Scroll down until you find the user you want to delete. Don't just delete the user. Select all the text that represents that user, from the <gnc:GncEmployee version = "2.0.0"> to the final closing </gnc:GncEmployee> tag. Cut it and paste it into a temp file. Make sure you remove any extra line breaks (there shouldn't be any blank lines left). So you've just gotten rid of the employee.
  • Now you need to go find all the invoices associated with that Employee. In the temp file, find the line that starts with <employee:guid type="guid". That value if the unique ID number that gnucash uses to identify that employee in the xml file. So now copy that value, return to the data file and do a search for that guid.
  • Each time you seach, you should land inside a GnvInvoice block. Delete the entire block, again making sure that you aren't leaving any spaces.
  • The last thing you need to do is clean up the counters in two places. You only can do this if you're deleting the LAST thing that you added. So if you have an employee and it is the last employee you added, you can fix the employee counter. If it is an Invoice and it is the last invoice you added, you can fix the invoice counter. DO NOT CHANGE THE COUNTERS IF WHAT YOU'RE DELETING ISN'T THE LAST THING ADDED.
    • In XML: Go back to the top of document. Find the block that starts with <book:slots> Inside that there should be a section labeled <slot:key>counters</slot:key>. Under that you'll find a slot:key line for each type, for example GncEmployee. Underneath that is a slot:value. Decrease the value by one.
    • In SQL:
SELECT * FROM slots WHERE name="counters/gncInvoice"; ...
  • Then scroll down a little farther and find the <gnc:count-data> fields. Find the one that corresponds to the counter you're decreasing and lower it by one as well.
  • Save your changes.
  • Run gzip to compress the file. run gzip -9 accounts. Then rename the accounts.gz to accounts
  • Open the file with gnucash. Verify everything works right. You probably want to check account balances against what they used to be to ensure that they're right, etc. If it doesn't match, you messed up somewhere and you're going to have to go back and do the whole thing over again. Otherwise, you're good to go.

Q: Will I be able to delete an Invoice, Customer, Vendor, or Employee in the future?

A: That's not implemented because the logic to determine that it's safe to do is... hard. There are so many interconnections between Invoices, Bills, line-items, Tax Tables, etc that making sure it's safe to delete an invoice without leaving dangling references was just ... a lot of work. Work that I personally didn't want to do, and nobody else has come along with a way to do it securely.
Patches are, of course, always welcome. But be warned, it's not a simple task. Which is why it was never implemented, and why we have the "active" flag as a way to remove items from searches.
I'm sorry you don't like it. You're welcome to help fix it.
[from the mailing list [3]]
An invoice may be reused, even for a different customer or vendor.

Q: Can I pay multiple bills/invoices/vouchers with a single payment?

A: Yes. When you make a payment in GnuCash you are making it against an account, not against a specific bill (or invoice, or voucher). Naturally you can only pay multiple bills from a single account in this way. Any payment you make to the account will be matched against the outstanding bills in the account in date order, earliest first (FIFO order). GnuCash will also split the payment transaction to match the individual bills. Processing payments in this way can be done from any process payment option simply by changing the payment value.

Tax Handling: Goods and Service Tax (GST) or Value Added Tax (VAT)

Q: How do I handle VAT/GST on invoices, and claim VAT/GST rebates on purchases?

A: First, create one of the sets of accounts listed below, and the associated Tax Table (see Business => Tax Tables menu).

Description 3-account Naming scheme 4-account naming scheme Tax table
Claimable GST you have paid on purchases Liabilities:GST:Paid Liabilities:Taxes:GST
GST amounts you have collected from customers Liabilities:GST:Payable
GST you have charged/invoiced to customers Assets:Accounts Receivable:GST GST
GST amounts you have paid to the government Liabilities:GST:Payments Tax Expenses:Taxes:GST
GST amounts that have been deferred Liabilities:Taxes:GST:Deferred

Note: There are also

which might make more sense to you.
Directions for 3-account naming scheme
GST for accounts payable is easy. Just select GST as your tax table for each transaction. This should automatically add the GST amount to the Liabilities::GST::Payable account.
For GST for purchases, we need to create a split transaction. Say you are entering the transaction in your Cash account. Enter the total amount in the spend column, including GST, then hit the split button. You'll see a balancing debit in the receive column. Allocate this to the appropriate account, but decrease the amount to the cost before GST. You will then see a new debit line, with the GST amount in the receive column. Allocate this to Liabilities:GST:Paid account. This will show in this account as a negative amount, that is, as a rebate.
Then, whenever you pay your GST amounts to the government, enter this in Liabilities:GST:Payments.
Directions for 4-account naming scheme

The following are things to note for the four-account naming scheme:

  • Using the Transaction Journal view (This can be set as your default in Preferences). All of the following processes assume that you are using this type of transaction log, and ask you to use the one transaction to perform operations on various accounts.
  • Not necessary, but recommended is full set of business accounts (of which I use the names here)
  • Also, this scheme was designed by someone who understands computers, but not necessarily accounting. But it works for me :). None of it should be construed as tax advice; if you want that, see an accountant or something
  • The Deferred stuff isn't mentioned in the processes below, but I'm told it's necessary for anyone deferring tax. Enjoy.

The following are directions for the processes you may follow:

  • Invoices: Just select "GST" as your tax table for each transaction
  • Payments (from customers): When receiving the payment, reduce the Assets:Accounts Receivable:GST by the GST amount, and increase Liabilities:Taxes:GST by the same amount
  • Purchases: In your split transaction, transfer the non-GST amount from eg. your Assets:Current Assets:Savings Account, and the GST amount from your Liabilities:Taxes:GST account, placing the full amount in the appropriate expenses account
  • Filling in your GST form: The amount you put in should be the current amount on Liabilities:Taxes:GST. Make a note of any rounding amount (ie. cents) as you'll need it in the next process
  • Paying your GST: When you pay the GST, transfer the amount that you paid from Liabilities:Taxes:GST to Tax Expenses:Taxes:GST. If there was a rounding amount that you were required to exclude from your BAS form, transfer it to eg. Assets:Current Assets:Savings Account as part of this transaction (making a note that it's the rounding, so if you're getting audited, there's an explanation).

Appearance and printing of Invoices etc.

Q: How do you make the organization name and information appear at the top of reports? on screen, and when you print?

A: You can edit the Style Sheet (Edit -> Style Sheets) and set your company information there. That's probably the best way of doing it. You may want to create a new Style Sheet if you don't like the existing ones. The template stylesheet (stylesheet-fancy.scm) can be found in your_gnucash_directory/share/gnucash/guile-modules/gnucash/report/ . To meet Australian requirements, include your ABN as a separate line in the business address.
The template stylesheet (stylesheet-fancy.scm) also allows you to set how large your company logo appears at the top of reports. To set this search in the style sheet for the line ' "<img src=\"" headpixmap "\">" '. Change this to ' "<img src=\"" headpixmap "\" width=\" 300\">" ' - with 300 being the width of the logo - change this figure of 300 until the logo looks good when printed. Setting the logo size here allows you to avoid the print quality problems that will come with reducing the logo size by changing your logo dimensions in pixels i.e. resizing the image in an editing program. 300 pixels per inch is the guide for a good quality print - so a 300 by 300 pixel logo image should be printed at about 1 inch square - if your logo looks pixelated when printed see if using a version with more pixels works better.

Q: How do I customise the default invoice report options so my printable invoices always load with the options I want?

A: The easy workaround is to change the options as you like and then leave the report open in a tab, simply changing the invoice number as necessary.
Alternatively, you can preset the default options by editing invoice.scm (found at /usr/share/gnucash/guile-modules/gnucash/report/invoice.scm - at least that's where it is on Ubuntu 8.04) as follows.
Please note this file controls the Printable Invoice; if you want to customise the Fancy Invoice, you need to edit fancy-invoice.scm.
The default options are found starting at about line 241, which looks like this
  (gnc:register-inv-option
   (gnc:make-simple-boolean-option
    (N_ "Display Columns") (N_ "Date")
    "b" (N_ "Display the date?") #t))
and finishing at about line 325 which looks like this
  (gnc:register-inv-option
   (gnc:make-text-option
    (N_ "Display") (N_ "Extra Notes")
     "u" (N_ "Extra notes to put on the invoice")
     (_ "Thank you for your patronage")))
VERY IMPORTANT. Before you change anything, please copy the original file to a new name: If you do make a mistake you may find that Gnucash won't start any more. You may also want to keep a copy of your edited file somewhere safe as when Gnucash is upgraded the file may be over-written and you would lose your changes.
For the boolean options from line 241 to line 319 you can choose between #t for TRUE and #f for FALSE.
You can change the text at the bottom of the invoice from "Thank you for your patronage" to anything you like but "Pay up ****head!" is unlikely to gain cooperation from your customers.
Jonnybal 07:57, 10 March 2010 (UTC)

Q: How do I remove the Tax column?

A: In the report options, deselect the "Tax Amount" column in the "Display Columns" tab. To make this change permanent next time you start Gnucash you will need to edit invoice.scm or fancy-invoice.scm as follows.
Set the following section in lines 276 to 279 to FALSE (that is #f instead of #t). This means your invoices won't display a tax column for all the line items.
  (gnc:register-inv-option
   (gnc:make-simple-boolean-option
    (N_ "Display Columns") (N_ "Tax Amount")
    "m" (N_ "Display each entry's total total tax") #f))
Jonnybal 07:57, 10 March 2010 (UTC)

Q: My business does not charge tax. How do I remove the Tax total line?

A: It's probably better to leave the "Tax Total" line in even though it shows zero tax. Your customers need to know if your invoice includes tax as they might claim the tax back. They will look for the Tax line and if it shows zero they will know there is no tax to claim. If the tax line is missing then they have to guess whether the Amount Due includes tax or not and most likely they will phone you to ask.
If despite this, you really want to remove the "Tax Total" line, you can do this by selecting the "Individual Taxes" checkbox in the "Display" tab of the report options. At first sight this seems odd, but it works because instead of displaying a tax total, the tax is showed as a column on each line item. If you also turn off the Tax Column as above then no taxes are shown at all.
To make this change permanent edit invoice.scm or fancy-invoice.scm as follows. In my invoice.scm its the section beginning at line 286.
  (gnc:register-inv-option
   (gnc:make-simple-boolean-option
    (N_ "Display") (N_ "Individual Taxes")
    "o" (N_ "Display all the individual taxes?") #t))

Q: I have turned off the Tax Total line. How do I remove the Sub Total line?

A: In my invoice.scm, its the section beginning at line 419. You will see I have commented out some lines to remove the subtotal line.
       (if (null? entries)
          (begin
 ; I have commented out the next two lines to remove the Subtotal
 ;          (add-subtotal-row table used-columns value-collector
 ;                            "grand-total" (_ "Subtotal"))

Q: Can I print Invoices through LaTeX from GnuCash?

A: No, not directly. However, other users have created separate tools that can do this for you: http://stefans.datenbruch.de/gnucash/gc2latex.shtml and https://foss.heptapod.net/accounting/gcinvoice. The latter can create invoices from arbitrary user provided templates, not only for LaTeX.

Using Multiple Currencies

Q: Posting invoice or bill results in zero value transaction in Accounts Payable or Accounts Receivable - why and how to fix this?

A: This probably happens because you have a currency conflict within your invoice or bill.

Each invoice or bill may only use one currency. When you create an invoice for a given Customer, GnuCash takes the currency setting for that Customer and uses it for the invoice. If any of the accounts you refer to from the invoice — the Accounts Payable account, the Income:Sales account, etc. — use a different currency, then when you post the invoice, GnuCash will post a value of 0 instead of the amount from the invoice. GnuCash (as of 2.2.8) also fails to give an error message about the conflict. Similar limitations apply with Vendors and Bills.
To prevent the problem, follow the instructions in the next answers:
Q: How can I set up a customer or supplier in a foreign currency?

A: To set up customers and vendors in foreign currencies do the following:

  • Define the currency for the Customer. Select the Customer and click on Edit Customer, then click on Billing Information - that will show you the customer currency. Change it to whatever Currency you will use with that currency.
  • If you use multiple currencies with a single Customer, you have two choices:
    • You can make multiple Customer entries for that customer, each one with a different currency. Put something in the Customer ID or Customer Name to make it easy to tell them apart. Always select the Customer entry appropriate for the invoice you are entering. Or
    • you can convert any amounts in a different currency to their equivalent in the Customer entry's Currency before entering the amounts in the invoice.
  • Confirm the currency defined for each Account. Select the account in the Chart and then click on Edit Account - that will show you the account currency. Change it as needed.
  • If you create invoices in multiple currencies, you will probably be best served by making multiple Accounts Receivable and Accounts Payable accounts, one for each currency you work in. Similarly, you will probably want to create multiple Income:Sales and Expense:Reimbursable Expense accounts, one for each currency. Consider using a suffix after the account name to make it clear which currency that account uses: for instance, "Accounts Receivable (CAD)", "Accounts Receivable (JPY)", etc.
Q: How can I fix invoices or bills already posted in the wrong currency?

A: To correct this problem with already-posted invoices, do the following:

  • Find the invoice. Edit it.
  • Unpost the invoice. Click OK at the confirmation dialog
  • Check the Customer's Currency value by clicking on the Billing Information... Customer... Edit... button. The Edit Customer dialog appears.
  • Click on the Billing Information tab. Look at the value for Currency there.
  • If this currency value is incorrect in general, i.e. you selected the correct Customer entry, but for this Customer you always use a different currency, then select a new currency value from the popup menu and click OK. Your invoice currency may now be corrected. (If this isn't sufficient, follow the steps below to select a different Customer entry, close the invoice, and then re-edit the invoice to select the original Customer entry. This will most likely reset the Invoice's Currency setting.)
  • If this currency value reveals that you selected the wrong Customer entry, then don't make a change here. (This may occur if you have multiple Customer entries for one multi-currency customer, each with a different currency setting.) Instead:
    • Click Cancel to dismiss the Edit Customer dialog.
    • Click the "Edit Invoice" button in the toolbar. The Edit Invoice dialog appears.
    • Under Billing Information... Customer... click the Select... button. The Find Customer dialog appears.
    • Enter search terms, and click the Find button. A list of customers appears. Select the Customer with the correct currency setting. Click the "Select" button. The Find Customer dialog disappears.
    • Click the "OK" button. The Edit Invoice dialog disappears. Your invoice currency is now corrected.
  • Check the Accounts listed in the Income Account column. Verify that each one is in the correct currency for the invoice. Make this check as follows:
    • Look at the name of the account.
    • Then click on the Accounts tab just below the toolbar. The Accounts list appears.
    • Find the account in the list. Select it.
    • Click the "Edit" button in the toolbar. The Edit Account dialog appears.
    • Under Identification... Security/Currency, check that the currency setting is correct.
    • To change the currency value, click the "Select..." button. A Select Currency dialog appears. Click the triangle button to the right of "Currency:". A popup menu of currencies appears. Select the correct currency. The popup menu disappears, and the new currency value appears in the dialog. Then click OK. The Select Currency dialog disappears.
    • In the Edit Account dialog, verify that the correct currency name appears in the Security/currency field.
    • Click the OK button. The Edit Account dialog disappears.
    • Click on the "View Invoice – ..." tab. The Invoice line items reappear. The currency for that account is now correct.
  • The currency conflict should now be resolved. The Customer and each of the Invoice Entries should now use the same currency.
  • Click the "Post" button on the toolbar to redo the Post operation. The "Question" dialog appears, asking, "Do you really want to post the invoice?"
  • In the "Post to Account" field, confirm that the Accounts Receivable account selected has the correct currency. If it does not, correct it as follows:
    • Click the down-arrow to the right of the Post to Account. A menu of Accounts Receivable accounts appears. If one has the correct currency, select it.
    • If you don't have an Accounts Receivable account, click the "New..." button. A New Account dialog appears.
    • Under Identification... Security/Currency, check that the currency setting is correct.
    • To change the currency value, click the "Select..." button. A Select Currency dialog appears. Click the triangle button to the right of "Currency:". A popup menu of currencies appears. Select the correct currency. The popup menu disappears, and the new currency value appears in the dialog. Then click OK. The Select Currency dialog disappears.
    • Back in the New Account dialog, verify that the correct currency name appears in the Security/currency field.
    • Fill out the other fields (Account name, account code, etc) for the account.
    • Click the "OK" button. The New Account dialog disappears.
    • Back in the "Question" dialog, confirm that this account is now listed in the "Post to account" field.
  • Also Confirm that the Post Date, Due Date, Description, and "Accumulate Splits?" settings are correct.
  • Click the OK button. GnuCash posts the invoice.
  • In the toolbar, click "Close" to close the invoice.
  • Check the transactions under the various accounts to be sure that the amounts for this invoice are no longer zero, but instead have the correct values.
GnuCash Bugzilla entries relating to this FAQ entry:

Country/Region specific

Q: I have a small business in Norway. How do I use GnuCash to meet Norwegian standards?

A: There is a special page on Accounting your Business in Norway.

Q: Is GnuCash compliant with standards of UK Authorities?

A: There is a special page on GB/PAS 76

Q: How do I change "Invoice" to "Tax Invoice" as required in Australia?

A: Edit invoice.scm and change (define invoice-name (N_ "Invoice Number" )) to (define invoice-name (N_ "Tax Invoice Number" )). If you are using tax tables to calculate GST and add it as an automatic subtotal, then you should also change the line "grand-total" (_ "Tax"))) to "grand-total" (_ "GST"))). There's another section around line 630 which says (title (_ "Invoice")) which should be edited similarly. If you use fancy invoice, look around line 705 for this: (gnc:html-table-cell-append-objects! invoice-cell (_"INVOICE")) Also in Easy Invoice From ->(add-html! document (sprintf #f (_ "Invoice #%d") To -> (add-html! document (sprintf #f (_ "Tax Invoice #%d")
A better way would be to substitute invoice.scm and the other similar files, fancy-invoice.scm and easy-invoice.scm, with files allowing editing of tax names and titles such as the ones in this gnucash devel list thread entitled World friendlier printable invoices. Make sure to close all reports before updating the files.

Other known business issues

Q: Something is messed up in my invoices/payments/credit notes. How do I fix this?

A: Business Features Issues covers several possible issues you can run into and proposes ways to fix them.

Accounting Questions

Q: Can you recommend a book on Accounting?

A:

On-line:
Dead-tree:
Video:

Q: What are debits and credits?

A: Debits and credits are the terms used to identify either an increase or decrease in an account. It depends on the type of account that you are talking about as to whether the increase or decrease is a Debit or a Credit. The first step in understanding debits and credits is to forget what your bank tells you. As they are looking at it from their point of view, when they tell you that they will "credit" your bank account (in other words, put money in your account) they are correct. However, to you it is a Debit. Here's why.
Let's start with the accounting equation: Assets = Liabilities + Equity, where Equity = Revenue - Expenses (actually equity is more than just that, but for the purpose of this explanation it will do).
Now think of each of these categories (Assets, Liabilities, etc) in terms of a T, with the name of the category above the top of the T and the transactions being recorded on either side of the vertical part of the T. Debits are recorded on the left side of the T, Credits are recorded on the right side of the T. Lets look now at the Asset accounts. Since the Assets are on the left side of our equation, any increase in assets must be recorded on the left side of our T, this means that an increase in assets is a Debit. Conversely, a decrease in an asset account must be recorded on the right side of the T, meaning that it is a Credit. Looking next at Liabilities and Equity, it is treated exactly opposite to Assets (otherwise the equation wouldn't work). Because Liabilities and Equity are on the right side of the equation, any increase in Liabilities or Equity are recorded on the right side of the T. This means that it is a Credit. A decrease in Liabilites or Equity would then be recorded on the left side of the T, or a Debit.
Now for Revenue and Expenses. Since both of these are a component of Equity, whether they are a Debit or Credit is tied into how Equity fits into the accounting equation. Think of it this way, if you made money during the year, the net effect on your Assets would be an increase, or greater Debit balance. In order for the equation to work, this would mean that Equity would also have increased, or a greater Credit balance. In order for this to happen, Revenue would have to be a Credit, while Expenses would have to be a Debit. The resulting Revenue minus Expense would give you a Credit balance, or an increase in Equity. So Revenue is always a Credit, while Expenses are always Debits.
To go back to the what the bank is telling you, here is why they are right from their point of view. They owe you money (your bank account balance). This, to them, is a Liability. Therefore, any increase in the amount they owe you would be a Credit on their books. However, to you, your bank account is an Asset. Therefore, any increase in your bank account would be a Debit on your books.

Q: How do I record my income tax installments and year-end payment/refund?

A: The difficulty in recording your income tax expense is that you don't know until the year is over what your true expense for the year will be. Because of this, there is no way to accurately record the income tax expense on a monthly basis. My recommendation is to record the monthly installments to a balance sheet account, then, when you complete your tax return for the year and know the expense, record the expense to the income statement account.
Let me illustrate by the way of example. First, I'll make some assumptions:
  • Year end is December 31, 2004
  • Monthly installments of $100.00 are required to be paid
  • The tax return is completed and filed on March 31, 2005 along with a cheque for the balance payable
  • Total taxes payable for the year are $1,300.00. This means that after the installments of $100.00 per month, $100.00 is still owing.
You will need to add the following three accounts, if you don't already have them.
  • Income taxes payable (Liability account)
  • Income taxes receivable (Asset account)
  • Income tax expense (Expense account)
The first entry will be to record the first installment. Post this as a credit to your bank account and a debit to the income tax payable account. Repeat this same transaction every month. In fact, you could set it up as a scheduled transaction. At the end of the year, you will have accumulated $1,200.00 in the income tax payable account.
On March 31, 2005, make an entry dated for December 31, 2004 to record the expense for the year. This would be a debit to the income tax expense account for $1,300.00 and a credit to the income tax payable account. As a result of this entry, the balance in the income tax payable account is a credit balance of $100.00, and the balance in the income tax expense account is a debit balance of $1,300.00.
The final entry would be to record the cheque on March 31, 2005 to pay the balance. This would be a credit to the bank account for $100.00, and a debit to the income tax payable account for $100.00.
The next question is what happens if I have a refund. Let's assume that you only owed $1,100.00. This time, when you record the expense (dated December 31, 2004), you would debit the income tax expense account for $1,100.00 and credit the income tax payable account. This results in a debit balance in the income tax payable account of $100.00. Since this is really a receivable, it needs to be moved to the income tax receivable account. Do this by debiting the income tax receivable account for $100.00 and crediting the income tax payable account. When the refund is received from the government, record it as a debit to the bank account for $100.00 and a credit to the income tax receivable account.


Q: How do I use GnuCash to calculate VAT?

A: Frequently discussed on the mailing list, someone please copy answer here...

Q: How do I use GnuCash to do depreciation?

A: Please check the chapter about depreciation in the Concept Guide

Q: Is there a CPA (Certified Public Accountant) who uses GnuCash in my area?

A: If you are an accountant or bookkeeper, add your name and contact info here.
Raleigh, North Carolina Kenneth M. McNees, CPA, CISSP, CISA, CAP, CISM. kennymcnees@gmail.com added: December, 2007
Egg Harbor Township, NJ Jeff Vandrew Jr, CPA jeffvandrewjr@vandrew.com added: May, 2010 https://www.vandrew.com

Q: What's a T-account? What's double-entry?

A: This is discussed at length in the GnuCash documentation. Also, Wikipedia's entry for Double-entry bookkeeping is good.

Q: Is there a way to schedule billing the same way we schedule transactions?

A: No, unfortunately, the business features don't tie into the SX engine.

Q: How do I account for loaning/borrowing money to/from a friend?

A: Money that you loan to someone represents an Asset to you. Money you've borrowed from someone else is a Liability. The general recommendation for account names is:
  • Assets:Money Owed To Me:[Person]
  • Liabilities:Money I Owe To:[Person]

Q: How do I keep track of capital gains with stocks?

A: Both The Help Manual and The Tutorial and Concepts Guide include information to explain this important and complex topic. Chapter 9. Investments introduces managing investments generally, while 9.7 Selling Shares goes into detail on how to handle gains or losses resulting from stock sales.
Capital gains can be calculated manually, or by using GnuCash's Lots feature. See 9.7 Selling Shares for examples showing how to track stock sales.
Additional information on how the capital gains are calculated can be found in the Concept of Lots page.
See these mailing list messages (and other messages in these threads) for further reference:
https://lists.gnucash.org/pipermail/gnucash-user/2008-March/024501.html
https://lists.gnucash.org/pipermail/gnucash-user/2006-January/015605.html
https://lists.gnucash.org/pipermail/gnucash-user/2006-January/015620.html
https://lists.gnucash.org/pipermail/gnucash-user/2006-January/015396.html
https://lists.gnucash.org/pipermail/gnucash-user/2005-July/014192.html
https://lists.gnucash.org/pipermail/gnucash-user/2005-February/012863.html
https://lists.gnucash.org/pipermail/gnucash-user/2005-January/012648.html

Q: What is meant by year-end closing procedures?

A: Generally Accepted Accounting Practices include a procedure to "close" accounts at the end of a period (i.e., a fiscal year). This allows for the accumulated balances in an Income statement account (Revenue and Expense) to be pertinent to the current period only.
The procedure is to create an offsetting journal entry in each expense and revenue account that moves the balance of the account into a Retained Earnings account. (or, optionally, into the top "Revenue" or "Expense" account, and from there into the Retained Earnings account, reducing the number of periodic entries in the R/E account to 2 - one debit, and one credit)
The profit or loss incurred during a period, that is, the number calculated by the revenue accounts less the expense accounts, is represented in the Retained Earnings account entry for the period.


Q: Why does the Trial Balance not have balanced Debits and Credits?

A: The Trial Balance debits and credits should balance when the price source is set to "average cost". See https://bugs.gnucash.org/show_bug.cgi?id=798553

Developing GNUCash: Source Code Overview

Q: I heard it is too hard to compile GnuCash!

Q: Ok, what devel packages do I need in order to compile GnuCash?

A: Instructions for building GnuCash can be found at Building. There, you will find references to OS-specific building instructions.

Q: Why is GnuCash written in C?

A: The core functionality of GnuCash is written in C, but do not forget that much of this can be accessed through Guile (scheme). There are a number of reasons for why GnuCash is written in C. The first is historical, Gnucash was started in 1996 (or maybe even earlier!) and many of the OOP (C++, Java, Python) compilers were not yet mature and standarized enough on the variety of platforms considered at that time, so C was the only option at that time. A second reason is because the standard GUI GnuCash uses is GTK, which is written in C.


Q: Why don't you rewrite GnuCash in programming language xyz so that I can contribute easily?

A: Currently we are in the middle of a rewrite to C++. If that's the language xyz refers to you're definitely invited to join in the effort. For other languages the quick answer is "We won't". The longer answer is complex but still amounts to the same. GnuCash is a large body of code maintained by a small group of developers who are comfortable in C(++). Actually, 80% of it is in C and approx. 13% is in Scheme/Lisp. The intention is to replace all of this with modern C++.
Having said that, some kind folks have provided some python bindings to Gnucash. They are not yet very mature but can be used for basic data manipulation. Stay tuned. Also, GnuCash is using SWIG for the Scheme language bindings since version 2.1.0. These SWIG bindings can probably be adapted to include other languages into GnuCash without too much effort, but currently they are used only for Scheme bindings.

Q: Can I read the doxygen files documenting the API offline?

A: At first make sure Doxygen is installed on your machine. After you downloaded and configured (cmake ... ) the GnuCash sources, you can call
make doc
or
ninja doc
and then you can open src/doc/html/index.html.

Q: Can I run GnuCash already in the build dir?

A: Usually you will run make install first and the run GnuCash. But you can also use "gnucash-build-env" to set up the right environment to run from the build dir. So you would need to run:
./src/bin/overrides/gnucash-build-env ./src/bin/gnucash

Q: How do I run GnuCash under gdb and get a stack trace?

A: See Stack Trace for instructions on running GnuCash under gdb to get a stack trace.

Q: Why does GnuCash depend on Gnome?

A: GnuCash uses the Gnome Project's core and user interface libraries to provide a cross-platform development environment. It's one of three Free/Libre Open Source cross-platform development environments available. Which one provides the best environment for developers or the most "native" experience to users is endlessly debatable. The early GnuCash developers chose Gnome and tightly integrated the GnuCash code with it so switching would be a long and painful process.
That doesn't mean that GnuCash requires the Gnome Desktop Environment, only that the Gnome libraries that GnuCash depends on are installed. GnuCash will run on any Linux or BSD system as long as the libraries are installed; most include GnuCash in their package managers so that users needn't concern themselves with those details, and once installed GnuCash will work with any desktop environment or window manager. GnuCash releases all-in-one packages containing the required libraries for macOS and Microsoft Windows.