Convert Stripe CSV to Xero
Upload your Stripe export and get a Xero bank-statement file (Date, Amount, Payee, Description, Reference). Every sale, fee, refund and payout comes out as its own line, ready to reconcile.
Drop your CSV export here
or click to browse · several files at once are merged (e.g. Stripe activity + payouts)
No file handy?
🔒 Your file never leaves this device. Conversion runs in your browser. There are no uploads, no cookies and no trackers. How we know
Stripe → Xero in three steps
The cleanest way to get Stripe into Xero is to treat Stripe like a bank account. Stripe collects your sales, takes its fees and then pays out the rest. Import that activity into a “Stripe Clearing” account and your books show gross income, real fees and payouts that match your checking deposits.
1. How to export your Stripe balance and payout reports
- In the Stripe Dashboard open Reports → Balance summary and set the date range (for example, last month).
- In the Balance change from activity section click Export, choose CSV and the Itemized format, keep the default columns, then download.
- In the Payouts section click Export → CSV → Itemized for the same period.
- Drop both files into the converter together. They are merged into one statement, so charges, fees, refunds and payouts all land in the same clearing account.
Created (UTC), Amount, Fee, Net) are detected too.2. Convert it here
Drop the file into the converter above. The source is detected from the column headers, and the summary shows money in, money out and the net change so you can sanity-check against Stripe's own totals before downloading.
3. How to import the file into Xero
- Go to Accounting → Bank accounts.
- On the Stripe Clearing account, open the menu (⋯) and select Import a Statement.
- Browse to the converted CSV and select Next.
- Assign the columns: Date → Transaction Date, Amount → Transaction Amount, Payee → Payee, Description → Description, Reference → Reference. Xero remembers this mapping next time.
- Confirm the date format matches the one you chose here, then Save → Import. The lines appear in the reconcile tab, ready to match or create.
Xero needs a Date and a single signed Amount column (income positive, expenses negative, no thousands separators). Payee, Description and Reference are optional but make reconciliation much faster. Accepted date formats include DD/MM/YYYY, MM/DD/YYYY and YYYY/MM/DD. The converter writes UTF-8, comma-separated files with exactly these columns.
What each Stripe row becomes
| Stripe row | In the Xero file | Typical category |
|---|---|---|
| charge | Gross amount as money in, plus a separate processing-fee line | Sales / Income and Merchant fees |
| refund | Money out | Refunds / contra-income |
| dispute / dispute_reversal | Disputed amount out, dispute fee out; reversals back in | Chargebacks; Merchant fees |
| fee (Billing, Radar, Tax, etc.) | Money out | Software / merchant fees |
| payout (from the Payouts file) | Money out of the clearing account | Transfer to your checking account (not an expense!) |
| other_adjustment, contribution, network_cost… | Signed as Stripe reports them | Review case by case |
The Xero format we produce
| Column | Contents |
|---|---|
Date | DD/MM/YYYY, MM/DD/YYYY or YYYY/MM/DD (pick what matches your org) |
Amount | Signed, no currency symbols: 1250.00 / -36.55 |
Payee | Customer name or the platform (Etsy, Stripe, PayPal) |
Description | Type, item and details. Shows as Particulars in Xero |
Reference | Order #, Stripe balance transaction ID or PayPal transaction ID |
Stripe quirks the converter handles
- Stripe reports
gross,feeandnetin major units (dollars), withnet = gross − fee. Every row is checked, and you get a warning if a row doesn't add up. - Payout sign conventions differ between Stripe exports. Payouts always come out as money leaving the Stripe clearing account.
- Failed or cancelled payouts are skipped automatically.
- If you use more than one settlement currency, export one currency at a time. The converter warns you if a file mixes currencies.
FAQ
Do my Stripe files get uploaded anywhere?
No. The conversion runs entirely in your browser with JavaScript, and the file is never sent to a server. You can check this by loading the page, switching off your Wi-Fi and converting a file. It still works. We don't use analytics or tracking scripts either.
Why are fees on separate lines instead of netted?
Your Stripe payout is gross sales minus fees. Recording both lets your books show true gross income (which is what a 1099-K reports) and a deductible fee expense. If you prefer net amounts, untick “Split fees into separate lines” in Options.
Won't this double-count income that already shows up in my bank feed?
Not if you use the clearing-account method. The Stripe statement goes into a “Stripe Clearing” account in Xero. When Stripe pays out, the payout line leaving Stripe Clearing is matched as a transfer to the deposit in your checking account, so it isn't booked as new income.
What date format should I choose?
Choose the format your Xero organisation uses: MM/DD/YYYY for US orgs, DD/MM/YYYY for UK/AU/NZ. YYYY/MM/DD can't be misread either way. Confirm the same format on Xero's import screen.
Is it free?
Files that produce up to 20 rows convert and download for free, and you can preview any file. Bigger files need a Pro pass. You can download the first 20 rows to test the import before you buy.
Other converters
- Etsy to QuickBooks Online
- Etsy to Xero
- Stripe to QuickBooks Online
- PayPal to QuickBooks Online
- PayPal to Xero
Last reviewed October 2026. Platform menus change from time to time. If a step looks different for you, email support@payouttobooks.com and we'll update the guide.
Simple pricing
Try everything free. Pay only when your files are bigger than 20 rows.
30-day pass
$12one-time
- Unlimited rows & files for 30 days
- Perfect for year-end catch-up
- No subscription
Pro monthly
$9/month
- Unlimited rows & files
- Etsy, Stripe & PayPal
- QuickBooks & Xero formats
- Cancel anytime
Pro annual
$59/year
- Everything in Pro
- Save 45% vs monthly
- Bookkeepers: one license per person