How to check 3PL receiving charges against what actually arrived
Why receiving charges are worth matching#
A receiving charge can follow each inbound shipment, and one contract can price receiving several ways, so the unit can be wrong as well as the count. A receipt here means the 3PL's record of an inbound shipment, or part of one, checked in, not a paper or warehouse receipt.
Gaps can come from how freight arrived and how receipts were set up rather than from intent. A floor-loaded container takes more labor than a palletized one, and a shipment without an accurate advance ship notice (ASN) takes longer to check in. For the full audit, see How to audit a 3PL invoice, step by step and Activity verification: did the billed activity actually happen?
What you need before you start#
Contract terms. The basis for each freight shape (single-SKU or mixed pallet, loose or mixed carton, container); whether receiving includes unloading and putaway; the definition of a receipt; minimums; the hourly trigger, increment, per-worker and approval rules; penalty triggers; facility rates; and whether it bills the counted quantity or the quantity on your ASN.
The 3PL's records. Receipt-level detail with the purchase order (PO), ASN or receipt ID, date, billing unit, quantity and any surcharge, plus an hours log for hourly lines. See The supporting detail files you should always request and Inventory snapshot, receipts, shipments, adjustments and billing detail: what each should contain.
Records the 3PL didn't create. Start with the records you hold: your PO and the inbound ASN, the notice you or your supplier send your 3PL before a shipment arrives. Add the supplier's packing list and the carrier's record. For interstate less-than-truckload (LTL) or truckload freight, the carrier's bill of lading or receipt must list the number of packages under federal rules for for-hire motor carriers, as of October 20261. For parcel, tracking shows how many packages were delivered. These records don't always count separately: an ASN copied from the supplier's packing list, or a carrier's piece count taken from the shipper's paperwork, repeats one count.
An ERP receipt posted from the 3PL's feed is the 3PL's count, not an independent one.
Match every charge to a shipment, and every shipment to a charge#
Build a receipts register for the month: one row per inbound shipment with PO, ASN, arrival date, carrier pieces, receipt ID, receipt date and counted quantity in the billed unit. One 3PL's help center tells customers to match each receiving line to its shipment by date and delivery reference5, and one guide suggests every line carry the receipt ID and PO number6.
Match in both directions. A charge with no shipment needs an explanation; a shipment with no charge may be an undercharge or on a later invoice; see Not every variance is an overcharge: undercharges, manual items and special projects.
Match on the receipt date as well as the arrival date. One 3PL states a standard turnaround from arrival to stock being available5, and one warehouse management system (WMS) has a tiered receiving setting that calculates charges when a receipt is confirmed3. So a shipment that arrives late in one billing period can be received, and billed, in the next. See Billing cycles: weekly, semi-monthly and monthly, and what's billed when and Receiving backlogs: causes and how to get unstuck.
One delivery can also become two receipts when it's received in parts. Whether that means two per-receipt fees or two minimums depends on how the contract defines a receipt; one encyclopedia page lists split-receipt fees as a structure7.
Check the billed quantity in your contract's unit#
Rebuild each line in the unit the contract sets for that freight shape. About two-thirds of Implentio customers' 3PL contracts whose invoices show the receiving unit bill receiving on two or more bases in the same year.
Per pallet#
Count pallets by receipt under the contract's definition of a pallet. One WMS's per-pallet setting (September 2025) bills each unique pallet ID received and a partial pallet as full3. One 3PL's published rules (August 2026) split a mixed pallet into single-SKU pallets, each at the pallet rate, or bill it per carton, depending on its carton count, and bill cartons the 3PL palletizes at the carton rate4. Some cards price a single-SKU pallet at the greater of cartons × the carton rate or a minimum per pallet.
Per carton#
Count cartons by receipt, single-SKU apart from mixed. At that same 3PL, a mixed carton (more than one SKU inside) takes the unit rate4. Check that the line bills received cartons, not shipping boxes.
Per unit#
Count units in the contract's unit of measure. Some 3PLs calculate units as cartons × your ASN's case pack instead of counting; ask which yours does: a calculated count can't catch a short or mixed carton.
Where a card bills packaging units:
Billed packaging units per line = units on the line ÷ units per packaging unit, rounded as the contract says
One WMS's setting rounds partial quantities up per receipt line rather than per receipt3, so units split over several lines can bill more.
Per hour#
Ask for the hours log per receipt, with start, end and headcount, and check the minimum increment and per-worker rule. Where hourly is the main basis, compare the hours with the shipment's size and complexity, as one 3PL advises5. Where hours sit on top of per-piece rates for work outside the standard flow, also check the trigger and approval rule. A silent contract, or a catch-all line such as "special projects as needed", gives no trigger to test, so ask for one in writing. See Special projects and hourly labor rates: how to control them.
Containers, receipts, SKUs and inbound penalties#
Match each container fee to its receipt by size and loading (floor-loaded or palletized); a floor-loaded container can instead bill per carton, or add pallets supplied and sorting. Count per-receipt fees by the contract's definition of a receipt, and per-SKU fees by unique SKUs on it. The same WMS's per-SKU minimum setting bills each SKU the greater of per-item rate × item count or the minimum3. A separate putaway fee, where one exists, matches the same receipt, as do any re-palletizing, sorting, inbound labeling or quality-control (QC) lines. A storage charge billed at receipt is storage, not receiving; check it with Verifying storage counts against inventory snapshots.
About a third of Implentio customers' 3PL contracts with receiving charges show at least one inbound penalty fee. Check each against its event. For a missing or late ASN, ask for the ASN's send time against the 3PL's deadline; for a missed appointment, the appointment log; for non-conforming freight or missing labels, photos or the receiving report's exception notes. See Non-compliant receiving surcharges: what triggers them, Missing or inaccurate ASN fees and Accessorials billed without supporting activity.
A billing gap and an inventory gap are different problems#
A receiving charge that differs from what the contract bills for the freight received is a billing gap. Product missing from the 3PL's count is an inventory gap, with a different owner and remedy. The receiving charge should follow what the 3PL received and counted, so an overage is billed on what arrived and a shortage isn't billed as if it arrived. If a line matches your ASN exactly while the receiving report shows a different count, ask why, unless your contract bills the quantity on your ASN.
On a per-carton card, if 144 cartons were counted against an ASN of 150, a charge for 150 overbills the receiving fee on 6 cartons ($4.80 on this article's illustrative card). The 6 missing cartons of product are worth far more. They may be short from the supplier, lost in transit or miscounted by the 3PL. Take them through Overs, shorts and damages (OS&D): handling discrepancies, starting with the 3PL's count, and settle unit counts with How to reconcile 3PL inventory to your ERP, step by step. Whether the 3PL counted blind or against your ASN affects how independent its count is; see Blind receiving vs. ASN-verified receiving.
Why a correct bill can differ from what you sent#
A correct receiving bill can show more units, or a different unit, than you shipped, for reasons the contract can allow:
- The pallet, carton and unit rules above, including a mixed pallet split by SKU or lot3,4.
- Overages received and billed on what arrived.
- Hours for floor-loaded, unlabeled or undocumented freight, or for a short shipment the 3PL had to reconcile5.
- Unloading (unless agreed otherwise in writing) and extra handling of damaged goods, both chargeable under the International Warehouse Logistics Association's (IWLA) standard terms for merchandise warehouses (2026 revision), where a contract adopts them2.
- A receipt confirmed in the next billing period, or rates that differ by facility.
Each explains a gap only when the contract or card says so.
Worked example (illustrative)#
In this illustrative month, a brand checks $354.00 of receiving and finds $4.80 to dispute, $90.00 to ask about and $24.00 of extra pallets the card explains. The card charges $12 per pallet, $0.80 per single-SKU carton, $0.20 per unit (also on mixed cartons) and $45 per labor hour. These rates are illustrative, not market rates; putaway is included, there are no minimums or penalties, and the rates are held constant so only quantity and unit are tested.
| Shipment | Records the 3PL didn't create | 3PL count | Billed | Rebuilt | Action |
|---|---|---|---|---|---|
| A | ASN and carrier record: 6 single-SKU pallets | 6 pallets | 6 × $12 = $72.00 | 6 × $12 = $72.00 | Matches |
| B | ASN and carrier record: 4 pallets, 1 mixed with 3 SKUs | 3 + 3 = 6 pallets after split | 6 × $12 = $72.00 | 6 × $12 = $72.00 | Explained by the card's written split rule |
| C | ASN and bill of lading: 150 floor-loaded single-SKU cartons, truckload | 144 cartons | 150 × $0.80 = $120.00 | 144 × $0.80 = $115.20 | Dispute $4.80; 6 cartons to OS&D |
| C, hours | None | No log sent | 2.0 × $45 = $90.00 | Pending | Ask for log and trigger |
- Shipment B. Four pallets sent would suggest 4 × $12 = $48.00. The card splits a mixed pallet into single-SKU pallets, each at the pallet rate, so 6 pallets and $72.00 are correct.
- Shipment C. On a counted basis, $120.00 − $115.20 = $4.80 is overbilled. If the contract bills the ASN quantity, the $4.80 stands. Either way, 150 − 144 = 6 cartons of product go to OS&D with the bill of lading.
- Hours. Floor-loaded freight can legitimately take hours, so treat the $90.00 as a question, not an overcharge, until you've seen the log and trigger.
- Totals. $72.00 + $72.00 + $120.00 + $90.00 = $354.00 billed: $259.20 matched, $4.80 disputed and $90.00 asked about.
What good looks like#
Good receiving billing lets you rebuild every line from records on both sides:
- Every receiving line, or its detail row, shows a quantity, a unit and a receipt ID you can match to a PO or ASN.
- The card names the basis for each freight shape and the single-SKU and mixed rule.
- Hourly receiving has a written trigger and a log per receipt with headcount.
- Each inbound penalty names its trigger and the record that shows it happened.
- Differences from your ASN are explained in the receiving detail.
Common mistakes and red flags#
- Checking the invoice against the 3PL's receiving report only. That's a tie-out: it proves the arithmetic, not the shipment, so pair it with a record the 3PL didn't create.
- Matching on arrival date only, which misses receipts billed in the next period.
- Billed quantity equal to the ASN when the count differed, unless the contract bills the ASN quantity.
- Two receipts for one delivery with the same units on both, or with two per-receipt fees unless the contract bills partial or split receipts separately.
- Hourly receiving with no log, trigger or headcount. Floor-loaded, unlabeled or short freight can justify hours where the contract bills hours for it; the log shows whether it applied.
- The same receipt on two invoices. It's not an error if a corrected invoice replaces the first; see Double-billing the same activity across invoices.
- Receiving shown only as a dollar amount. About one in five Implentio customers' 3PL contracts with receiving charges show receiving only that way. It can be a contract term, so ask for the receipt-level detail before calling it an error.
Questions to ask your 3PL#
- Do you bill receiving on the quantity you count or the quantity on my ASN?
- Which date puts a receipt on an invoice: arrival, check-in or putaway?
- How do you bill a mixed pallet, a mixed carton and cartons you palletize, and where is that written?
- Can each receiving line or detail row carry the receipt ID and my PO or ASN number?
- How do you define a receipt, and do partial receipts of one delivery bill separately?
- Will you send the hours log per receipt, with start, end and headcount?
- What record shows each inbound penalty's trigger happened?
Checklist: matching one month of receiving charges#
FAQ#
Should I be billed on what my ASN said or on what the 3PL counted?
Check which quantity your contract bills. The charge should follow what the 3PL received and counted, unless your contract bills the quantity on your ASN.
Is my 3PL's receiving report enough proof the charge is right?
No. A receiving report that agrees with the invoice proves the arithmetic, not the shipment. Check it against a record the 3PL didn't create, such as your PO, ASN, the supplier's packing list or the carrier's bill of lading.
A shipment arrived short or damaged. Should I pay to receive it?
You pay to receive what the 3PL received, and extra handling of damaged goods can be billed where the contract allows. IWLA's standard terms (2026 revision), where a contract adopts them, put it on the customer2. The missing or damaged product is a separate question: confirm the 3PL's count, then claim from the supplier or carrier where the loss happened before delivery. See Inbound freight claims for damaged goods and Charging suppliers back for non-compliance.
What if my 3PL can't give me receipt-level detail?
Ask for the receiving report for each disputed line. Then agree in writing that future invoices show receipt ID, date, unit and quantity per line or detail row.
How long do I have to dispute a receiving charge?
As long as your contract's dispute window allows. A 30-day window is common and 14 days is short; IWLA's standard terms for merchandise warehouses (2026 revision) give 30 days from the invoice date2. The clock usually starts from the invoice that bills the receipt, not from the delivery. See Dispute windows and what happens if you miss them.
Sources#
7 sources cited
- 49 CFR § 373.101, "For-hire, non-exempt motor carrier bills of lading" (section last amended Dec 12, 2016; eCFR current as of Oct 15, 2026; accessed Oct 17, 2026). https://www.law.cornell.edu/cfr/text/49/373.101
- International Warehouse Logistics Association (IWLA), "Standard Contract Terms and Conditions for Merchandise Warehouses" (rev. January 2026; accessed Oct 17, 2026), Secs. 4(e), 6(b). https://iwla.com/wp-content/uploads/2026/01/2026-IWLA-Standard-Contract-Terms-and-Conditions-Final-1-6-26-1.pdf
- Extensiv, "Per Transaction Receiving Scripts," help center, Sept 11, 2025. https://help.extensiv.com/billing-setup/per-transaction-receiving-scripts
- LVK, "Receiving Fees," help center, updated Aug 12, 2026. https://fulfillment-help.lvk.com/hc/en-us/articles/4420035631757-Receiving-Fees
- Fulfyld, "How to Understand Receiving Fee Charges on Your Fulfyld Invoice," updated Sept 7, 2026. https://www.fulfyld.com/docs/understand-receiving-charges-fulfyld/
- Racklify, "Purchase Order Receiving Fee vs Inbound Receiving Charges: What's The Difference?," updated Oct 12, 2026. https://racklify.com/encyclopedia/purchase-order-receiving-fee-vs-inbound-receiving-charges-whats-the-difference/
- Racklify, "3PL Billing: How Charges Are Calculated and Priced," Oct 8, 2026. https://racklify.com/encyclopedia/3pl-billing-how-charges-are-calculated-and-priced/