Reconcile Stripe in Xero — Complete Payout Matching

🥦

Reconcile Complete

Xero Bank Statement Format
valid rows

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.
Free preview before you pay
Files never leave your browser
No account needed to start

Download Sample

Sample balance transactions CSV

Download

Tool Rating

4.7 / 5 (104 votes)

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

1

Export from Stripe

Balance → Transactions → Export CSV

2

Upload and Configure

Upload Balance Transactions Export CSV and choose Bank Statement format

3

Preview and Download

Review converted data, download Xero-ready file

4

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

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.

Joanna T.
Xero-Certified Bookkeeper · 11 Stripe clients, AU and NZ regions

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.

Patrick O.
SaaS Finance Manager · UK subscription platform, 2,200 recurring charges/month

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.

Rachel D.
Freelance Accountant · Sole practitioner, 7 e-commerce clients

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.

Simon G.
E-commerce CFO · Multi-currency Stripe, EU region, EUR and GBP

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.

Megan A.
Accounts Receivable Specialist · B2B invoicing, 300 Stripe payments/month

Why Stripe Reconciliation Is Challenging

The Aggregated Payout Problem

Stripe deposits aggregated amounts to your bank — multiple charges bundled into single deposits. Your bank shows $1,000 deposited, but that could be 50 individual charges minus fees. Professional bookkeepers solve this with a "Stripe Clearing Account" that receives individual transactions while your bank receives the aggregated payouts.

How This Tool Helps

We convert Stripe Balance Transactions to Xero bank statement format with fee splitting: charges as positive amounts, fees as separate negatives, refunds as negatives, payouts excluded (they appear in your real bank). Import to your Stripe Clearing Account, then reconcile payouts as transfers. When correct, the balance matches Stripe's "Available Balance."

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.

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)

Input Stripe Balance Transaction

Single ledger entry with gross, fee, and net

Key columns: id, Type, Amount, Fee
1:N — One input row creates multiple output rows
Output Xero Bank Statement Rows 1-2 rows per input

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

Your data never leaves your device. All files are processed entirely in your browser using client-side JavaScript - no data is stored on our servers or sent anywhere. There's no account to hack, no database storing your files, and no API connections to your bank or accounting software. You upload, convert, download, and we forget it immediately.
No payment or signup required. You can upload your file, see a free preview of the conversion results, and verify everything looks correct before paying anything. If it doesn't work for your files, you haven't wasted any money. We only charge when you're satisfied and ready to download the final converted file.
You can, but free scripts and AI often miss edge cases that break real-world data: missing SKUs, currency formatting quirks, tax calculation errors, or date format mismatches. We have battle-tested validators specifically designed for accounting software imports that catch these issues before they corrupt your books. Plus, you get instant browser-based conversion without installing Python or managing dependencies.
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.
Payouts appear in your real bank account as deposits. Including them in the clearing account would double-count the money. The clearing account tracks individual transactions; your bank tracks aggregated deposits.
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.
Pending transactions haven't settled yet. Filter to 'Available' status for completed transactions, or include pending if you want to see everything.
Most businesses reconcile monthly. High-volume businesses may reconcile weekly. The key is consistency — reconcile at the same time each period.
Stripe deducts processing fees before depositing funds, so the net amount in your bank differs from the original transaction total. The clearing account reconciles these differences automatically.
Stripe fees are automatically separated as merchant fees transactions. Categorize them as operating expenses rather than cost of goods sold for accurate expense tracking.
A clearing account represents money Stripe owes you. It increases when payments are received and decreases when Stripe deposits funds to your bank account.
Stripe payouts typically settle within 2-7 days, and transactions appear in Xero 2-3 days after the sale. This is normal and depends on your payout schedule.
Ensure your bank account currency settings match your Stripe settlement currency. Multi-currency transactions require extra care when reconciling different denominations.