Guide

How to invoice clients from Jira worklogs

If your team logs time in Jira and you bill clients for it, you already have the data you need. The work is turning it into something a client will pay. Here is the process, and the parts that go wrong most often.

1. Map projects to clients

Jira has no idea who your clients are. It has projects, issues and worklogs. Before anything can be billed, every project that represents client work needs to point at a client.

Do this first, and treat anything unmapped as non-billable by default. That default is what protects you: internal work stays off invoices automatically, and any new project someone spins up shows as unmapped rather than silently disappearing.

2. Decide what an hour is worth

A rate card is the answer to a specific question: when this person logs an hour to this client, what do we charge? Most agencies need three levels:

  • A default rate, so nothing is ever unpriced.
  • A per-client rate, because negotiated deals differ.
  • A per-role or per-person rate, because a principal and a junior are not the same line item.

The common failure is having rates in someone’s head or in an email thread. Whatever you use, the rates need to be written down somewhere the billing process reads from.

3. Pull the hours for the period

Pick your billing period and pull every worklog inside it for that client. Two boundary problems bite here.

Late logging.Someone logs Monday’s work on the following Monday, after you have already pulled the data. If you export once and never look again, those hours are gone from billing permanently.

Back-dated worklogs. Time logged today for a date inside a month you already invoiced. You need a deliberate answer: either bill it on the next invoice, or reopen the old one. Pick one and be consistent.

4. Review before you price it

This is the step people try to automate away and should not. Some hours should not be charged: work that overran because of your own mistake, time logged to the wrong issue, an hour of hand-holding you would rather write off for goodwill.

A good review pass is one screen where you can approve, adjust or exclude each entry, with the money visible while you decide. That is judgement, and it is worth the time.

5. Group the lines the way the client reads

The same hours can be presented several ways, and the presentation changes how many questions you get back.

  • By issue: a recognisable list of work. Best default for project work.
  • By person: suits staff augmentation and time-and-materials contracts.
  • One line: suits fixed fee and retainer work where an itemised list invites negotiation you did not want.

6. Add everything that is not hours

Most invoices are not only time. Retainers, fixed fee milestones, expenses passed through, discounts and credits all need a place. If your process only handles hours, the extras get added by hand at the end, which is exactly where numbers go wrong.

7. Get tax right, then verify it

Tax is where invoices quietly disagree with the books. Your billing calculation and your accounting system each have an opinion about the tax on a line, and if they differ by a cent, someone reconciles it manually later.

The protection is simple and worth building in: after the invoice exists in your accounting system, compare the total it returned against the total you calculated. If they differ at all, stop and look. Do not round it away.

8. Number it, freeze it, send it

An invoice number must be unique, sequential and never reused, because it is an accounting record. Once issued, the invoice should be immutable: if something is wrong, you issue a credit note, you do not quietly edit history.

Then it goes into Xero or QuickBooks as a real invoice. Sending a PDF without recording it in your ledger is how invoices end up unpaid and untracked.

9. Check what you did not bill

Before you close the month, look at two numbers:

  • Billable time that has not been placed on any invoice.
  • Time logged to projects nobody has mapped to a client.

The second one is the quiet leak. It never looks like an error. It just never appears on an invoice, and nobody notices, because there is nothing to compare it against. Valuing both in dollars rather than hours is what makes it visible enough to act on.

Doing this without the manual work

Every step above can be done with an export and a spreadsheet, and plenty of agencies do exactly that. It costs a recurring day a month and the mistakes are quiet ones. If you would rather keep the judgement and drop the assembly, Reeve reads the worklogs your team already logs in Jira, prices them to your rate cards, flags what would otherwise go unbilled, and pushes a finished invoice into your accounting system.


Questions

Can Jira invoice clients on its own?

No. Jira tracks work and can store worklogs, but it has no concept of a client invoice, a rate card, or tax. Invoicing is done either by exporting the data and building the invoice by hand, or with an app that reads the worklogs and produces the invoice for you.

How do I decide which hours are billable?

Map each Jira project to a client, and treat time on unmapped projects as non-billable by default. That single rule catches most of it. Everything else is judgement, so keep a review step where a human can approve, adjust or exclude before the invoice is created.

How should invoice lines be grouped?

Group the way your client reads, not the way your team works. By issue is the most common and gives a recognisable list of work. By person suits staff augmentation. A single line suits fixed fee retainers where detail invites argument.

What about tax?

Tax has to match what your accounting system expects, or the invoice totals will disagree with your ledger. Whatever method you use, verify that the total you calculated equals the total the accounting system produced, on every invoice.

How do I stop hours going unbilled?

Check for two things before closing a month: billable time that has not been put on any invoice, and time logged to projects nobody has mapped to a client. The second is the one that hides, because it never looks like an error anywhere.

Or skip the assembly

Reeve does the steps below automatically and leaves you the review. Early access for agencies billing out of Jira.