Free invoice checker
Check an invoice against the order and the payment.
Type in the invoice, the order as you have it, and what has been paid. The same checks an account runs come back passed, failed or not checked, each with its reason, and a recommendation: approve, a person should look, or do not approve.
No account. It runs in your browser: nothing you type is sent anywhere.
What each check means
An invoice is compared with the customer it names, the order it belongs to and the payments received against that order. Each difference costs something different:
| On the invoice | Against your records | What a difference means |
|---|---|---|
| Customer name, account, tax number | The customer record | A mismatch blocks approval |
| Order reference | The order, and whose account it is on | Another customer's order blocks approval |
| Products and quantities | The order lines | Outside tolerance, a person looks |
| Unit prices | The agreed prices | Outside tolerance, a person looks |
| Total | The amount expected | You set how much difference is fine |
| Amount paid | The payments received | Partial and over-payments are flagged |
| Invoice number and total | Everything received before | A repeat is blocked as a duplicate |
The checks this page runs
These are the checks a new account starts with, and the tolerances it starts with. In an account each one is a row an administrator can retune, switch off or make stricter.
| Check | What it looks at | Passes when | If it fails |
|---|---|---|---|
| Customer is identified | The invoice must be traceable to a customer on record. | must be true | Do not approve |
| Customer match is certain enough | A name-only or approximate customer match goes to a human. | at least 95% | A person looks |
| Invoice references a valid order | There must be an order on record that this invoice belongs to. | must be true | A person looks |
| Order is on the customer’s account | An invoice quoting another customer’s order is never approved automatically. | must be true | Do not approve |
| Products are on the order | Every product line on the invoice should appear on the order. | at least 100% | A person looks |
| Quantities match the order | Units invoiced should be units ordered. | at most 0 | A person looks |
| Unit prices are the agreed prices | A cent of rounding is tolerated; anything more is not. | at most 0.01 | A person looks |
| Invoice total is the amount expected | Within one euro. More than that, a person looks at it. | at most 1.00 | A person looks |
| Invoice adds up | Subtotal plus tax should equal the stated total. | at most 0.02 | A person looks |
| Amount paid matches what we received | The invoice’s paid figure against the payments on record. | at most 1.00 | A person looks |
| Invoice date is within the expected window | An invoice more than 60 days after the order is worth a look. | at most 60 days | A warning only |
| Invoice is not dated in the future | A future date is either a typo or something worse. | must be false | Do not approve |
| Currency is the customer’s currency | An invoice in an unexpected currency is not a rounding problem. | must be true | A person looks |
Two checks an account runs are left out here, rather than reported as passed:
- Invoice has not already been processed. This page keeps no record of earlier invoices, so a repeat cannot be recognised. In an account it runs on every invoice.
- The document was fully read. You typed the figures in, so there was no document to read. In an account a PDF is read and this says what could not be.
Questions
Is my invoice uploaded anywhere?
No. The checks run in this page, in your browser. Nothing you type is sent to a server and nothing is kept once you close the tab. The site counts visits, as every page here does; it does not see what you type.
Can it read a PDF?
Not on this page — here you type the figures in. In an account, a PDF with a text layer is read, and whatever could not be read is named and sent to a person. A scan or a photograph is stored and attached but not read, because there is no character recognition yet.
What does “not checked” mean?
That a check could not run, because the information it needs is not there — no payments entered, no subtotal on the invoice. It is never counted as a pass. A required check that could not run sends the invoice to a person rather than approving it.
How do I run this on every invoice?
Create an account and import your customers, orders and payments from CSV or Excel. Each invoice you add is then matched and checked against those records, with checks and tolerances you can change, and every decision is kept in an audit log that cannot be edited.
Further reading
- Invoice approval checklist: the 15 checks before you approve — Each check in plain words, what it catches and what to do when it fails. Prints on one or two pages.
- Invoice doesn’t match the purchase order: the common discrepancies, and what to do — The five differences between an invoice and its order that come up most, and how to handle each.
- Two-way and three-way invoice matching, explained with examples — What each kind of match compares, with a worked example of each, and the one rule that keeps them honest.
Run a site for accountants or sales teams?Add this checker to your website — one line of code, in English or Portuguese.