3PL invoice audits

ShipHero invoice audit

ShipHero publishes a bundle, not a rate card: one flat per-order rate with pick, pack, box and postage inside, and no zone pricing. Ten checks at the bundle's edges.

ShipHero publishes almost nothing about what its fulfillment service costs per activity — there is no rate card for storage, receiving or returns, and the per-order rate itself is set in your quote. What ShipHero does publish is a structure: one flat rate per order that already contains the pick, the pack, the box and the postage, priced with no shipping zones across the lower 48 states, and a $0 setup fee. An invoice built on a bundle like that is not audited rate by rate. It is audited at the bundle's edges — the things that were promised inside the rate appearing outside it, and the few charges that legitimately sit outside, each checked against its own published trigger.

What ShipHero publishes about fulfillment pricing

From ShipHero's own site, as published when we checked in November 2026. This page covers ShipHero Fulfillment, the outsourced service; ShipHero's warehouse software is a separate product with separate pricing, and none of it belongs on a fulfillment invoice.

Item What ShipHero publishes
Per-order fulfillment rate Custom-quoted. ShipHero's pick and pack guide says fulfillment starts "as little as $5.58" per order to pick, pack and ship; your actual rate is the one in your quote
What the rate contains Pick, pack, box and postage, under one flat rate
Zone pricing None. A single rate covers the entire order fulfillment process for the lower 48 states
Setup fee $0
Storage, receiving, returns rates Not published — set in your quote

Two consequences follow. First, your quote is the rate card: if it does not state the storage unit, the receiving basis and the returns fee in writing, those lines cannot be checked later, so get them stated before stock moves. Second, almost every error on a ShipHero invoice is a classification error, not an arithmetic one — a charge placed on the wrong side of the bundle line.

ShipHero's founder, Aaron Rubin, has described the operation's pricing in more detail in a published podcast interview: storage free for the first 60 days, then about $5 a month for a bin of 4.4 cubic feet and about $30 a month for a pallet; inserts counting as picks, included free on orders of one or two items, with additional picks at about 25 cents each; and no extra handling fee for custom boxes, which the merchant supplies. These are one operator's description, given as approximations — your quote governs — but they are the only public account of how the numbers are built, and checks 5 to 7 below follow from them.

Checks that follow from ShipHero's own published model

  1. Nothing inside the flat rate may appear as its own line. The published rate already contains the pick, the pack, the box and the postage for a lower-48 order. A separate pick fee, packaging or materials charge, or label charge attached to such an order bills the same work twice. Rebuild a sample of orders from your order export and confirm each one carries exactly one fulfillment charge: the quoted rate, once.

  2. The rate must not vary by destination zone. Zone pricing is the thing ShipHero says it does not do. Group the month's orders by destination state and compare the fulfillment charge on like-for-like orders: an order shipped to the far side of the country should cost the same as one shipped two states away. A charge that rises with distance is a zone price wearing a flat rate's name. Orders to Alaska, Hawaii and Canada sit outside the published lower-48 promise — check those against whatever your quote says for them, separately.

  3. Setup is published as $0. Any setup, onboarding or implementation line on an early invoice contradicts ShipHero's own published figure for its fulfillment service. (The onboarding fees attached to ShipHero's warehouse software are a different product; if one appears on a fulfillment invoice, it is in the wrong place.)

  4. Every order must carry the quoted rate exactly. With no published card to fall back on, the quote is the only benchmark, and a bundled rate makes drift easy to hide: a few cents added to the per-order rate is invisible line by line and large across a month. Compare the rate billed on the first invoice and the latest, order class by order class, against the signed quote, and ask for the notice behind any change.

  5. Storage runs on a 60-day clock, then by bin or pallet. On the founder's published description, stock that turns within its first 60 days carries no storage charge at all. Date each storage line against the day that stock arrived: storage billed inside the window is an error, and so is storage for stock that has already shipped or been removed. After the window, check the unit — a bin of about 4.4 cubic feet or a pallet — against the space your inventory actually occupied at each warehouse. ShipHero splits inventory across its warehouses by design, so expect storage at more than one center; each center's locations should match stock that was really there.

  6. Inserts count as picks — count them once. Because an insert is a pick, it belongs inside the pick count, and on the founder's description an insert is included free on orders of one or two items, with further picks at roughly $0.25. A separate "insert fee" line charges for the same handling a second time, and a multi-item order whose pick count ignores the insert in one month and includes it in another has been counted two ways. Check that the pick arithmetic on marketing-insert orders follows one rule, the rule in your quote.

  7. Custom boxes carry no extra handling fee. The published description is explicit that ShipHero charges no additional handling for custom boxes, with the merchant supplying the boxes themselves. A special-packaging, custom-box or handling line attached to orders packed in your own boxes contradicts it. Standard packing materials are inside the flat rate in any case, under check 1.

  8. A return is billable when the RMA is complete, not before. ShipHero's own billing documentation states that return fees are added to a bill when the RMA is marked Complete — not when it is created — and can cover the items received back, the return label, or both, as configured. Match each return charge to a completed RMA: a fee against a return still in transit, still open, or closed as unreceived has been charged before its published trigger, and a return billed for both the items and a label your quote prices as one fee has been charged twice.

  9. Every ad hoc charge needs a request behind it. ShipHero's billing runs on six published fee categories — recurring, receiving, storage, shipment, returns and ad hoc — and the ad hoc category is for one-time charges applied manually, outside the regular cycle. That makes ad hoc lines the one place on the invoice where a charge exists because someone typed it. List them all and ask for the work order or request behind each; a manual charge nobody can point to a request for should not be paid on trust.

  10. Split orders test the per-order definition. ShipHero routes each order to the warehouse holding the stock, so an order whose items sit in two warehouses can leave as two shipments. Whether you owe the flat rate once for that order or once per shipment depends on how your quote defines the unit — per order or per shipment. Count the month's multi-package orders and check the invoice counts them the way the quote does; an undefined unit defaults to whichever count is larger.

