# Review unbilled Clockify time and bill it in QuickBooks

> Open one screen at month end to check every client's unbilled hours and expenses, fix what is wrong, then bill approved clients in one click.

- Workflow type: app
- Services: Clockify, QuickBooks Online
- Categories: Finance, Operations
- Published: 2026-08-16

## What it does

- Lists every client with their unbilled billable hours and expenses for the period, with line items grouped by project and by person so you can see who worked on what and at what rate.
- Lets you fix things before money goes out: move an entry to the right project, flip work to non-billable, or write off time, and watch the client total update as you edit.
- Approve a client and hit Bill to raise the invoice in Clockify, pull that period's time and expenses onto it, and create the matching invoice in QuickBooks Online, adding the customer there if they are new.
- Applies your rounding rules and a per-client minimum, so small balances roll into next month instead of becoming a tiny invoice, and billed time is locked so it can never be charged twice.

## What you'll need

- A Clockify account with your clients, projects, and billable rates already set up
- A QuickBooks Online company you can connect
- Time and expenses tracked against clients for the period you want to bill
- Clockify invoicing sits on paid plans only. If your plan does not include it, the review and the QuickBooks invoice still work and your time still gets locked as billed.

## Prompt

Build me a billing review app I open at the end of each month, before I invoice clients, so tracked time gets a proper check before it turns into an invoice. It reads from Clockify and pushes approved work into invoices in Clockify and QuickBooks Online. The core business rule everything else hangs off: time that has already been flagged as invoiced is never shown and can never be billed twice.

Main view is a billing review list for one period. Default the period to last calendar month with a picker for other months and a custom date range, and a workspace picker if I belong to more than one (Get all my workspaces). One row per client showing unbilled billable hours, unbilled expenses, the computed invoice amount after rounding, and a status of needs review, approved, billed, or rolling to next month. Build the rows from Clockify: Find clients on a workspace for the client list, Get all projects on a workspace for project names, client mapping, billable flags and rates, Generate a detailed report for the period filtered to billable entries that are not yet invoiced, and Generate an expense report for the period's expenses. Clients with nothing unbilled sit collapsed at the bottom rather than cluttering the list.

Opening a client shows the detail view: line items grouped by project and then by person, each row showing the date, description, hours, the rate applied and the amount, with a per-project subtotal and a per-person subtotal. Expenses list separately with their category, date and amount. Pull the client's billing details with Get a client by ID so the invoice has the right contact and address.

I need to edit line items in place before anything goes out: reassign an entry to a different project, flip an entry from billable to non billable, write time off by reducing the billable duration, and fix a description. Persist single edits with Update time entry on a workspace and use Bulk edit time entries when I apply the same change to a multi select. The client total and the period total update live as I edit, optimistically in the UI and then reconciled against what Clockify returns. Show a small changes summary per client, for example three entries moved, two written off, so I can see what I touched before approving.

Bake in rounding rules and a per client minimum. Rounding is configurable: round up or round to nearest, in increments of 6, 15 or 30 minutes, applied per entry or per grouped line item, defaulting to round up to the nearest 15 minutes per line item, with an off switch. The minimum invoice amount has a global default and a per client override; when a client's rounded total falls below their minimum, mark the row as rolling to next month, exclude it from billing, and leave its entries un invoiced so they reappear in the next period's review stacked on top of that month's work. Show the rolled amount on the row so I know what is deferred.

When a client is approved I hit Bill. That runs, in order: Add an invoice in Clockify for that client with the invoice number, issue date, due date and currency; Import time entries and expenses to an invoice to pull that period's time and expenses onto it as items; Mark time entries as invoiced for exactly the entries in this run so they can never be billed again; then QuickBooks Online, where the app looks for the customer using Query Entities against the Customer entity matched on display name, calls Create Customer if there is no match, and then Create Invoice with the reviewed totals, one line per project by default with a setting to split per person instead, plus separate lines for expenses. Show live progress through those steps and the resulting invoice numbers and links when it finishes.

Clockify invoicing is a paid feature and returns a permission error on plans without it. Detect that specific failure and keep going rather than blocking the run: skip the Clockify invoice, still create the QuickBooks Online invoice, and still call Mark time entries as invoiced so the double bill guard holds. Tell me plainly in the result panel that the Clockify invoice was skipped because the plan does not include invoicing.

Persist app settings and history. Settings cover the default period, rounding rule, global and per client minimums, per client rate overrides, QuickBooks line grouping, payment terms and currency. Every bill run writes a history record for that client and period holding hours billed, amount, the Clockify invoice id, the QuickBooks invoice id, whether it was rolled over, and who approved it. A history view lists past runs by period with those links so I can answer questions about what was billed months later.

Safety rules to respect throughout. Never surface entries already flagged as invoiced anywhere in the review. Block the Bill button for a client already billed for that period unless I explicitly override it. Never mark entries as invoiced unless an invoice was actually created somewhere. If a step fails partway through a run, stop and show exactly what succeeded and what did not instead of silently retrying, and let me resume from the failed step.

## How to customize

- Change the rounding rule, for example round every line up to the nearest 15 minutes, or switch rounding off entirely
- Set a minimum invoice amount, globally or per client, so anything smaller rolls into next month
- Change the billing period, currency and payment terms, or choose whether QuickBooks invoices show one line per project or one line per person

## FAQ

### Can the same hours get billed twice?

No. Time that has already been marked as invoiced never appears in the review list, and the moment a client is billed their entries for that period are locked as invoiced. The Bill button is also blocked for a client already billed for that period.

### What if my Clockify plan does not include invoicing?

Everything else still runs. The app skips creating the Clockify invoice, creates the invoice in QuickBooks Online as normal, and still marks the time as invoiced so it can never be billed again. You will see a note explaining what was skipped.

### Do my edits change the real data in Clockify?

Yes. Moving an entry to a different project, flipping it to non-billable, or writing time off updates the entry in Clockify, so your reports and everyone's timesheets stay accurate rather than only looking right on the invoice.

### What happens to a client whose total is under the minimum?

They are marked as rolling to next month. No invoice is created, their time stays unbilled, and it shows up again in the next period's review on top of that month's work.

### Do I have to set up my customers in QuickBooks first?

No. When you bill a client, the app looks for a matching customer in QuickBooks Online and creates one if there is not a match, so new clients do not need any prep.

Use this prompt in General Input: https://www.generalinput.com/prompts/review-unbilled-clockify-time-and-bill-it-in-quickbooks