Freight invoice audit: how to check carrier invoices against rate confirmations and BOLs
Freight invoice audit playbook: match carrier invoices to rate confirmations and BOLs, check accessorials, set tolerances and run a dispute workflow.
On this page
Freight invoice audit automation compares every carrier invoice with what you agreed (the rate confirmation or contract) and what actually happened (the bill of lading and proof of delivery), then flags the lines that disagree. Clean invoices go to payment. Differences go to a reviewer with the evidence attached, and confirmed overcharges become disputes.
Why carrier invoices need auditing
A carrier invoice is a claim, not a fact. It states a linehaul rate, maybe a fuel surcharge, and a list of accessorial charges. Each of those can differ from what was agreed or what happened.
The causes are usually ordinary. A rate was quoted on the phone and the carrier bills the tariff. Detention is charged with no evidence of waiting time. A duplicate invoice arrives after a corrected one. The weight on the invoice differs from the BOL. Nobody is acting in bad faith, but without a systematic check you pay what you receive.
A manual audit usually means sampling a few invoices, or checking only the big ones. Automation lets you check every invoice, and that's where the volume of small errors becomes visible.
The documents you match
| Document | What it tells you | Key fields |
|---|---|---|
| Rate confirmation (or contract rate) | What you agreed to pay | Load or reference number, carrier, origin, destination, linehaul rate, fuel terms, permitted accessorials, pickup and delivery windows |
| Bill of lading (BOL) | What was shipped | Shipper, consignee, commodity, piece count, weight, special handling, pickup date |
| Proof of delivery (POD) | What was delivered and when | Delivery date and time, signature, received quantity, exceptions noted, arrival and departure times |
| Carrier invoice | What the carrier is charging | Invoice number, date, load reference, linehaul, fuel, each accessorial, total, remit-to details |
The invoice is compared against the other three. This is the freight version of three-way matching, which finance teams use for purchase orders, goods receipts and invoices. For the general pattern, see our accounts payable automation approach.
The audit process, step by step
- Capture the invoice. It arrives by email, carrier portal, EDI or mail. Store the original file with the time received.
- Extract the fields. Read the invoice header and every charge line using document processing. Charge lines are the hard part, because carriers describe the same charge in different words.
- Identify the load. Match the invoice to a shipment using the load number, PRO number, BOL number or a combination. If nothing matches with confidence, send it to a person.
- Pull the agreed terms. Fetch the rate confirmation, contract rate or tariff from your TMS or document store.
- Compare linehaul. Billed rate against agreed rate, within a tolerance you set.
- Compare fuel. Check the surcharge against the agreed fuel table or percentage for the invoice period.
- Audit each accessorial. Check that the charge was permitted and that evidence supports it (see below).
- Check shipment facts. Weight, piece count, origin and destination against the BOL, and the delivery date against the POD.
- Check for duplicates. Same carrier and load with the same amount, or a corrected invoice that supersedes an earlier one.
- Decide. Pass, hold for review or reject, with every check result recorded.
- Pay or dispute. Approved amounts flow to your payables system. Short pays and disputes follow the workflow below.
Accessorial charges: the biggest source of disputes
Linehaul differences are easy to spot. Accessorials need judgment, because the charge depends on what happened at the dock.
| Accessorial | What to verify | Evidence |
|---|---|---|
| Detention | Free time allowed, arrival and departure timestamps, whether the delay was caused by the facility | Gate or driver logs, POD times, appointment records |
| Layover | Whether the load was held overnight at the shipper's or receiver's request | Appointment records, correspondence |
| Lumper fee | Whether the receiver required unloading help, and the amount | Lumper receipt |
| Liftgate, inside delivery, residential delivery | Whether the service was requested and quoted | Order record, BOL special instructions |
| Truck order not used (TONU) | Whether the order was cancelled after dispatch under agreed terms | Cancellation message and time |
| Reweigh or reclass | Whether the weight or freight class changed | Scale ticket, corrected BOL |
| Fuel surcharge | Whether it follows the agreed table for that week | Fuel table, invoice date |
| Redelivery and storage | Whether a failed delivery was caused by the consignee | Delivery attempt record |
For each accessorial, an automated check does three things. It tests whether the charge is allowed under the agreed terms. It looks for evidence in the documents on file, such as timestamps on the POD. And it applies your rules, for example "detention above 4 hours needs a signed timestamp."
Where evidence is missing, the system doesn't reject the charge itself. It puts the line in a review queue with the rule that failed, so a person can ask the carrier for proof.
Key point: Automate the checking and the evidence gathering, and leave the verdict to a person. A system that puts the rate confirmation, the POD timestamps and the carrier's own invoice in one view lets a reviewer settle a dispute in a minute.
Tolerances and who approves what
Matching to the cent creates noise. Rounding, small fuel differences and weight adjustments would flood your queue. Set tolerances on purpose.
- Linehaul and fuel: a small absolute or percentage tolerance, for example within a few dollars, passes automatically.
- Accessorials: little or no tolerance. Each one needs a permitted-charge rule and evidence.
- Unmatched invoices: always reviewed.
- Bank details: any change to remit-to account details gets verified by a person through a known contact before payment.
- Approval limits: invoices or disputes above a set amount need a senior approver.
As an illustration, say a broker pays 2,000 carrier invoices a month. With a tolerance rule that passes clean invoices, the team might review only the flagged share, perhaps a few hundred, instead of opening every one. The real share depends on your carrier mix and how tidy your rate confirmations are, so measure it in a pilot.
The dispute workflow
Finding an overcharge doesn't recover the money. A dispute process does.
- Create the dispute record. Link the invoice, the line in question, the agreed term and the evidence.
- Calculate the amount. The difference between billed and supported.
- Draft the carrier message. A short, factual email citing the load number, the agreed rate, the line disputed and the attached evidence. A reviewer reads it before it goes.
- Choose short pay or hold. Per your contract and policy, either pay the undisputed amount now and dispute the rest, or hold the whole invoice. Don't short pay unless your terms allow it.
- Track the response. Set a due date. If the carrier replies with new evidence, the case reopens for review.
- Resolve and record. Accept the carrier's reply, receive a credit memo or escalate. Store the final outcome and the reason.
- Learn. Recurring disputes by carrier or charge type point to a contract gap, a dock process problem or a carrier that needs a conversation.
Data and integration notes
- Rates and terms. Rate confirmations often live in email. Extract their terms into structured records when the load is booked, so the audit has a clean source later.
- Load identifiers. Carriers use different references. Keep a mapping across load, PRO and BOL numbers.
- Accounting. Approved invoices post to your AP or ERP system. Disputed amounts need a separate status so they aren't paid by accident.
- Document storage. Keep original PDFs, the extracted data, rule results and reviewer actions for audit and for dispute evidence.
- Third-party freight audit services. Some firms outsource audit and pay to a specialist. In-house automation suits teams that want control over the rules and the data, or have unusual contracts. Weigh both on cost and control.
What to measure
- Match rate: the share of invoices matched to a load without manual lookup.
- Straight-through rate: the share paid with no human touch, and the later error rate on those.
- Overcharge caught: the value of differences found, split by linehaul, fuel and accessorials.
- Dispute outcomes: the share upheld, partly upheld and rejected, and average days to resolve.
- Review time: minutes per flagged invoice.
Run the first version in shadow mode for a few weeks. Compare its flags with what your team finds and set tolerances from real numbers. Our overview of AI for logistics covers the other workflows that feed this one, such as POD capture, our carrier invoice audit workflow shows how we automate it end to end, and our logistics industry page describes the wider picture.
If your team pays carrier invoices without matching them to rate confirmations, book a strategy call. Send a few sample invoices with their rate confirmations and PODs, and we'll tell you where matching would catch differences and where the data is too thin to rely on.
Frequently asked questions
What is a freight invoice audit?
It is the process of checking a carrier's invoice against what was agreed (the rate confirmation or contract) and what happened (the BOL and POD) before paying. Differences in rate, fuel, weight or accessorial charges are flagged and, if confirmed, disputed.
What documents do you need to audit a carrier invoice?
At minimum, the invoice and the rate confirmation or contract rate. The BOL and POD add shipment facts, such as weight, quantity and delivery times, that support or contradict accessorial charges.
Can AI handle detention and accessorial charges?
It can check whether your terms permit a charge and whether the documents contain evidence for it, such as arrival and departure times. Whether a delay was the receiver's fault is often a judgment call, so those lines should go to a reviewer.
Should we short pay when we find an overcharge?
Only if your carrier agreement allows it. Some contracts require paying the undisputed amount and disputing the rest, while others set dispute windows. Check your terms, and let a person decide each case.
How does this differ from three-way matching in accounts payable?
The idea is the same: compare an invoice to documents that show what was ordered and received. Freight adds complications such as accessorials, fuel tables, multiple reference numbers per shipment and evidence buried in driver photos and emails.
Get the next article by email
One practical piece a month on automating real operations. No promotions.