How to Reconcile Stripe Payments in Xero

By Reconkept·Published 18 February 2026·Updated 14 March 2026·17 min read
Quick Answer: To reconcile Stripe in Xero, create a Stripe clearing account (bank account type), code each Stripe transaction — sales, fees, and refunds — to it, then reconcile the net payout transfer against your real bank account. The clearing account should net to zero after each payout cycle. Xero has no native Stripe integration that handles bundled payouts automatically — you must do this manually or use a tool like Reconkept to automate it.

How to Reconcile Stripe Payments in Xero

If you accept payments through Stripe and manage your books in Xero, reconciliation is not as straightforward as it should be. Stripe bundles dozens of individual customer payments into a single payout, deducts processing fees before the money leaves, and operates on a rolling settlement window that rarely lines up with your invoice dates. The result is a bank feed line that reads "$4,832.15 — Stripe" with no obvious connection to the 38 transactions behind it.

This guide explains exactly how to reconcile Stripe payments in Xero — from the initial clearing account setup through fees, refunds, bank rules, and automation options — so you can close your books accurately without spending hours on it each month.

**The core problem:** Stripe bundles payments over a rolling 2-business-day window into a single net payout. A business processing 100 monthly Stripe transactions receives roughly 20 bundled deposits in their bank — each representing 5 or more individual charges, minus fees and refunds. Xero's bank feed shows a single line per deposit with no breakdown. Source: Stripe payout documentation, 2026.

Table of Contents


Why Stripe Doesn't Reconcile Automatically in Xero

Understanding why this process is difficult is the first step toward solving it correctly.

Stripe Pays Out in Bundled Lump Sums

Stripe does not send one bank transfer per customer payment. It aggregates every payment received over a rolling period — typically two business days — and sends a single net payout to your bank account. One bank deposit might represent 50 separate customer transactions. Xero sees a single line item in your bank feed; all the underlying detail lives in Stripe.

Fees Are Deducted Before the Payout Arrives

Stripe deducts its processing fees from gross revenue before sending you the net amount. The standard Stripe fee for card payments is 2.9% + $0.30 per transaction for most card types, with variation by country and card type. If a customer pays a $200 invoice, Stripe takes roughly $6.10, and $193.90 arrives in your bank. Your Xero invoice is for $200. The bank feed shows $193.90. These figures will never match directly without accounting for the fee as a separate expense entry.

Timing Mismatches Between Payments and Payouts

A customer can pay their invoice on Monday, but the Stripe payout containing that payment may not arrive in your bank until Wednesday or Thursday. Xero marks the invoice as paid on Monday. Your bank feed shows nothing until Wednesday. Without a clearing account bridging the gap, these timing differences create phantom discrepancies that are difficult to investigate retrospectively.

No Native Bundled-Payout Resolution

Xero offers a Stripe payment services integration that allows customers to pay invoices directly from Xero-issued invoices. However, it records transactions at end-of-day rather than in real time, does not consistently break out individual fees per transaction, and — critically — if you use it alongside a Stripe bank feed, you will end up with duplicate entries: one from the payment service and one from the bank feed. Most bookkeepers disable one or the other to avoid this.


Set Up a Stripe Clearing Account in Xero

The correct approach to Stripe reconciliation in Xero relies on a clearing account — a virtual bank account that acts as a staging area between Stripe's individual transactions and the net payout that lands in your real bank.

Step 1: Add a New Bank Account in Xero

  1. Go to Accounting > Bank Accounts
  2. Click Add Bank Account
  3. Search for "Stripe" in the bank search field
  4. Select Stripe from the results and click Continue
  5. Name the account clearly — "Stripe Clearing Account" works well
  6. Set the currency to match your primary Stripe payout currency
  7. Click Save

Using Stripe's bank account type (rather than a regular liability or current account) allows Xero to receive the Stripe direct bank feed, which sends individual transaction data automatically.

Step 2: Connect the Stripe Direct Bank Feed

  1. On the Bank Accounts screen, locate your new Stripe account and click Get bank feeds
  2. Xero will redirect you to Stripe to authorise the connection
  3. Log in to Stripe and grant Xero permission to access your transaction data
  4. Return to Xero — the feed will now pull individual payments, fees, and refunds into the Stripe Clearing Account

