Stripe

Stripe Balance Transactions Sample CSV (Dirty + Clean)

A production-realistic Stripe Balance Transactions export (7,500 rows) covering accounting edge cases that break financial reporting. The critical Stripe quirk: fee sign convention inverts depending on transaction type. For charges, fee is negative; for refunds/disputes, fee becomes positive. Naive SUM aggregations double-count these reversals, silently inflating P&L by 10-20%. The 'dirty' version includes UTC-forced timestamps causing PST/EST date-cut mismatches, values stored in cents, unescaped commas in descriptions, and missing UTF-8 BOMs causing €/£ mojibake. Perfect for testing SaaS P&L report accuracy, QuickBooks reconciliation, and building Net Revenue dashboards in Looker Studio. Your financial data is processed 100% locally — nothing uploaded.

Live Interactive Preview

Live Data Preview

See how this messy stripe data looks before downloading. All processing happens locally in your browser.

💡 Pro Tip: Stripe's fee sign reversal just inflated your P&L by 15%. Drop this CSV into Stripe Formatter — auto-detect transaction types, correct fee signs, and convert cents to dollars for accurate net revenue.

⚡ Next Step: Curious how much you lost to cross-border fees last quarter? Run SQL on this CSV in your browser — zero database setup, zero uploads.

Data Schema Definition

ColumnTypeDescription
idstringBalance transaction ID (txn_xxx). Unique across all transaction types; use as primary key.
typestringEnum: charge | refund | payout | adjustment | stripe_fee. Determines fee sign convention and GL mapping.
amountintegerGross amount in cents (5000 = $50.00). Always integer; divide by 100.0 for display. Never store as float.
feeinteger⚠️ CRITICAL: Sign INVERTS by type. Negative for charges (-150), POSITIVE for refunds (+150). Naive SUM double-counts reversals.
netintegeramount + fee in cents. Pre-calculated by Stripe; use for reconciliation instead of recomputing.
createdtimestamp⚠️ TRAP: Strict UTC. Causes date-cut mismatches for PST/EST businesses. Convert to local TZ before daily rollups.
descriptionstringFree-text metadata. Often contains unescaped commas breaking naive CSV parsers; ensure RFC 4180 quoting.
currencystringISO 4217 lowercase (usd, eur). Multi-currency accounts receive mixed values; group by currency before SUM.
source_idstringOrigin object ID (ch_xxx, re_xxx). Links to Charges/Refunds API; NULL for stripe_fee and payout types.
reporting_categorystringStripe's GL category: charge | refund | dispute | transfer. More stable than 'type' for accounting mappings.

⚠️ Highlighted rows contain known data traps. Review descriptions before building ETL pipelines.