Handling Stripe Refunds in QuickBooks Online
A comprehensive guide to properly accounting for Stripe refunds in QuickBooks, including the critical detail that processing fees are NOT refunded.
⚠️ Critical Information:
Stripe does NOT refund processing fees when you refund a payment. This is the single most important thing to understand about Stripe refunds.
How Stripe Refunds Appear in CSV Exports
When you issue a refund in Stripe, it appears as a separate transaction in your Balance Transaction CSV export. It's not just a reversal of the original charge — it's a new line item.
Example: Original Charge
| Transaction ID | Gross | Fee | Net | Category |
|---|---|---|---|---|
| txn_1ABC123 | $100.00 | $3.20 | $96.80 | charge |
Example: Refund Transaction
| Transaction ID | Gross | Fee | Net | Category |
|---|---|---|---|---|
| txn_1DEF456 | -$100.00 | $0.00 | -$100.00 | refund |
Key observations:
- Gross: Negative amount (the money being returned to the customer)
- Fee: $0.00 (Stripe does NOT refund the original $3.20 fee!)
- Net: Negative amount equal to Gross (since fee is $0)
- Category: "refund" (helps identify refund transactions)
- Description: Usually includes "REFUND FOR CHARGE" and references the original transaction
The Critical Fee Behavior
This is where many accountants make mistakes. Let's walk through the actual cash flow of a charge and refund:
Day 1: Customer Pays $100
• Customer pays: $100.00
• Stripe fee: -$3.20 (2.9% + $0.30)
• You receive: $96.80
(This gets deposited to your bank when Stripe pays out)
Day 5: You Issue Full Refund
• Refund to customer: $100.00 (you pay this from your Stripe balance)
• Stripe fee refunded: $0.00 (Stripe keeps the $3.20)
• Cost to you: $100.00
Net Result:
• Money received: $96.80
• Money paid out: $100.00
• Total loss: $3.20 (the Stripe fee you can never get back)
Accounting for Full Refunds in QuickBooks
Full refunds require reversing the original journal entry, but with one critical adjustment: you must account for the lost processing fee.
Journal Entry Example
Original Charge Journal Entry:
| Account | Debit | Credit |
|---|---|---|
| Stripe Clearing (Asset) | $96.80 | — |
| Stripe Processing Fees (Expense) | $3.20 | — |
| Revenue (Income) | — | $100.00 |
| Totals | $100.00 | $100.00 |
Refund Journal Entry:
| Account | Debit | Credit |
|---|---|---|
| Revenue (Income) | $100.00 | — |
| Stripe Clearing (Asset) | — | $100.00 |
| Totals | $100.00 | $100.00 |
Note: No fee adjustment! The original $3.20 fee expense stays on your books as a permanent cost.
Why This Matters:
After both entries, your Stripe Processing Fees account shows a $3.20 expense that never gets reversed. This accurately reflects the real cost: you earned $0 in revenue but paid $3.20 in fees.
Your Stripe Clearing account is also reduced by $100, which will be reconciled when Stripe deducts this from your next payout.
Accounting for Partial Refunds
Partial refunds are simpler because you're only reversing part of the revenue. The fee is still not refunded at all.
Example: $100 Charge, $40 Partial Refund
Original Charge (Same as Before):
- Debit Stripe Clearing: $96.80
- Debit Stripe Fees: $3.20
- Credit Revenue: $100.00
Partial Refund Entry ($40):
| Account | Debit | Credit |
|---|---|---|
| Revenue (Income) | $40.00 | — |
| Stripe Clearing (Asset) | — | $40.00 |
| Totals | $40.00 | $40.00 |
Net Result:
- Revenue: $60.00 ($100 - $40 refund)
- Stripe Fees: $3.20 (unchanged - fee is based on original $100 charge)
- Net Income: $56.80 ($60.00 revenue - $3.20 fees)
Notice that you paid a $3.20 fee on a $100 charge but only kept $60 in revenue. This is accurate and reflects Stripe's policy.
Common Mistakes and How to Avoid Them
Mistake #1: Reversing the Fee Expense
Wrong: Creating a journal entry that credits Stripe Fees $3.20 when you issue a refund.
Why it's wrong: Stripe doesn't give the fee back. Your books would show $0 in fees but you actually lost $3.20.
Mistake #2: Not Recording the Refund at All
Wrong: Ignoring refunds because "they cancel out."
Why it's wrong: Your revenue will be overstated. If you sold $10,000 and refunded $1,000, your revenue should be $9,000, not $10,000.
Mistake #3: Recording Refunds as Negative Revenue
Wrong: Entering -$100 in your revenue account instead of debiting it.
Why it's wrong: This can cause reporting issues. Some accounting software treats negative revenue differently than debits. Always debit revenue for refunds.
Mistake #4: Mixing Refund Types
Wrong: Recording refunds, disputes, and chargebacks the same way.
Why it's wrong: Disputes and chargebacks have additional fees ($15 dispute fee). They should be tracked separately for visibility.
Refunds vs Disputes vs Chargebacks
It's important to understand the difference:
| Type | Who Initiates | Processing Fee | Dispute Fee |
|---|---|---|---|
| Refund | You (merchant) | Not refunded | None |
| Dispute | Customer (via bank) | Not refunded | $15 (refunded if you win) |
| Chargeback | Customer (via bank) | Not refunded | $15 (not refundable) |
Recommended: Create separate expense accounts for dispute fees and chargebacks so you can track how much you're losing to these issues.
How TrestleFinance Handles Refunds
TrestleFinance automatically detects and correctly handles refund transactions:
Automatic Refund Processing:
- ✅ Detects refunds: Identifies transactions with negative gross and
reporting_category = refund - ✅ Reverses revenue correctly: Creates journal entry that debits revenue (not negative credit)
- ✅ Preserves fee expense: Does NOT reverse the original fee entry (accurate representation)
- ✅ Handles partial refunds: Only reverses the refunded amount, not the full charge
- ✅ Links to original charge: Includes description/memo linking refund to original transaction
- ✅ Reconciliation report: Shows refunds separately so you can see total fees lost to refunds
Try It With Your Data:
- 1. Export your Stripe Balance Transactions (include refunds in date range)
- 2. Upload to TrestleFinance (preview is free)
- 3. Review how refunds are converted to journal entries
- 4. Verify that fees are correctly NOT reversed for refund transactions
- 5. Check the reconciliation report for total refund impact
Frequently Asked Questions
Does Stripe refund processing fees when I refund a payment?
No. Stripe keeps the original processing fee when you issue a refund. If you charged $100 with a $3.20 fee, you received $96.80. When you refund, you pay back $100 but only get $96.80 back from your balance. You lose the $3.20 fee permanently.
How do refunds appear in Stripe Balance Transaction CSV exports?
Refunds appear as separate transactions with negative Gross amount, $0.00 Fee, and negative Net amount. The reporting_category is "refund" and the description usually references the original charge.
What's the difference between a refund and a chargeback in Stripe?
A refund is voluntary - you choose to return the money. A chargeback is when a customer disputes the charge with their bank. Chargebacks incur an additional $15 dispute fee (which is refunded if you win). Both result in losing the original processing fee.
How do I record partial refunds in QuickBooks?
Create a journal entry that debits revenue for the partial amount and credits your Stripe clearing account. Since Stripe doesn't refund fees, there's no fee adjustment. Example: $100 charge with $3.20 fee, you refund $50. Journal entry: Debit Revenue $50, Credit Stripe Clearing $50.
Can I get the processing fee back if the refund was due to fraud or an error?
Generally no. Stripe charges the processing fee when the charge is created, and it's not refunded unless Stripe determines the charge was unauthorized or fraudulent. Contact Stripe support for specific cases, but assume fees are not refundable.
Try TrestleFinance Free
Upload your CSV and see the converted output before paying. 3 free export credits for new accounts.
Upload CSV Now