Native Billing Export for Jira

Turn the time your team logs in Jira into invoice files for Xero, QuickBooks Online or Sage. Clients, rates and rounding rules live in Jira; the files are built in your browser. Nothing leaves Atlassian.

Why "native"?

Features

Getting started

  1. Install Native Billing Export for Jira from the Atlassian Marketplace.
  2. A Jira admin opens Apps → Manage apps → Native Billing Export to add clients, map their Jira projects, set rates, and choose who else may run billing (the billing users).
  3. Open Apps → Billing export, pick a period and clients, and preview.
  4. When the preview looks right, Finalise to reserve invoice numbers and mark the worklogs as invoiced, then download the file for your accounting system.
  5. Import the file. In Xero, the rows arrive as draft invoices; in QuickBooks Online, through Import data → Invoices; in Sage, as quick entries.

How it works

Rates

Every worklog is priced by the first rate it finds: a rate for that person, then a rate for the issue's project, then the client's default. A worklog with no rate at all stays off the invoice and shows a warning, so nothing is silently billed at zero. A rate that is explicitly 0 bills at zero.

Amounts

Hours on a line are shown to two decimals, and the line amount is that printed quantity times the rate. That is deliberate: Xero, QuickBooks and Sage recalculate the amount from the quantity and unit price columns on import, and this way their figure matches ours to the cent. The consequence is that 20 minutes at 150.00 an hour bills 0.33 × 150 = 49.50, not 50.00. If you want exact fractions, turn on 6-, 15- or 30-minute rounding for that client.

Tax is calculated per line and summed. Amounts are tax-exclusive. Your accounting system recalculates tax from the tax type when it imports the file, and is the source of truth.

What each file contains

FormatNotes
XeroXero's sales invoice template columns. Rows with the same invoice number form one draft invoice. Split into files of 500 lines.
QuickBooks OnlineColumns for QuickBooks' invoice import. QuickBooks shows a mapping step, so you can match columns if your account's import expects different names. Split at 1,000 rows or 100 invoices. If sales tax is set up in your QuickBooks account, Intuit does not allow invoice import by file; use the generic CSV instead.
Sage Business Cloud AccountingA quick-entry layout. Compare the first file with the template from your own Sage account before relying on it; the app labels this format as unverified.
Generic invoice linesOne row per line: dates, quantity, unit amount, amount, tax, total.
Detailed worklogsOne row per worklog the run looked at, with its status (billable, non-billable and why, or no rate) and the invoice it landed on. Useful for checking a client's query.
PrintableA print view, one client per page, and a standalone HTML download.

Every file is plain UTF-8 CSV, with cell text protected against spreadsheet formula injection.

Who can do what

Worklogs are read with the signed-in user's own Jira permissions. A billing user can only bill time on issues they can see; if a client has projects they can't see, the run says so.

Limits

FAQ

Does the app connect to my Xero or QuickBooks account?

No. It produces files you import. There is nothing to authorise and nothing that can write to your ledger on its own.

Does it change anything in Jira?

No. The app only reads worklogs; it has no permission to write Jira data. Its own records (clients, rates, runs) are stored in Atlassian's Forge storage for your site.

Can two people finalise at the same time?

Yes. Invoice numbers are claimed one at a time, so no two invoices ever get the same number. If a browser closes mid-way, the run shows as incomplete, still reserves its worklogs, and can be voided.

Where is our data stored?

In Atlassian's Forge storage for your site, hosted by Atlassian. The app stores account IDs for billing users, per-person rates and who finalised a run, and nothing else personal. See the privacy policy.

What happens if our licence lapses?

The app becomes read-only: settings and run history stay visible, and preview, finalise and void are paused until a Jira admin renews. Nothing is deleted.

How do we get help?

Email support@resiliatech.com. See Support.