If you already know how to record Stripe in QuickBooks, you're 80% of the way to Xero. The payout-period method is identical. What's different is the workflow: Xero uses bank rules and manual matching where QBO uses journal entries. Same accounting, different clicking.
This guide covers the Xero-specific setup from scratch. If you want the conceptual foundation for the payout-period method first, read the QBO version of this guide and then come back. If you manage clients on both platforms, you'll want both workflows.
What is Stripe + Xero integration for bookkeeping?Connecting Stripe to Xero means feeding Stripe payout data into Xero's bank reconciliation workflow. You create a clearing account to hold the gross revenue temporarily, then use Xero's bank rules to categorize each payout component (gross sales, processing fees, dispute fees, refunds) automatically. Each payout reconciles against that clearing account. The accounting method is the same as QBO; the tool to get there is bank rules instead of journal entries.
Key Takeaways
- The clearing account is mandatory. Stripe deposits net amounts to your bank, but the clearing account holds gross revenue so fees and refunds are recorded separately.
- Bank rules replace journal entries. Xero categorizes payout components automatically once you configure rules for each fee type.
- Manual matching closes the loop. After bank rules run, you reconcile each payout line to its matching clearing account entry.
- Xero tracking codes give you fee reporting. Use them to tag Stripe processing fees, dispute fees, and refunds separately for client reporting.
- The Xero workflow is more manual than QBO for setup, but faster month-to-month once bank rules are running.
- Multi-currency adds one extra line. Any payout in a foreign currency produces a conversion gain/loss entry you need to book explicitly.
How Xero Handles Stripe Differently from QBO
The accounting doesn't change between QBO and Xero. You're still using the payout-period method: record gross revenue when the payout period closes, record fees as expenses, and match the net deposit to your bank. What changes is how Xero's UI gets you there.
In QBO, you create a journal entry for each payout: debit the clearing account for gross revenue, credit the fee accounts, and then match the net deposit in the register. In Xero, you skip the manual journal entry entirely. Instead, Xero imports the bank feed (or CSV), and bank rules handle the categorization automatically. Then you match each line in the reconciliation screen.
Bank Rules vs. Journal Entries
Xero's bank rules fire on imported transactions based on conditions you set (transaction description contains "Stripe", amount is negative, etc.). When a Stripe payout hits the feed, the rule categorizes it and proposes the split. You review and confirm. That's the core loop.
This is faster month-to-month once rules are running, but slower to set up initially. Expect 30-45 minutes to configure rules for a new Xero client compared to under 10 minutes for a QBO journal entry template.
Xero's Clearing Account Approach
Xero treats the clearing account as a bank account in the chart of accounts. You'll add it as a Current Asset, not a bank account type, so it doesn't appear in the Xero bank feed itself. Payout transactions flow through it via manual journal entries or spend/receive money transactions, and the bank rules handle the categorization on the bank side.
Setting Up Stripe in Xero (Step by Step)
Step 1: Create the Clearing Account
In Xero: Accounting > Chart of Accounts > Add Account
- Account Type: Current Asset
- Account Name: "Stripe Clearing" (or "Stripe Undeposited Funds")
- Account Code: pick a number in your Current Asset range (e.g., 1150)
- Tax: No Tax (or BAS Excluded for AU clients)
Don't set this up as a bank account type. If you do, Xero will try to import a bank feed for it, which you don't want.
Step 2: Connect Stripe as a Bank Feed (or Import CSV)
Xero has a direct Stripe bank feed integration. Go to Accounting > Bank Accounts > Add Bank Account, search for Stripe, and connect using OAuth. Xero will pull Stripe payout transactions automatically.
If your client's Stripe account isn't eligible for the direct feed (some regions, some account types), export the payout CSV from the Stripe dashboard: Payouts > Export > Date range > CSV. Then import it in Xero under Accounting > Bank Accounts > Import a Statement.
The direct feed is cleaner. Use it when available.
Step 3: Configure Bank Rules for Payout Components
This is where Xero's setup diverges from QBO. You need a rule for each payout component type:
Gross Revenue Rule
- Condition: Transaction description contains "Stripe" AND amount is positive
- Action: Categorize to your Revenue account (e.g., 4000 Sales Revenue)
- Contact: Stripe (create as a supplier/contact)
Processing Fee Rule
- Condition: Transaction description contains "Stripe fee" OR "processing fee"
- Action: Categorize to your Merchant Processing Fees expense account (e.g., 6150)
- Contact: Stripe
Dispute/Chargeback Rule
- Condition: Description contains "dispute" OR "chargeback"
- Action: Categorize to a Dispute Fees expense account (separate from processing fees)
Refund Rule
- Condition: Description contains "refund" AND amount is negative
- Action: Categorize as a reduction of Revenue (credit to Sales Revenue)
In practice, Stripe's feed descriptions aren't always consistent. Review the first month manually to confirm your rules are firing correctly before trusting them.
Recording Stripe Payouts in Xero
The Manual Matching Approach
Once bank rules run, you'll see categorization suggestions in the Xero reconciliation screen. Your job is to confirm each match by clicking OK or Match next to the proposed entry.
For each payout, you're matching:
- The net deposit hitting your actual bank account
- Against the corresponding entries in the Stripe clearing account
If your clearing account balance isn't zeroing out each month, something didn't match. That's your signal to look at unreconciled items in the Stripe Clearing account directly: Accounting > Chart of Accounts > Stripe Clearing > Run Account Watchlist.
Xero's Batch Reconciliation
For high-volume Stripe clients (100+ transactions per month), Xero's batch reconciliation view is faster than confirming one at a time. Go to the bank reconciliation screen and use Find & Match to batch-match multiple items against a single payout. For clients with daily Stripe payouts, batch matching typically saves 2-3 hours per month vs. line-by-line confirmation.
In practice, bookkeepers handling e-commerce clients with 200+ monthly Stripe transactions typically save 2-3 hours per month using batch matching vs. line-by-line confirmation.
Handling Multi-Currency Payouts
If your client accepts payments in multiple currencies, each payout may include a currency conversion. Xero handles this with a separate line for foreign exchange gain or loss. You'll need a dedicated GL account for this (e.g., 8100 Foreign Exchange Gain/Loss) and a bank rule that routes conversion lines there automatically.
If the conversion amounts are small and infrequent, you can code them manually on a case-by-case basis rather than building a rule.
Xero-Specific Stripe Fee Handling
The GL structure for Stripe fees is the same in Xero as in QBO. See where Stripe fees go in your chart of accounts for the full mapping. What Xero does differently is give you tracking codes for reporting.
Tracking Codes for Fee Categorization
Xero's tracking categories let you tag transactions for reporting purposes without creating extra GL accounts. For Stripe clients, you can set up a "Payment Processor" tracking category and assign "Stripe" as a tracking option. Then every Stripe fee transaction gets that tag.
This means client P&L reports can filter by payment processor, which is useful if a client uses both Stripe and Square and wants to see fee costs by processor.
To set up: Accounting > Advanced > Tracking Categories > Add Category. Then add it to your bank rules so it applies automatically.
Reporting Differences from QBO
The GL structure is identical, but Xero's P&L layout looks different from QBO's. Xero groups expense accounts differently in its standard reports, and the default "Summary" P&L view won't break out Stripe fees unless you customize it.
Build a custom report in Xero: Accounting > Reports > Profit & Loss > Customize. Add a filter for your Stripe fee accounts (and tracking category if you set one up). Save it as a client-specific template. This takes 10 minutes once per client and saves every future reporting conversation.
Automation Options for Stripe + Xero
The manual workflow above works well for most Xero clients. If volume is high enough to justify a paid tool, here are the honest options.
Tool | Xero Support | Approach | Best For
A2X | Yes (full) | Payout-period, same method as manual | High-volume e-commerce, multi-channel sellers
Synder | Yes (limited) | Transaction-level sync | Lower volume, simple Stripe setups
Growthy | In development | Triage workflow + confidence scoring — you approve, flagged items surface automatically | Bookkeepers managing multiple clients
A2X is the most mature option for Stripe + Xero. It uses the same payout-period approach this guide covers, just automated. Worth the $49/month for clients doing 500+ Stripe transactions monthly.
Synder's Xero integration is less capable than their QBO connector. It works for basic setups but struggles with multi-currency and complex fee structures. Check their documentation for current Xero feature parity before committing.
Xero support is on the roadmap. The QBO workflow is live now. If you manage both QBO and Xero clients, Get Early Access to be notified when Xero support ships.
For the complete Stripe reconciliation workflow this guide applies to Xero, that article covers the method in depth regardless of which accounting platform you're using.
Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. Full disclaimer.
Get Early Access
Related: QBO Version of This Guide, Stripe Reconciliation Guide, Stripe Fees GL Mapping