← AI Bookkeeper

Shopify bookkeeping: book the sales, the fees and the chargebacks, not just the payouts

A Shopify Payments payout lands in your bank as one lump: sales less processing fees, refunds and chargebacks. Book the lump and your books understate both what you sold and what taking cards cost you. The payout transactions export has the detail.

Worked example: two payouts, one refund, one chargeback

The tool ships a synthetic Shopify payout transactions export for May 2026 (fixtures/shopify-payout-transactions.csv): five paid orders, a $30.00 refund, a $45.00 chargeback with its $15.00 fee, and one order not yet paid out. Two deposits ($213.11 and $205.44) are in the bank. The first payout reads as $221.50 of sales (after the refund) less $8.39 of processing fees; the second as $274.00 of sales less $8.56 of fees and $60.00 of chargeback loss and fee.

Figures from running the payout reader and planner on the fixture and a two-line bank statement. Synthetic data, not a real shop.
May 2026Booked from depositsBooked from the payout export
Sales (orders less the $30.00 refund)$418.55$495.50
Processing fees, chargeback and chargeback fee$0.00−$76.95
Net profit$418.55$418.55

The profit is the same; the difference is that one set of books shows what you sold, what taking cards cost, and a $45.00 chargeback with a $15.00 fee as something you can see and contest. That matters for the fees you deduct on Schedule C, for comparing with the gross figure on a 1099-K, and for spotting a processing rate that creeps up. The $75.00 order paid after the second payout stays pending until its deposit lands.

How to book it

  1. Export the payout transactions from the Shopify admin (Finances, Payouts) as a CSV, and download your bank statement.
  2. Import the bank statement in AI Bookkeeper, then run payouts shopify-payout-transactions.csv. Each payout is matched to the bank line of equal amount within a few days and shown as a plan; add --apply to post the splits.
  3. Read the leftovers. A row whose net is not amount less fee is refused as damaged; two bank lines that fit equally well are skipped rather than guessed; rows not yet paid out are listed as pending. The export's own payout rows are skipped, not double counted.
  4. Run it again next month. A payout already split is reported as done and nothing posts twice.

Orders paid by PayPal, gift card or a manual method do not appear in a Shopify Payments export; book those from their own report (PayPal's activity CSV reads through the same command). The column names are from Shopify's documented layout, written from memory, and no real export has been tried; check the totals against your own statement. For a 1099-K that does not match, see the reconciliation page.

Questions

Should I book Shopify payouts or Shopify sales as income?

Book the gross orders as sales, refunds as negative sales, and Shopify Payments fees, chargebacks and chargeback fees as expenses. The payout is only the cash that arrived, so booking it alone understates income and expenses by the same amount.

Which Shopify report do I need?

The payout transactions export: in the Shopify admin, open Finances, then Payouts, choose a payout or all payouts and export the transactions as CSV. It lists each charge, refund and chargeback with its amount, fee and net.

Why does my Shopify payout not match my orders?

A payout is the sum of the transactions since the last one, less processing fees, refunds and chargebacks. Orders paid by PayPal or manual methods are not in Shopify Payments payouts at all.

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 export.