# Invoices

Guides for creating, managing, and sending invoices — including generating invoices from tracked time entries, adding line items, applying taxes and discounts, and tracking payment status.

# Creating Invoices from Time Entries

Invup can automatically generate invoice line items from your team's tracked time entries. Instead of manually typing line items, you select a client, narrow down which time entries to include, choose how to group them, and Invup builds the invoice for you — with amounts calculated from each entry's resolved hourly rate.

This guide walks through the invoice creation wizard step by step.

[![Admin - Create Invoice.png](https://docfiles.invup.me/uploads/images/gallery/2026-04/scaled-1680-/admin-create-invoice.png)](https://docfiles.invup.me/uploads/images/gallery/2026-04/admin-create-invoice.png)

---

## Who Can Use This Feature

The "From Time Entries" option is available to **Owners** and **Admins**. Team members with the **Member** role can still create invoices from scratch, but they will not see the time entries wizard. **Contributors** do not have access to invoice creation.

---

## Opening the Wizard

1. Navigate to the **Invoices** page from the sidebar.
2. Click the **+** button to create a new invoice.
3. A dialog appears asking **"How would you like to create this invoice?"** with two options: 
    - **From Scratch** — create an invoice with custom line items that you type in manually.
    - **From Time Entries** — generate line items from tracked time entries.
4. Select **From Time Entries** to start the wizard.

---

## Step 1: Select a Client

The first step asks you to choose which client to invoice. The list only shows clients that have projects with recorded time entries — clients with no tracked time will not appear.

[![Admin - Create Invoice Select Client.png](https://docfiles.invup.me/uploads/images/gallery/2026-04/scaled-1680-/admin-create-invoice-select-client.png)](https://docfiles.invup.me/uploads/images/gallery/2026-04/admin-create-invoice-select-client.png)

Use the search field at the top to filter by client name. Click a client to select them (the selected client is highlighted), then click **Next** to continue.

> If you don't see a client you expect, confirm that at least one of their projects has time entries logged against it.

---

## Step 2: Configure Filters

After selecting a client, you'll see the **Filter Time Entries** step. This is where you narrow down exactly which time entries should be included in the invoice.

[![Admin - Create Invoice Filter Time Entries.png](https://docfiles.invup.me/uploads/images/gallery/2026-04/scaled-1680-/admin-create-invoice-filter-time-entries.png)](https://docfiles.invup.me/uploads/images/gallery/2026-04/admin-create-invoice-filter-time-entries.png)

### Available Filters

<table id="bkmrk-filter-description-d"><thead><tr><th>Filter</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td>**From** / **To**</td><td>Date range for the time entries to include.</td><td>First and last day of the previous month</td></tr><tr><td>**Projects**</td><td>Limit to specific projects. Leave empty to include all of the client's projects.</td><td>All projects</td></tr><tr><td>**Services**</td><td>Limit to specific services. Leave empty to include all services.</td><td>All services</td></tr><tr><td>**Members**</td><td>Limit to specific team members. Leave empty to include entries from all team members.</td><td>All team members</td></tr><tr><td>**Billable entries only**</td><td>When enabled, excludes time entries logged against non-billable services.</td><td>Enabled</td></tr><tr><td>**Exclude already invoiced entries**</td><td>When enabled, excludes time entries that are already attached to another invoice.</td><td>Enabled</td></tr></tbody></table>

The date range defaults to the previous month based on your organization's timezone. For example, if today is April 4 and your organization is set to Eastern Time, the default range would be March 1 to March 31.

Both toggle filters — **Billable entries only** and **Exclude already invoiced entries** — are enabled by default to prevent accidentally invoicing non-billable work or double-invoicing entries.

### Stats Preview Panel

As you adjust filters, the preview panel on the right updates automatically to show:

- **Entries** — the number of time entries that match your filters.
- **Total Hours** — the combined duration of all matching entries.
- **Estimated Total** — the total dollar amount calculated from each entry's hourly rate multiplied by its duration.
- **By Project** — a breakdown showing the hours and amount for each project individually.

The estimated total is calculated using each time entry's current [rate](https://docs.invup.me/books/time-tracking/page/understanding-the-rate-hierarchy). If an entry already has a [locked rate](https://docs.invup.me/books/time-tracking/page/rate-locking), that locked rate is used. Otherwise, Invup resolves the rate dynamically from the [rate hierarchy](https://docs.invup.me/books/time-tracking/page/understanding-the-rate-hierarchy#bkmrk-how-rate-resolution-).

If no entries match your filters, the panel displays **"No time entries match the current filters"** and you won't be able to proceed.

### Preview in Time Entries Table

Below the stats panel, there is a **Preview in Time Entries Table** link (with an external-link icon). Clicking it opens the Time Entries page in a new tab with your current filters pre-applied, so you can review the individual entries before generating the invoice. This is useful for spot-checking entries or verifying that the right work is included.

Once you're satisfied with the selected entries, click **Next**.

---

## Step 3: Choose a Grouping Strategy

The final step before creating the invoice is choosing how the selected time entries should be grouped into invoice line items.

[![Admin - Create Invoice Grouping .png](https://docfiles.invup.me/uploads/images/gallery/2026-04/scaled-1680-/admin-create-invoice-grouping.png)](https://docfiles.invup.me/uploads/images/gallery/2026-04/admin-create-invoice-grouping.png)

<table id="bkmrk-grouping-option-what"><thead><tr><th>Grouping Option</th><th>What It Does</th><th>Example</th></tr></thead><tbody><tr><td>**Single Line Item**</td><td>All entries are combined into one line item.</td><td>1 line item for all work</td></tr><tr><td>**By Project**</td><td>One line item is created for each project.</td><td>3 projects = 3 line items</td></tr><tr><td>**By Service**</td><td>One line item is created for each service.</td><td>"Design" and "Development" = 2 line items</td></tr><tr><td>**By Member**</td><td>One line item is created for each team member.</td><td>4 team members = 4 line items</td></tr></tbody></table>

Each option shows the expected number of line items it will produce (when available), so you can see the result before committing.

### How Line Item Amounts Are Calculated

For each group of entries, Invup checks whether all entries in that group share the same hourly rate:

- **Same rate**: The line item shows the total hours as the quantity and the shared rate as the unit price. For example, 10 hours at $150/hr = $1,500.
- **Mixed rates**: The line item shows a quantity of 1 with the pre-calculated total as the unit price. For example, if the group totals $2,340 across different rates, the line item will display 1 x $2,340.

### Line Item Names

Each line item is named based on the grouping strategy:

- **Single Line Item**: A comma-separated list of project names with the date range — e.g., "Website Redesign, Brand Strategy (Mar 1 – Mar 31, 2026)".
- **By Project**: The project name — e.g., "Website Redesign".
- **By Service**: The service name — e.g., "Consulting". Entries with no service are grouped as "No Service".
- **By Member**: The team member's name — e.g., "Jane Smith".

---

## Creating the Invoice

After selecting your grouping strategy, click **Create Invoice**. Invup will:

1. Create a new draft invoice for the selected client.
2. Generate line items based on your chosen grouping.
3. Link each time entry to its corresponding line item so the connection is tracked.
4. If your organization's [rate lock policy](https://docs.invup.me/books/time-tracking/page/rate-locking#bkmrk-rate-lock-policies) is set to **At Invoice**, the rates on all included time entries will be locked at this point.

Once the invoice is created, you are taken directly to the invoice detail page where you can:

- Edit line item names or descriptions.
- Add or remove taxes and discounts.
- Adjust the invoice date and due date (defaults to today and 30 days from today, respectively).
- Add any additional line items manually.
- Review and send the invoice to your client.

> The time entries included in the invoice are now linked to it. If **Exclude already invoiced entries** was enabled (the default), these entries will not appear in future invoice wizards — preventing double-invoicing.

---

## Tips and Best Practices

- **Review before you create.** Use the **Preview in Time Entries Table** link to scan through entries before generating the invoice. It's easier to adjust filters than to edit the invoice after the fact.
- **Use date ranges that match your billing cycle.** The default is the previous month, but you can adjust it to match weekly, biweekly, or custom billing periods.
- **Choose the right grouping for your client.** Some clients prefer a single total, while others want to see work broken down by project or team member. Pick the grouping that matches how your client expects to see the bill.
- **Check for non-billable entries.** Keep **Billable entries only** enabled unless you intentionally want to include non-billable work. Non-billable services have a rate of $0, which would pull down your invoice total.
- **Rate locking matters.** If your organization uses the "At Invoice" rate lock policy, generating an invoice will freeze the rates on all included time entries. This is intentional — it ensures the invoiced amount stays consistent even if rates change later. See [Rate Locking](https://docs.invup.me/books/time-tracking/page/rate-locking) for more details.

# Understanding Invoice Line Item Grouping

When you [create an invoice from time entries](https://docs.invup.me/books/invoices/page/creating-invoices-from-time-entries), the final step asks how the entries should be grouped into line items. The grouping strategy you choose determines how many line items appear on the invoice, what each line item is called, and how the amounts are displayed.

This article explains each grouping strategy in detail, how rates are resolved for each entry, and how Invup prevents the same time entry from being invoiced twice.

---

## The Four Grouping Strategies

<table id="bkmrk-strategy-line-items-"><thead><tr><th>Strategy</th><th>Line Items Created</th><th>Best For</th></tr></thead><tbody><tr><td>**Single Line Item**</td><td>1</td><td>Clients who want a simple, single-total invoice</td></tr><tr><td>**By Project**</td><td>1 per project</td><td>Clients with multiple projects who need to see costs separated by engagement</td></tr><tr><td>**By Service**</td><td>1 per service</td><td>Firms that bill by activity type (e.g., research, consulting, design)</td></tr><tr><td>**By Member**</td><td>1 per team member</td><td>Teams where clients want to see individual contributions</td></tr></tbody></table>

### Single Line Item

All selected time entries are combined into a single line item. This produces the simplest invoice — one line with the total hours and amount.

**Example line item name:** `Website Redesign, Brand Strategy (Mar 1 – Mar 31, 2026)`

The name is built from a comma-separated list of the project names involved, followed by the date range of the entries in parentheses. If only one date is covered, just that date is shown (e.g., `Website Redesign (Mar 15, 2026)`).

### By Project

One line item is created for each project that has time entries in the selection. If you selected entries across three projects, you get three line items.

**Example line item names:**

- `Website Redesign`
- `Brand Strategy`
- `Annual Audit`

### By Service

One line item is created for each service attached to the selected time entries. Entries that have no service assigned are grouped together under **"No Service"**.

**Example line item names:**

- `Consulting`
- `Design`
- `No Service`

### By Member

One line item is created for each team member who logged the selected time entries.

**Example line item names:**

- `Jane Smith`
- `Alex Chen`

> All line item names are automatically truncated to 100 characters. If a name exceeds this limit (most likely with the Single strategy when many projects are involved), it is trimmed and ends with "…".

---

## How Line Item Amounts Are Calculated

For each group of entries, Invup checks whether every entry in that group has the same hourly rate. The result determines how the line item's quantity and unit price are displayed.

### Same-Rate Groups

When all entries in a group share the same rate, the line item is displayed in a **hours x rate** format:

- **Quantity** = total hours across all entries in the group
- **Unit price** = the shared hourly rate

**Example:** A group of entries totaling 12.5 hours, all at $150/hr:

<table id="bkmrk-line-item-qty-unit-p"><thead><tr><th>Line Item</th><th>Qty</th><th>Unit Price</th><th>Amount</th></tr></thead><tbody><tr><td>Website Redesign</td><td>12.5</td><td>$150.00</td><td>$1,875.00</td></tr></tbody></table>

This format gives your client a clear picture of how many hours were worked and at what rate.

### Mixed-Rate Groups

When entries in a group have different hourly rates — for example, because different team members have different rates, or because rates changed during the billing period — the line item is displayed as a **flat amount**:

- **Quantity** = 1
- **Unit price** = the pre-calculated total (each entry's hours multiplied by its rate, then summed)

**Example:** A group with 8 hours at $150/hr and 4 hours at $200/hr:

<table id="bkmrk-line-item-qty-unit-p-1"><thead><tr><th>Line Item</th><th>Qty</th><th>Unit Price</th><th>Amount</th></tr></thead><tbody><tr><td>Website Redesign</td><td>1</td><td>$2,000.00</td><td>$2,000.00</td></tr></tbody></table>

Invup uses this format because displaying a single rate would be misleading when the group contains entries at different rates. The total is calculated precisely for each entry and summed, so the amount is always accurate.

> You can always edit a line item's name, quantity, or unit price on the invoice detail page after the invoice is created.

---

## How Rates Are Resolved

When building line items, Invup determines the hourly rate for each time entry using this order:

1. **Locked rate** — If the entry already has a locked rate (from a previous rate lock event), that rate is used as-is.
2. **Rate hierarchy** — If no locked rate exists, Invup resolves the rate dynamically by walking the [rate hierarchy](https://docs.invup.me/books/time-tracking/page/understanding-the-rate-hierarchy#bkmrk-how-rate-resolution-). This checks multiple levels — from the most specific (e.g., a project-service-member rate) to the most general (e.g., the team member's base rate) — and uses the first rate it finds.
3. **$0.00 fallback** — If no rate is configured at any level in the hierarchy, the entry is valued at $0.00. This can happen if a team member has no rate set anywhere.

This means the amounts on your invoice reflect the most accurate rate available at the time of invoice creation. If you've set up your [rate hierarchy](https://docs.invup.me/books/time-tracking/page/understanding-the-rate-hierarchy) correctly, every entry will have a meaningful rate.

> Entries logged against a **non-billable service** always resolve to $0.00 regardless of other rate settings. If you have **Billable entries only** enabled in the wizard filters (the default), these entries are excluded entirely.

---

## At-Invoice Rate Locking

If your organization's [rate lock policy](https://docs.invup.me/books/time-tracking/page/rate-locking#bkmrk-rate-lock-policies) is set to **At Invoice**, creating an invoice from time entries triggers rate locking on all included entries that don't already have a locked rate.

Here's what happens:

1. Invup resolves the current rate for each entry using the rate hierarchy.
2. That rate is frozen on the entry as its **locked rate**, along with a record of which level of the hierarchy provided it (the **locked rate source**).
3. From this point forward, the entry's rate is fixed — even if you later change rates on the project, service, or team member.

Entries that already had a locked rate (e.g., from the "At Creation" policy or a previous invoice) are left unchanged.

This ensures the amount on your invoice matches the rate that was in effect when you generated it. Without rate locking, a rate change after invoicing could cause a mismatch between what was billed and what the time entry shows in reports.

For a full explanation of rate lock policies, see [Rate Locking](https://docs.invup.me/books/time-tracking/page/rate-locking).

---

## How Double-Billing Is Prevented

When you create an invoice from time entries, each time entry is linked to the invoice line item it belongs to. This link is permanent and serves two purposes:

1. **Traceability** — You can always see which time entries make up a given invoice line item and, conversely, which invoice a time entry was billed on.
2. **Double-billing prevention** — The invoice creation wizard has an **Exclude already invoiced entries** filter, which is enabled by default. When active, any time entry that is already linked to an invoice line item is automatically excluded from the wizard results.

This means that under normal use, a time entry can only appear on one invoice. You don't need to manually track which entries have been billed — Invup handles it automatically.

If you do need to include previously invoiced entries (for example, to re-invoice work after voiding an earlier invoice), you can disable the **Exclude already invoiced entries** toggle in the filter step. Use this with care, as it can result in the same work appearing on multiple invoices.