Raising a wrong charge with ShipHero

ShipHero publishes no dispute window or billing-dispute process for fulfillment clients on its site, so there is no published deadline to work to — which is an argument for raising errors on the invoice where you find them, not a quarter later. The flat-rate model keeps the ask simple: quote the published term the charge conflicts with (the bundle, the zone promise, the $0 setup) or the line of your own quote it exceeds, attach the order or RMA record, and put it to your account team in writing.

Have us check it

Upload your ShipHero quote and your last three invoices. We rebuild each order against the bundle — one rate, no zones, nothing inside it billed twice — check the storage clock and the return triggers, mark each amount with a status, and write the dispute for the amounts the checks prove. Your latest invoice is audited free.

Feeproof is not affiliated with ShipHero.

DISPUTE PROTOCOL

Ready-to-send ShipHero dispute letter

Copy and customize this formal notification template to assert your contractual rights and recover overcharged fulfillment fees before your dispute window expires.

To: ShipHero Billing & Account Management
Subject: Formal Billing Dispute – Invoice #[INVOICE_NUMBER] – [MERCHANT_NAME]
Date: [TODAY_DATE]

Dear ShipHero Billing Department,

Upon line-by-line reconciliation of invoice #[INVOICE_NUMBER] against our executed Master Services Agreement (MSA) and confirmed Rate Schedule dated [CONTRACT_DATE], we have identified [COUNT] billing discrepancies totaling $[TOTAL_OVERCHARGE_AMOUNT].

Summary of audited discrepancies:
1. [Line/Ref ID]: Billed [Rate/Service] at $[BILLED_RATE]. Agreed contract tier is $[CONTRACT_RATE]. Variance: $[OVERCHARGE_AMOUNT]. (Ref: Contract Section [SECTION_NUM])
2. [Line/Ref ID]: Unauthorized accessorial surcharge [NAME] of $[SURCHARGE_AMOUNT] billed without prerequisite contract triggers.
3. [Line/Ref ID]: Dimensional weight (DIM) billed at [BILLED_WEIGHT] lbs vs verified packaging volume of [ACTUAL_WEIGHT] lbs. Variance: $[DIM_OVERCHARGE].

Per our agreement, this dispute notification is formally submitted within the contractual dispute window. 

Please confirm receipt and apply a credit memo of $[TOTAL_OVERCHARGE_AMOUNT] to our account, or provide a revised invoice within 10 business days.

Sincerely,
[YOUR_NAME]
[MERCHANT_NAME]
[ACCOUNT_NUMBER / MERCHANT_ID]
Always attach itemized CSV line rows as Exhibit ACite specific clauses from your executed rate card

Frequently asked questions

How often do ShipHero invoices contain billing errors or overcharges?

According to industry audits, over 40% of 3PL invoices contain verifiable billing discrepancies. Common overcharges on ShipHero bills include duplicate handling fees, uncontracted recurring accessorial surcharges, dimensional weight (DIM) classification errors, and peak season surcharges billed outside the contractually agreed calendar window.

What is the contractual deadline to dispute an invoice with ShipHero?

Dispute windows vary from 15 to 90 days depending on your specific Master Services Agreement (MSA) or standard terms. Many contracts state that disputes not raised in writing before the invoice due date or within the stated window are permanently waived, making immediate line-by-line verification upon receipt essential.

How do I successfully claim a refund or credit from ShipHero?

To get a credit approved, submit a formal itemized dispute letter citing the specific invoice number, line IDs, the exact clause in your executed rate schedule, and the calculated difference amount. Feeproof automatically generates ready-to-send dispute letters and tracks credits in an open registry until settled.

Do I need to share my ShipHero portal passwords or store API keys to audit invoices?

No. Feeproof operates with zero credentials. You never need to connect Shopify API keys or share warehouse portal logins. You simply upload your itemized CSV or PDF invoice exports and your signed contract rate card.