Stripe settles payouts T+2 in Australia, so at any point there are 2-3 days of transactions sitting in limbo between the Stripe dashboard and the bank. My clearing account in Xero would show a $6,400 balance that didn't match Stripe's Available Balance because I was missing fee entries. Importing with fee splitting gave me separate lines for every charge, refund, and fee. The clearing account now zeroes out within $5 of Stripe's reported balance every month-end.
Reconcile Stripe in Xero — Complete Payout Matching
Reconcile your Stripe account in Xero. Match individual transactions to bank deposits, track fees, and close your books accurately.
Free preview — then from $5. Save with bundles.Reconciliation Questions Answered
How do I set up a Stripe clearing account in Xero?
Create a new bank account in Xero (Accounting → Bank Accounts → Add Bank Account). Name it 'Stripe' and select 'Other' as the account type. This acts as a holding account for Stripe transactions.
How do I know if reconciliation is correct?
After processing all transactions and matching all payouts, your Stripe Clearing Account balance in Xero should match Stripe's 'Available Balance' in the Dashboard. Any difference indicates missing transactions or unmatched payouts.
What is a Stripe clearing account in Xero?
A clearing account represents money Stripe owes you. It increases when payments are received and decreases when Stripe deposits funds to your bank account.
How Reconciliation Works
Export from Stripe
Balance → Transactions → Export CSV
Upload and Configure
Upload Balance Transactions Export CSV and choose Bank Statement format
Preview and Download
Review converted data, download Xero-ready file
Import to Xero
Accounting → Bank Accounts → Select Account → Import Statement
Discrepancies are highlighted with clear match and mismatch indicators — review differences at a glance.
How People Use This
We had a persistent GBP 890 variance in our Stripe clearing account that nobody could explain for three months. Turned out 42 failed charges were included in the balance transaction export but never settled to the bank. Excluding payouts and filtering to actual completed charges eliminated the ghost entries. Our auditor signed off on the annual accounts without a single Stripe-related query for the first time.
One client had $12,000 in unmatched transactions in their Xero bank feed because they were importing payout totals as single lines. Breaking each payout into its component charges and fees meant I could match the bank deposit to the sum of individual entries in the clearing account. Month-end close that used to take me a full day per client now takes 90 minutes. My CPA signed off on Q3 in half the usual time.
We process in EUR but settle in GBP, which creates exchange rate variances on every payout. Stripe's T+7 rolling settlement window means the FX rate at charge time differs from the rate at deposit time. Importing balance transactions with the original charge currency preserved lets Xero apply the correct conversion, and our currency gain/loss account finally makes sense. We reduced unexplained FX variances from $3,200/quarter to under $200.
Our AR aging report never matched Stripe because pending authorizations sat as open invoices for 2-5 days until the charge cleared. I was manually marking invoices as paid when the payout landed, always a week late. Now the Xero clearing account tracks each charge individually, I reconcile payouts as transfers to the main bank, and the AR report is accurate to the day. Our DSO metric dropped from 34 to 28 days just from cleaner data.
Why Stripe Reconciliation Is Challenging
The Aggregated Payout Problem
How This Tool Helps
Secure, Private Reconciliation
Row-by-Row Matching
Records matched row by row. Mismatches surfaced clearly for review.
Runs in Your Browser
Both files compared in your browser. Nothing uploaded to any server.
GDPR Compliant
No data stored or transmitted. Full EU privacy compliance.
// PRICING //
Choose the plan that fits your needs
Just start processing on any tool page
Tools processing starts from 5 credits. Then 1 credit = 1k rows. No sign-up needed.
Credit Bundles
One-time purchase
- No monthly commitment
- Credits valid for one year
- Access to all tools
- Full file downloads
Monthly Bundles Pro
Best for professionals and content creators
- Credits refresh monthly
- Priority processing
Purchase Credits
- Full CSV & Excel export
- Google Sheets export
- Instant browser download
Do unused credits expire?
One-time credit bundles are valid for one year. Subscription credits refresh monthly. You can use credits across any tool, anytime.
Is my data secure?
Files process entirely in your browser. We're GDPR compliant with TLS encryption.
Can I get a refund?
Yes! Full refund within 14 days if no credits used. Partial refund for unused credits anytime. Contact sup@spreadsheetbroccoli.com.
Terms of service applies. VAT included where applicable.
More credits - more savings
Buy bundles and get up to 60% off. Perfect for recurring monthly conversions.
Field Mapping
How Stripe Balance_Transactions fields map to Xero Bank Statement
| Stripe Balance_Transactions | Source Value | Xero Bank Statement | Target Value | Note | |
|---|---|---|---|---|---|
Created (UTC) |
2025-01-15 14:00:00 |
→ | Date |
01/15 14:00:00/2025
|
Regional date format conversion |
Fee |
3.20 |
→ | Amount (Row 2) |
|
Negative fee expense |
Type |
charge |
→ | Payee |
charge
|
Transaction type as payee label |
id |
txn_1AbcXYZ123def |
→ | Reference |
txn_1AbcXYZ123def
|
Balance transaction ID for audit trail |
Why Reconcile Your Data First?
Transaction-Level Detail
Every charge, refund, and fee as individual bank statement lines.
Fee Tracking
Stripe fees extracted as separate expense transactions.
Payout Matching
Match individual transactions to aggregated bank deposits.
Month-End Ready
Clearing account should zero out when all payouts are matched.
Audit Trail
Transaction IDs preserved for tracking back to Stripe.
Browser Processing
Financial data processed locally. Never sent to external servers.
Data Transformation
Each charge/refund becomes 1-2 rows (gross + optional fee)
Single ledger entry with gross, fee, and net
id,
Type,
Amount,
Fee
Gross amount row + fee row (if fee > 0)
Common Bank Statement Import Errors
Issues you might encounter when importing Balance Transactions Export data to Bank Statement - and how we solve them
Date Format Mismatch
Xero may reject dates in wrong regional format
Select your Xero organization's region in options
Re-process with correct region setting
Payout Duplication
Including payouts creates duplicates with bank feed
Payouts are excluded by default (appear in real bank)
Reconcile payouts against actual bank deposits
Fee Sign Convention
Fees must be negative (money paid out)
We automatically convert fees to negative amounts
Verify fee rows show negative in Amount column
Frequently Asked Questions
Stripe → Xero Data Ecosystem
All available data flows from Stripe to Xero
Created (UTC) → Date
Amount (Gross) → Amount (Row 1)
Fee → Amount (Row 2)
Name → Name
Email → EmailAddress
Phone → PhoneNumber
Number / id → InvoiceNumber
Customer Name / Email → ContactName
Created → InvoiceDate
Created (UTC) → Date
Amount / Net → Amount
Customer Name / Email → Payee
Arrival Date → Date
Amount → Amount
Description → Payee
Also available as
This platform pair is available in 5 other hubs
Quick question before you go
Help us improve—what stopped you today?
Thank you!
Enter your email to claim your welcome bonus