Most 3PL invoices are correct. The ones that aren't tend to be wrong in the same handful of places, over and over. Here's where to look, category by category.
The invoice is downstream of the rate card. If you open the invoice first, every number looks plausible in isolation — it's only next to the signed rate you agreed to that a $2.50 pick fee against a contracted $2.15 rate becomes visible. Pull the actual signed rate card or the most recent amendment before you look at a single invoice line. If you can't find it, ask your 3PL's account manager for a current copy — you're entitled to it, and asking is not adversarial.
Watch for two traps here: rate cards that were verbally renegotiated but never re-signed, and rate cards with an effective date that's already passed on an amendment you never actually agreed to. Both happen more often than you'd expect, and both mean the "current" rate on file with your 3PL might not be the one you actually signed.
This is usually the single largest line item on a fulfillment invoice, and the one with the most billing volume — which also makes it the category where small rate errors compound fastest.
Match the billed "per order" or "first item" pick rate against your contracted tier for that order volume. Rate cards are usually tiered by monthly order volume — confirm you're being billed at the tier your actual volume qualifies for, not a lower one.
Multi-item orders bill a separate, lower rate per unit after the first. Spot-check a sample of multi-item orders and recompute: (first-unit rate) + (additional units × additional-unit rate). A surprising number of drift cases are the additional-unit rate quietly billed at the first-unit rate.
These are often billed as a separate accessorial line rather than folded into the pick fee. Confirm they're priced per your rate card and not appearing as duplicate charges alongside a pick fee that already implies them.
Storage is billed by physical space — usually bins, shelves, or pallets — and prorated daily or billed monthly depending on the 3PL. The audit risk here is less about the rate and more about the tier: is your inventory actually occupying what you're being billed for?
The fastest storage check: request (or pull from your WMS portal) an inventory snapshot for the billing period and count actual pallets/bins occupied. Compare that count to what's on the invoice. A mismatch here is one of the most common — and most reproducible — findings.
Also check for long-term storage surcharges, which many 3PLs apply to inventory that's been sitting for a set number of days (commonly 60–90+). Confirm the surcharge is applied only to SKUs that actually crossed that threshold, not to your entire storage balance.
Receiving is typically billed one of three ways: a flat rate for the first block of time (often the first hour or two) plus an hourly rate after, a per-pallet rate, or a per-container rate for larger inbound shipments. Whichever method your contract specifies, the audit check is the same:
Returns are usually billed per return processed, sometimes with an additional per-item charge inside the return. The two things worth checking: that the return count on the invoice matches your actual return volume for the period (pull this from your OMS/Shopify, not the 3PL's own count), and that you're not being billed twice for the same return under two different line-item descriptions.
Most contracts include a monthly minimum — either a flat account fee or a "greater of X or your actual activity" clause. The audit check is simple but easy to skip: recompute your actual activity charges for the month and confirm the minimum is applied correctly — as a floor you're only charged if you fall under it, not stacked on top of your real usage.
| Category | Illustrative billed rate | Contracted rate | Monthly volume |
|---|---|---|---|
| Pick Fee — First Unit | $2.50 / order | $2.15 / order | 1,200 orders |
| Storage — Pallet | $22.00 / pallet | $22.00 / pallet | 40 pallets |
| Receiving — Hourly | $38.00 / hr | $38.00 / hr | 12 hrs |
Illustrative example only — not a real customer's data. A $0.35/order drift on 1,200 monthly orders is $420/month, or roughly $5,000/year, on one fee category alone.
Not every mismatch is a mistake, and not every mistake is worth disputing on its own — but a pattern across several invoices usually is. Before raising anything with your 3PL, gather the evidence: the specific invoice line, the rate card section it should match, and the dollar delta. A specific, well-documented ask ("this line should be $2.15 per your Rate Card §3.1, not $2.50, across these 14 invoices") gets resolved far faster than a general complaint that "the invoices seem high."
If you'd rather not spend the hours pulling rate cards, exporting invoices, and cross-referencing activity data yourself, that's exactly the work a 3PL invoice audit does for you — matched line by line against your contract, with a submission-ready dispute package for anything that doesn't reconcile.
Send one invoice and your rate card. We'll check it against every category above and tell you what we find — free, no commitment.
Get your free scan