checafatura

How it works

Five steps, and none of them is a black box.

checafatura is not a model that produces a verdict you have to trust. Each step is something you can read, and each conclusion is a comparison you could have made yourself with more time.

1. Your records go in

Customers, orders, order lines and payments arrive as CSV or Excel. The import never assumes a column name. You upload a file, checafatura reads its headers and proposes a mapping onto its own model, and you confirm or change it before a single row is loaded. Saving that mapping means the next export from the same system imports in one step.

Re-importing a corrected file updates the rows it matches rather than duplicating them, so fixing a spreadsheet and uploading it again is the normal way to fix the data.

Start with the free invoice reconciliation CSV templates and two fictional invoices to check.

2. The invoice is read

An invoice can be a PDF, a spreadsheet holding one or many, or typed in by hand. A PDF is read through its text layer and a set of label patterns; a spreadsheet goes through the same mapping mechanism as everything else.

When a field cannot be read, checafatura says which field, marks the invoice as partially read, and sends it to a person. It does not guess at a total.

3. It is matched to a customer and an order

An account number or a tax number is an exact match and scores as certain. An exact name is strong but not certain, because two customers can share a name. An approximate name — a misspelling, a different legal suffix, accents dropped by whoever typed it — is matched and reported as approximate, with the runners-up offered beside it.

Without an order reference, checafatura looks only inside that customer's own orders and scores each on amount, products and date. It does not search every order you have ever taken for one whose total happens to be right.

How this fits two-way and three-way matching — invoice, order and payment received — is in the guide to two-way and three-way invoice matching.

4. Your checks run

A check is a row an administrator edits: something to measure, a comparison, a tolerance, and what failing costs. "Invoice total is within one euro of the amount expected, and outside that a person looks" is one such row. So is "the customer must match, and failing blocks approval outright."

Each check comes back as passed, failed, or not checked. The third is the one that matters: an invoice with no matched order has no expected amount, so the total check could not run, and that reaches a person rather than quietly counting as a pass.

You can watch this happen without an account: the free invoice checker runs these same checks in your browser against an invoice and an order you type in. Every check, what it catches and what to do when it fails is in the printable invoice approval checklist. A fictional wine sale checked four ways — clean, wrong quantity, paid in part, payments not yet imported — is worked through, in Portuguese, at Conferir faturas de clientes na distribuição de vinhos. Possible repeats within one exported CSV — same customer identifier, invoice number, total and currency — can be found in the browser, without an account, at Encontrar faturas duplicadas num CSV. That page compares the rows of one file with each other; it is not the account's duplicate check, which compares each incoming invoice's number and total with the invoices already received. When a check finds a difference, a neutral message asking a customer or colleague to confirm the two records can be drafted, in Portuguese, atEmail para esclarecer uma divergência numa fatura. An invoice export and a payment export can be compared, in the browser and without an account, at Conferir pagamentos e faturas em dois CSV. That page sums the payments that carry exactly the same customer identifier, invoice reference and currency as an invoice; the account instead checks each invoice against the payments imported into it.

5. It recommends, and you decide

A failed blocking check means do not approve. A failed reviewing check, or a required check that could not run, means a person looks. Everything passing means approve — and until an administrator switches automatic approval on, that is still a recommendation with your name going on the decision.

Whichever you choose is recorded with the checks it was based on, your name, the time, and — if you went against the recommendation — the reason you gave, which checafatura insists on.


What it does not do yet

It does not read photographs or scans

A PDF with a text layer is read. A scan or a phone photograph has no text to read and there is no character recognition in this version. The document is stored and attached, and the figures are typed in.

It does not approve anything on another platform

Approving here records the decision here. The connector for an external invoice platform is defined and waiting for access to a real one; until then, nothing leaves this application.

It does not fetch your data on a schedule

Files are uploaded. A REST connector, a database connector and cloud storage are each defined as a source you can see in the administration screen, and each says plainly that it is not connected.

Create an accountReport a problem