---
title: Invoice Generation from Billable Hours
description: OneSuite builds an invoice from the billable hours, expenses and project fees your team has not invoiced yet. You pick the client, the projects, the hours to include and how the lines read, and OneSuite writes the lines for you.…
url: "https://help.onesuite.io/docs/invoice-generation-from-billable-hours/"
updated: "2026-10-01"
category: "Time Tracking & Timesheets"
---

# Invoice Generation from Billable Hours

OneSuite builds an invoice from the billable hours, expenses and project fees your team has not invoiced yet. You pick the client, the projects, the hours to include and how the lines read, and OneSuite writes the lines for you.

**In this guide you'll learn how to:**

- Create an invoice from tracked time with the **New invoice** dialog
- Choose which projects, hours and expenses to bill
- Set how hours and expenses are grouped into lines
- Invoice a single project from its **Timesheet** tab
- Understand why some hours are left off

## Before you start

- You need permission to create invoices.
- Only billable hours that are not already on an invoice are offered. Non-billable time is never invoiceable.
- Rates come from the project's billing setup. Set them up first in [How to Set Up Project Billing and Budgets](https://help.onesuite.io/docs/how-to-set-up-project-billing-and-budgets/). A billable hour with no rate still comes across, but it bills at 0.

## How to create an invoice from tracked time

You create it from **Invoices**, **Create**: pick the client, keep **From tracked time & expenses**, and OneSuite either builds the invoice straight away or opens the full wizard.

