Not a warning on the screen — a hard rule underneath every save. Same business, same job, same total, same day, and it will not go through. Equal progress draws are still fine: three identical instalments on one job is real billing. What is outlawed is the accidental repeat, which always lands on the same day at the same figure.
Also called: invoiced twice · duplicated the invoice · double billed the customer · clicked save twice
The second identical invoice is refused outright, not warned about on screen
Try itSame business, same job, same total, same day — the save is rejected. A check built into the screen gets stepped around by a second browser tab, a retry after a timeout, a background sync, and every path written after it. And the failure here is a retry: the save looked like it had not worked, so it was done again. Only the rule underneath is present for every single write.
The screen lags, you save again, and the customer gets two copies of a $17,152 instalment.
A customer who gets billed twice wonders what else you've got wrong. A check on the screen gets stepped around by a second tab, a retry or a sync; the rule underneath every save is the only one present every time.
Three equal instalments on one job are still fine — you say so on the record
Billing a job in equal draws is ordinary, so the block offers a second, deliberately differently worded way out: this is a separate charge, save it as well. That writes your say-so against the row, and the invoice goes through. Duplication stops being something that happens to you and becomes something a person states on purpose.
A job billed in three equal draws gets blocked on the second one, and the office starts working around the guard.
A guard that blocks honest billing gets switched off in people's heads. Equal draws are ordinary, so there's a deliberately different way through — and saying so on the record turns an accident into a decision.
The refusal names the invoice you already have
Instead of a failed save, you are told that INV-2026-0041, for this exact amount, was issued today — with two ways out: keep the one you have, or confirm this is a separate charge. And the half-made draft is removed, so a refused save does not leave a stray invoice behind for you to trip over later.
A save fails with no explanation and you spend ten minutes looking for the invoice it clashed with.
Being told exactly which bill you already have saves the hunt and the doubt. The half-made draft is cleaned up too, so a refused save never leaves a stray invoice to trip over later.
The same cheque cannot be recorded twice against an invoice
A payment carrying the same reference and the same amount on the same invoice is refused, and the form stays open with an explanation saying it was not added a second time — because closing it would look like it went through, and "try again" is exactly how $10,205.06 got recorded twice. Cash and unreferenced payments are deliberately left alone: the same customer paying the same round sum twice is ordinary.
A cheque gets keyed twice at month end, the job reads paid, and the real balance never gets chased.
Money that reads collected when it isn't is money nobody goes after. The form stays open with the reason, because closing it would look like it went through — and cash or unreferenced payments are left alone, since the same round sum twice is ordinary.
- 1Save an invoice that matches one already on the job — same amount, same day.
- 2The save is refused, and the one you already have is named on screen.
- 3Keep the one you have — or say it is a separate charge and it goes through.
- 4The half-made draft is cleaned up, so nothing is left behind.
A builder hit save on an invoice, the screen lagged, he closed out, came back and did it again — and the job ended up billed twice. A check built into the screen would never have caught it: two browser tabs, a retry after a timeout and a background sync all step around one. And the failure is a retry, by definition — the save looked like it had not worked. So the rule sits underneath every single write instead, where nothing can step around it. An identical bill on the same job on the same day cannot be created at all.
- Retries after an apparent failure creating a second identical invoice.
- Two tabs or a background sync racing to create the same bill.
- Duplicates only discovered when the customer complains.
"It really is a separate charge"
This is the way out of the duplicate block. An ordinary invoice carries no such statement, which is exactly why an ordinary repeat collides. You are shown the invoice it matched, and if you confirm this is genuinely a separate charge, the bill is allowed.
The same cheque cannot be recorded twice
Two real cheques never share a number, so a reference is a hard identity. Same invoice, same cheque number, same amount — it will not go on twice. Cash and unreferenced payments are deliberately left alone, because the same customer paying the same round sum twice is ordinary.
