Stripe CSV Export Format Changed? Here's How to Fix Your Bookkeeping Imports (2026)
Stripe CSV Export Format Changed? Here's How to Fix Your Bookkeeping Imports (2026)
Transparency: I built Tally Assistant, an AI bookkeeping tool that auto-parses Stripe CSVs. This guide covers both manual fixes and AI-powered alternatives.
Quick Answer: Did Stripe Change Their CSV Format?
Probably not recently — but your export might look different depending on which Stripe report you download. Stripe offers multiple CSV exports (Balance, Payouts, Payments, Reports), and each has a different column layout. The most common "format changed" panic happens when you accidentally download a different report type than usual.
If Stripe did push a format update, they announce it in their Changelog and typically maintain backward compatibility for 6-12 months.
The Real Problem: Stripe's Multiple CSV Formats
Stripe exports different CSV layouts depending on what you click. Here's what confuses most freelancers:
| Report Type | Key Columns | Best For |
|---|---|---|
| Balance | created, amount, currency, reporting_category, description |
Monthly reconciliation |
| Payouts | automatic_payout_id, created, amount, currency, status |
Tracking when money hits your bank |
| Payments | id, created, amount, currency, customer_email, status |
Per-transaction tracking |
| Custom Report | Variable — you pick columns | Advanced filtering |
The "format changed" feeling usually hits when you switch between these without realizing it — your CSV import tool expects Balance columns but receives Payouts columns.
How to Detect Which Stripe CSV You Have
Open the CSV in any text editor (not Excel — Excel auto-formats dates and hides the raw structure). Look at the header row:
# Balance report
created,amount,currency,reporting_category,description,...
# Payouts report
automatic_payout_id,created,amount,currency,status,...
# Payments report
id,created,amount,currency,customer_email,status,...
The first 3-5 column names tell you exactly which report type it is.
Fix #1: Re-export the Right Report (Manual — 2 minutes)
Go to Stripe Dashboard → Reports and pick the report type your bookkeeping tool expects. Most freelancer bookkeeping tools expect Balance reports.
- Click Balance in the left sidebar
- Set your date range
- Click Export → CSV
- Upload to your bookkeeping tool
This works 90% of the time — you just grabbed the wrong report.
Fix #2: Re-map Columns Manually (Manual — 10-15 minutes)
If you must use a non-standard CSV:
- Open the CSV in Google Sheets or Excel
- Compare the columns to what your bookkeeping tool expects
- Reorder/rename columns to match the expected format:
- Date column must be labeled
Dateorcreated - Amount column must be
Amountoramount - Description column must be
Descriptionordescription
- Date column must be labeled
- Save as CSV and re-import
This is tedious but reliable. Pro tip: Save your re-mapped template as a Google Sheet so next month you can copy-paste new data into it.
Fix #3: Use an AI-Powered CSV Import Tool (Automated — 30 seconds)
Modern AI bookkeeping tools (including Tally Assistant) auto-detect CSV formats regardless of column order, header naming, or delimiter style. The AI:
- Reads the header row and identifies columns by meaning, not position
- Detects date format (MM/DD/YYYY vs DD/MM/YYYY vs YYYY-MM-DD)
- Recognizes currency columns whether labeled
amount,gross,net, ortotal - Handles mixed-currency CSVs (USD charges + EUR refunds in the same file)
If you process Stripe CSVs monthly, the time savings from auto-detection alone typically pay for the tool.
Common Stripe CSV Gotchas (And How to Fix Them)
Gotcha 1: "My amounts are negative when they should be positive"
Stripe Balance reports use accounting convention: debits are positive, credits are negative. If a payment received shows as -$500, that's correct — it's a credit to your account. Most bookkeeping tools auto-flip the sign. If yours doesn't, add a column that multiplies by -1.
Gotcha 2: "Fees are mixed in with payments"
Stripe's Balance report includes both payments and fees as separate rows. Look for reporting_category = charge (revenue) vs fee (Stripe's cut). Never lump them together — your tax preparer needs fees as a separate expense category.
Gotcha 3: "Multi-currency rows confuse my accounting software"
Stripe processes in 135+ currencies. A USD account receiving EUR payments will have two amount columns: the original currency amount and the settled USD amount. Always import the settled amount (what actually hit your bank) for bookkeeping, but keep the original currency visible for client reconciliation.
Gotcha 4: "The date is when Stripe processed it, not when I earned it"
Stripe's created timestamp is when the charge was created, which can be days after the actual work. For accrual-based bookkeeping, you may need to adjust dates manually or use a tool that lets you override import dates.
Quick Reference: Stripe CSV Column Map
| What You Need | Balance CSV Column | Payouts CSV Column |
|---|---|---|
| Date | created (UTC) |
created (UTC) |
| Amount | amount |
amount |
| Currency | currency |
currency |
| Description | description |
— (use automatic_payout_id) |
| Category | reporting_category |
status |
| Fee | reporting_category = fee |
— (payouts are net) |
When to Worry About an Actual Format Change
Stripe rarely breaks CSV exports without warning. But when they do:
- Check stripe.com/changelog — search for "CSV" or "export"
- Check your email — Stripe emails API users about breaking changes 90 days ahead
- Compare old vs new — download the same report for last month (old format) and this month (new format), diff the headers
- Contact Stripe support — they can confirm if a change was rolled out to your account
Bottom Line
Stripe's CSV format rarely changes without notice. The "format changed" panic is almost always downloading the wrong report type. If you want to stop thinking about CSV formats entirely, use a tool with AI auto-detection — you upload the file, and it just works regardless of column order, date format, or currency mix.
Next steps:
- Re-download the correct Stripe report type (Balance, 2 minutes)
- Or: try AI-powered CSV import that reads any format automatically (free, no credit card)
Tally Assistant