Skip to content

Tracked hours to a sent invoice to QuickBooks Online, without retyping any of it

The gap between a time tracker and a ledger is usually a person with a spreadsheet. You export hours, you total them, you open QuickBooks, you build the invoice a second time, and somewhere in there a rate is wrong. BillNotch closes that gap in one direction and is honest about the other: the invoice you send is created in QuickBooks for you, and the only thing that comes back is whether it has been paid.

QuickBooks Online · invoice out · paid status in

Start tracking free14 days, no card. Pro is $9/mo — less than one billable hour.

What happens when you send an invoice?

You send the invoice

Nothing syncs on a draft. The push is triggered by the same click that sends the invoice to your client, so what lands in QuickBooks is exactly what the client received.

The customer is found or made

BillNotch looks for a QuickBooks customer whose display name matches the client on the invoice, and creates one if there is none. Intuit’s duplicate-name fault is handled by reusing the existing record rather than failing.

The invoice is created once

Your invoice number becomes the DocNumber, the issue and due dates carry over, and every line arrives as its own line with description, hours and rate. A request id keyed to the invoice makes a retry return the original rather than a duplicate.

Payment comes back

When the balance in QuickBooks reaches zero, BillNotch moves the invoice from sent to paid. The transition is guarded, so a payment can only be applied once no matter how many times it is seen.

How you connect it

In Settings → Integrations, press Connect on the QuickBooks row. Intuit asks you to approve accounting access and to pick the company file; BillNotch keeps the company id and the tokens, encrypted, and returns you to Settings. A Push sent invoices switch on the connection lets you keep the link and pause the pushing, which is the setting you want during a month-end you would rather not disturb.

Connecting needs the integrations.manage permission — owners and admins by default, and any custom role you grant it to. The desktop app’s API key cannot touch integrations at all, by design.

What it writes into your books

Your accountant deserves the specifics before you connect anything to a ledger, so: the invoice carries your invoice number as its document number, its issue and due dates, its currency, and one line per BillNotch line with the description, the hours and the rate.

Two objects may be created in your file if they are not already there. A customer, matched by exact display name against the client on the invoice. And a single service item named “Services”, booked to the first income account in your chart — QuickBooks will not accept a bare description line, so every line rides on that one item. If you keep several income accounts and care which one gets credited, set that up on the QuickBooks side before you send the first invoice.

What about sales tax?

Tax is not pushed. If a BillNotch invoice has a tax rate on it, the QuickBooks invoice will show the pre-tax total and you will apply tax there. That is a real limitation and worth knowing on day one rather than at the end of a quarter — tax handling differs enough between jurisdictions that guessing at it in a sync is worse than leaving it to the tool that actually knows your registrations.

How payment status finds its way back

BillNotch asks QuickBooks what changed since it last looked, using Intuit’s change feed while the gap is short enough and falling back to a direct lookup of the invoices it is tracking when it is not. An outstanding balance of zero means paid, and the invoice moves from sent to paid on the BillNotch side.

That check runs when you open the invoices list and at most once every fifteen minutes, or on demand from Sync now. It is not instant and there are no webhooks. Partial payments do nothing: an invoice is paid or it is not, and a half-settled balance leaves the BillNotch status where it was.

Why it cannot bill you twice

Double-created invoices are the classic accounting-sync failure, so there are two locks. A claim row keyed to the invoice and the connection is taken before anything is sent, and the create itself carries a request id derived from the invoice’s own identifier rather than its number — free-text invoice numbers collide once you strip and truncate them, and Intuit would happily link two different invoices as one. When a push fails the claim is released so the next attempt runs clean.

What it will not do

No expenses, no bills, no purchase orders, no payroll, no bank feeds, no journal entries, no chart-of-accounts sync. Nothing is backfilled: invoices you sent before connecting stay where they are. An invoice edited in QuickBooks does not update BillNotch, and one voided in BillNotch is not voided in QuickBooks — if you kill an invoice, kill it in both places. The PDF is not attached, and there is no deep link from the BillNotch invoice into QuickBooks.

Nor is it every ledger. QuickBooks Online and Xero are the two that exist; FreshBooks, Wave, Sage and Zoho Books are not built. And BillNotch is not itself an accounting package — it produces the invoice, your ledger keeps the books.

Common questions

Is this a two-way sync?
No, and describing it as one would be dishonest. BillNotch pushes a sent invoice into QuickBooks and reads one thing back: whether the balance has reached zero. Editing an invoice inside QuickBooks changes nothing on the BillNotch side.
Does it push sales tax?
No. Line descriptions, quantities and rates cross; tax does not. If your BillNotch invoice carries a tax rate, the QuickBooks total will be the pre-tax total and you will need to apply tax in QuickBooks. This is the one place the two documents can legitimately disagree.
How quickly does a paid invoice show as paid?
Not instantly — there are no webhooks. Payment status refreshes when you open the invoices list, at most once every fifteen minutes per connection, or immediately when you press Sync now in Settings.
Does it work with QuickBooks Desktop?
No. The integration speaks the QuickBooks Online API only. QuickBooks Desktop, Self-Employed and the older Intuit products have no supported path here.

Let the hours reach the ledger by themselves

A 14-day trial, no card, and the connection takes a minute. The Xero sync works the same way with a couple of real differences, Slack announces the send and the payment in a channel, and the automatic tracker is where the hours on the invoice came from.

Start tracking free