Understanding Stripe Fee Sign Convention: Why Fees Are Positive Numbers
Complete explanation of why Stripe stores processing fees as positive numbers, how the fee deduction formula works, and the correct way to record fees in QuickBooks.
The Confusing Fee Sign
One of the most confusing aspects of Stripe balance transaction exports is the fee sign convention. When you look at your Stripe CSV, you'll see fees listed as positive numbers like +3.20, even though fees are money being deducted from your gross revenue.
This creates confusion because:
- Fees feel like they should be negative (money going away)
- QuickBooks expects fees as negative amounts in bank transaction imports
- PayPal uses the opposite convention (fees are negative)
- Accountants expect expenses to reduce net income
Example from Stripe CSV
gross: 100.00 fee: 3.20 ← Positive number! net: 96.80
Notice how the fee is shown as 3.20, not -3.20. This is intentional and mathematically correct for Stripe's formula: Net = Gross - Fee.
This guide will explain why Stripe uses positive fees, how the formula works, and what you need to do when converting to QuickBooks.
Stripe's Positive Fee Convention
Why Positive Numbers Make Sense
Stripe stores fees as positive numbers because fees represent the absolute cost of processing a payment. Here's the reasoning:
✓ Positive Fee Convention (Stripe)
- • Fee is the absolute cost: $3.20
- • Formula: Net = Gross - Fee
- • Intuitive: "Subtract the fee from gross"
- • Matches accounting: fees are positive expense amounts
- • Easier to read: "$3.20 fee" vs "-$3.20 fee"
Alternative: Negative Fee Convention (PayPal)
- • Fee is the net effect: -$3.20
- • Formula: Net = Gross + Fee
- • Less intuitive: "Add the negative fee"
- • Requires understanding negative addition
- • Can be confusing: "Why is the fee negative?"
Historical Context
Stripe's fee convention has evolved slightly over time:
| Period | Fee Sign | Formula |
|---|---|---|
| 2024+ (Current) | +3.20 (Positive) | Net = Gross - Fee |
| Pre-2024 (Legacy) | -3.20 (Negative) | Net = Gross + Fee |
TrestleFinance Auto-Detection
TrestleFinance automatically detects which fee convention your Stripe CSV uses by testing both formulas. This ensures compatibility with both current (positive fee) and legacy (negative fee) Stripe exports without requiring any user configuration.
The Gross - Fee = Net Formula
How the Math Works
Every Stripe balance transaction follows this formula:
Let's break down what each component means:
Gross
The total transaction amount before any fees. For a $100 charge, gross = $100.00. For a $100 refund, gross = -$100.00 (negative because money is going back to customer).
Fee
The absolute cost of processing the transaction. Always positive for regular charges. For a $100 charge with 2.9% + $0.30 fee, fee = $3.20. For refunds, fee = $0.00 (fees are not refunded).
Net
The amount actually deposited to (or withdrawn from) your bank account. This is gross minus fee. For a $100 charge with $3.20 fee, net = $96.80. This is what hits your bank balance.
Worked Examples
Example 1: Standard $100 Charge
Stripe CSV Values:
gross: 100.00 fee: 3.20 net: 96.80
Formula Verification:
Net = Gross - Fee 96.80 = 100.00 - 3.20 ✓ (Correct!)
Interpretation: Customer paid $100. Stripe kept $3.20 as processing fee. You received $96.80 in your bank account.
Example 2: $100 Refund
Stripe CSV Values:
gross: -100.00 fee: 0.00 net: -100.00
Formula Verification:
Net = Gross - Fee -100.00 = -100.00 - 0.00 ✓ (Correct!)
Interpretation: You refunded $100 to customer. Stripe did NOT refund the original $3.20 fee. You lost $100 from your bank, and the original $3.20 fee expense stays on your books.
Example 3: High-Value $5,000 Charge
Stripe CSV Values:
gross: 5000.00 fee: 145.30 net: 4854.70
Formula Verification:
Net = Gross - Fee 4854.70 = 5000.00 - 145.30 ✓ (Correct!)
Fee Breakdown: 2.9% + $0.30 = (5000 × 0.029) + 0.30 = $145.00 + $0.30 = $145.30
Accounting Treatment of Fees
Never Record Fees as Negative Revenue
One of the most common mistakes in Stripe accounting is treating fees as negative revenue. This is incorrect and distorts your financial statements.
✗ WRONG: Negative Revenue
Revenue: $96.80 (net only) or Revenue: $100.00 Revenue (fees): -$3.20 ───────────────── Total Revenue: $96.80
Problem: Understates actual sales volume. Makes it impossible to calculate true gross margin. Confuses revenue with profit.
✓ CORRECT: Separate Expense
Revenue: $100.00 Expenses: Payment Processing Fees: $3.20 ───────────────── Net Income: $96.80
Benefit: Accurate sales reporting. Clear expense tracking. Correct gross margin calculation. Industry-standard treatment.
Standard Chart of Accounts Setup
Here's how to structure your QuickBooks chart of accounts for Stripe transactions:
| Account Name | Type | Purpose |
|---|---|---|
| Stripe Clearing | Current Asset | Holds pending Stripe balance |
| Sales Revenue | Income | Gross revenue from sales |
| Payment Processing Fees | Expense | Stripe processing fees |
| Operating Bank Account | Current Asset | Your actual bank account |
Complete Journal Entry Example
Here's how to record a $100 Stripe charge with $3.20 fee:
When Sale Occurs:
| Account | Debit | Credit |
|---|---|---|
| Stripe Clearing | $96.80 | — |
| Payment Processing Fees | $3.20 | — |
| Sales Revenue | — | $100.00 |
Explanation: Record the full $100 as revenue. Record $3.20 as a separate expense. The net effect is $96.80 added to your Stripe clearing account.
Converting to QuickBooks Format
The Sign Conversion Challenge
When converting Stripe balance transactions to QuickBooks bank transaction format (3-column CSV), you need to convert the fee sign from positive to negative:
Stripe CSV Format
gross: 100.00 fee: 3.20 ← net: 96.80
Fee is positive
QuickBooks Format
Row 1: 96.80 Row 2: -3.20 ← (Two transactions)
Fee is negative
Why the Sign Must Change
QuickBooks bank transaction imports use a simple convention:
- +
Positive amounts = Money IN
Revenue, deposits, refunds received
- −
Negative amounts = Money OUT
Expenses, fees, purchases
Since Stripe fees represent money OUT (deducted from your account), they must be negative in QuickBooks format, even though they're positive in Stripe's CSV.
TrestleFinance Automatic Conversion
TrestleFinance automatically handles this conversion for you:
- 1. Reads Stripe fee: +3.20
- 2. Negates the value: -3.20
- 3. Creates separate transaction row with negative amount
- 4. Adds descriptive label: "Stripe processing fee"
Manual Conversion Steps
If you're converting Stripe CSVs manually, follow these steps:
Extract the fee column
Copy the "fee" column values from Stripe CSV
Negate all fee values
Use Excel formula: =A1*-1 to convert +3.20 to -3.20
Create separate transaction rows
Each charge needs TWO rows: one for net deposit, one for fee
Format as 3-column CSV
Date (MM/DD/YYYY), Description, Amount
⚠️ Time Investment Warning
Manual conversion of Stripe CSVs typically takes 30-60 minutes per month for businesses with moderate transaction volume. The process is error-prone and tedious. TrestleFinance automates this in seconds.
Common Mistakes
Mistake #1: Forgetting to Negate Fees
Problem: Importing Stripe's positive fees (+3.20) directly into QuickBooks creates positive amounts, which QuickBooks interprets as money IN, not money OUT.
Result: Your books show inflated income. Fees appear as revenue instead of expenses.
Fix: Always convert fees to negative (-3.20) when creating QuickBooks bank transaction CSVs.
Mistake #2: Recording Fees as Negative Revenue
Problem: Treating fees as negative revenue (subtracting from sales) instead of as a separate expense.
Result: Understates actual sales volume. Impossible to calculate accurate gross margin. Financial statements don't match industry standards.
Fix: Always record fees in a "Payment Processing Fees" expense account, separate from revenue accounts.
Mistake #3: Using Net Instead of Gross for Revenue
Problem: Recording only the net amount ($96.80) as revenue, ignoring the $3.20 fee entirely.
Result: Revenue is understated by the total fees. Cannot reconcile to Stripe's gross revenue reporting. Tax calculations may be incorrect.
Fix: Always record the gross amount ($100.00) as revenue, then record the fee ($3.20) as a separate expense.
Mistake #4: Not Splitting Net and Fee
Problem: Recording only one QuickBooks transaction for the net amount ($96.80), without a separate fee transaction.
Result: No visibility into total fees paid. Cannot track fee expenses for tax deductions. P&L shows revenue minus fees as a single "net revenue" line.
Fix: Always create TWO transactions in QuickBooks: one for net deposit (+96.80) and one for fee (-3.20). This gives full visibility into costs.
Mistake #5: Assuming Refunds Reverse Fees
Problem: When recording a refund, assuming the original fee gets refunded (reversing the fee expense).
Result: Fee expense is understated. Your books don't match reality (Stripe keeps the original fee).
Fix: Refund transactions should show Fee: $0.00 in Stripe CSV, and you should NOT reverse the original fee expense in QuickBooks. The fee is a permanent cost.
Avoid Manual Conversion Errors
TrestleFinance automatically handles fee sign conversion, formula verification, and proper transaction splitting.
Convert Your Stripe CSVFrequently Asked Questions
Why does Stripe show fees as positive numbers?
Stripe uses positive numbers for fees (+3.20) because fees represent the absolute cost of processing. The fee is a positive expense amount that gets subtracted from gross revenue. The formula is: Net = Gross - Fee. This is mathematically clearer than using negative fees, and matches how accounting systems typically record expenses.
How do I calculate net payout from Stripe CSV data?
Use the formula: Net = Gross - Fee. For example: Gross $100.00 - Fee $3.20 = Net $96.80. The net is what actually gets deposited to your bank account. Stripe includes all three values (gross, fee, net) in every balance transaction row, so you can verify the calculation.
Should I record Stripe fees as negative revenue or as an expense?
Always record fees as an EXPENSE, never as negative revenue. Fees are a cost of doing business (payment processing expense), not a reduction in sales. In QuickBooks, debit "Payment Processing Fees" expense account and credit your clearing account. This keeps revenue accurate and expenses properly categorized.
Do I need to negate Stripe fees when importing to QuickBooks?
Yes, if using the 3-column bank transaction format. Stripe stores fees as positive (+3.20) but QuickBooks expects negative amounts (-3.20) to represent money OUT. TrestleFinance automatically converts fees from positive to negative during CSV generation. For journal entries, fees are recorded as debits (positive) to the expense account.
What's the difference between Stripe and PayPal fee sign conventions?
Stripe stores fees as positive (+3.20) with formula Gross - Fee = Net. PayPal stores fees as negative (-3.93) with formula Gross + Fee = Net. Both approaches are mathematically equivalent but require different conversion logic when exporting to QuickBooks. Stripe's positive convention is more intuitive for most accountants.
Try TrestleFinance Free
Upload your CSV and see the converted output before paying. 3 free export credits for new accounts.
Upload CSV Now