A page of charges, paid on trust
A forwarder invoice arrives for a container that landed last month. It lists ocean freight, a bunker adjustment, terminal handling, documentation, a customs clearance fee, a port security charge, a delivery charge and a line called 'other'. The quote you accepted had fewer lines and a lower total. Some of the difference is probably fair. Some might not be.
Nobody has time to check it properly, and the forwarder is a good partner, so it gets approved and paid.
Why forwarder invoices go unchecked
Checking a forwarder invoice means finding the quote, the shipment events and any extra services, then comparing line by line. That information is scattered across emails, and the charge names on the invoice rarely match the quote. Charges like storage or waiting time are legitimate when caused by delays, but you need the shipment dates to know. So invoices are checked by total, if at all.
| Invoice line | What you need to check it |
|---|---|
| Ocean freight and surcharges | Accepted quote and validity |
| Terminal and port charges | Quote, or standard tariff |
| Storage or detention | Discharge, release and gate dates |
| Clearance and documentation | Agreed fees |
| Extra services | Who asked for them and when |
What unchecked invoices cost
Small overcharges and duplicate lines add up across a year of shipments. Charges caused by your own delays, like storage, are not visible as a problem to fix. Landed cost includes costs that should not be there. And when you do query something, it is months later with no evidence to hand.
Forwarders are not usually the problem here. Most invoice errors are honest: a rate applied from the wrong tariff, a charge entered twice, a surcharge that changed between quote and sailing. They are just as happy to correct them when asked clearly. The difficulty is entirely on your side, in having the information to ask.
The volume matters too. An importer bringing in a container every week receives a steady stream of these invoices, and each one is a small puzzle. Checking them properly by hand is nobody's full-time job, so it becomes nobody's job at all.
The invoice checking we build
- Forwarder invoices are read from email by an extraction step that captures each line, its amount and the shipment references.
- Each invoice is matched to the shipment and the accepted quote, and each line is mapped to a standard charge type.
- Lines are checked: freight against the quote, time-based charges against the recorded shipment dates, fees against agreed rates, and all lines against earlier invoices for duplicates.
- Lines that pass are marked clean. Lines that are new, higher than quoted or duplicated are flagged with the reason.
- Clean invoices go to your accounts system through its API. Flagged ones go to a person, who can send a query to the forwarder from the tool with the evidence.
- Checked charges feed the landed cost of the shipment.
- Every forwarder invoice checked, not just the big ones.
- Queries sent with evidence attached.
- Charges caused by your own delays shown clearly, so you can fix the cause.
What accounts payable looks like after
Most forwarder invoices pass straight through. The few that do not arrive with a clear reason. Queries to the forwarder are specific and backed by dates and quotes, which makes them quicker to resolve and keeps the relationship good. And you see which charges keep appearing, which is useful for the next rate negotiation.
Recognise any of these?
- Forwarder invoices are approved by total.
- Nobody compares invoices with quotes.
- Storage and detention charges are paid without checking dates.
- Charges on invoices do not match names on quotes.
- You have found a duplicate charge by chance.