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)

Stripe → Xero Reconciliation Questions

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 Stripe → Xero 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 Stripe → Xero

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

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 Stripe → Xero Reconciliation

Browser-Only Processing

All reconciliation runs in your browser. Files are never uploaded to any server.

No Data Retention

Nothing is stored after reconciliation. Close the tab and your data is gone.

GDPR Compliant

Full EU data protection compliance. Your privacy rights are fully protected.

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 Stripe → Xero 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

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.