How to audit a 3PL invoice, step by step
A practical way to check a 3PL invoice against your contract: the math, the prices, the quantities, duplicates, minimums and your dispute window.
Auditing a 3PL invoice means checking three things: that the invoice adds up, that every price on it matches your contract, and that every quantity matches what actually happened in your business. Most billing problems are one of those three, and you can find them with your contract, your invoices and an export of your orders.
Here’s the order we work in, and why. There’s a printable version of the whole thing in the 3PL invoice audit checklist (PDF, no email required).
Before you start: get the four things you need
- Your contract, plus every amendment and price-change notice. The signed agreement is rarely the whole story. Rate cards get attached later, prices get updated by email, and peak-season surcharges arrive as a separate notice. If a price lives in a document you can’t find, you can’t check it.
- The invoices themselves, ideally a few months in a row. Patterns are much easier to see across months than in a single bill.
- Your own numbers: orders shipped in the period, units received, and whatever inventory snapshot your 3PL uses for storage.
- The dispute window. Find the clause that says how long you have to raise a billing question. Do this first, because it decides which months are still worth working on. Our dispute deadline checker does the arithmetic.
Step 1: Check that the invoice adds up
Before comparing anything to your contract, check the invoice against itself.
- Does each line’s quantity times its rate equal the line amount?
- Do all the lines add up to the stated total?
- Are credits actually subtracted rather than listed and ignored?
This sounds too basic to be worth the time. It isn’t. Invoices are assembled from several systems, rates get rounded in the printout, and a line whose amount doesn’t match its own quantity and rate is the easiest thing in the world to prove and the fastest to get credited.
Step 2: Match every line to a price in your contract
Go through the charge types on the invoice and point each one at the place in your contract that authorizes it. You’ll end up with three piles:
- Priced in the contract. Good: on to step 3.
- Priced somewhere else, like an amendment or an email. Fine, but write down which document, because that’s the evidence you’ll need later.
- Not priced anywhere. These are the ones to ask about. A charge with no basis in any document isn’t necessarily wrong, but nobody should be paying it just because it appeared on a bill.
Step 3: Compare the prices, and watch the dates
For every line, compare the rate billed with the rate in your contract. Two details catch people out:
- When a new price took effect. A price increase that starts on the 15th shouldn’t be applied to the whole month.
- Tiers. If your pick fee drops after a volume threshold, check that the threshold was actually applied, and that it was applied over the right period.
Illustration with made-up numbers. Your rate card says $0.45 for each additional pick. The invoice bills 12,400 additional picks at $0.52. That’s $868 in one line, from a seven-cent difference nobody would notice by eye.
Step 4: Check the quantities against your own data
This is the step that needs your data, and it’s where the larger amounts usually hide.
| What’s billed | Check it against | What goes wrong |
|---|---|---|
| Orders picked and packed | Orders shipped in the period, from your store | Cancelled or unshipped orders still billed |
| Picks per order | Units per order in your order export | Every line billed as a “first pick” rather than additional picks |
| Storage | The inventory your 3PL actually held, at the measure your contract names (pallet, bin, shelf, cubic foot) | Space billed at month-end peak instead of what the contract says, or empty locations still billed |
| Receiving | Your purchase orders and receipts | Counted per unit when the contract prices per carton, or the same receipt billed twice |
| Returns | Returns actually processed | Returns billed at a full order rate |
You don’t need perfect data to do this. Even a rough count that’s 20% away from the billed quantity is worth a question.
Step 5: Look for duplicates
Two kinds show up. The obvious one is the same invoice line twice. The subtler one is the same work billed under two names: a “pick fee” and a “handling fee” on the same order, or a receiving charge that also appears inside a special project. Sort the lines by order or reference number and look for repeats.
Step 6: Understand what counts toward your minimum
If your contract has a monthly minimum, find the sentence that says what counts toward it. Some contracts count everything you spend; others count only warehouse services and exclude postage, packaging or pass-through shipping. The difference decides whether a minimum “top-up” charge on your invoice is right, and it’s the single most misunderstood clause in 3PL billing. When in doubt, ask your 3PL to show the calculation.
Step 7: Separate pass-through shipping from markups
Shipping rebilled to you should match what the carrier charged, unless your contract says your 3PL adds a stated percentage. Compare a sample of shipments with the carrier’s own invoice or rate table, and pay attention to dimensional weight and surcharges: those are carrier rules, not your 3PL’s, and they change. The dimensional weight calculator shows what a box should bill at.
What to do with what you find
Group your findings by cause rather than listing every line. “Additional picks were billed at $0.52 instead of the contracted $0.45 on 12,400 picks across three invoices” is one clear item with a number attached. Four hundred separate line items is a spreadsheet nobody reads.
Then send one email, with the evidence attached, and ask a question rather than making an accusation. There’s a template you can copy if it helps. Billing mistakes are usually exactly that: a rate card that was updated late, a tier that wasn’t switched on, a carrier surcharge passed through without the contract’s terms. Warehouses correct these regularly, and the tone of the first email decides how quickly it happens.
Keep every finding tied to its proof: the invoice line, the page of the contract that sets the price, and the number from your own system. A credit request that a warehouse can verify in five minutes gets paid. One that requires research doesn’t.
Questions people ask
How often should I check my 3PL invoices?
Every month, at least on the summary level: compare the total and each charge type against last month, and look into anything that moved more than your order volume did. A full line-by-line check is worth doing after any rate change, after peak season, and before you renew or renegotiate.
My contract doesn't mention a dispute window. What now?
Ask your 3PL in writing what their billing-dispute period is, and keep the answer. Without a stated window, the safe assumption is that older invoices get harder to correct the longer you wait, so start with the most recent months.
How far back can I ask for credits?
That depends on what your contract says and on what your 3PL is willing to do. Most contracts set a period for raising billing questions, often somewhere between 30 and 90 days after the invoice date. Read your own agreement first, then ask. This is general information, not legal advice.
Do I need special software to do this?
No. A spreadsheet, your contract, your invoices and an export of your orders will get you a long way. Software helps when you have thousands of lines a month, several warehouses, or a rate card with tiers that change during the month.
Want this done for you? Upload your contract and your latest invoices. We check every charge against your contract and show you what we find, free.
Check my invoices free