Step 3: Set Up Supporting Accounts in Your Chart of Accounts

Before reconciling, confirm you have the following accounts in Xero:

  • Stripe Clearing Account — the virtual bank account you just created. Its balance should move toward zero after each payout cycle.
  • Payment Processing Fees — an expense account under the Bank Charges category. Go to Accounting > Chart of Accounts > Add Account, set type to "Expense," and name it "Payment Processing Fees" or "Stripe Merchant Fees."
  • Sales / Revenue accounts — your standard income accounts for coding customer payments.

Reconcile Stripe Payouts in Xero: Step by Step

Once the bank feed is active, Stripe transactions appear in the Stripe Clearing Account reconciliation screen. Here is how the full reconciliation flow works.

Step 1: Reconcile Individual Payments Against Invoices

  1. Go to Accounting > Bank Accounts, find your Stripe Clearing Account, and click Reconcile [X] items
  2. For each incoming payment, Xero will suggest a matching invoice in the "Find & Match" tab
  3. If the suggested match is correct, click OK to confirm and mark the invoice as paid
  4. If no match appears, click Find & Match, search by customer name or amount, and select the correct invoice manually

At this stage you are reconciling gross payment amounts from Stripe against the full invoice amounts in Xero. Do not adjust for fees here — fees are handled separately.

Step 2: Reconcile the Net Payout Against Your Real Bank Account

When Stripe sends its bundled payout, it arrives in your actual business bank account as a single line item. To match it:

  1. Go to Accounting > Bank Accounts, find your real business bank account, and click Reconcile
  2. Locate the Stripe payout line in your bank statement
  3. Click Find & Match, then select Transfer from the source dropdown
  4. Choose the Stripe Clearing Account as the source account
  5. The payout amount in your bank account cancels out the equivalent balance in the Stripe Clearing Account
  6. Click OK

After this step, the Stripe Clearing Account balance should sit at or near zero. If the balance is building positively or negatively, there are unreconciled transactions or missing fee entries somewhere in the account.

Step 3: Investigate Any Remaining Clearing Account Balance

If the clearing account does not net to zero, export a Stripe payout reconciliation report from the Stripe Dashboard (under Reports > Payout reconciliation) and compare it line by line against the transactions in your Xero Stripe Clearing Account. Every transaction in the Stripe report — payment, fee, refund — should have a corresponding Xero entry.


How to Handle Stripe Fees in Xero

Stripe fees are the most common source of errors in manual reconciliation. There are two scenarios depending on how your feed delivers fee data.

Scenario A: Stripe Feed Separates Fees as Individual Transactions (Default)

The Stripe direct bank feed typically breaks out each processing fee as a separate negative transaction in the Stripe Clearing Account. To reconcile:

  1. In the Stripe Clearing Account reconciliation screen, locate the fee transaction — it appears as a negative amount labelled "Stripe fee" or "Processing fee"
  2. Click Add Details
  3. Set Account to your Payment Processing Fees expense account
  4. Set Tax Rate to No Tax / Tax Exempt — processing fees are not a taxable supply
  5. Leave the contact field blank or set it to "Stripe"
  6. Click Reconcile

Repeat this for every fee transaction. Bank rules (covered below) can automate this step for all future transactions.

Scenario B: Feed Shows Gross Amount Only

If your bank feed shows the gross payment and you need to manually split out the fee:

  1. Select the transaction in the reconciliation screen
  2. Click Split
  3. Enter the full invoice amount and assign it to the relevant invoice
  4. Add a second line for the fee amount as a negative value, assigned to Payment Processing Fees
  5. Verify the two lines sum to the gross transaction total
  6. Click Reconcile

Which Account Should Stripe Fees Go To?

Create a dedicated Payment Processing Fees expense account in your chart of accounts under the Bank Charges category. Do not post fees to a sales or revenue account — this understates gross revenue and distorts profit margin reporting. Keeping fees on a separate expense line also makes it easy to review your total Stripe cost at tax time.


How to Handle Stripe Refunds in Xero

Standard Refunds

