Stripe orders don't match Shopify because the two systems measure different things. Shopify records the full order value a customer paid — product, tax, shipping, and tips. Stripe deposits net cash after fees, refunds, and disputes, batched across a settlement window that rarely lines up with a single day of orders.
A gap between the two is expected, not a bug. The fix is to reconcile at the period level against the right reports, then treat fees and refunds as separate line items — never to force order counts to equal payout dollars.
The short version: two systems, two questions
Shopify answers one question: how many orders happened and what were they worth? Stripe answers a different one: how much cash cleared into your bank after we took our cut?
Those two numbers were never designed to be equal. When your Stripe payout comes in lower than your Shopify sales, nothing is broken — you are looking at gross revenue on one screen and net cash on the other.
The trouble starts when you try to trace one lump-sum deposit back to specific orders. Below is exactly where the numbers diverge, with a worked example, so you can reconcile with confidence instead of hunting for money that never went missing.
Why the numbers split apart
1. Shopify shows gross sales; Stripe shows net cash
Shopify's Total sales figure is Net sales plus shipping, taxes, and duties, where Net sales is gross product revenue minus discounts and returns (Shopify Help — Finances report). It reflects everything the customer was charged.
Stripe never deposits that full amount. It nets out its processing fee first, so the money that lands in your account is always smaller than the sales line in Shopify.
This single difference explains most of the gap on its own. Match gross to gross, or net to net — but never expect a Stripe deposit to equal a Shopify sales total.
2. Fees ride on the whole checkout, including tax and shipping
Stripe's standard US rate is 2.9% plus 30 cents per transaction, with international cards adding roughly 1.5% and currency conversion adding about 1% more (Putler). That fee applies to the entire charge — not just your product revenue.
So you pay processing fees on the sales tax you collected for the government and on the shipping you owe the courier. Neither is your money, yet both inflate the fee Stripe subtracts.
If you run Stripe as a third-party gateway instead of Shopify Payments, Shopify adds its own transaction fee on top — 2% on Basic, 1% on Grow, and 0.6% on Advanced (Putler). That fee is billed separately, creating a third number that matches neither dashboard.
3. Payouts are batched, not one-per-order
Stripe's default schedule is a rolling two-business-day window, and new accounts often wait longer before the first payout clears (Putler). Each deposit bundles every transaction that settled in that window into one figure.
Weekends and bank holidays are not business days, so Friday-through-Sunday orders often pile into a single Tuesday deposit. One payout can carry orders from several calendar days, minus refunds clawed back from earlier ones.
That is why a deposit almost never equals "yesterday's orders minus fees." The batch boundary and the order date rarely align.
4. Refunds, disputes, and chargebacks pull cash back
When you refund an order, Shopify reduces its net and total sales. Stripe reduces a later payout — and the original processing fee is not returned, so a refunded sale still costs you the fee.
Disputes hit harder. Stripe immediately debits the full disputed amount plus a 15-dollar non-refundable dispute fee, and countering the dispute costs another 15 dollars that is only refunded if you win (Putler).
Because these clawbacks land in whatever payout is open at the time, the deposit for a good sales week can look strangely small — it is absorbing refunds from a prior week.
5. Timezones, cutoffs, and third-party payments
Stripe and Shopify can roll their reporting day at different times, so an order placed near midnight lands on different calendar days in each tool. Compare trailing weeks or full months, never single days.
Orders paid through PayPal, Shop Pay Installments, or another gateway never touch your Stripe balance at all. If those show in Shopify but not Stripe, that is correct — they settle on their own rails and reconcile separately.
A worked example: one week, three different numbers
Say your store takes 100 orders in a week. Each order is $40 product + $5 shipping + $4 tax = $49 total. Eight buyers later request a refund, and one files a dispute.
Here is what each screen shows for that identical week of activity. The arithmetic is illustrative; the fee rate assumes the 2.9% + 30¢ US rate cited above.
Shopify Analytics — the order record:
- Orders recorded: 100
- Total sales before refunds: 100 × $49 = $4,900
- After 8 refunds at $49 each: $4,900 − $392 = $4,508 total sales
Stripe payout — the cash deposited:
- Captured charges: 100 × $49 = $4,900.00
- Processing fees: (2.9% × $4,900) + (100 × $0.30) = $142.10 + $30.00 = −$172.10
- Refunds issued: 8 × $49 = −$392.00
- One dispute fee: −$15.00
- Cash deposited: $4,900.00 − $172.10 − $392.00 − $15.00 = $4,320.90
Same week, same 100 real orders, and the two headline numbers — $4,508 and $4,320.90 — are $187.10 apart. That gap is not lost money. It is fees plus one dispute charge, and every dollar is accounted for.
Notice the refunds appear in both, but the fees and the dispute charge appear only in the Stripe deposit. That is the entire mismatch, made visible.
How to reconcile Stripe against Shopify
Stop matching individual orders to individual deposits — that is the error that costs merchants hours. Reconcile a whole period instead, because a payout is a batch of transactions, not a copy of one day's sales.
- Pick a calendar month and pull the Shopify Finance Summary and Payouts reports alongside Stripe's Balance Summary or Payout Reconciliation report.
- Post each full sale to a clearing account rather than straight to revenue.
- When a Stripe payout clears, match its net deposit against that clearing account, recording fees, refunds, and disputes as their own line items.
- When the clearing account reaches zero, the period is reconciled — every dollar is placed.
This clearing-account method is the same discipline covered in our guide to reconciling your ecommerce data, and it scales far better than eyeballing two dashboards.
There is a ceiling on doing this by hand. Manual reconciliation starts to break down around 100 to 150 orders per month, where per-transaction error rates of roughly 1% to 4% quietly compound into real money (Putler). Past that volume, automation stops being a luxury.
The same "two systems disagree" pattern shows up all across a POD stack. If you also sell through print providers, the causes rhyme with why your Printify revenue doesn't match Shopify, why your Printify orders don't match Shopify, and why your Printful revenue doesn't match Shopify. Once you understand gross-versus-net, every one of these gaps stops being scary.
From reconciled to profitable
Reconciling proves the money is all there. It still does not tell you whether each order actually made you money after ad spend, and product cost's cut.
That is the gap PodVector closes. It connects Shopify, Meta Ads, Google Ads, Printify, and Printful, then computes your true per-order profit — with the payment-processing fee and refund already subtracted, not guessed at. Victor, its AI operator, reads that live data and proposes moves, taking Shopify-side actions only with your approval. Victor is not a dashboard, and he does not touch your ad account.
If you are tired of reconciling gross against net by hand, connect your stack and see per-order profit. And when your payouts finally line up, make sure the cash lands where it should by adding your bank account to Shopify for payout.
FAQs
Why is my Stripe payout lower than my Shopify sales?
Because Shopify shows gross sales — product, tax, shipping, and tips — while Stripe deposits net cash after its processing fee, which is 2.9% plus 30 cents per US transaction (Putler). Refunds and dispute fees pull the deposit down further. The gap is normal; match net to net, not gross to net.
Should each Stripe deposit equal one day of Shopify orders?
No. Stripe pays out on a rolling two-business-day window and batches multiple days together, so weekend orders often settle in one mid-week deposit (Putler). Reconcile by period — a full month — not deposit by deposit.
Do refunds explain the difference?
Partly. A refund lowers Shopify's net sales and reduces a later Stripe payout, but Stripe keeps the original processing fee even on a fully refunded order. So a refunded sale leaves a small permanent gap equal to that fee.
Why do some Shopify orders never show in Stripe at all?
Those orders were probably paid through PayPal, Shop Pay Installments, or another gateway that never touches your Stripe balance. They settle on separate rails and must be reconciled against their own payout reports, not against Stripe.
At what point should I stop reconciling by hand?
Manual reconciliation tends to break down around 100 to 150 orders per month, where error rates of about 1% to 4% per transaction start compounding into meaningful money (Putler). Past that, connect your data so fees and refunds are matched automatically.