Invoicing with GnuCash

Jack Wallen
Jan 11, 2010
Updated • Dec 28, 2012

I get a lot of businesses asking me about running their businesses with open source software. Many assume there are not packages that Linux and open source has no offerings for the SMB (or the consultant) needing a tool to keep track of clients, vendors, and (especially) invoicing. And even though many users know of GnuCash, few know of it's wealth of tools.

One of those tools available with GnuCash is invoicing. With GnuCash you can create a professional invoice that will also automatically post to your accounts receivable. So not only are you able to issue invoices, the creation of these invoices will help you keep track of money owed to you and your company. Let's see how this is done.

First things first

Figure 1

I will be working with GnuCash 2.2.9 on a Ubuntu desktop machine. I will assume you already have GnuCash set up properly for your business and that you know how to properly track finances with this tool. Before you start creating invoices, you will have to have customers created to bill.  Let's create a new customer. To do this open up GnuCash and go the Business > Customer > New Customer menu entry to open the New Customer editor (see Figure 1).

You will want to fill out as much information for this customer as possible. If you do not give the customer a Customer Number, GnuCash will automatically fill one in for you. Make sure you fill out both Billing and Shipping addresses for this customer.

When you are finished filling out this information, click OK to save the customer.

Figure 2

Now you are ready to create an invoice. Go to the Business > Customer > New Invoice entry to open up the Invoice creator (see Figure 2).  To associate a customer to this invoice click the Select button and do a search for your customer. If you have a lot of customers, you will appreciate the well planned search filters here. After you have your customer associated to the invoice. If you have a Purchase Order number or another means of identifying this customer account, you can add it to the Billing ID section. If you want to add Billing Terms for this invoice you will need to create Terms in the Billing Terms Editor (you can find this tool in Business > Billing Terms Editor.

When you have filled out all of the information, click OK to create the invoice. The invoice will appear in the GnuCash main window, ready to add items.

Figure 3

In Figure 3 I have added a single item to the invoice (a mixer).Make sure you enter all of the details (such as the correct Income Account). Of course you can add as many items to this invoice as you need. Pay close attention to service items as they may not be taxable items.

Posting and Printing

You can not print the invoice, until you post the invoice. When you post an invoice it moves the transactions to accounts receivable. To post the invoice click the Post button. If your window is too small (as shown in Figure 3), you will have to click the drop-down arrow to reveal the Post button. When

Figure 4

you Post an invoice you can select a Post date. If you have added terms to the invoice the Due Date (see Figure 4) will reflect these terms. NOTE: If you have multiple items in an invoice, and you want them all to be recorded separately in your asset account, uncheck the "Accumulate Splits" box.

If you have not created an account to post to, you will need to click the New button now.

Figure 5

Once you have posted the invoice you can hit <Ctrl>P to print the invoice. A printed invoice will appear like the example in Figure 5.

Final thoughts

GnuCash is a much more versatile application than most assume. Not only can you keep track of your personal finances, GnuCash easily can tackle the task of your small business or consulting finances. Give it a go and see how far you can push this fine open source application.


Previous Post: «
Next Post: «


  1. Juan said on May 6, 2021 at 1:19 am

    Excellent, thanks!

  2. Stevens said on March 29, 2013 at 5:34 pm

    Good explanation, but why does GnuCash require the user to add the amount of an invoice to an income account when the invoice is posted? Maybe in an accrual context, it becomes income at that time, but in a cash context, doesn’t the money have to be received before it is entered as income?

  3. Stephanie said on March 28, 2011 at 4:02 am

    Is there any way to view all of my open invoices? The only way I have found so far is to look up each individual customer to see if they have an outstanding balance. There has to be an easier way to simply see who has an outstanding balance.

    1. Max said on April 16, 2011 at 12:37 am


      Try the menu command Reports -> Business -> Receivable Aging.

  4. Bob said on September 15, 2010 at 9:59 pm

    This is very helpful, but I have a specific question. My question: how do I invoice clients for expenses incurred? I have a consulting practice, and I record expenses as I incurr them. But how do I flag these as billable to a specific client?

    More generally, is there a GnuCash forum for such questions? I’d be happy to participate! Thanks–Bob

  5. Aleve Sicofante said on March 21, 2010 at 3:33 am

    How do I customize the invoice layout for printing? I can’t send that ugly thing to my customers…

  6. The Doctor said on January 12, 2010 at 4:45 pm

    An excellent suggestion. But for now I’ll just stick with KMyMoney.

  7. sTivo said on January 12, 2010 at 9:54 am

    Thank You, very helpful article.

  8. Sky Aisling said on January 12, 2010 at 8:04 am

    Thank you, Jack, for the clear, helpful article.

    The client’s business is a landscaping service business. She’s not an inventory business.
    Are there choices in column headings?
    Can the invoice be customized? For example, can we put an image behind the print? or a customized logo image at top? Or footnote information with image?

  9. Ashok said on January 11, 2010 at 7:31 pm

    Thanks for the nice article. We need more such articles on how to use open source software. My site ( is dedicated to guiding small businesses with open source software. You can perhaps refer small businesses to my site to see a lot of other open source software as well.
    Keep up the good work!

Leave a Reply

Check the box to consent to your data being stored in line with the guidelines set out in our privacy policy

We love comments and welcome thoughtful and civilized discussion. Rudeness and personal attacks will not be tolerated. Please stay on-topic.
Please note that your comment may not appear immediately after you post it.