Paid in the books, paid on the project

When an invoice or payment changes in the connected accounting company, the balance and status are mirrored back onto the platform invoice so the project shows paid.

What it is

A signed webhook that verifies the vendor signature over the raw body, resolves which account or accounts own the affected company, maps changed invoice and payment entities back to platform invoices, and re-reads the accounting invoice to set absolute balance and total values.

Also called: QuickBooks webhook · customer paid in QuickBooks · balance sync · paid in quickbooks · two-way sync · invoice still says unpaid · bookkeeper marked it paid

See it
Paid in the books, paid on the project
Prepared for
Sutter Kline
1140 Ridge Line Rd · Fair Play
Shell package$35,365
Concrete & site$10,267
Doors & windows$6,845
Trim & finish$4,563
Total
$57,040
Signature
Split screen: a payment recorded in the accounting package, and the project's billing tile flipping to Paid moments later. Sample data — no customer information appears here.
How it works
  1. 1The vendor posts change notifications, typically within a minute.
  2. 2The signature is verified in constant time over the raw body.
  3. 3Each notification's company id is resolved to owning accounts.
  4. 4Changed invoice and payment entities are resolved to accounting invoice ids.
  5. 5Each is re-fetched and its absolute values mirrored, firing the paid notification on the transition.
Why we built it

The route documents both the mechanism and its idempotency: 'we use it for QB → platform payment sync: when an Invoice/Payment changes, mirror the QB invoice's balance/status onto our invoice so the project shows "paid"... Idempotent: syncQbInvoicePaymentStatus sets absolute values from QB, so QB's webhook retries never double-apply.' Error handling is deliberate too: each notification's error is swallowed 'so one bad entity never fails the whole batch'.

The problem
  • Payments taken in accounting never reached the project view.
  • Webhook retries could have double-applied a payment.
  • One malformed entity would have failed an entire batch.
Sound familiar?
What you get
Payments recorded anywhere show up everywhere.
Absolute-value mirroring makes retries harmless.
The paid notification fires on the real transition.

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →