TrestleFinance
QuickBooks Integration

Convert Stripe Balance Transactions CSV to QuickBooks Online

Complete guide to converting Stripe Balance Transaction exports into QuickBooks journal entries with proper fee and refund handling.

18 min read

Quick Summary (TL;DR)

Need the quick answer?

Stripe Balance Transaction CSVs cannot be directly imported into QuickBooks Online. You need to:

  1. 1. Export Balance Transactions CSV from Stripe Dashboard → Balance → Transactions
  2. 2. Convert dates from ISO 8601 format to MM/DD/YYYY
  3. 3. Create 3-line journal entries for each transaction (debit bank, credit revenue, debit fees)
  4. 4. Handle Stripe's positive fee convention (gross - fee = net)
  5. 5. Import to QBO via Transactions → Journal Entries → Import

Time required: 4-6 hours manual or 30 seconds automated (TrestleFinance)

Step-by-Step: How to Export Balance Transactions from Stripe

Before you can convert anything, you need to export the correct file from Stripe. Here's exactly how:

  1. 1. Log into Stripe Dashboard at dashboard.stripe.com
  2. 2. Navigate to Balance in the left sidebar
  3. 3. Click the "Transactions" tab at the top
  4. 4. Click "Export" button in the top right corner
  5. 5. Select your date range (typically last month or quarter)
  6. 6. Choose "Balance Transactions CSV" format (NOT "Payout Reconciliation")
  7. 7. Download the file - it will be named something like balance_history_2025-01-15.csv

⚠️ Common Mistake:

Do NOT export "Payout Reconciliation" or custom reports. These have different column structures that won't work with QuickBooks import workflows. You specifically need Balance Transactions CSV.

What is a Stripe Balance Transaction?

A Balance Transaction is Stripe's record of every financial event affecting your account balance. Think of it as your transaction ledger. Every time money moves in Stripe, a balance transaction is created.

Balance Transactions include:

  • Charges: Successful payments from customers (positive gross)
  • Refunds: Money returned to customers (negative gross)
  • Stripe Fees: Processing fees Stripe deducts (always positive in CSV)
  • Disputes/Chargebacks: Customer-initiated payment reversals
  • Adjustments: Account corrections, dispute fees, etc.
  • Transfers: Payouts to your connected bank account

Balance Transactions vs Payout Reconciliation: Key Difference

This is the #1 source of confusion for accountants working with Stripe. Let me break it down:

AspectBalance TransactionsPayout Reconciliation
PurposeShows what happened (accrual)Shows what was paid out (cash)
TimingTransaction date (when charge occurred)Payout date (when money hit bank)
Best ForAccrual-basis accounting (GAAP)Cash-basis accounting
Typical UseRevenue recognition, journal entriesBank reconciliation only

For most businesses: You want Balance Transactions for QuickBooks journal entries because they give you the full picture of revenue and expenses as they occur, not when Stripe pays you.

Stripe Balance Transaction CSV Format Specification

When you export Balance Transactions from Stripe Dashboard → Balance → Transactions → Export, you get a CSV file with the following columns:

Column Breakdown (Verified from Stripe Exports)

Column NameDescriptionExample Value
balance_transaction_idUnique identifier for the transactiontxn_1SynthCharge001
created_utcWhen the transaction occurred (UTC timestamp)2025-01-15T08:30:00Z
available_on_utcWhen funds become available for payout2025-01-17T00:00:00Z
currency3-letter ISO currency code (lowercase)usd
grossGross amount (charge amount or refund amount)50.00
feeStripe processing fee (stored as positive number)1.75
netNet amount deposited (gross - fee)48.25
reporting_categoryType of transaction (charge, refund, payout, etc.)charge
descriptionHuman-readable descriptionStandard charge - coffee shop

Note: Some Stripe exports include extended columns like type, source_id, customer_id, customer_email, charge_id, and payment_intent_id. These are optional and not required for QuickBooks import.

Understanding Stripe Fees

Stripe fees are one of the most confusing aspects of Stripe CSVs for accountants. Here's what you need to know:

Fee Sign Convention (Critical!)

⚠️ Common Mistake:

Stripe stores fees as positive numbers in the CSV, but they represent a deduction from your revenue.

The formula is: gross - fee = net

Example from a real Stripe export:

Gross: $50.00 (revenue from customer)

