Your browser is no longer supported! Please upgrade your web browser now.

A Harvest How-To: Invoice IDs

Harvest has a unique and flexible way of creating invoice IDs that can suit a wide range of businesses. Here’s a brief description of how invoice IDs work in Harvest and how you can set them up to best suit your business.

When you create a new invoice in Harvest, Harvest will suggest a new invoice ID based on the other IDs that have come before it. The suggested invoice ID can be edited during invoice creation or left as suggested. Once a draft invoice has been saved, the invoice ID is assigned to that invoice and removed as a possibility for all other invoices.

If you just leave them alone

By default, Harvest invoice IDs start at 1 and then auto-increment upward on each subsequent invoice, filling in any blanks on the way.

For example, if you’ve created ten invoices in Harvest, the default invoice IDs will be #1 through #10. If you delete #6, then the next invoice you create will be assigned ID #6 (to fill in the space created by the deletion), and the following ID would be #11.

If you want invoice IDs sorted by year

Some of our customers like to include the current year into the invoice ID. Earlier this year, we added something to help with that.

Previously Harvest would only increment the last digit in the ID, but starting in 2012, if you prepend “2012-” to your invoice ID, then on January 1st, 2013, Harvest knows to change that to “2013-“.

For example, if you have an invoice ID series that goes:

  • 2012-10765;
  • 2012-10766;
  • 2012-10767;

…then on January 1st, 2013, the next available invoice ID will be 2013-10768.

If you want to add a client ID within an invoice ID

A few of our customers like to incorporate a client ID into the invoice ID in order to make the series of IDs unique to a customer. You can do that by prepending the client ID to the invoice ID.

For example, for two clients (ABC Company and DEF Design), you can create two invoice ID series that start with “ABC-1001” and “DEF-1001” respectively. Harvest will recognize that those are client-specific ID patterns and increment them separately when a new invoice is created for either company.

If you want to include both the year and a client ID

This can also be done, but in order for Harvest to correctly increment the invoices, the identifiers need to be in the following order: YEAR-CLIENT-INVOICE.

For example, “2012-ABC-1001” and “2012-DEF-1001” will create two distinct series of invoice IDs that increment separately by both calendar year and invoice ID. On January 1st, 2013, the next available invoice IDs would be “2013-ABC-1002” and “2013-DEF-1002” respectively.

Going forward

Harvest has incredibly flexible invoice IDs that give you a wide range of possibilities. Hopefully this has helped explain how they work and how best you can configure them to suit your business.

For more help with Harvest, be sure to check out our Getting Started info and help documentation at

Thoughts or questions about this post? Need some help?
Get in touch →

This was posted in How To.
  • For years I have used the following syntax. Would love if harvest was smart enough to figure it out.


    So for the first invoice sent to Apple Computer on Aug 29, 2012 the invoice id would be: APL120829-1. If I sent two invoices on the same day the second id would be APL120829-2.

  • Thanks, JT. We won’t be making any more changes to invoice IDs in the near future, but each invoice also has an Issued Date associated with it. I hope that helps!

  • Hi, we have a legal requirement here, that all invoices have to be consecutively numbered within each year. It wold be perfect if the number would simply be incremented from the highest number that exists, even if there are some numbers missing. We used 120000 in 2012 and want to go to 130000 in 2013. But it always jumps back to fill in the missing numbers. Its too smart …

  • This is an incredible feature! Thanks again to the Harvest team.

Comments have been closed for this post.
Still have questions? Contact our support team →