Difference between revisions of "FAQ"
(→Q: Can a new GnuCash release still read my old data file?) |
(→Q: And the other way around ? Can an old GnuCash release read a data file created with e new release?) |
||
Line 309: | Line 309: | ||
:'''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. | |
− | + | ; 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 the new fields that way. | ||
:* 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. | :* 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. |
Revision as of 14:14, 12 March 2010
The contents of this FAQ will eventually be merged into the GnuCash help documentation. Or maybe not.
The GnuCash Tutorial and Concepts Guide might also be of interest for you.
Contents
- 1 General Frequently Asked Questions (FAQ) about GnuCash
- 1.1 Q: How can I contribute to the GnuCash project?
- 1.2 Q: How can I make a donation to the GnuCash project?
- 1.3 Q: What should I obey as a beginner in bug reporting, enhacement requesting ...?
- 1.4 Q: Something bad happened; how can I help debug?
- 1.5 Q: I think I found a bug. How do I report it?
- 1.6 Q: I really want feature XYZ but GnuCash doesn't have it. How do I get it added?
- 1.7 Q: In the mailing lists, how can I determine from which list the messages are being sent?
- 1.8 Q: Can you please configure the mailing lists so that Reply mails the list?
- 1.9 Q: Is there a version/port for Windows?
- 1.10 Q: What is the "SX" thing I see on the lists and IRC periodically?
- 2 Installation Troubleshooting
- 2.1 GnuCash 2.2.x Windows Troubleshooting
- 2.1.1 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?
- 2.1.2 Q: On startup I get an error message about corba-object.c and gnucash crashes. What's up?
- 2.1.3 Q: Can I install a new gnucash version directly on top of the older existing one?
- 2.1.4 Q: Why is the binary package putting all the DLLs in the gnucash folder?
- 2.1.5 Q: Are there no further informations?
- 2.2 GnuCash 2.0.x Troubleshooting
- 2.2.1 Q: Why doesn't the discount from the billing terms show up when I pay an invoice?
- 2.2.2 Q: How do I change the register colors?
- 2.2.3 Q: Why did Finance::Quote stop working?
- 2.2.4 Q: I use KDE and tried the gnucash Gnome2 port, but my fonts look ugly
- 2.2.5 Q: Running 2.0.x on Debian/Ubuntu crashes with "no code for module (g-wrap gw standard)". What does this mean?
- 2.2.6 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?
- 2.2.7 Q: What happened to my Profit and Loss report when I upgraded to 2.0?
- 2.2.8 Q: I downgraded from GnuCash 2.2 to 2.0; what's up with this ROOT account?
- 2.3 RPM-based GnuCash versions
- 2.4 SVN-built GnuCash versions
- 2.5 Macintosh OSX
- 2.6 All GnuCash versions
- 2.6.1 Q: Why does Gnucash start incredibly slowly on a FreeBSD system?
- 2.6.2 Q: Why does Gnucash run incredibly slowly on a unix system using X?
- 2.6.3 Q: How do I fix a system error when getting stock quotes?
- 2.6.4 Q: I'm running Debian/unstable, just upgraded, and GnuCash no longer works. How can I fix that?
- 2.6.5 Q: Why do you have to depend on GNOME? It's so bloated!
- 2.6.6 Q: I'm having trouble getting GnuCash running on Slackware
- 2.6.7 Q: GnuCash crashes on startup trying to run an SX. How do I fix this?
- 2.6.8 Q: GnuCash crashes when I run a Custom Report saying something about a Stack Overflow. What does this mean?
- 2.6.9 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?
- 2.1 GnuCash 2.2.x Windows Troubleshooting
- 3 GnuCash Files and managing a GnuCash installation
- 3.1 Q: What's the gnucash file extension?
- 3.2 Q: Where is my .XML data file?
- 3.3 Q: Why can't GnuCash find my data file anymore? It just says: parser error : Start tag expected, '<' not found
- 3.4 Q: What are all these .xac and .log files filling up my directory?
- 3.5 Q: Can a new GnuCash release still read my old data file?
- 3.6 Q: And the other way around ? Can an old GnuCash release read a data file created with e new release?
- 3.7 Q: Is it possible to provide security for GC data using CFS, etc.?
- 3.8 Q: "Can you please add a password feature?"
- 3.9 Q: I'm running gnucash under Linux. Can I give another user access to my gnucash files?
- 3.10 Q: How do I backup my GC environment, including preferences?
- 3.11 Q: I use the same account on multiple computers (through a repository), how do I also transfer the reports I currently have open?
- 3.12 Q: I moved/renamed my data file and my reports disappeared. How do I get them back?
- 3.13 Q: Somehow I managed to close the account view tab. How can I get it back?
- 3.14 Q: Is there a database backend?
- 3.15 Q: Is the Postgres DB / SQL backend supported?
- 3.16 Q: Can I use GnuCash with multiple users? Maybe via the SQL backend?
- 3.17 Q: Can I exchange Gnucash file with any other version of GnuCash?
- 3.18 Q: How can I count the accounts or transactions in my GnuCash file?
- 4 Questions about Using GnuCash
- 4.1 Q: Is there a way to merge two accounts into one?
- 4.2 Q: How can I reorder accounts in the account tree?
- 4.3 Q: How do I order transactions in a register so deposits are before withdrawls?
- 4.4 Q: The View menu has an option to not show voided transactions. How do I void a transaction?
- 4.5 Q: How do I set up and track budgets?
- 4.6 Q: Is there book-closing support, yet?
- 4.7 Q: How do I use variables and formula in scheduled transactions?
- 4.8 Q: With a security that issues ReturnOfCapital in Canada, how do I include a return of capital in GnuCash?
- 4.9 Q: I exercised ISOs for a nonpublic company, valuable only on paper. How is this represented in GnuCash?
- 4.10 Q: The fiscal year is July 1-June 30, how can I change that?
- 4.11 Q: How can I look at income/expenses/etc. on a monthly basis?
- 4.12 Q: How do I resize my register columns? Why can I not shrink the description column?
- 4.13 Q: I corrected a mistake and now my reconciliation balance is off. How do I fix that and reconcile my account?
- 5 Importing/Exporting Data
- 5.1 Q: Can I import my (USA) Discover credit-card info?
- 5.2 Q: How can I export data?
- 5.3 Q: I would like to add transactions from the command line with "gnucash --evaluate something". How do I do this?
- 5.4 Q: How do I convert from CSV, TSV, XLS (Excel), or SXC (OpenOffice.org Calc) to a QIF?
- 5.5 Q: My bank doesn't offer OFX or QIF but only CSV or similar. How can I import my statement data?
- 5.6 Q: My bank offers OFX Direct Connect. How do I use that?
- 5.7 Q: Which is the best way to import data from Quicken(TM)?
- 5.8 Q: How do I import my data from Quickbooks(TM)?
- 5.9 Q: How do I import my data from Microsoft Money?
- 5.10 Q: Where is the Gnucash Register?
- 5.11 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?
- 6 Using Business Features
- 6.1 Q: How do you make the organization name and information appear at the top of reports? on screen, and when you print?
- 6.2 Q: How do you make the organization name appear on my Invoices?
- 6.3 Q: Can I print Invoices through LaTeX from GnuCash?
- 6.4 Q: How can I delete an Invoice, Customer, Vendor, or Employee?
- 6.5 Q: How do I change "Invoice" to "Tax Invoice" as required in Australia?
- 6.6 Q: How do I handle VAT/GST on invoices, and claim VAT/GST rebates on purchases?
- 6.7 Q: Is there a wizard or a description to setup basic business accounts?
- 6.8 Q: I have a small business in Norway. How do I use GnuCash to meet Norwegian standards?
- 6.9 Q: Can I pay multiple bills/invoices/vouchers with a single payment?
- 6.10 Q: How do I customise the default invoice report options so my printable invoices always load with the options I want?
- 6.11 Q: Posting invoice or bill results in zero value transaction in Accounts Payable or Accounts Receivable - why and how to fix this?
- 7 Accounting Questions
- 7.1 Q: Can you recommend a book on Accounting?
- 7.2 Q: What are debits and credits?
- 7.3 Q: How do I record my income tax installments and year-end payment/refund?
- 7.4 Q: How do I use GnuCash to calculate VAT?
- 7.5 Q: How do I use GnuCash to do depreciation?
- 7.6 Q: Is there a CPA (Certified Public Accountant) who uses GnuCash in my area?
- 7.7 Q: What's a T-account? What's double-entry?
- 7.8 Q: Is there a way to schedule billing the same way we schedule transactions?
- 7.9 Q: How do I account for loaning/borrowing money to/from a friend?
- 7.10 Q: How do I keep track of capital gains with stocks?
- 7.11 Q: What is meant by year-end closing procedures?
- 8 Customizing
- 9 Questions about GnuCash Localization (L10n) and Internationalization (I18n)
- 10 Developing GNUCash: Source Code Overview
- 10.1 Q: Is the GnuCash team working on a gtk2 version?
- 10.2 Q: I heard it is too hard to compile GnuCash!
- 10.3 Q: Ok, what devel packages do I need in order to compile GnuCash?
- 10.4 Q: Why is GnuCash written in C?
- 10.5 Q: Why don't you rewrite GnuCash in programming language xyz so that I can contribute easily?
- 10.6 Q: What happened with Guppi when in the GnuCash 2.x version? Was it dropped?
- 10.7 Q: I am having problems compiling g-wrap.
- 10.8 Q: Can I read the doxygen files offline?
- 10.9 Q: How do I run GnuCash under gdb and get a stack trace?
- 11 Glossary
General Frequently Asked Questions (FAQ) about GnuCash
Q: How can I contribute to the GnuCash project?
- A: Further answers about this are on the Development wiki page.
- 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 gnucash-user and/or 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 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:
Examples:
- Keep this wiki up to date.
- Expand the official documentation
- If you are a foreigner, support the translation to your language and localisation to your countries rules..
Q: How can I make a donation to the GnuCash project?
- A: The Development wiki page has information about how you can donate to the GnuCash project. We appreciate your support.
Q: What should I obey as a beginner in bug reporting, enhacement requesting ...?
A: These two excellent documents, which are also translated into many languages, should help you avoid greenhorn mistakes:
Always keep in mind that these authors of these documents do not offer support for GnuCash — so you should read further on this wiki.
E.g. as GnuCash is running in different versions under different operating systems, you should usually include the information about your configuration in your request.
Q: Something bad happened; how can I help debug?
A: GnuCash has three primary ways of reporting technical detail:
- The user interface itself.
- Statements printed to the terminal from which gnucash was run.
- The log file:
- Linux/BSD/*nix:
/tmp/gnucash.trace
- Windows:
c:\Documents and Settings\myname\Local Settings\Temp\gnucash.trace.XXXXX
- Vista:
C:\Users\myname\AppData\Local\Temp\gnucash.trace.XXXXX
- Linux/BSD/*nix:
In order to get more detail, open a Terminal from your system menu, and start gnucash at the prompt; this is almost always done by typing simply "gnucash" at the prompt. Save the detail emitted to the terminal (if any), as well as the contents of the /tmp/gnucash.trace
file.
Q: I think I found a bug. How do I report it?
- 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 gnucash-devel and gnucash-user (and gnucash-de if you speak German). Then search the Bugzilla database.
- If you feel you have indeed found a bug, you can then 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: I really want feature XYZ but GnuCash doesn't have it. How do I get it added?
- A: Ask nicely. :-) You can file an enhancement request at 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.
- 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.
- See also: WishList
Q: In the mailing lists, how can I determine from which list the messages are being sent?
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:
List-Id: General Accounting Discussions <gnucash-user.gnucash.org> List-Id: GnuCash Software Design and Development Discussion <gnucash-devel.gnucash.org> 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.
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: Is there a version/port for Windows?
- 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: What is the "SX" thing I see on the lists and IRC periodically?
- 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.
Installation Troubleshooting
GnuCash 2.2.x Windows Troubleshooting
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?
- 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: We don't know yet. The full error message, we've been told, looks like this:
OTHER <> file corba-object.c: line 76 (ORBit_register_objref): assertion failed: (obj->object_key != NULL)
- 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?
- 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.0. Therefore, upgrading from 2.1.x to a 2.2.x requires an uninstall of the 2.1.x version.
Q: Why is the binary package putting all the DLLs in the gnucash folder?
- 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.
Q: Are there no further informations?
- A: Yes, there is a special Windows page in the wiki.
GnuCash 2.0.x Troubleshooting
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?
- 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.
Q: Why did Finance::Quote stop working?
- A: You need to install the Crypt::SSLeay perl module. This is a requirement inherited from the latest version of F::Q, version 1.12.
Q: I use KDE and tried the gnucash Gnome2 port, but my fonts look ugly
- 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).
Q: Running 2.0.x on Debian/Ubuntu crashes with "no code for module (g-wrap gw standard)". What does this mean?
- 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
The exact error message when the startup crashes is this:
<unnamed port>: In procedure scm-error in expression (scm-error (quote misc-error) #f ...): <unnamed port>: no code for module (g-wrap gw standard)
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?
- 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:
In /usr/share/gnucash/scm/hooks.scm: 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?
- 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?
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.)
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.
- 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.
RPM-based GnuCash versions
Q: Are there no (more recent) precompiled rpms for my distro?
- A: Not here, but you can use the search at http://rpm.pbone.net/ with a search string like "gnucash-2.2".
SVN-built GnuCash versions
Q: I checked out the svn repository, but if I try to run make, while I am offline, it fails.
- A: Make asks the repository server, to build a fresh changelog file. If that can not be build, make fails. There are 2 solutions:
- 'touch ChangeLog' before you run make.
- Maintain a local copy of the repository.
Macintosh OSX
Q: How to install on Mac OSX?
- A: Download the dmg from the links at the top of Gnucash page or visit MacOSXInstallation for more detailed instructions and alternatives.
- A2: See also: http://homepage.mac.com/elliottmce/gnucash_guide/
- 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.
All GnuCash versions
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: 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
Q: How do I fix a system error when getting stock quotes?
- A: Try the steps below. After each step, run gnucash and see if that solution resolved the problem of retrieving stock quotes.
- Make sure you're running Finance::Quote 1.11 version or later. Earlier versions can no longer retrieve currency quotes.
- Run the command gnc-fq-check from the command line. The output should look like ("1.11" "tsp" "vwd" .....). If it doesn't follow the directions to install any missing libraries.
- Run the command echo '(yahoo "CSCO")' | gnc-fq-helper from the command line. You should get something that looks like (("CSCO" (symbol . "CSCO") ..... (currency . "USD"))). 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.
- But usually, at least under linux, it helps to run
gnc-fq-update
as root. - For Windows you should probably look at Windows#Finance::Quote_Problems_with_Windows_.28VISTA_32-Bit_SP1.29.
- But usually, at least under linux, it helps to run
- Run gnucash from the command line with the -debug 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?
- A: Contact Debian. Read the gnucash-user archives because someone else probably already reported the problem.
- Examples:
- If you get an error about gncownercreate, see https://lists.gnucash.org/pipermail/gnucash-user/2004-March/009864.html
- If you get an error about format not being found, see https://lists.gnucash.org/pipermail/gnucash-user/2004-March/009676.html
- 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
Q: Why do you have to depend on GNOME? It's so bloated!
A: GnuCash uses specific GNOME libraries for the following features:
- printing (gnomeprint)
- 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.
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.
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.
Q: I'm having trouble getting GnuCash running on Slackware
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.
Q: GnuCash crashes when I run a Custom Report saying something about a Stack Overflow. What does this mean?
- 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".
If you get into this situation the easiest way to get back a working system is to delete your saved reports:
- Exit gnucash
- 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.
This is a known bug. For more information see http://bugzilla.gnome.org/show_bug.cgi?id=168250
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?
- 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.
- A2: You ran in an "really stable" [open]SuSE bug.
GnuCash Files and managing a GnuCash installation
Q: What's the gnucash file extension?
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.
- .xac (short for "X-Accountant", the predecessor of GnuCash), still in use for your backup files,
- .gnc (the "internal" three-letter-abbreviation of GnuCash)
- .gnucash (recommended and the only one that works on Windows)
Q: Where is my .XML data file?
- A: It's the file you are using - the one that you named when you created the new file to hold your accounts. Note that it might be gzip-compressed although it doesn't have an extra ".gz" extension.
- The data file is called whatever name you specified at your first "Save as..." operation. GnuCash doesn't force any particular file name extension, so depending on your own choice the XML data file might end with ".gn2", ".xac", ".xml", ".whatever", or even no extension at all.
- If you forgot the name of the actual data file (although it should be displayed in the window title of your GnuCash window), you can do the following: In GnuCash, press "Save", then "File -> Quit". The actual data file will be that one in the data file directory which was last changed.
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 $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.
Q: What are all these .xac and .log files filling up my directory?
- A: These are backup data files (".xac") 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.
- You should notice that the backup and log files have a format of <name>.YYYYMMDDHHMMSS.xac (or .log). These are backup (and log) files from your data file, <name>.
Q: Can a new GnuCash release still read my old data file?
- A: The answer depends on how much forward you want to go.
- 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.
- 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.
- 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.
- 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 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.
Q: And the other way around ? Can an old GnuCash release read a data file created with e new release?
- 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.
- 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.
- 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.?
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.
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
- TrueCrypt, multi-platform open source encrypted block device
Other Solutions:
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.
Q: I'm running gnucash under 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: How do I backup my GC environment, including preferences?
- A: Make sure you save not only all your .xac, .log files and the actual ledger file, but also $HOME/.gnucash, $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?
- 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.
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 ~/.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
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 with File -> New -> New Accounts Page.
Q: Is there a database backend?
An abstraction layer has been created using first GDA but then replaced with DBI, which has proved to work well.
Q: Is the Postgres DB / SQL backend supported?
- A: The upcoming 2.4 release will support SQL via the dbi backend. Dbi supports PostGresql, MySQL and Sqlite3 databases.
- 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.
- Some history:
- 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
postgres://
url from the command-line to access it.
- The postgres backend has been considered obsolete by the core developers since the 2.0 release and will be removed from the upcoming 2.4 release. Since 2006, there is a development branch to create a GDA-based backend to replace the postgres-specific backend. While in mid-2007, progress on this branch had been slow, in early 2008, progress on this branch has picked up some momentum. The most up to date status can be found by consulting the archives of the gnucash-devel mailing list; your help is welcome!
- The GDA backend has now been replaced with a DBI backend as of 2Q 2008.
- See also SQL
Q: Can I use GnuCash with multiple users? Maybe via the SQL backend?
- A: The obsolete postgresql backend doesn't support the business features, which is usually the driving desire for multi-user support.
- Until 2.4 is released the only recommended multi-user setup right now is through a shared file. 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 will appear in the upcoming 2.4 release is currently not designed for true multi-user access. Trying to work with multiple users at the same time in the same database 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: Can I exchange Gnucash file with any other version of GnuCash?
- A: Not quite.
- You can always upgrade from versions >= 1.8 to a higher version number (yet true for 2.2.3).
- You can read 2.0 in 1.8.x fine.
- Reading 2.2 in 2.0 will not work, if you have scheduled transactions.
Q: How can I count the accounts or transactions in my GnuCash file?
- A: zcat $DATAFILE |grep -c "act:name"
- for the accounts.
- Substitute 'grep -c "trn:desc"' to get the number of transactions. [1] You should also replace $DATAFILE |with the right name.
Questions about Using GnuCash
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: 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 withdrawls?
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:
- Misuse the "num" field to control ordering.
- 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.
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 elsewhere on this wiki for more info.
Q: Is there book-closing support, yet?
- A: Since 2.2.4, there is a menu item for {Tools > Close Book}. Feedback welcome.
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.
Other methods:
- 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->Export->Accounts. Give it the name you intend to use for the new year. Then do File->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:
- 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->Opening Balances) for the new year
- zero out all income and expense accounts (transfer balance to Equity->Income$YEAR and Equity->Expense$YEAR accounts)
- cancel all recurring transactions in current year file
- export accounts (File->Export->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->Opening Balances account
- recreate recurring transactions
- add StockQuote information - click on Tools->Price Editor->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.
Choose File->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.
Some people prefer to make separate accounts for
Equity->Year End-> 2005 Expenses
Equity->Year End-> 2005 Income
so that the chart of accounts itself gives a nice summary year over year.
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. - The third party tool jGnucashEditor comes with a 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?
- A: In lieu of formal documentation, see the following:
- 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?
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: Australia has similar stocks which can be handled as follows.
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 dividend and $50 capital return
Cash at bank (asset) 100.00 DR Dodgy Brothers Ltd (asset) 50.00 CR Dividends (income) 50.00 CR
This reduces the cost of Dodgy Brothers Ltd to $950.
Q: I exercised ISOs for a nonpublic company, valuable only on paper. How is this represented in GnuCash?
- 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!!!
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
- The adventurous might want to look at the function gnc:get-start-cur-fin-year [and it's cousins] in gnucash/src/app-util/date-utilities.scm 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?
- A: Run the "Income/Expense barchart" report.
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.
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, 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.
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.....
This is a problem, and should be fixed with a dynamic and/or editable starting balance...
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,
Date | Num | Description | Transfer | R | Deposit | Withdrawal | Balance |
---|---|---|---|---|---|---|---|
06/04/2007 | Opening balance corrected | Equity:Opening Balances | 2,512.23 | 2,512.23 |
I hope that helps.
Jonnybal 07:13, 10 March 2010 (UTC)
Importing/Exporting Data
Q: Can I import my (USA) Discover credit-card info?
- 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.
Q: How can I export data?
- 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.)
- There is also http://gnucashtoqif.sourceforge.net/ which is a Java program that can transform a gnucash XML file to a QIF file.
- 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.
- 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.
- Some scripts have been created to move gnucash data into a mysql database.
- There is an OpenOffice.org macro 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.
Q: I would like to add transactions from the command line with "gnucash --evaluate something". How do I do this?
- A:
gnucash --help
will show any available commands for executing scheme, but you will likely have to write a good chunk of code to be invoked this way to import the data.
- Probably a saner course of action is to convert the external transactions into a shared format such as QIF or OFX and import them using the existing application functionality.
Q: How do I convert from CSV, TSV, XLS (Excel), or SXC (OpenOffice.org Calc) to a QIF?
- 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:
2006-09-27,ONLINE BILL PAYMENT: Bank of Example 123938568,250.00
- As such, 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
- See The Wikipedia article on the QIF format for more details about the QIF format.
- 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.
- Jeroen van der Vegt has changed the csv2qif by Baruch Even for the (Dutch) Rabobank asc files. The python script used to be available at gnucash.camfree.nl/rabocsv2qif but is no longer there. The original file by Baruch can still be downloaded from http://baruch.ev-en.org/proj/csv2qif (Python)
- --Zachary 21:12, 22 November 2006 (EST) I've written some C++ code to convert TD Ameritrade csv files to qif. That in turn is based on earlier work from John McKown.
- 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)
- Dave sent the following links on the mailinglist:
- *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.
--Christophd 07:54, 15 July 2009 (UTC)
Q: My bank doesn't offer OFX or QIF but only CSV or similar. How can I import my statement data?
- 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:
- 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: 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: Information on setting up AqBanking for OFX Direct Connect in Gnucash 2 is now available at Setting up OFXDirectConnect in GnuCash 2. --Dbreiser 00:45, 22 September 2006 (EDT)
Q: Which is the best way to import data from Quicken(TM)?
- 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
- 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 NName 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!).
Adjustments for Transactions
- 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.
Final Checks
- 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.
- Also check the category spending over all time from Microsoft Money with the Accounts in GnuCash.
- Once the accounts are consistent with Microsoft Money you can edit individual Gnucash accounts and reassign them as needed.
- 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 Something bad happened; how can I help debug? and around?
- Console output, log file, ...
Using Business Features
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 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.
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 http://www.smoerz.org/gcinvoice. The latter can create invoices from arbitrary user provided templates.
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.
- 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.
- 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: 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.
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 |
There is also an Alternate Australian GST setup that 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).
Q: Is there a wizard or a description to setup basic business accounts?
- 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: 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: 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?
- A: You can do this 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. 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: My business does not charge tax. How do I remove the Tax column?
- A: 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 Subtotal and Tax total lines?
- A: It's probably better to leave them in. Although you might not charge tax, your customers 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 there is no tax line then they have to guess whether the Amount Due includes tax or not.
If you really want to remove these lines you can do it by editing invoice.scm as follows. In my invoice.scm, its the section beginning at line 419. You will see I have commented out some lines to remove the subtotal and tax lines.
(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")) (if display-all-taxes (hash-for-each (lambda (acct value) (let ((collector (gnc:make-commodity-collector)) (commodity (xaccAccountGetCommodity acct)) (name (xaccAccountGetName acct))) (collector 'add commodity value) (add-subtotal-row table used-columns collector "grand-total" name))) acct-hash) ; nope, just show the total tax. ; I have commented out the next two to remove the Tax total. Be sure to carry the third bracket after "grand-total" (_ "Tax")) onto a new line or the (if display-all-taxes statement beginning on line 425 wont be closed and Gnucash wont read the file. ; (add-subtotal-row table used-columns tax-collector ; "grand-total" (_ "Tax")) ; I have added a Carriage return before the next bracket or the (if display-all-taxes statement beginning on line 425 will not be closed and Gnucash wont read the file. )
Do make sure the third closing bracket after "grand-total" (_ "Tax")) is on a separate line as shown above and NOT as shown below or Gnucash will not open the file.
; "grand-total" (_ "Tax")))
Jonnybal 07:57, 10 March 2010 (UTC)
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, do the following:
- Confirm the currency defined 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. 1. 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 2., 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.
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:
- Bug 583155 – Invoice creation and posting silently inserts zero amounts when currencies conflict, no error message
- Bug 430187 – Posting an invoice returns Zero values to the ledgers with NZD currency
Accounting Questions
Q: Can you recommend a book on Accounting?
A:
- On-line:
- Dead-tree:
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 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 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...
- "UK company VAT account structure, updated"
- "Handling GST and PST from Credit Card transactions"
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.
', added: Raleigh, North Carolina Kenneth M. McNees, CPA, CISSP, CISA, CAP, CISM. kennymcnees@gmail.com added: December, 2007
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: 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.
For example, let's say we have the following accounts:
Assets Broker Cash XYZ Inc Expenses Broker Fees Income Capital Gains
When we purchase stock in company XYZ, the transaction splits might look like this:
Account Shares Price Debit Credit Assets:Broker:XYZ Inc 5 $10.00 $50.00 Expenses:Broker Fees $7.00 Assets:Broker:Cash $57.00
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:
Account Shares Price Debit Credit Assets:Broker:XYZ Inc -5 $17.00 $85.00 Expenses:Broker Fees $7.00 Assets:Broker:Cash $78.00
$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:
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
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.
Version 2.x 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:
- Open the stock account's register.
- Enter the sell transaction, with no splits for capital gains.
- Select Actions->View Lots
- Click Scrub Account.
See these mailing list messages (and other messages in these threads) for further reference:
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.
Customizing
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: In general you should set the LANGUAGE and LANG environment variables before starting GnuCash. For example:
$ env LANGUAGE=fr_FR $ env LANG=fr_FR $ gnucash
- This example sets the variables to use GnuCash in French (français) and then launches GnuCash.
- You could also do this in one line:
$ LANGUAGE=de_DE LANG=de_DE gnucash
- This example sets the language to German (Deutsch).
- This one-line method can also be used if you like to change the default language for the GnuCash menu item (or in the gnucash.desktop file). For these cases, the path to GnuCash is usually a full path and the command is followed with '%f', which represents the file to be opened:
$ LANGUAGE=de_DE LANG=de_DE /usr/bin/gnucash %f
- On some systems the encoding could be part of the locales name, like "no_NO.UTF-8". You can use these names as well.
- Windows users
- On Windows, a good place to set your language preference is in gnucash.cmd. By default this file is installed in c:\\Program Files\gnucash\bin. Change this file such that the last few lines are:
set LANG=nl_BE set LANGUAGE=nl_BE start gnucash-bin %*
- Note for Debian users:
- Make sure your locales are properly installed. If not, run 'dpkg-reconfigure locales'. Note that the default desktop manager for Debian is GDM which does NOT read the .xsession files. To get the right language using GDM, use the Options button on the GDM login screen and set the default language. (The list includes all those languages supported by locales). When you login, confirm that the new language is to be the default for future sessions.
- Note on LANG vs LANGUAGE
- It may be that both variables are not always required. It depends on the system. It does no harm to set both of them and this ensures that the language is really set.
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".
Developing GNUCash: Source Code Overview
Q: Is the GnuCash team working on a gtk2 version?
- A: GnuCash 2.0, the gtk2 version, was released on July 10th, 2006.
Q: I heard it is too hard to compile GnuCash!
- 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 (except g-wrap, which means there is in fact one extra library to be installed before compiling GnuCash). However, by default, distributions won't install the development packages of the required libraries, so you might need to start your distribution's installer program and tell it to install not only the library packages but also the -devel packages. In general, it was noted that this problem concerns many applications in the gnome domain, and this also boils down to the fact that there is no such thing as one monolithic gnome package.
Q: Ok, what devel packages do I need in order to compile GnuCash?
- A: The exact names of the required packages vary a bit from distribution to distribution. For example, for an rpm-based distribution, you'll typically need at least: g-wrap-devel >= 1.3.4, gtkhtml-devel >= 0.8, Guppi-devel, gal-devel, libxml-devel, libglade-devel, libghttp-devel, python-devel, libtermcap-devel, readline-devel, and (optionally) post-gresql-devel. For more details see the Dependencies section of the README file.
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: 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 [2] (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.
Q: What happened with Guppi when in the GnuCash 2.x version? Was it dropped?
- 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.
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).
- 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 read the doxygen files offline?
- A: If you downloaded and configured (
./autogen.sh ; ./configure ...
) 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.
Glossary
- Doxygen
- a tool for the automated generation of source code documentation. 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#."
- 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.
- 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.)
- gtk+
- the GIMP Tool Kit. It is the underlying graphical library that is used by GIMP but also by the whole Gnome desktop. 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."
- 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.
- 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.
- 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 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 this one) publish it on their web site.
- 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
- an Open Source implementation of the German HBCI.
- 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."
- 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 )