1. Click **Invoices** in the sidebar.
2. On the **Overview** tab, click **Create**. The **New invoice** dialog opens.
3. Under **Who is this invoice for?**, search for the client and select it. Each client shows what is waiting, for example the uninvoiced amount or hours. Click **New client** to add one on the spot.
4. Under **Type**, choose **From tracked time & expenses**. This choice appears only when the client has something waiting to bill. If nothing is waiting, a blank invoice opens instead.
5. Under **Include**, keep the rows you want to bill and untick the others:
   - **Tracked time & project fees**, **Tracked time** or **Project fees**, depending on what is waiting
   - **Expenses** (unbilled receipts)
   - **Draw from retainer** (pays this invoice down from the client's retainer balance)
6. Click the button at the bottom of the dialog. Its label tells you what happens next:
   - **Create invoice**: one project has work and nothing needs review. OneSuite adds the lines and opens the invoice editor.
   - **Choose projects**: more than one project has work. The wizard opens so you can pick.
   - **Review hours**: some hours are still awaiting approval. The wizard opens so you can decide what to do about them.

Hours and expenses are ticked by default when the client has them. **Draw from retainer** always starts unticked.

![New invoice dialog with a client selected, Type set to From tracked time & expenses, and the Include rows ticked](https://help.onesuite.io/wp-content/uploads/2026/10/invoice-generation-from-billable-hours-1.webp)

## How to choose projects, hours and expenses in the wizard

The wizard is one page with three questions: which projects, which hours and which expenses.

1. Under **Which projects would you like to invoice?**, tick the projects to bill. Each row shows **Uninvoiced hours**, **Uninvoiced expenses**, **Uninvoiced amount** and **Last invoice**. Tags flag a project that **Has unapproved work** or bills in another currency.
2. Under **For Time & Materials projects, what hours would you like to invoice?**, choose **All uninvoiced**, **From a period** or **None**.
3. Set **Which hours** and, for **From a period**, the **Period**.
4. Choose **How to display hours**.
5. Under **What expenses would you like to invoice?**, make the same choices for expenses. Tick **Attach expense report (includes receipt images)** if you want the receipts sent with the invoice.
6. If the client has a retainer, OneSuite asks whether to draw from it for this invoice.
7. Click **Review invoice**. The draft opens in the invoice editor, where you check the lines, choose how to get paid and send it.

If some selected projects have unapproved or unsubmitted hours, a notice appears with a **Review approvals** link to the **Approvals** page.

### Which hours

| Option | What it includes |
| --- | --- |
| **All hours** | Every billable, uninvoiced hour in the range, whatever its approval status. This is the default. |
| **Approved only** | Hours that have been approved. |
| **Approved + pending approval** | Approved hours plus hours submitted and waiting for a reviewer. |

**Which expenses** offers the same choices, with **All expenses** in place of **All hours**.

### Period

When you choose **From a period**, the **Period** list offers **This month**, **Last month**, **This quarter**, **Last quarter**, **This year**, **Last year** and **Custom**. **Custom** lets you pick your own start and end dates. The default is **Last month**.

### How to display hours and expenses

| Hours option | What each line shows |
| --- | --- |
| **By work type** | All hours for one work type combined into one line. This is the default. |
| **By person** | All hours for one person combined into one line. |
| **By project** | All hours for one project combined into one line. |
| **Detailed** | Each time entry as its own line. |

Expenses use **By category** (the default), **By person**, **By project** and **Detailed**.

OneSuite remembers the choices you make for each client in this browser, so the next invoice for that client starts from them.

### Defaults at a glance

| Setting | Starts as |
| --- | --- |
| Hours and expenses scope | **All uninvoiced** |
| **Which hours** / **Which expenses** | **All hours** / **All expenses** |
| **Period** | **Last month** |
| **How to display hours** | **By work type** |
| **How to display expenses** | **By category** |
| **Attach expense report (includes receipt images)** | Off |

## How currency is chosen

One invoice bills in one currency. The invoice takes the currency of the first project you select. If that project has none, it uses the client's currency, then your business currency, and finally USD.

- Projects that bill in a different currency are tagged in the list, and you invoice them separately. If you select both, OneSuite shows "Selected projects bill in different currencies; invoice them separately."
- A retainer in a different currency is not offered for the draw.
- In the editor, you can still change the **Currency** in the side panel while the invoice is editable.

## How to invoice a project from its Timesheet tab

You can start an invoice for one project from its **Timesheet** tab, and OneSuite fills in the project and dates for you.

1. Click **Projects** in the sidebar and open the project.
2. Click the **Timesheet** tab, then **Invoices**.
3. Click **Invoice these N hours**, where N is the number of hours ready to invoice. When no hours are ready, the button reads **New invoice**.
4. The **New invoice from this project** dialog shows the **Dates**, **Hours** and **Amount** that will come across. Click **Continue**.
5. The wizard opens with this project selected and both hours and expenses included. Finish it as described above.

You can also start from the **Summary** view: the **Uninvoiced amount** card has a **New invoice** button.

What this route pulls in:

- When timesheet approvals are switched on, only approved time is pulled. Hours still waiting for approval are left off, and the dialog tells you how many.
- Hours that are already on another draft invoice are held out and left off. Delete that draft to release them.
- If there is no approved time yet, billable expenses in the dates still come across. If there are none either, start a free-form invoice instead.

To see what is invoiced and what is still open on a project, see [How to Track Project Hours and Costs](https://help.onesuite.io/docs/how-to-track-project-hours-and-costs/).

## Display settings that affect the invoice

- **Show total hours**: set in **Invoices**, **Configure**, **New invoice defaults**. It is copied onto each new invoice.
- **Time rounding**: set once for the whole workspace in **Settings**, **Time Tracking**, **Preferences**. When rounding is on, it applies to new invoices, so the hours billed can differ from the exact time tracked.
- **Attach expense report (includes receipt images)**: set in the wizard's expenses section.

Not using OneSuite yet? Start your free trial →

## FAQs

### Why are some hours missing from my invoice?

Hours are left off when they are non-billable, already on an invoice, outside the period you chose, or excluded by your **Which hours** choice. From a project's **Timesheet** tab, hours awaiting approval (when approvals are on) and hours already on another draft are also left off.

### Can I invoice time that has not been approved yet?

Yes, in the wizard. Set **Which hours** to **All hours** or **Approved + pending approval**. The project **Timesheet** tab route pulls only approved time when approvals are switched on, so use **Invoices**, **Create** if you need to bill unapproved hours.

### Why can't I put two projects on one invoice?

You can, as long as they bill in the same currency. One invoice bills in one currency, so a project in another currency has to go on its own invoice.

### Why does an hour on my invoice bill at zero?

That hour has no rate. A billable hour with no rate is still invoiced, but at 0. Add the missing rate on the project's **Billing** tab before you create the invoice.

### Can I just write the invoice by hand instead?

Yes. Choose **From scratch** in the **New invoice** dialog, or **Free form** in the wizard, and an empty draft opens for you to write. Use the tracked-time route when you want OneSuite to pull in the hours, expenses and fees for you.

### How do I bill a fixed fee rather than hours?

Select the Fixed Fee project in the wizard. A fixed fee project can be invoiced even when you include no hours or expenses, and the **New invoice** dialog lists its fee under **Project fees**. Set the fee on the project's **Billing** tab.

## What to do next

**Set up rates and budgets:** Make sure every hour has the right rate with [How to Set Up Project Billing and Budgets](https://help.onesuite.io/docs/how-to-set-up-project-billing-and-budgets/).

**Check what is left to bill:** See invoiced and uninvoiced time per project in [How to Track Project Hours and Costs](https://help.onesuite.io/docs/how-to-track-project-hours-and-costs/).

**Record the payment:** When the client pays, follow [How to Record Invoice Payments](https://help.onesuite.io/docs/how-to-record-invoice-payments/).
