Blog/Logistics & Supply Chain

Freight Invoice Audit: Catch Rate and Surcharge Errors Before Paying

Audit carrier and shipping line invoices against booked rates, surcharges and job data so overcharges are disputed before payment, not after.

By Sagar Makker · 7 min read · October 2026
Free cargo shipping container image
In short
Match every carrier invoice to the booking, the agreed rate and the shipment data
Check surcharges and local charges line by line against the rate record
Raise disputes within a window you define and track recoveries
The problem

This is for finance heads, procurement managers and operations leads at forwarders and shippers who pay shipping lines, airlines, NVOCCs and overseas agents. Carrier invoices often include outdated rates, unexpected surcharges, wrong container counts or charges billed twice. Paid invoices are hard to recover. This post sets out a freight audit routine that matches each invoice to what was agreed and moved, who owns each check, and how to dispute cleanly.

Accounts payable receives a pile of shipping line and agent invoices every week, many as PDFs with codes nobody outside operations understands. With vendor payment dates looming, the team checks that the job number exists and the total looks reasonable, then pays. Operations assumes finance checked the rates; finance assumes operations did.

Months later, a margin review shows several jobs made a loss. Digging in, someone finds a surcharge that should not have applied, an old rate used after a renewal, and one invoice that was paid twice under slightly different numbers. By then the carrier's dispute window has passed and the money is effectively gone.

Why it happens
01Agreed rates and surcharges sit in emails and spreadsheets, not in one rate record
02Invoices are checked only for job number and total, not line by line
03Operations and finance each assume the other has verified the charges
04Charge codes differ between carriers, making comparison slow and error-prone
05No duplicate check across invoice numbers, job numbers and amounts
How to fix it
1
Keep one agreed-rate record
The procurement or pricing lead stores every agreed rate, surcharge basis, free time and validity per carrier and lane in one table. Invoices are audited only against this record, never against memory.
2
Map charge codes to your list
The finance controller builds a mapping from each carrier's charge codes to your internal charge list, such as ocean freight, fuel surcharge, terminal handling and documentation. This makes line-by-line comparison possible.
3
Match invoice to job data
For each invoice, the AP executive checks container count and type, weight, routing and dates against the job file, then compares each mapped charge to the agreed rate. Differences above a threshold you set are flagged.
4
Run a duplicate check
Before payment, finance checks for repeat invoice numbers, the same job billed twice and identical amounts from one vendor within a short period. Hold any match until operations confirms.
5
Dispute fast and track outcomes
The operations owner of the job raises disputes with evidence within a window you define, well inside the carrier's terms. Finance tracks each dispute to credit note, rejection or write-off.
Worked example
A forwarder paying many lines and agents

A mid-sized forwarder in Mumbai paid invoices from several shipping lines, NVOCCs and overseas agents. Before, AP paid on job number and total, and margins were reviewed only quarterly. The firm built one agreed-rate table, mapped carrier charge codes to an internal list and introduced a line-by-line check with a threshold for flags. Disputes were assigned to the job's operations owner with a fixed internal deadline. After a few months, finance saw overcharges caught before payment rather than discovered in margin reviews, duplicate invoices were stopped at the AP stage, and job profitability reports became something managers trusted.

Common mistakes
×
Auditing only large invoices
Small surcharges and documentation fees add up across many jobs. Use rules to check every invoice and reserve manual review for the flagged ones.
×
Disputing without evidence attached
Carriers reject vague disputes. Attach the agreed rate, booking confirmation and shipment data with each dispute so it can be settled in one exchange.
×
Ignoring disputes after raising them
Open disputes quietly expire. Track every one with an owner and a follow-up date until a credit note arrives or it is formally closed.
Where an AI agent helps
Input
Carrier and agent invoices, your agreed-rate table and job files
Agent does
Maps charge codes, compares each line to agreed rates and job data, and flags overcharges and duplicates
Human gate
AP lead approves payment; job owner approves each dispute before it is sent
Outcome
Audited invoices marked pay, hold or dispute, with draft dispute emails
Checklist
Build one agreed-rate table per carrier and lane
Map every carrier charge code to your internal list
Set a flag threshold for rate differences
Run a duplicate check before each payment batch
Assign disputes to the job's operations owner
Track every dispute to a credit note or closure
What to measure
Invoices flagged per hundred audited
Value of overcharges caught before payment
Average days to close a dispute
Duplicate invoices stopped before payment
Questions
Should we audit before or after payment?

Before, wherever possible. Recovering money already paid is slow and depends on goodwill. If payment terms are tight, audit as soon as the invoice arrives and keep flagged invoices out of the payment run until resolved.

How do we audit charges that vary with fuel or currency?

Record the agreed basis, such as the published surcharge for the sailing month or the exchange rate source and date. The audit then checks that the right basis was applied, not that the number matches a fixed figure.

Is freight audit worth it for a small forwarder?

Yes, in a lighter form. Even a basic rate record and duplicate check can catch obvious errors. Start with your highest-volume carriers and add others once the routine is stable.

Who should own freight audit, finance or operations?

Both, with clear roles. Finance owns the process, duplicate checks and payment holds. Operations owns the facts of each job and raises disputes. Write this split down so neither side assumes the other has checked.

Keep reading
All posts →
Colorful shipping containers shipping terminalLogistics & Supply Chain
Shipping Bill and Bill of Entry Prep: Pre-Filing Checks That Work
7 min readRead →
Colorful shipping containers shipping terminalLogistics & Supply Chain
Answering Freight RFQs in Minutes Instead of Days: A Practical Setup
4 min readRead →
Free cargo shipping container imageLogistics & Supply Chain
Normalising Carrier Rate Sheets So You Can Compare Rates Fairly
5 min readRead →
Next step

Want this fixed in your business?

Send the workflow. You get a scope and a fixed price within two working days — or a straight answer that it isn't a fit.

Secure by default · find → fix → verify · authorised scope only
Send a brief →enquiry@xdqlabs.com