Shopify Fees in QuickBooks: Where They Hide and How to Book Them

Shopify Fees in QuickBooks

The fees aren't on any statement. They're inside your income number — which is why you can't find them.

You open your P&L looking for one number: what did Shopify actually take from you last month? There's no line for it. You check the bank statement — deposits coming in from Shopify, nothing going out. You log in to the Shopify admin and click through Finance, Billing, and the payout reports, and find fragments: a processing fee buried inside one payout, an app charge on a billing invoice, your subscription on a different page entirely. No total. Anywhere.

Meanwhile your P&L says one revenue number, your Shopify dashboard says another, and your bank says a third. At some point you stopped expecting them to agree.

Here's the uncomfortable part. If your books record Shopify deposits as income — which is how most store owners and plenty of bookkeepers do it — finding your Shopify fees in QuickBooks isn't a categorization problem. The fees were subtracted before your books ever saw them. They were never recorded at all.

This post walks through every fee Shopify charges, where each one is (and isn't) visible, why deposit-based bookkeeping makes them disappear, and how to structure your QuickBooks accounts so the real number shows up on your P&L every month.

The Full Shopify Fee Anatomy

Shopify doesn't charge you one fee. It charges five or six, in different places, on different schedules, and only some of them ever appear as a charge you can point to.

Fee Typical size Where it's charged Where you can see it
Shopify Payments processing fees ~2.9% + 30¢ per online order (lower on higher plans) Deducted from each payout before it reaches your bank Payout detail pages or the payments transaction export — never as a bill
Subscription $39–$399/mo depending on plan Billed to your card or netted against payouts Settings → Billing
Third-party gateway surcharge 0.5%–2% per transaction if you don't use Shopify Payments Added to your Shopify bill, on top of your gateway's own fee Billing invoices
App subscriptions $50–$500+/mo for most mid-size stores Bundled into Shopify billing invoices Settings → Billing, itemized per app
Shipping labels Varies with volume Billed in batches to your card, or netted against payouts Billing invoices
Currency conversion ~1.5% of converted sales (US stores) Baked into the converted order amount Nowhere as a line item — the sale just arrives smaller

Two things to notice. First, no report in Shopify adds these up for you. Second, the biggest one — processing fees — never appears as a charge at all. It's a deduction inside a deposit.

Add the stack together and it typically runs 3–6% of gross revenue, sometimes more once apps and labels scale with order volume. On a store doing $600K a year, that's $18,000–$36,000 — a real expense category, sitting somewhere between your shipping costs and your ad spend in size.

Store owners handle this in one of three ways. Some record deposits as income and move on. Some export transaction CSVs monthly and rebuild the fee total by hand. And some structure their books so every fee lands in its own expense account automatically. The first group is the largest — and it's where the trouble lives.

The Lie: "The Fees Are Small — Deposits Are Close Enough"

Here's the reasoning, and it sounds sensible: the fees are a rounding error. Recording the deposit as income captures what actually hit the bank, so nothing is really lost. Close enough.

It even survives a first inspection, because of a genuinely seductive piece of math: your bottom line comes out the same either way. Watch.

Say your store does a $50,000 gross month:

סכום
Gross sales $50,000
החזרים −$1,500
Shopify Payments processing fees −1,600 דולר
Deposited to your bank $46,900
Billed separately: subscription ($105) + apps ($250) + shipping labels ($900) −$1,255

Net-deposit bookkeeping records $46,900 of "revenue." Correct bookkeeping records $50,000 of gross sales, $1,500 of refunds, and $1,600 of processing fees. Net income for the month? Identical. So it nets out — right?

It nets out on one line, once. Everything built on top of that line is now wrong:

  • Your margins are distorted. Your true fee load this month was $2,855 — 5.7% of gross. In the deposit version, the $1,600 of processing fees doesn't exist as a cost, so when you work out per-order economics or set prices, you're using unit margins that are quietly better than reality. The books flatter you, and pricing decisions inherit the flattery.
  • Your revenue won't match what the IRS sees. Shopify Payments reports gross processing volume on your 1099-K. A return built on net-deposit revenue shows less income than the form the IRS received. That mismatch is a classic audit trigger, and explaining it after the fact is a bad afternoon.
  • You lose visible deductions. Every one of those fees is a legitimate business expense. Fees that were never recorded can't be cleanly deducted — or defended if anyone asks.
  • Fee creep becomes invisible. When fees drift from 4% to 6% of revenue — an app added here, more cross-border orders there — nothing in your books moves. There is no line to watch.
  • Refunds vanish too. They're netted into the same deposit, so your refund rate — an early-warning signal for product and fulfillment problems — never surfaces.

If you've been booking deposits as income, you weren't being lazy. You were solving the problem you could see: get the bank to match the books. The problem you couldn't see is that the bank number was never the revenue number. (If your payouts don't even match what QuickBooks shows, that mismatch has its own anatomy.)

How to Book Shopify Fees in QuickBooks Correctly

The fix is structural, not heroic: record gross, then show every deduction explicitly. Two pieces.

1. Create the accounts. In your QuickBooks chart of accounts, set up:

  • Income: Shopify Sales (gross) · Refunds & Allowances (contra-income)
  • Expenses: Merchant Processing Fees · Shopify Subscription & Apps · Shipping Label Expense · Currency Conversion Fees
  • Other current asset: Shopify Payments Clearing

That last one is the workhorse. The clearing account is where gross sales accumulate and fees get subtracted, so the balance that remains matches the actual bank deposit.

