How to Reconcile Stripe Balance Transactions

Reconciliation means proving that, for each payout, the sum of the net of every balance transaction it contains equals the payout amount — and that the payout amount matches your bank deposit.

The short answer: group the itemized CSV rows by their payout ID, add up the net column for that payout, and confirm the total equals the payout and your bank deposit. A balance transaction’s net is its amount minus its fee.

What a balance transaction is

Every financial event in your Stripe account — a charge, refund, fee, dispute, adjustment or the payout itself — is a balance transaction. According to Stripe’s API, each one carries:

The reconciliation equation

For one payout, the relationship is simply:

Σ net (charges, fees, refunds, disputes, adjustments)  =  payout amount  =  bank deposit

The payout also appears as its own balance transaction (type payout, with a negative net) that moves the money out of your Stripe balance to your bank. Exclude that row from the sum — it is the total you are checking against, not a component.

A worked example

One payout (po_ABC) arrives on 2026-08-06. Its itemized CSV has four component rows:

Component balance transactions for payout po_ABC
Balance txn ID Category Amount Fee Net
txn_1charge120.003.78116.22
txn_2charge84.002.7481.26
txn_3refund−40.000.00−40.00
txn_4stripe_fee0.000.30−0.30
Sum of net = payout amount157.18

116.22 + 81.26 − 40.00 − 0.30 = 157.18. The payout is $157.18, and that is the figure your bank should show as the deposit.

Step-by-step

  1. Export the itemized report

    In the Dashboard, open the payout and export the Itemized CSV (or use Reports → Payout reconciliation for a date range). Each row is one balance transaction.

  2. Keep IDs and amounts intact

    Open the file in a spreadsheet but keep the payout and transaction IDs as text and the amounts as numbers. Don’t let the tool reformat IDs or strip currency symbols.

  3. Group by payout

    Rows are tied to a payout by an automatic payout ID (or payout ID) column. Filter or sort so you are working with one payout at a time.

  4. Sum the Net column

    Add up net for that payout’s rows.

  5. Confirm against the bank

    The sum should equal the payout amount and your bank deposit. If you settle in multiple currencies, watch for FX conversion before comparing.

  6. Investigate any difference

    A mismatch usually comes from missing rows, duplicate balance transaction IDs, unparsed (“Unverified”) rows, or transactions still pending (in a later payout).

Common mistakes

How Stripe Money Detective can help. Stripe Money Detective imports the Payout Reconciliation (Itemized) CSV and groups every balance transaction by reporting category, so you can see the composition and reconciliation status at a glance. It flags duplicate balance transaction IDs instead of double-counting them and marks a payout Unverified when a row is missing or cannot be parsed. It supports automatic payouts in a single currency and runs entirely on your Mac — no Stripe connection, no upload. It assists the reconciliation; it is not a substitute for accounting or tax review. See how it works.

Related official resources