When you issue a refund in Stripe, it appears in the Stripe bank feed as a negative transaction in the Stripe Clearing Account.

  1. Locate the refund in the Stripe Clearing Account reconciliation screen
  2. If the original invoice has already been reconciled, you cannot simply unmatch it — you need a credit note
  3. Go to Accounts > Sales > New Credit Note, create a credit note against the customer and original invoice for the refund amount
  4. Return to the reconciliation screen, click Find & Match, and match the negative refund transaction to the credit note
  5. Click OK

If the refund is partial, the credit note should reflect only the partial amount. Do not apply it to the full invoice unless the entire invoice is being reversed.

Disputes and Chargebacks

Stripe chargebacks are more complex because they involve two distinct entries. When a customer disputes a charge, Stripe reverses the original payment and deducts a dispute fee (typically $15 for card disputes). You need to record:

  1. The reversal of the original payment — matched to a credit note against the original invoice
  2. The dispute fee — coded to Payment Processing Fees expense
  3. If Stripe later resolves the dispute in your favour, it will return the funds and the dispute fee — code this as income against Payment Processing Fees to net it back out

Keep a note on the original invoice in Xero describing the dispute status. This gives your accountant a clear trail if they need to investigate the period later.


Use Bank Rules to Automate Categorisation

Xero's bank rules reduce the manual decision-making on routine Stripe transactions. A bank rule tells Xero: "whenever you see a transaction matching these conditions, apply these settings automatically."

