Stripe Fees, Refunds and Disputes Explained
Stripe takes its processing fee on every charge, and — importantly — keeps that fee when you refund. Disputes add their own fee. These three things (fees, refunds, disputes) are the main ways your Stripe balance ends up lower than the payments you collected.
The short answer: a charge adds amount − fee
to your balance. A refund subtracts the full refunded amount but does
not give back the original processing fee. A dispute reverses the
charge and adds a dispute fee (returned only if you win). Stripe does
not charge a fee to send a normal payout.
Processing fees on every charge
Stripe charges a per-transaction fee on each successful payment. For most
accounts this is a percentage of the charge plus a fixed amount (for example,
2.9% + $0.30 per successful card payment in the US — your exact rate
depends on your country and payment method). The fee appears as a
stripe_fee balance transaction and is subtracted before the money
is yours. Stripe does not charge a fee to initiate a normal
payout.
Refunds: the original fee is not returned
When you refund a payment, Stripe reverses the charged amount, but the
processing fee from the original transaction is not returned.
As Stripe’s own support notes, for standard pricing there is usually no
extra charge to issue a refund, but “Stripe’s processing fees from
the original transaction aren’t returned.” You can refund the full
amount or a partial amount; either way the fee stays with Stripe. The refund
itself shows up as a refund balance transaction with a negative
amount.
Disputes (chargebacks): a separate fee
A dispute (also called a chargeback) is opened when a cardholder’s bank reverses a payment. Two things happen:
- The disputed amount is pulled back from your balance (a
disputebalance transaction). - Stripe charges a dispute fee for each dispute received (the amount varies by country — around $15 in the US; some payment types can add network fees in rare cases).
The dispute fee is returned if you win the dispute (you submit evidence and it resolves in your favor) and not returned if you lose. In either case the disputed amount itself is already reversed.
A worked example
Suppose you take two charges, then refund one in full and lose a dispute on the other (US example rates: 2.9% + $0.30 fee, $15 dispute fee):
| Event | Category | Gross | Fee | Net |
|---|---|---|---|---|
| Charge A | charge | 100.00 | 3.20 | 96.80 |
| Charge B | charge | 50.00 | 1.75 | 48.25 |
| Refund of Charge A | refund | −100.00 | 0.00 | −100.00 |
| Dispute on Charge B | dispute | −50.00 | 15.00 | −65.00 |
| Net change to your Stripe balance | −19.95 | |||
Even though you collected $150.00 in charges, the full refund (you ate Charge A’s $3.20 fee) and the lost dispute (the $50 plus a $15 fee) leave your balance −$19.95 on this batch. The original processing fees are gone, and the dispute fee is not returned because the dispute was lost.
How to check fees, refunds and disputes in Stripe
-
Open Payments and Balances
In the Dashboard, open Payments to see each charge and refund, and Balances for the running total. Each event is a balance transaction.
-
Review the Payout reconciliation report
The itemized payout reconciliation report groups every row by reporting category —
charge,refund,stripe_fee,dispute— so you can see how much each one removed from the payout. -
Check dispute status
Open Disputes to see whether a dispute is won, lost or under review. The dispute fee is returned only when the dispute is won.
-
Sum the Net column
Add up
netacross the batch. It should equal the change in your balance — and, once settled, the payout.
Common misunderstandings
- “A refund gives the fee back.” No — the original processing fee is never returned on a refund.
- “A dispute only reverses the charge.” It also adds a separate dispute fee that is only refunded if you win.
- “Stripe charges to send a payout.” Normal payouts have no initiation fee; only cross-currency settlement in a non-primary currency can add a fee at settlement.
- Ignoring currency conversion. When a payment is taken in a currency you don’t settle in, an FX fee applies on top of the processing fee.
-
Confusing the dispute fee with the processing fee. They are
different balance transactions (
stripe_feevsdispute_fee) and behave differently on refunds.
How Stripe Money Detective can help. Stripe Money Detective imports the Payout Reconciliation (Itemized) CSV and groups every balance transaction by reporting category — charges, refunds, Stripe fees, disputes and adjustments — so you can see exactly how much each one changed the payout. 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 explains the numbers; it is not accounting or tax advice. See how it works.
Related official resources
- Stripe Support — Understanding fees for refunded payments (original processing fees are not returned)
- Stripe Docs — Receive payouts (no payout-initiation fee; settlement timing)
- Stripe API — Balance Transactions (amount, fee, net, reporting category)
- Stripe Docs — Balance transaction types (charge, refund, stripe_fee, dispute)