Your 1099-K does not match your books. Here is the bridge.
A 1099-K reports the gross payments a processor handled for you. Your books show income after refunds, and fees as an expense, and the bank shows only what was paid out. Three numbers, all correct. The way to settle a notice or a preparer's question is to walk from one to the next.
Worked example: one month, four numbers
Take the synthetic Stripe report used on the Stripe bookkeeping page (fixtures/stripe-payouts.csv): four charges ($940.00), a $50.00 refund, a $100.00 dispute with a $15.00 fee, and one $40.00 charge not yet paid out. Suppose the processor's form shows box 1a as $940.00. The command form1099k stripe-payouts.csv --year 2026 --gross 940.00, run after splitting the payouts, reports that the form and the report agree, and that account 4000 holds $850.00 against $890.00 expected: the $40.00 difference is the unpaid-out charge.
| Walk from the form to the bank | Amount |
|---|---|
| Box 1a on the 1099-K (gross payments) | $940.00 |
| less the refund (box 1a is not reduced by refunds) | −$50.00 |
| less a charge not paid out yet (still counted by the form) | −$40.00 |
| Sales in the books after splitting payouts | $850.00 |
| less Stripe fees on the paid-out charges | −$27.00 |
| less the dispute and its fee | −$115.00 |
| Deposited in the bank | $708.00 |
The fees and the dispute go to expenses, so net profit is $708.00 either way. Without the walk, the form looks $232.00 higher than the money that arrived and $90.00 higher than the sales in the books. With it, every dollar has a name. That matters because the fees are deductible only if they are booked as fees, and a notice that compares box 1a with your return is answered with the bridge, not an argument.
How to do it
- Get three things: the form's box 1a (and, if you have them, the twelve monthly boxes 5a to 5l), the processor's payout report for the same calendar year, and your bank statements.
- Split the payouts in AI Bookkeeper so sales, refunds and fees are booked apart from the lump deposits (see Stripe, Etsy, eBay or Amazon).
- Run
form1099k REPORT.csv --year 2026 --gross AMOUNT [--months J,F,...,D]. It lays out the report's gross, the form, the gap, the refunds and fees the form does not net, and what account 4000 should hold. With the monthly boxes it names the months that differ and catches a typo in their sum. - Read the notes. A form higher than the report usually means the export starts late, ends early or leaves out a profile or currency. The report higher than the form can mean non-reportable rows. A gap equal to the year's refunds or fees means the form may be netted, which box 1a is not.
The reconciliation was tested on hand-written reports only; no real 1099-K has been tried. What counts as a reportable transaction, the filing thresholds and the date a payment falls on are the processor's and the IRS's rules, and they change by year: check the instructions for the year.
Questions
Why is the gross on my 1099-K higher than my income?
Box 1a counts the gross payments the processor handled: before refunds, before its fees, and with any sales tax, tips or shipping the buyer paid. Your books carry income after refunds, and fees are an expense, so the two figures differ by design. The gap is explainable, and the explanation is a bridge from the form to your books.
Do I report the 1099-K amount as my income?
Report your actual income. The form is an information return the IRS compares with your return; if your income is lower than box 1a, the difference should be explainable (refunds, fees, sales tax collected, personal transfers marked as sales). Ask a tax professional how it is shown on your return.
What if the form and the processor's own report disagree?
Then the gap is between the form and the report, not the books. The usual causes are an export that starts after 1 January or ends before 31 December, a time-zone cut at year end, a second processor profile or currency, and the form counting by the year a payment was made. The tool lists what it finds.
Is it free?
Yes. It is open source (MIT), runs in your browser or as a command line tool, and nothing is uploaded.
Open AI Bookkeeper and import your bank statement and payout report.