2. Gross up each payout. For every payout, the entry credits Shopify Sales for the gross amount, debits Refunds & Allowances and Merchant Processing Fees for their portions, and clears the remainder against the bank deposit through the clearing account. The deposit stops being "income" and becomes what it actually is: the residue of income after deductions you now track.

This is also how to categorize Shopify fees that arrive outside payouts: point the card charges from your bank feed — subscription, apps, shipping labels — at their dedicated expense accounts instead of a generic "Software" bucket. Five minutes a month, and your fee stack becomes a readable section of your P&L.

The full journal mechanics — clearing account setup, sales receipts vs. journal entries, timing — are more than this post needs. We've written the complete walkthrough in How to Record Shopify Sales in QuickBooks Online.

If you automate this instead, the account structure above becomes a one-time mapping. Here's what that looks like in LedgerPort:

LedgerPort account mappings screen showing store entities — products, customers, tax codes, and payment methods — each mapped to a QuickBooks account
You map your fee and income accounts once, and every payout after that books them automatically — no monthly journal-building. Full walkthrough: Setting Up Account Mappings in LedgerPort →

The mapping decides where fees and income post. The clearing flow is where the fee delta actually surfaces. Each payment gateway maps to its own QuickBooks clearing account — Sync Config » Payments in the Shopify app, the Payments tab in the WooCommerce plugin — with gateways auto-detected from your store and a default account as the fallback for anything unconfigured. Gross sales flow through each gateway's clearing account, so the difference between what accumulated there and what hit the bank is your fee number per gateway, not one delta smeared across a lump deposit.

The same structure gives you the monthly check you'll actually run: payment records are filterable by gateway and by sync status, so "did every Shopify Payments transaction post this month?" is a two-dropdown question. And payments arrive in QuickBooks linked to their transactions — not as loose deposits you match by hand later.

LedgerPort payments view with dropdown filters for payment gateway and sync status, listing payment records with their sync state
Filter payments by gateway and sync status to confirm the month posted completely — shown here in the WooCommerce edition; the Shopify app uses the same per-gateway structure. Full walkthrough: How to Push Historical Data to QuickBooks in LedgerPort →

[IMAGE: Side-by-side P&L comparison — left side shows a single "Shopify deposits" income line; right side shows gross Shopify Sales, refunds, and four itemized fee expense lines]

What Changes When the Fees Are Visible

The first month this structure is in place, you get the answer that started this whole exercise: a line — several lines — that say exactly what Shopify took. In the worked example above, you'd see $2,855 against $50,000, and you'd see it every month, trending.

From there, practical things follow. Your Shopify payment processing fees accounting now supports your tax return: gross revenue matches the 1099-K, and every fee is an itemized, defensible deduction. Your product margins include the 3% that processing actually costs, so pricing and ad-spend decisions run on real numbers. And when the fee percentage moves, you notice in the month it moves — not in a year-end postmortem.

The trade-off is honest work up front: creating accounts, and either building the payout journals by hand each month or automating them.

This is the specific problem fee-separation tools exist for. LedgerPort, for example, reads each Shopify payout and books the gross-up automatically — gross sales, refunds, and each fee type routed to the QuickBooks accounts you choose through its account mapping. How each transaction posts — dates, numbering, and fee handling — is set under Transaction Options in the sync configuration, so the behavior matches your accounting setup rather than someone else's defaults. Payout journals with fee handling are part of the Scale plan (from $67/mo), though there's a free plan to start on, and every paid plan carries a 14-day, no-questions money-back guarantee. Tools like A2X and Synder solve this same category of problem well; the differences show up in mapping control and how edge cases are handled, which is worth comparing for your own store.

If you take payment through more than one processor, the separation goes one level deeper: LedgerPort's fee separation breaks out Shopify Payments, Stripe, and PayPal fees separately — each processor's cost gets its own line "so your P&L stays clean," in the docs' own framing. That's this post's manual method, automated, applied per processor. And it lives in configuration, not in a recurring task: fee and payment handling is set once in the sync settings and applied to every payout after.

One honest note: the visibility only means something if the accounts exist to receive it — which is why the mapping step above comes first.

LedgerPort sync configuration page showing seven tabs — General, Orders, Products, Customers, Payments, Taxes, and Misc
Fee and payment behavior is a page of settings — configure it once and every subsequent payout books the same way. Full walkthrough: Managing the Sync Configuration in LedgerPort →

The Fees Were Never Missing

Here's the irony worth sitting with. You went looking for Shopify's fees the way you'd look for any expense — a statement, an invoice, a charge on the card. And for the biggest fee of all, no such document exists. You were searching your outflows while the fees sat inside your inflows, disguised as a slightly smaller income number, every payout, all along.

They were hiding in the one place nobody audits: revenue.

If your P&L still shows deposits as income, that $2,855 in the worked example is your store's version of an unrecorded number — every single month. Set up the accounts, gross up the payouts, or let software do the grossing up for you. Start with LedgerPort's free plan and see your first payout split into gross sales and itemized fees →


Related: How to Record Shopify Sales in QuickBooks Online · Why Your Shopify Payout Never Matches What QuickBooks Shows · LedgerPort pricing →

הפסק הזנת נתונים ידנית לנצח

חבר את החנות שלך ל-QuickBooks תוך 15 דקות ותנו ל-LedgerPort לטפל בשאר.

התחל בחינם ראה תמחור →

מאמרים נוספים

בואו נתחבר:

בצע אוטומציה של חשבונאות המסחר האלקטרוני שלך עוד היום

חבר את חנות Shopify או WooCommerce שלך ל-QuickBooks תוך פחות מ-15 דקות — ללא צורך בקידוד.

14 יום אחריות להחזר כספי · תוכנית חינם זמינה