Freight Invoice Validation: Four Checks That Catch Errors
Four comparisons decide whether a carrier invoice is approved, held or queried, and each one uses data you typically already hold.
How-to · 6 min · Alexandre de Perregaux, CEO, Intellyse · Published · Last updated
By Intellyse, makers of freight invoice audit software · About us
Many freight teams validate a carrier invoice by reading it: the total looks right for the lane, the carrier is one they use, the approver signs. That catches the obvious errors, a wrong currency or a shipment nobody recognises. It misses the line that is plausible on its own and wrong against the contract, because freight invoice validation is a comparison rather than a reading, and a comparison needs the second document open.
What does a carrier invoice check compare?
A carrier invoice check compares each invoice line with four sources: the shipment record, the contracted rate, the terms that decide who pays, and the invoices already received for the same shipment. A line passes when all four agree; a line that fails one is held or queried, and the failure is logged.
A freight invoice is the carrier's account of what happened, and validation is the act of checking that account against your own.
1. The shipment took place as billed
Compare the carrier reference, dates, origin, destination and chargeable weight or volume with your booking confirmation or a TMS export. Many TMSs export a shipment list with these fields; without one, the booking email typically holds them. A failure looks like a container number on no booking, a chargeable weight 40 per cent above the booked figure, or a delivery date earlier than the pickup. Hold the line and ask for the proof of delivery or the weigh ticket; a mismatch is grounds for a query, because rebookings and reweighs happen.
2. The price is the agreed one
Compare the base rate, each additional charge and the fuel percentage with the contracted rate tables, surcharge tables and fuel index valid on the shipment date. These usually sit in the contract annex, in any carrier tariff the contract incorporates by reference, and in the index publication for that month. A failure looks like a rate from an expired validity period, a fuel percentage from the wrong month, or a charge that appears on the invoice and nowhere in the agreement. The last kind is the hardest to catch, because nothing in your documents contradicts it. In the invoices audited on our platform in the second quarter of 2026, about a third of surcharge spend was billed under surcharge types with no contracted rate; a rate comparison alone could not flag any of it. Hold a line with no contracted basis and ask the carrier which tariff or clause it bills under. A missing rate does not make a charge unauthorised, but it is a price you have not agreed, which is grounds for a query before payment.
3. The charge is yours to pay
Compare the party billed for each charge with the Incoterm on the order or commercial invoice, the free time in the contract, and the accessorial rules agreed with the carrier. The delivery term usually sits on the purchase or sales order, the rest in the contract or, where it is silent, in the carrier's standard terms. A failure looks like destination charges on a shipment sold on terms under which the buyer bears them, storage billed from day one where the contract grants free days, or waiting time with no timestamps. Whether a charge is payable depends on the contract terms, any tariff incorporated into it and the governing law, so this check confirms what your documents say and queries what they do not. A duty line does not prove the wrong term was applied; it shows the term needs checking.
4. It has not been billed before
Compare the container or shipment reference and the amount with invoices already received from the same carrier, including credit notes and corrected invoices. The record usually sits in the accounts payable ledger or, where that system does not capture the shipment reference, in a running list of references already paid. A failure looks like the same container on two invoice numbers, a corrected invoice paid alongside the original, or a duplicate invoice arriving by post weeks after the emailed one. Hold the line and match it to the earlier document; if that one was paid, the second is a request for a credit note.
How do you run carrier invoice validation when you cannot check every invoice?
Write a sampling rule that says which invoices get every line checked and which get a sample, and hold it for a quarter before changing it. Typically the rule follows spend and past failures: full checks where the money and the errors are, samples elsewhere. A rule many teams can run this week:
- Every line for the two carriers with the highest spend.
- Every line on any invoice above a fixed amount, say EUR 5,000.
- Every line on any invoice carrying a charge type you have not seen from that carrier before.
- One invoice in five for the rest, per carrier, chosen by rule rather than by hand.
- Full checking next quarter for any carrier whose sampled invoices failed more than a set share, say one in ten.
The thresholds are yours to set; what matters is that they are written down, so the sample can be defended. In German-speaking teams the procedure runs as Frachtrechnungsprüfung, and the four checks are the same.
How should freight invoice verification failures be recorded?
Record every failed line in one log with the same six fields, whatever the carrier or mode, so that sorting by any column shows a pattern.
After a quarter, sort by check failed and by carrier. Three price failures for one carrier in a month are three queries; thirty point to a rate table that needs re-issuing or a billing fault on the carrier's side, and the log is what you bring to that conversation.
Why do invoice errors go unnoticed?
The approver typically sees the invoice and not the four documents beside it: the booking sits with operations, the contract with procurement, and the earlier invoices in the accounts payable freight ledger, sorted by supplier and due date rather than by shipment. And a charge with no agreed price produces no mismatch at all in a process that only compares the lines it knows.
What can you do about it this week?
If your shipment data lives in file exports rather than a connected system, freight invoice reconciliation without ERP integration covers how to work from those files.
Our Invoice Approval module gives the approver the comparison rather than the invoice alone: each line is checked against the contracted rates and the shipment record, and an invoice with a failed line is held before payment. Invoices route by region, country or reviewer, and approved costs are coded for the financial system.