Fee: $1.75 (Stripe's processing fee - stored as positive)

Net: $48.25 (what you actually receive)

In QuickBooks journal entries, fees must be recorded as an expense (debit), not as a negative credit. This is where most manual conversions go wrong.

Converting to QuickBooks Online

Option 1: Manual Method (Excel)

If you're doing this manually, you'll need to:

  1. Reformat dates: Convert created_utc from ISO 8601 format (2025-01-15T08:30:00Z) to QBO format (01/15/2025 or 2025-01-15)
  2. Create journal entry lines: Each Stripe transaction becomes two journal entry lines:
    • Line 1: Debit Bank Account (net amount)
    • Line 2: Credit Revenue (gross amount)
    • Line 3: Debit Stripe Fees (fee amount)
  3. Handle refunds: Reverse the entry (credit bank, debit revenue)
  4. Map accounts: Set up QuickBooks accounts for:
    • Stripe Clearing (bank account)
    • Stripe Revenue (income account)
    • Stripe Processing Fees (expense account)

This process takes 4+ hours for a typical monthly export with 200+ transactions.

Option 2: Automated Method (TrestleFinance)

TrestleFinance automates the entire conversion in 30 seconds:

  1. Upload your Stripe Balance Transaction CSV
  2. Preview the converted journal entries (free, no signup required)
  3. Export three files:
    • Normalized CSV: Standardized format for analysis
    • QuickBooks Journal CSV: Ready to import via QBO's journal entry import
    • Reconciliation XLSX: Proves gross - fee = net with variance tracking

Common Errors and Fixes

Error: "Date format not recognized"

Cause: QuickBooks expects dates in MM/DD/YYYY or YYYY-MM-DD format, but Stripe uses ISO 8601 (2025-01-15T08:30:00Z)

Fix: Strip the time component and reformat to 01/15/2025 or 2025-01-15

Error: "Debits and credits don't balance"

Cause: Fees were not included as a separate journal entry line, or were added instead of subtracted

Fix: Ensure journal entries have three lines per transaction: debit bank (net), credit revenue (gross), debit fees (fee)

Error: "Currency conversion required"

Cause: Stripe exports multi-currency transactions with lowercase currency codes (usd, eur), but QuickBooks may expect uppercase

Fix: Convert currency codes to uppercase (USD, EUR) and ensure QuickBooks multi-currency is enabled

Error: "Refunds import as revenue"

Cause: Refunds have negative gross values, which need to reverse the journal entry

Fix: For refunds, flip the journal entry: credit bank (negative net), debit revenue (negative gross). Note that fees are not refunded by Stripe.

How TrestleFinance Handles This

TrestleFinance solves all of these issues automatically:

Automatic Processing

  • Date formatting: Converts ISO 8601 to QBO-compatible format
  • Fee handling: Creates proper expense journal entries for fees
  • Refund detection: Automatically reverses journal entries for negative gross amounts
  • Multi-currency: Uppercase currency codes and handles 100+ currencies
  • Validation: Ensures gross - fee = net (flags discrepancies)
  • Account mapping: Pre-configured QBO account names (customizable)

Result: You get three files ready to import:

  1. Normalized CSV - Universal format, great for analysis in Excel or Google Sheets
  2. QuickBooks Journal CSV - Import directly via QBO → Transactions → Journal Entries → Import
  3. Reconciliation XLSX - Proves all totals tie out with variance tracking

Next Steps

  1. 1. Export your Balance Transactions from Stripe Dashboard → Balance → Transactions → Export
  2. 2. Upload to TrestleFinance (preview is free, no signup required)
  3. 3. Review the preview to ensure it looks correct
  4. 4. Export all three files (uses 1 credit)
  5. 5. Import the QuickBooks Journal CSV via QBO → Transactions → Journal Entries → Import

Frequently Asked Questions

What's the difference between Balance Transactions and Payout Reconciliation?

Balance Transactions show individual charges, fees, refunds, and adjustments as they occur. Payout Reconciliation shows what was actually deposited to your bank account. Balance Transactions are better for accrual accounting, while Payout Reconciliation is better for cash basis.

Why are Stripe fees positive numbers in the CSV?

Stripe stores fees as positive values to represent the amount charged. However, they represent a deduction from your gross revenue. The formula is: gross - fee = net. TrestleFinance automatically converts fees to negative debits in QuickBooks journal entries.

Can I import Stripe CSVs directly into QuickBooks?

No. Stripe's CSV format doesn't match QuickBooks Online's journal entry import format. You need to reformat columns, handle fees correctly, and ensure the date and amount formats match QBO's requirements.

How do I handle refunds in QuickBooks?

Refunds appear as negative gross amounts in Stripe Balance Transactions. They should be recorded as reverse journal entries (debiting revenue, crediting bank account). Note that Stripe does NOT refund fees by default.

What if my Balance Transactions CSV has extra columns?

Some Stripe exports include extended columns like customer_id, payment_intent_id, and charge_id. These are safe to ignore for basic QuickBooks import. TrestleFinance preserves them in the normalized CSV if you need them later.

Try TrestleFinance Free

Upload your CSV and see the converted output before paying. 3 free export credits for new accounts.

Upload CSV Now