Bank Rule for Stripe Fees

  1. Go to Accounting > Bank Accounts, click on your Stripe Clearing Account, then select Manage Account > Create Bank Rule
  2. Set the condition: Transaction description contains "Stripe fee" (adjust to match your feed's exact label)
  3. Set the action: Create a transaction, coded to Payment Processing Fees, Tax Rate = No Tax
  4. Click Save, then click Run Rules to apply the rule to all existing unreconciled fee transactions

Bank Rule for Stripe Payouts Hitting Your Real Bank

  1. In your real business bank account, create a new bank rule
  2. Set the condition: Reference contains "STRIPE" or Payee contains "Stripe"
  3. Set the action: Transfer to Stripe Clearing Account
  4. Save and run

Bank rules handle categorisation but do not eliminate the confirmation step. Xero still requires you to click OK on each suggested match, which is by design — it gives you a final review before transactions are posted.


Manual vs Automated Reconciliation Comparison

Factor Manual (Xero Bank Feed + Rules) Automated Tool
Setup time 1-2 hours 30-60 minutes
Monthly time cost 2-8 hours depending on volume Under 30 minutes review
Per-transaction detail Yes, with manual matching Yes, automatic
Fee handling Manual or via bank rules Automatic
Refund handling Manual credit notes Automatic
Bundled payout resolution Manual transfer matching Automatic
Error risk Moderate (human review required) Low
Cost Free (included in Xero) $20-$75/month depending on tool
Best for Under 50 transactions/month 50+ transactions/month

For businesses under 50 Stripe transactions per month, the manual clearing account approach with bank rules is entirely manageable. Above that volume, the time cost of manual reconciliation typically outweighs the cost of an automation tool.


Automate Stripe-Xero Reconciliation

For higher-volume businesses, manual reconciliation — even with bank rules — becomes a significant ongoing overhead. Several tools automate the Stripe-to-Xero flow.

Synder pulls individual transaction data directly from the Stripe API, including full fee breakdowns, customer names, and product details, and syncs them into Xero as categorised transactions. It handles multi-currency, supports Shopify alongside Stripe, and offers a historical data import for onboarding. Best for businesses with 50+ Stripe transactions per month that want full per-transaction detail in Xero.

Amaka offers a Stripe-to-Xero connector focused on daily reconciliation summaries rather than line-by-line detail. It is simpler to configure than Synder and works well for businesses that primarily need a clean daily close. Best for businesses that prefer a summary-level approach.

PayTraQer offers granular control over account mapping and categorisation, and supports multiple Stripe accounts feeding into one Xero organisation. Best for businesses with complex account structures.

Reconkept is purpose-built for the bundled payout problem that causes the most reconciliation failures. It connects Stripe to Xero, resolves each payout against its constituent transactions automatically, and posts fees and refunds without manual intervention. No spreadsheets, no month-end catches — it runs continuously in the background.


Frequently Asked Questions

How do I set up Stripe in Xero?

Go to Accounting > Bank Accounts > Add Bank Account, search for "Stripe," select it from the results, and follow the prompts to name the account and activate the bank feed. This creates a virtual Stripe bank account inside Xero that receives individual transaction data directly from Stripe — separate from your real business bank account. Once connected, payments, fees, and refunds from Stripe will appear in this account's reconciliation screen automatically.

What account type should I use for the Stripe clearing account in Xero?

Use the Bank Account type in Xero, not a liability or current account. Selecting Stripe as the bank provider during setup enables the direct bank feed connection. The clearing account functions as a pass-through — money flows in as individual customer payments, out as fee entries and the net payout transfer, and the balance should return to zero after each payout cycle is reconciled.

What account should Stripe fees go to in Xero?

Stripe fees should be posted to a dedicated expense account, typically named "Payment Processing Fees" or "Stripe Merchant Fees," set up under the Bank Charges category in your chart of accounts. Go to Accounting > Chart of Accounts > Add Account, set the type to Expense, and save. Do not post fees to revenue or sales accounts — this understates your gross income and makes margin analysis unreliable. Set the tax rate on fee transactions to No Tax or Tax Exempt.

Why is my Stripe payout amount different from my Xero balance?

The most common causes are: (1) Stripe fees were not recorded in Xero, reducing the gross collected amount; (2) a refund was issued in Stripe but not reflected in Xero as a credit note; (3) a chargeback reversed a transaction; or (4) transactions are still in transit between Stripe's rolling settlement window and your bank. To diagnose, export a Stripe payout reconciliation report from the Stripe Dashboard and compare it line by line against the Stripe Clearing Account in Xero. Every entry in the Stripe report should have a corresponding Xero entry.

How do I reconcile bundled Stripe payouts in Xero?

Use the Stripe Clearing Account as a bridge. Individual customer payments from the Stripe bank feed are reconciled against invoices in the clearing account. Fees are recorded as expense transactions in the same account. When the bundled net payout arrives in your real bank account, you reconcile it as a transfer from the Stripe Clearing Account — not against individual invoices. This means your bank account reconciliation is a single transfer match rather than dozens of individual transaction matches. The clearing account balance nets to zero once everything is matched.

Does Xero automatically reconcile Stripe payments?

Xero will auto-suggest matches between Stripe bank feed transactions and outstanding invoices using its matching algorithm, but it does not automatically confirm those matches — you must review and click OK on each one. It also cannot automatically resolve bundled payouts, split gross payments from fees, or handle refunds and disputes without manual input. Bank rules automate the categorisation of routine fee transactions, but a human review step is always required. For true automation of the full reconciliation flow, a third-party tool is needed.

Can I import historical Stripe transactions into Xero?

Yes. When you first connect the Stripe bank feed in Xero, you can import historical transaction data — typically up to 90 days of history. For transactions older than 90 days, export a CSV from the Stripe Dashboard under Reports > Balance and import it manually into Xero using Accounting > Bank Accounts > [Stripe Account] > Import a Statement. Third-party tools like Synder also support extended historical imports during onboarding.

What happens if I use both the Xero payment services integration and the Stripe bank feed?

You will get duplicate transactions. The Xero payment services integration records a payment against the invoice when a customer pays via the Stripe payment link on an invoice. The bank feed then imports the same transaction again from Stripe. Both appear in Xero and need to be reconciled — except one of them is a duplicate with no real cash movement behind it. The fix is to choose one method and disable the other. If you use the bank feed (recommended for full fee visibility), go to Settings > Payment Services, find Stripe, and deactivate it.

How do I handle Stripe refunds in Xero?

When you issue a refund in Stripe, it appears as a negative transaction in the Stripe Clearing Account bank feed. If the original invoice has already been reconciled as paid, you cannot simply unmatch it. Instead, raise a credit note in Xero against the original invoice (Accounts > Sales > New Credit Note), then return to the reconciliation screen and match the negative refund transaction to the credit note. For partial refunds, the credit note amount should match only the refunded portion.


Automate Stripe Reconciliation in Xero

Reconkept connects Stripe to Xero and handles every payout automatically — bundled deposits, fees, and refunds reconciled without spreadsheets. Join the waitlist and get early access.

Get early access at Reconkept.com