Stripe bank feed for Xero: reconcile payouts against gross sales
Stripe connects to Xero as a payment service rather than a bank feed, which works when payouts are automatic and there is one Stripe account per org. Manual payouts, a second account and historical periods fall outside it. StatementClear posts the Stripe balance itself into Xero as a live feed.
Stripe's problem in Xero is not the absence of a feed - it is that the money arrives twice. Sales happen gross in Stripe, then land in the bank days later as one net lump with the fees already gone, and someone has to make those two stories agree. If the native Stripe feed covers your setup, good; if you are on manual payouts, running a second Stripe account, or facing a year of unimported history, that someone is you, every month.
Where the native Stripe option falls short
Stripe connects to Xero as a payment service, and the resulting feed brings daily gross sales and fee lines into Xero. It works best with an automatic payout schedule and one Stripe account per org; manual payouts, second accounts, refunds, chargebacks and historical periods are where it frays.
A single Stripe payout can bundle hundreds of charges, minus fees, refunds and disputes, into one bank line. Stripe's own payout reconciliation export unpacks it: a CSV with gross, fee and net columns for every balance transaction, plus the charge IDs (ch_...) that tie lines back to individual payments. Signs need care - charges are positive, refunds and disputes negative, and the payout itself appears as a negative balance movement, so a careless import double-counts the payout against your bank feed. Each settlement currency runs its own balance and payout schedule, which means one clearing account per currency in Xero. Posting only the net lump hides your true processing cost and understates gross revenue.
The manual way, every month
- Log in and export a statement (and hope the format didn't change)
- Reformat columns, dates and signs until Xero's importer accepts it
- Upload the CSV into the right account and pray nothing doubled up
- Eyeball the balance, fix what broke, repeat next month
And after all that, it still isn't a feed - it's a one-off import you'll redo next month.
The StatementClear way: a real feed
Upload the statement and it posts into Xero as a live bank feed through Xero's Bank Feeds API - deduped, balance-checked and ready to reconcile. Not another file to import. Converters hand you a CSV; this arrives in Xero the way a bank feed does.
- Step 1
Connect Xero
Link your org and pick the account that has no feed.
- Step 2
Upload your Stripe statement
PDF, CSV or Excel - whatever you can export. Map the columns once and we remember the mapping.
- Step 3
We check it first
Duplicates are skipped, the running balance is verified, and sign errors are caught before anything posts.
- Step 4
It lands as a feed
Clean lines arrive in Xero through the Bank Feeds API, ready to reconcile.
Questions about Stripe and Xero
Related accounts
Stop importing Stripe statements. Start feeding them.
Tell us how your Stripe setup is structured and we'll get you connected.
Browse every bank and platform or read the Xero bank feed guides.