Your Stripe 1099-K arrived in January. Box 1a says $412,847. You pull up QuickBooks, run a P&L for 2025, and the revenue line says $387,204. There's a twenty-five-thousand-dollar hole between the two and you have no idea where it went.
Nothing is missing. Nobody stole anything. Your books are probably using net deposits where the IRS form reports gross payments, and now you're sitting three days past the filing deadline trying to figure out what to do about it.
Let's walk through it.
Table of Contents
- What the 1099-K Actually Shows
- Why QuickBooks Is Almost Always Lower
- Where the Gap Actually Comes From
- Putting It Together
- So What Do You Actually Do About It?
- If the IRS Sends You a CP2000
- How to Not Go Through This Again Next Year
- Or, Automate It
What the 1099-K Actually Shows
The 1099-K is gross. That's the whole thing. Box 1a — "Gross amount of payment card/third party network transactions" — is every successful charge that ran through your Stripe account during the calendar year, totaled up with no deductions for anything.
No Stripe fees subtracted. No refunds you issued subtracted. No chargebacks subtracted. No sales tax carved out. If a customer paid you $100 and you refunded them the next day, that $100 is still on the 1099-K. If a customer paid you $100 and Stripe took $3.20 in fees, the 1099-K still shows $100.
Stripe doesn't get to decide this. Gross reporting is what the IRS requires of payment processors, and there's no version of the form where they shave off fees first.
One thing worth mentioning if you're newly dealing with this: the reporting threshold has moved around a lot. Check the current IRS rules before assuming whether you'll receive a form. For Stripe merchants taking card payments, the more important point is this: if you receive a 1099-K, it reports gross payments, not net payouts or taxable profit.
Why QuickBooks Is Almost Always Lower
Here's what 90% of the time is happening in QuickBooks: Stripe deposited some number into your bank, say $4,827.63, and you (or whoever handles your books) categorized that deposit as "Sales Revenue."
That single habit is the entire problem.
The actual sales behind that deposit might have been $5,200. Stripe took $152 in fees. A customer refunded $180. There was a $40 chargeback. What landed in the bank was what was left. By booking it as revenue, you told QuickBooks you earned $4,827.63 when you actually earned $5,200 — and the fees, refunds, and chargebacks vanished from your books entirely. They're not in revenue, not in expenses, not anywhere.
Do that week in and week out for a year and your QuickBooks revenue comes in tens of thousands below your 1099-K, which is exactly the gap you're looking at right now.
We wrote about this failure mode from a different angle in why your Stripe deposits don't match your sales. The short version: the 1099-K didn't change. Your bookkeeping method was already hiding the gross breakdown. The 1099-K is just the first thing that made you notice.
Where the Gap Actually Comes From
Four things drive almost the entire gap. A fifth one — timing — is usually noise but occasionally matters.
Processing fees. Stripe's standard US card pricing is commonly 2.9% + $0.30 per successful domestic card transaction, though your actual rate can vary by payment method, country, and pricing agreement. For a business running $413K through Stripe over maybe 6,000-ish transactions at standard pricing, you're looking at something like $14K in fees for the year. Every one of those dollars was on a charge that showed up on the 1099-K, but if you booked net payouts as revenue, none of it is on your P&L as an expense. (How to record Stripe fees in QuickBooks covers the journal entry format.)
Refunds. This is the one that catches people off guard. When you refund a customer, the original charge is still on your 1099-K. The refund doesn't reverse it. The IRS sees the gross money-in, and the refund is supposed to live on your books as a separate contra-revenue transaction. If you refunded $8,400 over the year and none of that is in a refunds account in QuickBooks, that's $8,400 of the gap right there.
Chargebacks and dispute fees. Chargebacks are a double whammy. The customer's original charge was on your 1099-K. Then Stripe pulled that money back out of your next payout, plus a $15 dispute fee on top, whether you won the dispute or not. A dozen chargebacks at $90 each is $1,080 of the gap, plus another $180 in dispute fees — $1,260 combined.
Sales tax collected through Stripe Tax. If you use Stripe Tax, every dollar of sales tax your customers paid ran through Stripe on its way to the states. Those dollars are on the 1099-K as part of gross. But they were never your revenue — they were a liability you were holding on behalf of a state. The dollar size of this component depends entirely on what share of your sales were taxable and at what rates. For a business selling mostly non-taxable services or out-of-state, it's a rounding error (our example has about $1,460). For a business selling taxable goods in-state, it can easily be the single biggest piece of the gap. We wrote up the proper treatment in how to record sales tax and VAT collected via Stripe in QuickBooks.
Timing. The 1099-K is calendar-year based on charge date. A card charged at 11:58 PM on December 31 is on last year's 1099-K, even though the payout didn't hit your bank until January. If you book revenue on deposit date, a few days around each year-end boundary will land in the "wrong" year. Over a full year the two ends usually roughly wash, but it can contribute a couple thousand either way.
Putting It Together
Here's what a reconciliation looks like for the example above:
| Line item | Amount |
|---|---|
| Stripe 1099-K Box 1a (gross) | $412,847.22 |
| Less: Stripe processing fees | $14,022.00 |
| Less: Refunds issued | $8,400.00 |
| Less: Chargebacks + dispute fees | $1,260.00 |
| Less: Sales tax collected (Stripe Tax) | $1,460.61 |
| Less: Dec 31 → Jan 1 timing | $500.00 |
| Implied QuickBooks revenue | $387,204.61 |
If your QuickBooks revenue ties (or comes close — a few hundred dollars off is normal and usually timing) then you're done. You have an explanation for the gap and every dollar is accounted for.
This table, or something like it, is the artifact. It's what you give your accountant. It's what you give the IRS if they send you a letter. Even if you never do anything else about your books, having this on hand is the difference between an hour of stress and a multi-month correspondence audit.
To build it, pull the reports that explain each piece of the difference:
- Your Stripe 1099-K or annual tax report
- Balance summary
- Fees report
- Refunds report
- Disputes or chargebacks report
- Stripe Tax report, if you use Stripe Tax
So What Do You Actually Do About It?
Depends how bad it is.
If you've been booking net deposits as revenue — which is the most common situation and probably yours if you're reading this — the clean fix is adjusting journal entries. One per month for the year, each one debiting the fee, refund, chargeback, and sales tax accounts for what flowed through that month, and crediting Sales Revenue for the total. When you're done, your revenue equals what's on the 1099-K (less sales tax, if you use Stripe Tax), fees and refunds live where they belong, and your P&L actually reflects what happened in the business.
The alternative — if you filed taxes on the net numbers, aren't being looked at, and really don't want to restate — is to at least produce the reconciliation table and file it with your tax records. Your records are still missing the clean gross breakout, but you've got a paper trail. I'd push you toward actually restating unless the work is genuinely prohibitive, because understated revenue shows up as a question on loan applications and in any kind of diligence.
This is bookkeeping guidance, not tax advice; have your accountant decide whether to adjust prior books, amend a return, or simply keep a reconciliation schedule with your records.
If you've been booking gross already but the numbers still don't tie, the culprit is almost always sales tax or timing. Nobody gets fees wrong if they're tracking them at all — the arithmetic is too direct. Check that Stripe Tax amounts are going to a liability account instead of revenue. Check whether you missed a payout. Check the last week of December against the first week of January.
If the only gap is a few hundred dollars of year-end timing, you don't need to do anything beyond noting it. Nobody at the IRS is going to chase a $400 difference explained by a late-December charge that settled in January.
If the IRS Sends You a CP2000
If the 1099-K is materially higher than the gross receipts on your return, the IRS matching system will send you a CP2000 notice — basically a letter saying "we think you underreported income, here's the additional tax we think you owe, please explain."
A CP2000 is not an audit. It's an automated matching discrepancy, and most of them resolve on the first response. You write a short cover letter disagreeing with the proposed assessment, attach your reconciliation (the table above), and include the supporting Stripe reports — the annual fee summary, the refund report, the sales tax remittance records. The IRS looks at it, the numbers make sense, they close the case.
The ones that turn into actual problems are the ones where the business can't reconstruct the reconciliation, or where the underlying books don't give a credible explanation. Get the reconciliation done once and keep it, even if you haven't received a notice. It's the same work either way and you'd rather have it waiting in a folder than be scrambling to build it under a 30-day IRS response deadline.
How to Not Go Through This Again Next Year
Book at gross. That's it. That's the fix.
Every Stripe payout should get a journal entry that breaks out the pieces: gross revenue as a credit, processing fees as an expense debit, refunds and chargebacks as their own line items, sales tax as a liability credit, and the net deposit as the debit to your bank. Do that consistently for a year and your year-end revenue lines up with the 1099-K automatically. No reconciliation panic in April. No 30-day response letter from the IRS.
The full journal entry format is in our reconciliation guide, and the 4 ways to record Stripe transactions comparison lays out the tradeoffs between doing it by hand, batching it at month-end, or automating it.
Or, Automate It
Honestly, the reason most people end up with a 1099-K gap isn't that they don't know better. It's that doing payout-by-payout journal entries manually is 2-3 hours a week of tedious work, and at some point in month three you fall behind and never catch up.
SyncFast connects to Stripe and QuickBooks and writes the journal entry for you every time a payout settles. Fees, refunds, chargebacks, sales tax — each one mapped to the account you specify. The books are recorded at gross, always, because a computer is doing it and doesn't get bored.
There's a free plan that covers up to 50 transactions a month, and paid plans start at $9. Either way, January of next year looks a lot less dramatic.
