My Shopify checkout quotes one FedEx rate and then FedEx bills me something completely different
If FedEx quotes at checkout never line up with what actually lands on your FedEx invoice, the cause is almost always package dimensions, account setup, or post-shipment surcharges, not a checkout bug.
What's going on
You quote a FedEx rate at checkout, the customer pays it, and then your actual FedEx invoice for that shipment comes in higher, or sometimes lower, than what you collected. Multiply that across hundreds of orders a month and it becomes a real, recurring loss that is hard to pin down because the checkout page and the FedEx invoice are two separate systems that never automatically reconcile with each other.
The mismatch almost never means Shopify or FedEx is malfunctioning. Carrier-calculated shipping works by sending FedEx a request at checkout with the order's weight, package dimensions, origin, and destination, and FedEx returns a live rate for that specific shipment. If any of that input data does not match what actually ships, whether that is box size, weight, or which rate tier is being used, the quote and the eventual invoice line for the same shipment will disagree, sometimes by a little and sometimes by a lot on bulkier items.
Separately, FedEx applies some charges only after the label is created, including address correction fees, residential and delivery-area surcharges, and periodic fuel adjustments. These show up on the invoice days or weeks later and are frequently the actual source of checkout-versus-invoice confusion even when the package data was accurate.
Why it happens
The most common cause is a default shipping package that does not reflect the box you actually ship in. Shopify sends that package's dimensions and weight to FedEx for carrier-calculated quotes, so if it is smaller than your real box, the dimensional weight calculated at checkout will come in lower than the dimensional weight FedEx calculates once the real package is scanned.
The second common cause is a rate-source mismatch: checkout ends up quoting a different rate tier than the one your account is actually billed on, usually because the FedEx account connection in your shipping settings is missing, outdated, or was never fully completed.
A third, separate cause is carrier surcharges assessed after the shipment goes out, such as address corrections, residential delivery, and fuel adjustments. These happen outside the checkout-quote process by design and will create an invoice gap no matter how accurate your package data and account setup are.
5 ways to fix it
Check the default package you have set up against the box you actually use
In your shipping settings, look at the packages you have configured and confirm the default one matches the real outside dimensions and weight of the box you most commonly ship in. That default package is what gets sent to FedEx for a carrier-calculated quote, so if it is smaller or lighter than your actual box, FedEx's dimensional weight at checkout will consistently come in lower than the dimensional weight FedEx bills once the label is created. If you ship multiple box sizes regularly, set up a package for each size and make sure the right products are assigned to the matching one instead of letting everything default to a single package.
Confirm your Shopify checkout is actually pricing off your FedEx account, not a generic rate table
If you have a FedEx account with negotiated rates, check whether that account is properly connected in your shipping settings. When the connection is missing, outdated, or was never fully set up, checkout can end up quoting a different rate tier than what you are actually billed, which shows up as a mismatch that has nothing to do with box size or weight. If you changed anything about your FedEx account or added services after the initial connection, disconnecting and reconnecting it is worth trying so Shopify pulls your current setup again.
Separate rate mismatches from after-the-fact FedEx surcharges
A lot of checkout-versus-invoice complaints turn out not to be a rate problem at all. FedEx applies charges after a shipment goes out, such as address correction fees, residential delivery surcharges, and periodic fuel adjustments, none of which any checkout quote can see in advance. Pull a handful of recent invoices and compare them line by line to the original checkout rate for the same order. If the difference is a flat added fee rather than one that scales with weight or box size, the fix is tightening up address accuracy at checkout, not adjusting your package or carrier settings.
Run a test order to see exactly what data went to FedEx for a quote
Before assuming something is broken, place a test order using the same weight and dimensions as a real recent order and compare the quoted rate to what FedEx actually charged for that shipment. This tells you whether the gap traces back to the package data being sent, the account being used for the quote, or a surcharge added afterward, rather than leaving you guessing.
If the gap still doesn't add up, get someone to review your full shipping setup
When you have checked package dimensions, confirmed the carrier account connection, and ruled out surcharges but the numbers still don't reconcile, the usual culprit is overlapping shipping profiles or per-product package overrides that are quietly contradicting each other. That's a one-time configuration audit rather than something you can chase invoice by invoice, and it is usually faster to have a developer familiar with Shopify shipping setups go through it once than to keep troubleshooting order by order.
Bottom line
Most FedEx checkout-versus-invoice mismatches come down to one of two things: the package dimensions Shopify is sending to FedEx don't match your real box, or checkout is quoting from a different rate source than the FedEx account you're actually billed on. Both are fixable in your existing shipping settings, no app required. If a gap remains after that, it's usually surcharges applied after the label ships, which no checkout display will ever show in advance, so a periodic invoice check is the only real safeguard. This is a shipping-configuration issue best handled through Shopify's native settings or a one-time setup review, not something BesPoP's apps are built to solve.
Browse the rest of the problem library, run a free storefront scan to catch issues like this automatically, or email us and we'll work out a custom solution for it.