Stripe payouts to a QuickBooks journal entry

In short: Stripe's itemized payout reconciliation report lists every charge, refund and fee with the id of the automatic payout that paid it out, so each bank deposit can be explained line by line. A payout journal entry records each payout as what it was: money received as gross sales, fees and refunds on their own lines, and only the amount that actually reached your bank on the bank line, balanced to the cent. Drop the file below. It is converted on your device and never uploaded.

Convert your file

Stripe payouts to QuickBooks journal entry

Itemized Payout reconciliation report CSV

Your file stays on this device

It is read and converted by this page, inside your browser. Nothing from the file is uploaded, and the converter keeps working offline once the page has loaded.

One email when it ships. The address is used for nothing else. Details.

1. Export the file from Stripe

  1. In the Stripe Dashboard open Reports > Payout reconciliation.
  2. Choose a date range that contains the payouts' arrival dates.
  3. In the "Payout reconciliation" section click Download, pick Itemized and CSV.
  4. Make sure the automatic_payout_id column is included (it is by default in current versions).

Why a raw Stripe payouts export fails in QuickBooks Online (journal entry import)

The deposit in your bank is the payout: charges minus refunds minus Stripe fees, often across several days. Entering the deposit as income understates revenue and hides the fees; entering every charge as a deposit double counts.

Importing every sale from a payment platform straight into the bank account never matches the bank, because the platform pays out one net amount after taking its fees and refunds. The usual fix is one summary journal entry per payout (or per month when the export does not link sales to payouts): gross sales counts only money received, payments you sent get their own line, fees on a payout or instant transfer are expensed so the bank line is only what arrived, payments the export clearly marks as funded by a card go to a card account instead of the bank (unclear funding labels go to the bank, with a note), and a chargeback you win reduces refunds. You then match the bank line against the deposit in your bank feed.

What is unusual about the Stripe payouts file

  • Every row carries automatic_payout_id, so we can build one journal entry per payout.
  • The payout itself is not a row: the payout amount is the sum of the rows that belong to it.
  • Only automatic payouts are covered; instant and manual payouts cannot be matched by Stripe.
  • Also accepts the payouts section export of Reports > Balance and the legacy balance_history.csv with its Transfer column.

What QuickBooks Online (journal entry import) requires

  • Each entry shares one Journal No. and date, and its debits equal its credits.
  • Lines show gross sales (money received), refunds, fees, taxes, payments you sent (on their own line, not deducted from sales), transfers between the platform and your bank (booked as transfers, never as income or expense), and the deposit that hit your bank.
  • Account names must match your chart of accounts exactly; subaccounts as Parent:Sub.
  • Up to 1,000 lines per file (we split bigger files without breaking an entry).

2. Before and after

Before: the Stripe payout reconciliation CSV as downloaded

"automatic_payout_id","automatic_payout_effective_at","balance_transaction_id","created","available_on","currency","gross","fee","net","reporting_c...
"po_7X2TestPayoutA0001","2025-02-04 00:00:00","txn_7X2TestBBBB00001","2025-01-30 16:31:18","2025-02-04 00:00:00","usd","102.00","3.26","98.74","cha...
"po_7X2TestPayoutA0001","2025-02-04 00:00:00","txn_7X2TestBBBB00002","2025-01-31 10:05:00","2025-02-04 00:00:00","usd","49.99","1.75","48.24","char...
"po_7X2TestPayoutA0001","2025-02-04 00:00:00","txn_7X2TestBBBB00003","2025-01-31 12:00:00","2025-01-31 12:00:00","usd","-10.00","0.00","-10.00","re...
"po_7X2TestPayoutA0001","2025-02-04 00:00:00","txn_7X2TestBBBB00004","2025-02-01 00:00:00","2025-02-01 00:00:00","usd","-0.50","0.00","-0.50","fee"...
"po_7X2TestPayoutB0002","2025-02-06 00:00:00","txn_7X2TestBBBB00005","2025-02-02 08:00:00","2025-02-06 00:00:00","usd","300.00","9.00","291.00","ch...
"po_7X2TestPayoutB0002","2025-02-06 00:00:00","txn_7X2TestBBBB00006","2025-02-03 09:00:00","2025-02-03 09:00:00","usd","-30.00","15.00","-45.00","d...

After: what QuickBooks Online (journal entry import) receives

After: stripe-payouts-journal-payout-2025-02-04-to-2025-02-06.csv
Journal No.Journal DateAccount NameDebitsCreditsDescriptionName
BR-20250204-102/04/2025Sales of Product Income151.99Gross sales - Stripe payout po_7X2TestPayoutA0001
BR-20250204-102/04/2025Sales of Product Income10.00Refunds - Stripe payout po_7X2TestPayoutA0001
BR-20250204-102/04/2025Bank Charges & Fees5.51Fees - Stripe payout po_7X2TestPayoutA0001
BR-20250204-102/04/2025Checking136.48Deposit - Stripe payout po_7X2TestPayoutA0001
BR-20250206-102/06/2025Sales of Product Income300.00Gross sales - Stripe payout po_7X2TestPayoutB0002
BR-20250206-102/06/2025Sales of Product Income30.00Refunds - Stripe payout po_7X2TestPayoutB0002

Synthetic sample data that follows the real export layout, not a real account. The "after" output was produced from it by the same converter this page runs.

3. Import the converted file into QuickBooks Online (journal entry import)

  1. Make sure every account named in the file exists in your chart of accounts (or change the account names before downloading).
  2. In QuickBooks Online go to Settings (gear) > Import data > Journal entries.
  3. Upload this CSV and map Journal No., Journal Date, Account Name, Debits, Credits, Description and Name.
  4. Review and import. Each payout (or month) becomes one balanced entry.

Questions

Does QuickBooks Online have a Stripe connection already?
There are paid apps that sync Stripe to QuickBooks continuously. If you only need to catch up on past payouts, or prefer to review each entry, importing payout journal entries from a Stripe report does the same job without a subscription.
Why does my Stripe revenue not match my deposits?
Stripe deducts its fees, refunds and dispute amounts before paying out, and one payout can cover charges from several days. The payout journal entry shows each part separately, so both the deposit and the revenue come out right.
Why record payouts as a journal entry instead of importing every sale?
Your bank receives one deposit per payout, already reduced by fees and refunds. If each sale goes into the bank account separately, the bank feed shows one deposit you cannot match to dozens of entries. A journal entry per payout records gross sales, fees and refunds in their own accounts, and a bank line of exactly the deposit amount.
Does this cover instant or manual payouts?
No. Stripe only links charges to automatic payouts in this report, so instant and manual payouts cannot be matched to the charges they paid out.
Which accounts should the journal entry use?
Every account named in the file has to exist in your QuickBooks chart of accounts already, so set the account names in the options to the ones you use: sales, fees, payments you sent, the clearing account for money still held by the platform, the bank account that receives transfers, and the card account for payments the export clearly marks as paid from a card. This is not accounting advice; ask whoever prepares your return if you are unsure.

Other exports to QuickBooks journal entry

Common import problems