,

1099-K vs Shopify vs QuickBooks: Reconciling Three Numbers

1099-K vs Shopify vs QuickBooks: Reconciling Three Numbers

The three numbers disagree because they're supposed to. Reconciliation isn't forcing them to match — it's explaining exactly why they don't.

It's the second week of January. The 1099-K from Shopify Payments says $412,847.16. Shopify's own sales report for the year says $438,204.90. The profit and loss in QuickBooks Online says $411,790.19.

Three numbers. Same store. Same twelve months. And whichever chair you're sitting in — the owner who just opened the form, or the accountant who just opened the client's file — the same cold thought arrives: something was underreported, and now there's paperwork proving it.

So you start checking. You re-run the Shopify report with different date settings. You re-total the QBO income accounts. The numbers move a little, but they never converge. By the third pass, the belief hardens: if the three numbers don't match, the books are wrong.

That belief is the lie — and it's the single most expensive assumption anyone makes in January. Here's the truth: your 1099-K doesn't match Shopify, and neither matches QuickBooks, because the three numbers measure different things by design. They were never going to be equal. Reconciling them doesn't mean forcing them to a single figure. It means explaining the deltas — every one of them, named and quantified — until the gap has no mystery left in it.

We introduced this three-numbers problem in our tax prep checklist for Shopify stores. This post is the full method.

What each number actually measures

Before you can bridge the gap, you need to know what each instrument reads. They're not three measurements of "revenue." They're three measurements of three different things.

The 1099-K: the processor's-eye view, gross and unadjusted

A 1099-K is issued by a payment processor — in this case Shopify Payments — and it reports one thing: the gross, unadjusted dollar value of the transactions that processor ran, as reported by the processor, by calendar year.

Gross and unadjusted means exactly that. No deduction for processing fees. No deduction for refunds or chargebacks — a $200 order that was fully refunded in March still sits in the total at $200. And the sales tax your customers paid at checkout is in there too, because the processor moved that money even though it was never yours.

Two more properties matter. The form covers only the transactions that processor handled — orders paid through PayPal, a buy-now-pay-later provider, or any other gateway are not on Shopify Payments' form; those processors issue their own. And it's dated by when the processor ran the transaction, not when the order was placed — which creates small edges at the year boundary.

None of this is a flaw. The form is doing its job: reporting gross processed volume. It was never a revenue statement, and treating it as one is where the panic starts. (For anything touching how the form interacts with the actual return — what gets reported where, and what documentation to keep — confirm with the client's tax preparer. That's their lane, and this post stays out of it.)

Shopify's reports: sales by order date, with scope you chose

Shopify's analytics answer a different question: what did the store sell, and when were those orders placed?

That introduces two degrees of freedom the 1099-K doesn't have. First, order date vs. processing date — Shopify books a December 31 order to December, even if the processor captured the payment on January 2. Second, scope — depending on which report you ran and which filters you accepted, you may be looking at all sales channels or just the online store, all payment gateways or just Shopify Payments, totals that include or exclude taxes and shipping, figures net of refunds or gross of them.

Two people can export "the Shopify number" for the same store and year and get legitimately different figures, both correct for what they asked. If you've never pinned down which question your export answers, the Shopify 1099-K gross sales mismatch isn't a discrepancy — it's two different questions wearing the same label.

QuickBooks: whatever your recording method posted

QuickBooks has no opinion of its own. The income on your P&L is exactly what your recording method put there — nothing more.

If the bank feed drove the books, income is net deposits: gross sales minus fees, minus refunds, minus sales tax, bundled by payout. If orders synced as individual gross invoices, income is closer to gross sales — with tax handled correctly or not, depending on setup. If a bookkeeper posted monthly journal summaries, income is whatever those journals said.

This is why the QBO figure is the wildest variable of the three. The 1099-K and Shopify's reports are at least consistent instruments — they measure something specific, the same way every year. QBO reflects a method, and most stores never consciously chose theirs. We've written about the most common symptom of that — the payout that never matches what QuickBooks shows — and it's the same root cause surfacing in January at annual scale.

The reconciliation bridge: explaining the gap to the penny

Here's the actual work of 1099-K reconciliation in QuickBooks — and it's a bridge, not a hunt. You start from the 1099-K gross, apply the named deltas one at a time, and land on your QBO income figure. When the bridge lands, you're done: the gap is explained, documented, and boring.

