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
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.
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.
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.
The job's bills and extras live in one Billing card
Try itInside 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.
To know whether a job is behind on money you open its invoices, then its change orders, then add it up in your head.
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.
Choose exactly which lines go on it
Try itEvery 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.
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.
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.
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.
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.
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.
A change order can be its own bill, or ride on the next draw
Try itEach 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.
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.
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.
A bill-to that is fields, not a paragraph somebody pasted
Try itLegal 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.
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.
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.
Twenty switches decide what is on the page
Try itLogo, 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.
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.
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.
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.
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.
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.
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.
The PDF the customer downloads has a scrollbar, a Send button and half a status pill baked into the top of page one.
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.
Their own copy, always
Try itEvery 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.
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.
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?
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.
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.
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.
The link is the lock, so it is not a guessable one
Try itThe link is built from 24 bytes of real randomness at the moment the invoice is created — 48 characters, from the same generator a session key comes from, not from the clock and not from an everyday random number. It is the boundary around the amounts, the lines and the payment details. Everything the customer can do with it is on the public invoice document.
One customer's invoice is number 0041, so the next is 0042, and anyone who tries it is reading a neighbour's contract price.
Your customers trust you with their numbers — one guessable link would break that. The access lives in the link, so the link is 24 bytes of real randomness, not a number anyone can count up from.
Opening it is what marks the invoice viewed
Try itThe 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.
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.
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.
Record the payment the way it actually arrived
Try itCheck, 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.
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.
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.
Duplicates are refused, not warned about
Try itSame 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.
Sending the same $25,728 draw twice, which reads to a customer as either incompetence or an attempt.
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.
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.
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.
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.
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.
A mistake tidied away in October, and a set of books in January that no longer matches what happened.
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.
Reversals are entries, not erasures
Try itBounced 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.
Fixing a bounced cheque by editing the payment, leaving a job that reads paid and no trace that anything was ever wrong.
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.
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.
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.
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.
What this job still owes, draw by draw
Try itInside 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.
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.
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.
Grouped by project, with the money visible before you open it
Try itEvery 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.
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.
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.
It remembers where you were
Try itClose 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.
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.
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.
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.
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.
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.
Accounting is where the money lives — invoices are one tab of it
Try itInvoicing 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.
Money in lives in one program and money out in another, so nobody can say how the month actually went until the accountant does.
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.
Every invoice in the business, grouped by job
Try itUnder 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.
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.
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.
You can start an invoice here, not only inside a job
Try itNew 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.
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.
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.
…and what the books say
Try itA 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.
Marking a $17,000 wire paid in the books, forgetting the job screen, and chasing a customer who paid you eleven days ago.
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.
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.
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.
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.
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.
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.
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.
- 1Start from the payment schedule or pick lines from the estimate — at the customer's prices, with the markup already inside them
- 2Change orders appear as billable lines you can include or hold
- 3The bill-to comes from the customer record, structured, not a blob of text
- 4It renders in your branding and downloads as a PDF
- 5Payments post against it; a duplicate is refused, not warned about
- 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
- 7It syncs to QuickBooks, and what the books say comes back
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.
- 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
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.




