Intellyse

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

ShareLinkedInXEmail
Two people pointing at the quantity, unit price and cost columns of a printed invoice on a clipboard
Photo: Kindel Media on Pexels
Key takeaways
  • Freight invoice validation is four comparisons: the shipment took place as billed, the price matches the agreed rate, the charge falls to the invoiced party under the contract, and the same shipment has not been billed before.
  • Each check draws on data the shipper typically already holds: the booking or TMS export, the contracted rate tables, the delivery and free-time terms, and earlier invoices from the same carrier.
  • When every invoice cannot be checked, a written sampling rule and a failure log that records the check, the carrier and the amount show where errors cluster.

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:

  1. Every line for the two carriers with the highest spend.
  2. Every line on any invoice above a fixed amount, say EUR 5,000.
  3. Every line on any invoice carrying a charge type you have not seen from that carrier before.
  4. One invoice in five for the rest, per carrier, chosen by rule rather than by hand.
  5. 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.

FieldWhat to recordWhy it matters
CarrierName as it appears on the contractFailures often cluster by carrier
ReferenceInvoice number and shipment referenceMatches the credit note later
Check failed1 Shipment, 2 Price, 3 Liability or 4 DuplicateShows which control is weakest
Amount at issueThe difference, not the invoice totalSorts the log by money
ActionHeld, queried, or approved with a noteShows what the team did
OutcomeCredit note, corrected invoice, or accepted with reasonShows how the carrier responds

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?

This week's test
Tick a step to reveal the next
  1. Run all four checks on last month's invoices from your two highest-spend carriers, with the four documents open.
Step 1 of 4

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.

Free analysis, 100 shipments

We analyse 100 of your shipments and show you the savings.

  • Send 100 recent invoices with their shipment data and contract rate tables, and every line is checked against them.
  • You receive each failed line with the check it failed, the amount at issue and the document it was compared against.
  • Charges with no contracted rate are listed separately, with the amount billed under each charge type.

FAQ

Do we need a TMS for carrier invoice validation?

No. The four checks need a shipment record, the contracted rates, the terms that decide who pays and the earlier invoices, and many teams hold these as booking confirmations, contract annexes and an accounts payable export. A TMS makes the first check faster; it does not change what is compared.

What should we do with a charge that has no contracted rate?

Hold the line and ask the carrier which tariff or clause it is billed under, before payment. A missing rate is grounds for a query rather than proof of an error, because whether the charge is payable depends on the contract terms, any tariff incorporated into it and the governing law.

How many invoices should be sampled when we cannot check them all?

There is no fixed share; write a rule that checks every line where spend and past failures are highest and samples the rest, then hold it for a quarter. Move a carrier to full checking when its sampled failure rate crosses the threshold you set.

About the author

Alexandre de Perregaux, CEO, Intellyse

Alexandre de Perregaux is CEO of Intellyse. Intellyse builds freight invoice auditing software in Zurich that checks carrier invoices against contracts and shipment data across ocean, air, parcel and road.

ShareLinkedInXEmail
Intellyse - ETH Zurich and HSG Startup