Stripe revenue and Shopify sales almost never match, and in most stores that gap is normal — not a bug and not fraud. The two systems count different things: Shopify records every completed order at its full ticket price, while Stripe reports the money it actually moved and later deposits it after fees, refunds, chargebacks, and currency conversion.
Once you know which four numbers you are comparing — Shopify gross sales, Shopify total sales, Stripe gross volume, and the Stripe payout that hits your bank — the difference stops being a mystery and becomes an arithmetic you can reconcile line by line.
If you have ever exported a month from Stripe, exported the same month from Shopify, and watched the totals refuse to line up, you are not doing anything wrong. This mismatch is one of the most common questions merchants ask, and it sits at the center of reconciling your ecommerce data. Let's walk through exactly why the numbers diverge and how to reconcile them.
The core reason: Stripe and Shopify measure different things
Shopify is your system of record for sales. When a customer checks out, Shopify logs a completed order at its full value the instant it happens, server-side, whether or not any pixel fires. That order value can include product price, shipping, and tax.
Stripe is your system of record for money movement. It reports the charge it captured, then nets out its costs before paying you. So Stripe's headline "gross volume" and its actual "payout" are two different figures, and neither is designed to equal Shopify's sales report.
This is the same category of problem as when your Stripe order counts don't match Shopify — different systems, different definitions, all internally correct.
Reason 1: Processing fees come out before you see the money
Stripe's standard US online rate is about 2.9% plus 30 cents per transaction, according to Putler's breakdown. International cards and currency conversion add roughly another percent or more on top.
That fee is deducted from every charge before Stripe deposits it. So your Stripe payout is structurally smaller than your Shopify sales for the same period — the delta is fees you already agreed to pay.
If you run Stripe as a third-party gateway instead of Shopify Payments, Shopify also charges a platform transaction fee — around 2% on Basic, 1% on Grow, and 0.6% on Advanced per Putler. That fee appears on your Shopify bill, not in the Stripe payout, so it is a second, separate slice most reconcilers forget.
Reason 2: Payouts are batched, not per-order
Stripe doesn't wire you money one sale at a time. It bundles a settlement window of transactions into a single deposit, on a rolling two-business-day schedule by default.
Because weekends and bank holidays aren't business days, Friday, Saturday, and Sunday orders often pile into one Tuesday deposit. So a single bank line item can mix several days of Shopify orders — you can't match one payout to one day's sales.
The same batching logic governs Shopify Payments deposits, which land next business day to Shopify Balance and take a few more days over ACH, per Webgility. The fix is to reconcile by period, not by individual order.
Reason 3: Refunds and chargebacks hit only some of your numbers
When you refund an order, Shopify reduces its net and total sales for that order. Stripe returns the customer's money and pulls it from a later payout — but the original processing fee usually isn't returned, so a refund costs you the sale plus the fee.
Chargebacks are worse. Stripe debits the disputed amount and adds a fee of roughly $15 per dispute in the US, according to Webgility. That debit can land weeks after the original order, so it shows up in a payout period that has nothing to do with the sale it reverses — which is why your Stripe balance and your Shopify sales drift apart over time.
Reason 4: Tax and shipping inflate Stripe, not your "revenue"
Here is the definition trap that catches almost everyone. Shopify reports sales in three tiers, per the Shopify finances report documentation:
- Gross sales = product price × quantity, before discounts, tax, and shipping.
- Net sales = gross sales − discounts − returns (still no tax or shipping).
- Total sales = net sales + shipping + tax − returns. This is the top-line most merchants quote.
Stripe, by contrast, charges and processes the full amount the customer paid — product plus shipping plus tax. So Stripe's gross volume naturally sits above your Shopify gross or net sales, because it includes money that was never really "revenue" to begin with. Compare like with like: Stripe gross volume lines up closest with Shopify total sales, not gross or net.
Reason 5: Currency conversion and third-party gateways
For international orders, the exchange rate at checkout rarely equals the rate at settlement, so the amount Shopify recorded and the amount Stripe deposited differ by the FX spread — plus a conversion fee.
And any order paid through a different gateway — PayPal, Shop Pay Installments, a buy-now-pay-later provider — never touches Stripe at all. Those sales appear in Shopify but are simply absent from your Stripe numbers, guaranteeing a gap if you compare the two totals directly.
A worked example: one week, four different numbers
Say your store, "Nomad Mugs," takes 100 orders in a week. Each order is $40 product + $5 shipping + $4 tax = $49 total. Eight customers later request full refunds, and you eat one chargeback. Here is how the same week reads across systems. The fee rates below come from Putler and Webgility; the arithmetic is illustrative.
| System | What it reports | Amount |
|---|---|---|
| Shopify gross sales | Product only, 100 × $40 | $4,000 |
| Shopify total sales | 100 × $49, less 8 refunds | ~$4,508 |
| Stripe gross volume | Full charge processed, 100 × $49 | $4,900 |
| Stripe net payout | See breakdown below | $4,320.90 |
The Stripe payout is built like this:
- Captured charges: 100 × $49 = $4,900.00
- Processing fees: (2.9% + $0.30) × 100 = −$172.10
- Refunds issued: 8 × $49 = −$392.00
- One chargeback fee: −$15.00
- Net deposited: $4,320.90
Four legitimate numbers for one real week of business — $4,000, $4,508, $4,900, and $4,320.90 — and none of them is wrong. They answer different questions: how much product you sold, your top-line sales, how much money Stripe moved, and how much cash actually reached your bank. If you were also running standalone Stripe as a gateway, subtract roughly another 2% of volume (about $98) billed by Shopify separately.
How to actually reconcile it
You are not trying to make Stripe equal Shopify. You are trying to explain the gap so no dollar is unaccounted for. A clean period-level process looks like this:
- Pick a fixed window (a calendar month is easiest) and pull Stripe balance transactions, not just the payout summary.
- Start from Shopify total sales for that window.
- Subtract processing fees, refunds, and chargebacks; adjust for any FX spread and any non-Stripe gateway orders.
- What remains should tie to the sum of Stripe payouts that settled in the window.
This is the exact same discipline you use when your Printify revenue doesn't match Shopify: identify each system's definition, then bridge them with named adjustments rather than hunting for a magic match.
The number none of these dashboards shows: profit
Here is what reconciling Stripe against Shopify still doesn't tell you — whether each order actually made money. Stripe shows you fees. Shopify shows you sales. Neither knows your product cost from Printify or Printful, and neither knows the ad spend from Meta or Google that it took to win the order.
Your true per-order profit is total sales, minus processing fees, minus product and shipping cost, minus the ad spend attributed to that order. That last piece is why multi-touch attribution matters — a reconciled revenue number is only half of a real margin.
This is where PodVector fits. It connects Shopify, Meta Ads, Google Ads, Printify, and Printful, and computes true per-order profit across all of them — the payment-processing fees and the ad spend and the product cost, on the same line. PodVector is not a dashboard; it comes with Victor, an AI operator that analyzes your live data and proposes actions, executing approved changes on the Shopify side while never touching your ad account.
If you are tired of exporting spreadsheets just to figure out whether last week was profitable, you can connect your stack and see per-order profit in PodVector.
FAQs
Why is my Stripe payout less than my Shopify sales?
Because a payout is your sales minus processing fees, minus refunds issued in that window, minus any chargebacks and adjustments — batched across a settlement period rather than mapped to a single day's orders. On top of that, Shopify total sales include shipping and tax, and refunds reduce Shopify's figure while chargebacks may land in an unrelated period. The two are supposed to differ.
Should Stripe gross volume equal Shopify total sales?
They are the closest pair to compare, because both include product, shipping, and tax. But they still won't match exactly if some orders were paid through PayPal or another gateway, if international currency conversion shifted amounts, or if refunds were processed in a different window than the original sale. Compare them as a stable relationship, not an exact equality.
Which number is my "real" revenue?
Shopify total sales is the standard top-line revenue figure, because Shopify is the authoritative, server-side record of every completed order. Stripe's gross volume tells you money processed, and the Stripe payout tells you cash deposited — both useful, but neither is your revenue. For accounting, most merchants book Shopify total sales as revenue and treat Stripe fees, refunds, and chargebacks as separate expense lines.
Do I need reconciliation software to fix this?
Not to understand the gap — the reconciliation is arithmetic you can do in a spreadsheet at the period level. Software helps once volume climbs past roughly a hundred orders a month and manual matching gets slow. What software rarely gives you, though, is the profit view: fees, product cost, and ad spend reconciled onto a single per-order margin. That combined picture is the point of tools like PodVector, and it's the layer above simple sales-to-payout matching.
Does using Shopify Payments instead of Stripe make the numbers match?
No. Shopify Payments is powered by Stripe under the hood, so the same fee, batching, refund, and chargeback mechanics apply — payouts still won't equal sales. The one thing it removes is Shopify's extra third-party gateway transaction fee, which only applies when you run an outside processor. The reconciliation discipline stays exactly the same.