The deltas come from a short, known list:

  • Sales tax collected — inside the 1099-K gross, never inside income. It's a liability you (or Shopify) pass through to tax authorities.
  • Refunds and chargebacks — the 1099-K ignores them; your books shouldn't. See our full guide to refunds and returns accounting for the period-correct treatment.
  • Processing feesnot a delta if your books record gross sales with fees as an expense. If you need a fee adjustment to make the bridge land, that's the tell your books recorded net deposits — more on that below.
  • Other gateways — PayPal and friends are in your books and Shopify's all-gateway reports, but not on this 1099-K.
  • Year-boundary timing — orders placed in the last days of December and captured by the processor in January sit in different years on the form than in the books, in both directions.

Here's the bridge for a fictional store — call it Cedar & Pine Candle Co. — with clean, gross-recorded books:

Step Adjustment Running total
1099-K gross (Shopify Payments) $412,847.16
Less: sales tax collected inside those transactions −$27,306.90 $385,540.26
Less: refunds and chargebacks on Shopify Payments orders −$11,458.22 $374,082.04
Plus: orders paid through PayPal (separate processor, not on this form) +$38,914.55 $412,996.59
Less: net year-boundary timing (orders on the form vs. orders in the books) −$1,206.40 $411,790.19
Explained gross revenue $411,790.19

QBO P&L total income: $411,790.19. The bridge lands to the penny. The $12,036.16 in processing fees appears nowhere in this table — it's sitting where it belongs, as an expense line on the P&L, not as a mystery inside the revenue number.

Notice what just happened: three numbers that "didn't match" turned out to agree completely, once each delta was named. Nothing was underreported. Nothing was wrong. The store's January question changed from "why don't these match?" to "here's why they don't, line by line" — and that second sentence is the entire deliverable, whether it's going in your own tax folder or a client workpaper. Whether any specific line item changes what goes on the return is a question for the tax preparer; the bridge's job is to make their answer fast.

The recording method that makes next January trivial

The bridge above took five lines because Cedar & Pine's books were recorded a specific way: gross sales posted as revenue, fees separated into their own expense accounts, sales tax posted to a liability, refunds posted as contra-revenue.

If the books instead record net deposits from the bank feed, every one of those components is fused into a single number, and the January bridge becomes archaeology — you're reverse-engineering fees, tax, and refunds out of twelve months of blended payouts before you can even start the table above.

The fix is structural, not seasonal, and it's two decisions. First, record gross: revenue reflects what customers actually paid, flowing through a clearing account that ties to each payout. The full architecture is in our pillar guide to reconciling Shopify payouts in QuickBooks. Second, separate the fees: Shopify's fee types have different meanings and different diagnostic value, and breaking them out properly in QuickBooks is what makes the fee line on your P&L reconcilable against processor statements.

Do those two things all year and next January's bridge assembles itself: the tax liability account gives you line two, the refunds account gives you line three, the gateway-level clearing accounts give you line four. This is also precisely the recording pattern LedgerPort automates — each payout posts gross sales, fees, refunds, and collected tax to their own accounts as it happens, so the year-end deltas are already sitting in named accounts instead of waiting to be excavated.

For firms: the repeatable January workpaper

If you run an accounting practice, the bridge table above is worth standardizing as a per-client January workpaper: 1099-K gross at the top, the five named deltas as fixed rows, QBO income at the bottom, with each row tied to a QBO account or a Shopify export. Once the format is fixed, the marginal client costs you minutes, not hours — and the workpaper doubles as the documentation you keep on file if the gap between the form and the return ever gets questioned. It slots directly into the January workflow we lay out in our guide to tax season prep for e-commerce clients, and clients whose books were recorded gross all year are the ones where the workpaper fills itself in.

Three numbers, one explanation

The January panic runs on a false premise — that matching numbers are the proof of clean books. The real proof is an explained gap: a 1099-K gross, a Shopify report, and a QBO income figure that differ for exactly the reasons your bridge says they do, down to the last penny.

If building that bridge from this year's books sounds like archaeology, that's the signal the recording method is the problem — not the numbers. Start free with LedgerPort and every payout from today forward posts gross sales, fees, refunds, and collected tax to their own accounts, so next January's bridge is five lines you already have. Firms managing multiple client stores can set the same structure up across clients through CPA onboarding.

Smetti per Sempre di Inserire Dati Manualmente

Collega il tuo negozio a QuickBooks in 15 minuti e lascia che LedgerPort si occupi del resto.

Inizia Gratis Vedi prezzi →

Connettiamoci:

Automatizza la tua contabilità e-commerce oggi stesso

Collega il tuo negozio Shopify o WooCommerce a QuickBooks in meno di 15 minuti, senza bisogno di codice.

Garanzia di rimborso di 14 giorni · Piano gratuito disponibile