Invoicing

Invoices built from the estimate and the payment schedule — so the number on the invoice is the number they agreed to, at the customer's prices, never your cost.

The operating system for post-frame and barndominium builders.

Part of The Money Trail
What it is

An invoice is generated from work that already exists: the approved estimate, the payment schedule, the change orders. You pick what goes on it, it carries your branding and a structured bill-to, the customer pays or downloads it from their own page, and the system refuses to let you send the same one twice. Every job's bills sit in its Billing card beside its change orders, and every bill in the business sits under Accounting → Invoices. One system for the whole post-frame business, so the invoice comes off the same estimate the customer signed — not a sixth program somebody retypes it into.

Also called: invoices · billing the customer · send an invoice · construction invoicing

See it, piece by piece
01

Built from what was already agreed

The invoice is assembled from the approved estimate and the payment schedule — one draft per stage, each with its dollar amount already in it. A stage that has already taken money is skipped rather than offered again. Where the draws come from — naming them, keeping them adding to 100 — is set up on the payment schedule.

New Invoice — payment schedule
Estimate (Job #41208)Locked to this projectHide ▴
Generate 4 invoices from payment schedule
One draft per stage, each with its $ amount pre-filled. Edit + send each separately.
Generate 4
Or pull modular pieces into a single invoice manually:
+ Materials $53,530.00+ Labor $34,920.00+ Customer Total $88,450.00
Payment Schedule (select stages to invoice)+ Insert 1 Stage
✓Down30%$26,535.00
Delivery40%$35,380.00
Frame Complete20%$17,690.00
Final10%$8,845.00
One draft per stage, amounts already filled in. Real screen · sample data.
Without it

The estimate said one thing, the contract said another, and the invoice — typed fresh in some other program — says a third. Nobody notices until the customer does, and by then you are arguing about your own paperwork in front of the man who owes you money.

Why we built it

A customer who sees the exact draw he agreed to pays it — one that looks re-worked gets questioned. The schedule becomes one draft per draw, not one invoice with three lines, because the down payment goes out in May and the final in October, on two different days with two different due dates.

02

The job's bills and extras live in one Billing card

Try it

Inside every job, Billing is one card with Invoices and Change Orders tabs. Closed, its header already says what's outstanding, how many are overdue, how many bills and extras there are, and how many change orders are waiting on the customer — so you know where a job stands on money without opening anything. Each tab keeps its own permission, so a rep who can see invoices never sees the change orders unless you allow it. How extras get billed is on change orders.

Project — Billing
The Wenger shop: $33,870 outstanding, 1 overdue, a change order with the customer. Click it open. Real screen · sample data.
Without it

To know whether a job is behind on money you open its invoices, then its change orders, then add it up in your head.

Why we built it

An owner glancing at a job should see the money trouble before he goes looking for it. The bills and the extras that feed them are one story, so they live in one card — and the closed card does the adding.

03

Choose exactly which lines go on it

Try it

Every line carries what it is — project estimate, change order, manual, adjustment — alongside its quantity, unit and price. Lines pulled from the estimate carry the customer's prices, with your markup already inside them, so a bill never shows your cost or a margin line the customer can read your profit from — how that works. The kind is not a label: a change-order line is added after tax, because that change order already carried its own markup and tax.

New Invoice — Line Items
Line Items?+ Add Line
Project Estimate
Materials — Post-Frame Package
40×64×14 shop: posts, trusses, purlins, 29ga steel, trim package.
Quantity
1
ea
Unit
EachHoursqft…
Unit Price
$
41850.00
/ea
Total
$41,850.00
Change Order
CO-3 — Add two 12×12 overhead doors
Openings framed, headers upsized, jambs and track included.
Quantity
2
ea
Unit
EachHoursqft…
Unit Price
$
3240.00
/ea
Total
$6,480.00
Subtotal$48,330.00
Tax (6%)$2,899.80
Total$51,229.80
Line Items — the kind on each line decides how it is taxed. Real screen · sample data.
Without it

Billing the whole job when you meant to bill a draw, or retyping four lines you already wrote in the estimate and getting one of the four wrong.

Why we built it

The office shouldn't have to remember which lines get taxed — the line should know. Putting the kind on every row lets the arithmetic differ per line, so a change order that already carried its own markup and tax is never taxed twice.

04

It bills the signed number, not the latest one

The estimate behind the invoice is locked to the project — the one that was built, sent, revised, approved and signed. If the live estimate has moved since, the invoice stays on the signed figure, names the gap in dollars, and tells you to raise a change order for the difference so it is agreed before it is billed.

Signed contract drift
Estimate (Job #40871)Locked to this project
Billing the signed contract amount. The contract your customer signed is $61,420.00, but the estimate now totals $64,880.00 (a difference of $3,460.00). Raise a change order for the difference so it is agreed and billable — invoices stay on the signed figure until then.
+ Materials $47,000.00+ Labor $17,880.00+ Customer Total $61,420.00
The drift banner — the signed figure, the current one, and the difference between them. Real screen · sample data.
Without it

Somebody rebuilds the estimate in August to price a second building for the same customer, and the September draw goes out $3,460 above the contract the customer signed in May.

Why we built it

A customer who gets billed more than he signed for stops trusting every bill after it. Pointing an invoice at a different estimate stays possible, but it is confirmed, explained and recorded — changing what a customer agreed to should cost you a sentence of typing.

05

A change order can be its own bill, or ride on the next draw

Try it

Each part of a change order is routed on its own: its own invoice, appended to the schedule as a new numbered payment, or merged into a draft the customer has not seen yet. Merging is only ever into a draft — once a bill has been sent it is never re-lined. The three delivery modes are chosen when the change order is priced.

Change Order — Billing & Delivery
Billing & Delivery$ Amount% of total
1
Doors — deposit at order
$2480.00×
Separate invoice= $2480.00
2
Door install labor
$3200.00×
Merge into existing paymentINV-2026-0038 · Delivery — $35,380.00= $3200.00
3
Balance on completion
$3802.35×
New scheduled payment= $3802.35
+ Add paymentAllocated $9482.35 of $9482.35

Merging into a payment that’s already been sent or paid will automatically append it as a new scheduled payment instead — a billed invoice is never re-charged.

Each bucket routed on its own — separate bill, appended payment, or merged. Real screen · sample data.
Without it

The invoice goes out in March for a change the customer agreed to in November, and now it is a conversation instead of a payment.

Why we built it

An extra the customer agreed to should arrive as part of the plan, not as a surprise. A bill they have already read never changes underneath them, so merging only goes into drafts — and otherwise the extra becomes the next numbered payment.

Sound familiar?“I retype every invoice into another program”
06

A bill-to that is fields, not a paragraph somebody pasted

Try it

Legal name, mailing address, phone, co-signer, lender, loan number, source of funds — each one its own field, pulled from the customer's signed intake form when the invoice is created and re-pullable at any time. Every one of them is still editable by hand.

Bill to block
Bill To— Marlene R. Zook
Legal Name
Marlene R. Zook
Email
marlene.zook@demo.invalid
Phone
(717) 555-0148
Mailing Address
1284 Buck Hollow Road
Apt / unit (optional)
Quarryville
PA
17566
Bill To — pulled from the signed intake form, still editable. Real screen · sample data.
Without it

The bank funding the build sends the draw back because the loan number is not on it, the office finds out nine days later, and the pour slips a week.

Why we built it

The bank funding the build is the one customer who will send a bill back over one missing field. Lender and loan number are their own fields, pulled from the signed intake form at creation and on demand — never changed silently after the bill has gone.

07

Twenty switches decide what is on the page

Try it

Logo, company contact, bill-to, terms, number, dates, project name, job site address, building specs, line items, subtotal, tax, total, paid and balance, the full payment schedule, notes, payment instructions, document links, footer. Each on or off per invoice — and Save as default stamps the current set onto every invoice you raise after it.

Include in invoice
Include in Invoice(18 sections on)
Header
Project / Building
Money
Footer
Include in Invoice — the count of sections on, and Save as default. Real screen · sample data.
Without it

The building specs print on every bill, so a two-line final payment arrives as a three-page document and the customer reads it as a new quote.

Why we built it

A two-line final bill shouldn't arrive looking like a new three-page quote. The switches live on each invoice with an account-wide default behind them, and the heavy blocks — specs and site address — start off, because the plain layout is what most bills want.

08

It looks like your company, not like our software

Your logo at the top, your colour on the company name and the total, your address and payment instructions at the foot — on every invoice you issue, without dressing up each one. You set that once in Brand Center and every bill after it inherits it.

Brand Center — Identity
Business InfoBrand CenterEmail Studio

Brand Center

Set your logos, colors, and type once — every email your customers receive picks it up automatically. Preview updates live; hit Save when it looks right.

Identity

Business name
Ridgeline Post Frame
Logos — one shaped for each use
wide logo example — L2B badge
Wide logo · ~3:1 horizontal
Email & invoice headers, letterhead. Your full logo with the name.
Example shape ↑ — upload yours below
wide logo example — L2B badge
Drop an image here or click below
PNG, JPG, WEBP, GIF, or SVG · up to 5MB
Choose fileRemove
…or paste a public image URL
https://ridgelinepf.demo.invalid/brand/logo-wide.png
square logo example — L2B profile mark
Square logo · 1:1
Social profiles & avatars — a compact mark that fits in a circle.
Example shape ↑ — upload yours below
square logo example — L2B profile mark
Drop an image here or click below
PNG, JPG, WEBP, GIF, or SVG · up to 5MB
Choose fileRemove
…or paste a public image URL
https://ridgelinepf.demo.invalid/brand/logo-square.png
icon example — L2B mark
Icon · 1:1 small
Browser tab / favicon — a simple mark that reads at tiny sizes.
Example shape ↑ — upload yours below
icon example — L2B mark
Drop an image here or click below
PNG, JPG, WEBP, GIF, or SVG · up to 5MB
Choose fileRemove
…or paste a public image URL
https://ridgelinepf.demo.invalid/brand/icon-512.png
Website (shown in footer)
ridgelinepf.demo.invalid
Set once here; every invoice issued after it comes out on it. Real screen · sample data.
Without it

A two-man outfit's invoice looking like a two-man outfit's invoice, on the one bill that goes to the customer's bank.

Why we built it

A small outfit looks like a real company when every bill matches. Branding is set once, at the company, so three invoices on one job can never look like three different firms.

09

The preview is the document

What you approve on screen is what prints. The toolbar around it — number, status, Send, Print — is marked to disappear at print time, so what comes out is the invoice and nothing else. There is a link that opens straight into the print box, for the copy that has to go in a file or across to a lender.

Invoice preview doc
INV-2026-0041DraftSend to CustomerPrint / Save PDF
Invoice
Leads2Build
Leads2Build Construction LLC
418 Mill Creek Road
Quarryville, PA 17566
Phone: (717) 555-0177
Email: office@demo.invalid
Bill To
Marlene R. Zook
1284 Buck Hollow Road
Quarryville, PA 17566
(717) 555-0148
Co-signer: Dwight A. Zook
Payment termsNet 15
Invoice #INV-2026-0041
DateAug 24, 2026
DueSep 8, 2026
Description
Materials — Post-Frame Package
40' × 64' × 14' shop: posts, trusses, purlins, 29ga steel, trim package.
$41,850.00
Labor — Erection Crew
Set, frame, sheet and trim. Includes crane day for truss set.
$15,920.00
CO-2 — Site condition: additional fill and compaction
$3,650.00
Subtotal$61,420.00
Tax (6%)$3,685.20
Total$65,105.20
Thank you for your business.
The preview toolbar, and the document under it that prints on its own. Real screen · sample data.
Without it

The PDF the customer downloads has a scrollbar, a Send button and half a status pill baked into the top of page one.

Why we built it

What you approve should be exactly what the customer saves — no surprises in the PDF. The PDF is the browser's own print of the one layout, so the copy you checked and the copy they file cannot drift apart.

10

Their own copy, always

Try it

Every bill is stacked on their project page with what it was, what is due and when — outstanding first, paid folded away underneath. Once a bill goes out it sits there with the rest of their money; that side of it is on the live project dashboard.

Portal invoices card
INV-1039Overdue
Materials draw — steel package
$51,360.00 · Due Aug 19
INV-1042Partial
Concrete & site work
$21,069.00 · $12,549.00 due · Due Aug 26
INV-1044Sent
Overhead doors
$7,350.00 · Due Sep 04
Their invoices card — outstanding at the top, paid folded away. Real screen · sample data.
Without it

The customer asks for the invoice again, you go and find it, you email it, it lands in spam, and a fortnight later they ask again.

Why we built it

A customer who can find his own bills stops emailing the office for copies. The card leads with what is unpaid and folds what is settled underneath, because he opens it to answer one question: what do I owe?

Sound familiar?“the invoice does not match what they approved”
11

One tap, and no account to make

The bill opens as a page on their own project — not an attachment to be lost in a thread, and no login in front of it. It carries the lines, the payments already received against it, and your payment instructions, in the terms you set.

Portal invoice doc
INV-1042Partial
Leads2Build
Leads2Build Construction
118 Ridge Line Rd Elkhart, PA 17022
billing@leads2build.demo.invalid
(717) 555-0142
leads2build.demo.invalid
INVOICE
Number: INV-1042
Issued: Aug 12, 2026
Due: Aug 26, 2026
Bill To
Marla J. Zimmerman
4180 Quarry Bend Rd Millersburg, PA 17061
marla.z@demo.invalid
(717) 555-0118
Co-signer: Dean R. Zimmerman · dean.z@demo.invalid
Lender: Susquehanna Farm Credit (#SFC-88214)
Project
Deposit — Zimmerman Equipment Barn
Zimmerman Equipment Barn
Items
Description
Qty
Rate
Amount
Deposit — 30% of contract
Zimmerman Equipment Barn
1
$38,520.00
$38,520.00
Concrete Pad
2,560 sq ft × $6.75
2,560 sq ft
$6.75
$17,280.00
Overhead Garage Doors
3 ea
$2,450.00
$7,350.00
Subtotal$63,150.00
Tax (3%)$3,789.00
Total$66,939.00
Paid−$38,520.00
Balance Due$28,419.00
Payments received
Aug 14, 2026 · Check · #2291$38,520.00
Payment instructions
Checks payable to Leads2Build Construction. ACH details on request. Card payments carry a 3% processing fee.
Terms
Net 14. Draws are tied to build milestones as set out in the construction agreement.
The bill they open — no sign-in in front of it. Real screen · sample data.
Without it

The invoice goes out as an attachment, the customer opens it on a phone that will not preview it, and a $25,728 draw sits unpaid for nine days over a file format.

Why we built it

A customer who has to make an account to see a bill pays it later. The link carries the access instead of a password — which is why the link itself is built so nobody can guess another.

13

Opening it is what marks the invoice viewed

Try it

The first time your customer opens their bill — on its own link or from their project page — it moves from sent to viewed, with the time on it. A bill that was never opened and a bill that was read and ignored become two different rows, and two different phone calls.

Portal doc modal
Build Progress
Invoices (5)
$71,259.00 outstanding
INV-1039 · Materials draw
Leads2Build Construction
118 Ridge Line Rd, Elkhart, PA
INVOICE
Bill To
Marla J. Zimmerman
4180 Quarry Bend Rd, Millersburg, PA 17061
Balance Due$51,360.00
Backdrop click and Escape close this. Your place on the dashboard is kept.
The bill opening in place — that load is the event that stamps it viewed. Real screen · sample data.
Without it

You ring about the overdue draw and open with "did you get it?", they say no, and you spend the call re-sending a bill they read three weeks ago.

Why we built it

Knowing a bill was read changes the phone call — you chase a decision, not a lost email. The stamp is written by the page that serves the bill, not an email pixel half the mail apps block, and it records the first open, not the last.

14

Record the payment the way it actually arrived

Try it

Check, ACH, wire, cash — the way money moves on a $90,000 building. Amount, date, the check number or wire reference, and who recorded it. The invoice reads paid, the balance goes to zero, and the payment sits on the job with its reference against your name. No card processor, and no percentage taken out of it.

Record a payment — check, ACH, wire or cash
Record a payment

RPF-2026-0004 · Leah M. Weaver · $2,570.33 outstanding

How it arrived

No card processor involved, and no percentage taken out of it.

Pick a method and watch the reference field follow it. Real screen · sample data.
Without it

The invoicing tool assumes every payment is a card payment, so a builder taking a wire marks things paid with a note in a memo field. Within a month the software's idea of who has paid and the truth have nothing to do with each other.

Why we built it

Builders get paid by cheque and wire for good reason — the software should match the way the money actually arrives. 2.9% of a $93,000 building is $2,707, so this is the main way money is recorded, not a fallback for people without a card reader.

15

Duplicates are refused, not warned about

Try it

Same job, same amount, same day — refused, with the existing invoice named. The rule is a database index underneath the save, not a check in the screen, so a stale tab cannot get past it. If it genuinely is a separate charge you say so once, and that exception is recorded against the invoice.

Duplicate stopped

This invoice already exists

INV-2026-0041 on this project is already for $17,152.00, issued the same day. Your earlier one saved — nothing was lost.

Billing the same job in equal instalments is fine — if this is a separate draw rather than a repeat, say so below and it will be saved alongside the first.
The duplicate, named and stopped. Real screen · sample data.
Without it

Sending the same $25,728 draw twice, which reads to a customer as either incompetence or an attempt.

Why we built it

Sending the same draw twice makes you look careless at best, and like a grab at worst. A warning gets dismissed at six in the evening; a rule in the database holds for every path — the editor, the schedule, a second tab.

Sound familiar?“I sent the same invoice twice and looked disorganised”
16

The same cheque can't be entered twice

Cheque 8616 for $25,728 is already on this invoice, so it is not added a second time — and the refusal names the cheque and the amount, so you can go and look instead of guessing which one you already keyed.

Record payment refused
Record Payment
Amount
25728.00
Method
Check
Paid On
Aug 12, 2026
Reference
8616
Notes
Cheque 8616 for $25,728.00 is already recorded on this invoice. It was not added a second time.
CancelRecord
A duplicate payment, refused with the cheque named. Real screen · sample data.
Without it

Double-keying a deposit at month end, so the job reads paid, nobody chases the real balance, and the shortfall turns up when payroll runs.

Why we built it

A cheque keyed twice makes a job read paid when it isn't — and nobody chases the real balance. The rule is narrow — same reference and same amount — because a refusal people don't learn to click past has to be one that's always right.

17

You can't quietly delete money

Only a draft can be deleted. Anything that has been sent is voided instead — it keeps its number, stays on the record struck through, and will not move without a written reason. The refusal is on the server, not in the button, and the three remedies are laid out one at a time on fixing your own invoicing mistakes.

Delete refused
1INV-2026-0040Down payment — 40×64 ShopPaidIssued Jun 18, 2026 · Due Jul 3, 2026$25,728.00⋯
Void this invoice
Cancelled, but it really existed. Keeps its number, drops out of your totals.
Delete this invoice
Has a payment recorded — void it, or reverse the payment first (open it → Payment History).
A delete refused, with Void offered in its place. Real screen · sample data.
Without it

A mistake tidied away in October, and a set of books in January that no longer matches what happened.

Why we built it

Your accountant needs the books to say what actually happened — even the mistakes. Void, delete and reverse are three jobs with three consequences, so they are three separate actions, and none of them can quietly rewrite a financial record.

18

Reversals are entries, not erasures

Try it

Bounced cheque, refunded deposit, misapplied payment — the row is struck through with the reason written under its reference, and Paid and Balance are rebuilt from the payments that still count. Nothing is subtracted from a stored number.

Payment history reversal
Total$25,728.00
Paid−$51,456.00
Balance Due$0.00
Overpaid by $25,728.00. More has been recorded against this invoice than it is for — usually the same payment entered twice. Check Payment History below and reverse the extra one, or it will overstate your revenue.
Payment History
DateMethodReferenceAmount
Aug 12, 2026Check8616$25,728.00
Aug 12, 2026Check8616$25,728.00
The reversed row, struck through, with the reason under it. Real screen · sample data.
Without it

Fixing a bounced cheque by editing the payment, leaving a job that reads paid and no trace that anything was ever wrong.

Why we built it

A bounced cheque should leave a trail you can explain a year later, not a job that silently reads paid. Totals are rebuilt from the payments that still count, on the server, so a stale tab can never write a number that contradicts them.

19

The correction sits where you notice the mistake

A wrong invoice is almost always caught while reading the month's totals, not while sitting inside a job. So void and delete are on the row in front of you rather than three screens away.

Void this invoice
Void this invoice

INV-2026-0041 — CO-3 Overhead Doors · $9,482.35

It keeps its number and stays on the record, struck through, and stops counting toward your revenue. Use this when the invoice was genuine but the work or the charge is cancelled.

Reason *
Cancelled — job did not proceedReplaced by a corrected invoiceBilled the wrong amountBilled to the wrong customer
Replaced by a corrected invoice — door count went from 2 to 3 after the site visit.
Saved with your name and the date. Only your team sees it — never the customer.
CancelVoid invoice
The same dialog, reached from the list row instead of from inside the job. Real screen · sample data.
Without it

You catch a draw billed twice while scanning the month's totals, then lose track of which one it was somewhere on the way into the job to fix it.

Why we built it

You catch mistakes while reading the month's totals — so the fix sits right there. It is no more casual for being close: the invoice keeps its number, stays visible struck through, and needs a written reason.

Sound familiar?“I have no idea which invoices are outstanding”
20

What this job still owes, draw by draw

Try it

Inside the viewer the draws are numbered — Stage 2 of 3 — and the one before and the one after are named on the chevrons, each tinted to its own stage. Down paid, delivery sent, final still a draft: that is the whole answer to what the job owes, without closing back to the list.

Payment draw nav
INV-2026-0042SentPrint / Save PDF
Stage 2 of 3
Invoice
Delivery payment — Marlene R. Zook
40×64 Shop — Buck Hollow Road
DueSep 8, 2026
Total$51,456.00
Stage 2 of 3 — the paid draw behind, the draft ahead. Real screen · sample data.
Without it

Answering "what has this job actually paid" means opening four invoices from a list and closing four back to it, and by the third one you have lost track of which you have read.

Why we built it

Reviewing what a job owes should be a swipe through its draws, not four trips back to a list. Each draw has its own colour, so you always know which one you are reading.

21

Grouped by project, with the money visible before you open it

Try it

Every invoice on a job sits under one heading with the total, what is paid and what is still due — read without expanding anything — plus a numbered strip saying where each bill on it stands. Groups sort by most-recent activity, so live work floats to the top.

Invoicing — one project's invoices
1INV-2026-0001Brad Garber — InvoiceDraftIssued Jun 18, 2026$18,139.52
2INV-2026-0002Brad Garber — Down (30%)DraftIssued Jun 18, 2026$11,341.57
3INV-2026-0003Brad Garber — Delivery (60%)DraftIssued Jun 18, 2026$22,384.14
4INV-2026-0004Brad Garber — Final (10%)DraftIssued Jun 18, 2026 · Due Jun 23, 2026$4,278.86
Entered and exited clear themselves after three seconds.
One project's invoices — the three totals read before you expand. Real screen · sample data.
Without it

A flat list of every invoice you have ever raised, where answering "what does this customer still owe me" means adding up rows on the back of an envelope.

Why we built it

The question you actually ask is "what does this job still owe me?" — so that is the first thing on screen. Jobs sort by recent activity, so this month's billing floats to the top without a filter.

22

It remembers where you were

Try it

Close an invoice and the list marks the one you opened and the one you came out on — because you can swipe between a job's draws inside the viewer, and those are often not the same row. Both tags clear themselves after three seconds.

Invoicing — where you entered and exited
1INV-2026-0001Brad Garber — InvoiceDraftIssued Jun 18, 2026$18,139.52
entered2INV-2026-0002Brad Garber — Down (30%)DraftIssued Jun 18, 2026$11,341.57
exited3INV-2026-0003Brad Garber — Delivery (60%)DraftIssued Jun 18, 2026$22,384.14
4INV-2026-0004Brad Garber — Final (10%)DraftIssued Jun 18, 2026 · Due Jun 23, 2026$4,278.86
Entered and exited clear themselves after three seconds.
Entered and exited, in the three seconds after you close the viewer. Real screen · sample data.
Without it

Going through a run of invoices you lose your place and open the same one twice, which happens constantly and costs you the whole review.

Why we built it

Going through a pile of bills, losing your place is what wastes the afternoon. The trail marks where you went in and came out, then clears itself after three seconds, so it never becomes clutter.

23

One screen answers what the whole business is owed

Outstanding, sent and waiting, overdue, and paid to date — four numbers across the top, with voided invoices left out of all four. Overdue is worked out from the due date every time the screen draws, so nothing has to be flipped by hand or by a nightly job.

Invoicing — totals
Outstanding
$30,707.35
Sent / Awaiting
$12,380.00
Overdue
$9,482.35
Paid (lifetime)
$214,860.50
Four tiles, each with its own accent edge — overdue reads apart from outstanding. Real screen · sample data.
Without it

Knowing what the business is actually owed means opening job after job, adding balances by hand, and still not trusting the number by the time payroll runs.

Why we built it

An owner wants one honest answer to "what am I owed?" — and a separate one to "who do I ring today?" Overdue is broken out from outstanding and worked out live from the due dates, so there is nothing to close at month end.

24

Accounting is where the money lives — invoices are one tab of it

Try it

Invoicing moved into Accounting, beside payroll, crew payouts, sales payouts and hour approvals. The Overview puts money in — invoiced, collected, outstanding, overdue, change orders approved — next to what went out to crews and reps, for the last 30 days, 90 days or 12 months. Old Invoicing links still land on the Invoices tab. The whole area is on Accounting.

Accounting — Overview
Accounting
Money coming in, and every way it goes back out — crews, sales and hours.
OverviewInvoicesPayrollCrew payoutsSales payoutsHour approvals
Over the last
Money inInvoices →
Invoiced
$186,420
Collected
$142,300
Outstanding
$96,850
7 open · 1 overdue
Change orders approved
$8,940
3 in this window
Crew payoutsCrew payouts →
Surplus paid to crews
$3,180
5 jobs booked
Shortfall
$1,240
Shortfall carried
−$730
1 waiting on a decision
Hours logged
1,184
Sales payoutsCommissions →
Sales
$140,500
Commissions earned
$7,355
Commissions paid
$10,982
Commissions owed
$4,766
all time, not yet paid
Accounting's Overview — money in beside crew and sales payouts, with Invoices one tab over. Real screen · sample data.
Without it

Money in lives in one program and money out in another, so nobody can say how the month actually went until the accountant does.

Why we built it

An owner thinks about money as one picture — what came in and what went out. Putting invoices beside crew and sales payouts answers "how did we do?" on one screen, without anyone adding two reports together.

Sound familiar?“the customer says they already paid it”
25

Every invoice in the business, grouped by job

Try it

Under Accounting → Invoices, filter by status, pick one customer, or search across the invoice number, the title, the customer and the project. Grouping is by job because one customer can have several jobs and each job several bills — and each job card carries its own count and its own three totals.

Invoicing
AllDraftSentViewedPartialOverduePaidVoidAll customersSearch number, title, customer, or project…
Yoder — 40×64×14 Shop4 invoices
Marlin Yoder·$80,242.35total·$58,380.00 paid·$21,862.35 due
1Paid2Partially Paid3Overdue4Draft
1INV-2026-0036Down Payment — 40×64 ShopPaid
Issued May 4, 2026 · Due May 18, 2026
$26,535.00
PDF⋯
2INV-2026-0038Delivery DrawPartially Paid
Issued Jun 22, 2026 · Due Jul 6, 2026
$35,380.00
$12,380.00 due
PDF⋯
3INV-2026-0041CO-3 — Overhead DoorsOverdue
Issued Jul 9, 2026 · Due Jul 23, 2026
$9,482.35
PDF⋯
4INV-2026-0044Final PaymentDraft
Issued Aug 20, 2026
$8,845.00
⋯
Status chips, a customer picker and one search box across all four fields. Real screen · sample data.
Without it

A customer rings about a bill from three months back and you are guessing which job it belonged to, opening projects one at a time until it surfaces.

Why we built it

When a customer rings about a bill from March, you want it on screen while he's still talking. Status chips filter without losing your search, and the list groups by job because one customer can have several.

26

You can start an invoice here, not only inside a job

Try it

New Invoice asks which job first — searchable, with a blank invoice row for the genuine one-off — then opens the same editor you get inside the job. It used to be reachable only from a job's own tile, which meant answering "how do I make a new invoice?" with directions instead of a button.

New invoice picker

New invoice — pick a project

×
Blank invoice (no project)
Start from scratch — fill in the bill-to manually.
40×64 Shop — Buck Hollow Road
Marlene R. Zook
30×40 Garage — Fern Glen Lane
Trevor Beiler
Barndominium — Ridge Pike
Anita Hostetler
24×32 Equipment Shed — Pine Run
Curtis Lapp
Commercial Shop — Route 372
Delmar Ebersol
Pick the job, or start a blank one — then the same editor opens. Real screen · sample data.
Without it

Work finished in June gets billed in August, because on the day you meant to raise it you could not find anywhere that invoices start from.

Why we built it

Work that's finished should be billed the day you think of it, not when you find the right screen. Asking which job first means the invoice is born attached to its customer, estimate and contract — in the same editor you already know.

27

…and what the books say

Try it

A payment your bookkeeper takes in QuickBooks comes back and marks the invoice paid here, because the balance is read off the books rather than guessed at. What happens when the two numbers disagree is written out on QuickBooks Online.

Qb paid from books
Bookkeeper posts the cheque in QuickBooks
2INV-2026-0042Delivery payment — 40×64 ShopSentIssued Aug 24, 2026 · Due Sep 8, 2026$51,456.00$51,456.00 due
ConnectedQuickBooks OnlineLast syncedAug 26, 2026, 7:41 AM
Paid status, back from the books. Real screen · sample data.
Without it

Marking a $17,000 wire paid in the books, forgetting the job screen, and chasing a customer who paid you eleven days ago.

Why we built it

Your bookkeeper shouldn't have to tell you a customer paid. When the books are connected they are the authority on money, so a payment entered there marks the bill paid here — one place to enter it.

28

And if you're on QuickBooks, it keeps itself straight

Sending the invoice pushes it into your company file once, and each invoice says whether it got there and when it last moved. A push that fails is a warning beside that invoice, not a failed send. You do not need QuickBooks to invoice — the whole two-way trip is an accelerator on top of the record above, never a requirement.

Qb sync chips
40×64 Shop — Buck Hollow RoadSentQuickBooks · Project
30×40 Garage — Fern Glen LanePaidQuickBooks · Sub-customer
24×32 Equipment Shed — Pine RunSentQuickBooks · Customer
Barndominium — Ridge PikeSentQB sync failedRetry
Commercial Shop — Route 372DraftSyncing to QuickBooks…
Each invoice says whether it reached QuickBooks, and when it last moved. Real screen · sample data.
Without it

The bookkeeper trusts QuickBooks, the builder trusts the job screen, and the argument about who has actually paid happens at month end with two different answers on the table.

Why we built it

A customer's bill should never wait on your accounting software. The push is decoupled from the send: if QuickBooks is down the bill still goes, and the invoice says plainly that the books didn't get their copy.

29

A lender's funded draw lands in Invoices as a paid bill

On a build paid by a construction loan, a funded draw has a Record in Invoices button: it writes a paid invoice to the lender and its payment, once per draw, so the money the bank sent shows up with the rest of the job's billing. The draw packages themselves are on construction loan draws.

Draw 1 — funded, recorded in Invoices
Draw 1 — Site work and foundationFunded
Permitting ✓ · Dirt Work ✓ · Concrete ✓ · planned 16% of the job
Requested
$60,480.00
Funded 8/28/2026 — $60,480 by wire.Recorded in Invoices.
INV-2026-0118Draw 1 — Site work and foundationPrairie Hollow BankPaid$60,480.00
Construction-loan draw funded by Prairie Hollow Bank (wire PHB-77310).
Draw 1 funded by wire — $60,480 recorded as a paid invoice to Prairie Hollow Bank. Real screen · sample data.
Without it

The bank wires a $60,480 draw, nobody records it on the job, and the job reads as owing money it has already been paid.

Why we built it

The money from the bank is still your customer's money paying for his building — it belongs with the job's bills. Recording it once per draw means the job's totals tell the truth without a second set of books for the loan.

How it works
  1. 1Start from the payment schedule or pick lines from the estimate — at the customer's prices, with the markup already inside them
  2. 2Change orders appear as billable lines you can include or hold
  3. 3The bill-to comes from the customer record, structured, not a blob of text
  4. 4It renders in your branding and downloads as a PDF
  5. 5Payments post against it; a duplicate is refused, not warned about
  6. 6Each job's Billing card says what's owed, what's late and what's waiting on the customer; Accounting → Invoices shows the whole business
  7. 7It syncs to QuickBooks, and what the books say comes back
Why we built it

Invoicing is where a well-run job goes wrong quietly. The estimate said one thing, the contract said another, and the invoice — typed fresh in some other program — says a third. Nobody notices until the customer does, and by then you are arguing about your own paperwork in front of the person who owes you money. So nothing on an invoice is typed twice. It is assembled from things that were already agreed, and the operations that are genuinely dangerous — deleting a paid invoice, recording a payment twice, sending a duplicate — are refused with a reason rather than allowed with a warning.

The problem
  • A third version of the price, typed by hand
  • Duplicate invoices reaching a customer
  • Payments recorded twice, or against the wrong invoice
  • Deleting something that has money attached to it
What you get
One invoice document that reads the same in the editor, the preview, the print/PDF and the customer's browser.
Line items traceable back to the estimate component or change order that produced them.
Customers see the prices they were quoted, never your cost or your markup.
Outstanding balance visible per job without opening anything, and across the whole business in one place.
What's inside
Continuous invoice numbers

Numbers come out as INV-2026-0001, then INV-2026-0002. The count never restarts; the year is only a label. You pick the prefix your business uses.

Invoice status tracking

The status on the row is the real one. Viewed is stamped the first time your customer opens their link. Overdue is never stored anywhere — it is worked out from the due date and what is still owing, the moment the screen draws. So it is right whether or not anything ran overnight.

Line item editor

The title is the bold label your customer reads — Materials, Labour, Site prep. The description underneath carries the detail. Units read the same however you type them, so Each and ea come out consistent, while your own units like sqft or ton print exactly as you wrote them. Tap a description and it opens full width, because a table cell is no place to write scope.

Bill To pulled from the signed form

It sits collapsed on the invoice until you want it. You open it to check, not to type. Clear it when a company or a lender is paying rather than the person who signed. Pull it again if their details changed since they filled the form out.

Choose what prints on the invoice

Logo, Bill To, your contact details, terms, invoice number, dates, the job reference, the site address, the building specs, the lines, subtotal, tax, total, the payment schedule, paid and owing, notes, payment instructions, document links, footer — each one is its own switch. Out of the box it is deliberately plain: no material breakdown, no specs.

Your business on every invoice

One place holds your business identity. The same details feed the invoice header, the contract and the customer's own page. Change your phone number once and it changes everywhere — the number on the bill and the number your customers text can no longer disagree.

Preview, print and save as PDF

Preview builds the customer's copy out of what is on your screen right now, before anything is saved. It is the same page they will see, not a lookalike. Print or save it as a PDF from the list, from inside the invoice, or from the customer's own page — you get the same document every time.

Deposit, progress and final presets

Five shapes: your own, Deposit 30%, Progress 40%, Final 30%, and extras only. The percentage ones need a base job amount and produce one clean labelled line. Every row stays fully editable afterwards.

Extras are not taxed twice

The invoice splits its rows in two. Your own rows are taxed at your invoice rate. The change-order rows are added after that, at exactly the total your customer signed.

Unsaved-changes guard

The editor remembers what the invoice looked like when it finished loading, then checks against that on every way out — the X, a tap on the background, the escape key. If anything changed, it asks whether to save or throw the changes away.

Customers pay the invoice online

Your customer taps Pay, pays on a proper hosted card page, and comes back. The payment is checked on our side, never taken on trust from their browser, and recorded against the invoice. Charges run on your own payment account. If you have not connected one, there is no button at all — rather than a button that fails.

Fold approved change orders into an invoice

A panel beside the invoice listing this job's approved change orders that are not yet billed. Tick the ones you want. They land either as one summary line per change order — CO-3: Concrete slab — or with every underlying line spelled out.

INVOICING

See invoicing
on one of your own jobs.

Twenty minutes, your building, your numbers. Bring the job where “I retype every invoice into another program” — we will show you exactly where that stops.

leads2build.com
Overhead doors on a finished building
New Invoice — payment schedule
Estimate (Job #41208)Locked to this projectHide ▴
Generate 4 invoices from payment schedule
One draft per stage, each with its $ amount pre-filled. Edit + send each separately.
Generate 4
Or pull modular pieces into a single invoice manually:
+ Materials $53,530.00+ Labor $34,920.00+ Customer Total $88,450.00
Payment Schedule (select stages to invoice)+ Insert 1 Stage
✓Down30%$26,535.00
Delivery40%$35,380.00
Frame Complete20%$17,690.00
Final10%$8,845.00
Progress Invoicing for Builders, Draw by Draw — Leads2Build