
QuickBooks Integrations
Shopify + QuickBooks & Xero: Which Sync Tool Is Right?
Bookkeepers managing Shopify clients: compare A2X, Synder, Webgility, and native connectors. Decision matrix included for every client scenario.
11 min

Your food truck client's November P&L shows a $15,000 spike in "Other Income." No new products. No bulk orders. You dig in and find it: a Square Capital advance that someone categorized as revenue. The P&L is wrong. The client's tax liability is overstated. Unraveling it takes an afternoon.
Square is the POS system you'll encounter more than any other in a bookkeeping practice. Hair salons, boutiques, food trucks, service businesses: they all default to it because it's easy to set up. The QBO integration is also easy to connect. But "connected" and "correct" are two different things.
This guide covers what actually trips bookkeepers up: Square's fee structure, the Capital advance problem, chargebacks, and the deposit timing gap that creates month-end headaches. We'll do both QBO and Xero.
How does Square integrate with QuickBooks?
Square's native QuickBooks Online connector syncs daily sales summaries or individual transactions through Square Dashboard > Apps > QuickBooks. Once authorized, it maps sales, fees, and deposits to accounts you specify. The integration handles data movement automatically. But account mapping and categorization still require judgment — especially for Square fees (2.6% + 10¢ per swipe), Square Capital advances, and chargebacks that show up as negative amounts with no clear label.
Setup takes about five minutes: log into Square Dashboard, go to Apps, search QuickBooks, click Connect, and authorize with QBO credentials. Then you'll map accounts.
There are three settings that actually matter:
1. Summary vs. per-transaction sync. Summary mode sends one daily record per location: total sales, total fees, total net deposit. Per-transaction sends every individual sale as a separate line item. For clients with more than 50 transactions a day, per-transaction sync creates noise without adding meaningful accuracy. Use summary mode for most retail and food clients. Per-transaction makes sense for clients needing granular SKU-level data or low transaction volume — think a service business running 8-10 Square invoices per week.
2. Deposit account mapping. The deposit has to hit the right bank account in QBO. If your client has multiple bank accounts and Square deposits to one specific account, map it correctly here. An incorrect mapping means your bank reconciliation never closes.
3. Sales tax account. If your client collects sales tax through Square, the integration can route it to a liability account. Make sure this maps to your existing Sales Tax Payable account; don't let it create a duplicate.
Once connected, Square syncs daily, typically overnight. The first sync pulls the current month. Historical data requires a separate import.
Square doesn't send you $100 when a client's customer pays $100. They send you $97.30, after deducting the 2.6% + 10¢ swipe fee.
This matters because the deposit is $97.30, but the sale was $100. Record the deposit as income and you've understated revenue by $2.70. On a client doing $30,000 in Square sales monthly, that's $810 in missing revenue and $810 in unrecorded fees.
The correct account structure in QBO:
Account | Type | Purpose |
|---|---|---|
Sales / Revenue | Income | Gross sale amount ($100) |
Square Merchant Fees | Expense (Cost of Goods or Operating) | Processing fee ($2.70) |
Checking Account | Bank | Net deposit ($97.30) |
Square's native integration handles this automatically when the fee account is mapped correctly during setup. But check the mapping. If "Square Merchant Fees" didn't exist when you connected, Square may have created a generic "Square" account or dumped fees into Uncategorized.
Square's fee structure varies by transaction type: 2.6% + 10¢ for card-present swipes, 3.5% + 15¢ for manually keyed transactions, and 2.9% + 30¢ for online payments. A client with mixed in-person and online sales will see an effective rate slightly above 2.6%. The integration reports actual fees charged. Your mapping just needs to catch all of them in the right expense account.
For more on fee categorization across payment processors, the same gross-to-net logic applies to Stripe integrations (the chart of accounts setup is nearly identical).
Square Capital offers merchant cash advances to qualifying sellers — typically $300 to $250,000 — repaid through a fixed percentage of daily card sales.
When a client accepts a $15,000 Square Capital advance, that $15,000 hits their bank account. It looks exactly like a large payment or a Square batch deposit. There's no automatic label in the bank feed identifying it as a loan.
The correct treatment:
On receipt: Debit Checking Account $15,000 / Credit Square Capital Loan (Long-Term Liability) $15,000
Daily repayment: Square withholds a percentage of sales (say, 12%) until the advance is paid back. The daily repayment reduces the liability balance, not revenue. There may also be a total payback amount — the "factor rate" — that exceeds the advance. That difference is financing expense, not a fee.
A client who borrows $15,000 at a 1.15 factor rate will repay $17,250 total. That $2,250 spread is interest expense, booked as the daily repayments exceed principal.
What not to do: categorize the $15,000 as Other Income. The client's P&L will show a phantom revenue spike. Net income will be overstated. Tax liability will be wrong.
Square Capital doesn't generate a 1099 because it's a loan, not income. That's cold comfort when a client gets a tax bill on money they repaid six months ago.
Taking on a new Square client mid-year? Search the bank feed for deposits that don't match daily sales patterns. A single large round-number deposit in a granular feed is worth investigating before you categorize anything.
Square refunds and chargebacks both show up as negative amounts in your bank feed. They're different transactions requiring different accounting treatment.
Refunds: When a customer requests a refund, Square returns the full sale amount to the card. Square also refunds the processing fee. On a $100 refund at 2.6% + 10¢, Square credits $97.30 to the card and returns the $2.70 fee. In QBO, record this as a Credit Memo against the original revenue account. Reduce Square Merchant Fees expense by the returned fee amount.
Chargebacks: A chargeback is a customer dispute processed through the card network. Square absorbs the chargeback fee — unlike Stripe, which charges $15 per dispute regardless of outcome. Either way, the mechanics create a negative in your bank feed: the disputed sale amount is reversed.
Record a chargeback against the original revenue account with a note identifying it as a dispute. If the chargeback is reversed (you win the dispute), the credit comes back as a separate deposit.
The timing problem is more significant than the accounting treatment. Chargebacks can arrive 45 to 120 days after the original transaction. A December 15 sale can generate a chargeback in February. If December is already closed, that February chargeback creates a prior-period adjustment. You're reversing revenue that's already on a filed tax return.
The practical fix: during month-end close, check Square's dispute dashboard (Dashboard > Activity > Disputes) for open disputes on sales from the month. An open dispute on a $400 sale is contingent revenue. Note it in your workpapers even if you don't reverse it until resolved.
Square's Xero integration exists, but it's less configurable than the QBO connector. For light-volume clients, it's fine. For clients running hundreds of daily transactions, expect friction.
The setup path is similar: Xero App Store > Square > Connect. You'll authorize Square, map bank accounts, and set the sync preferences. The significant differences:
Tracking categories. Xero uses tracking categories where QBO uses classes. If your client separates sales by location or product line, configure tracking categories before connecting Square. The integration can populate them, but only if they exist first.
Tax rates. Xero handles tax rates differently from QBO. If Square is collecting sales tax, map it to the correct Xero tax rate — not a generic "Tax" label. A wrong mapping creates discrepancies with the GST/HST return or sales tax filing.
The Undeposited Funds equivalent. QBO uses Undeposited Funds as a clearing account for payments received but not yet deposited. Xero's equivalent is a bank account called "Undeposited Funds" or a clearing account you create manually. The Square integration doesn't always handle this consistently. Test the first week's sync and verify deposits match the bank statement before assuming it's clean.
For high-volume Xero clients (more than 100 daily transactions or multiple Square locations), third-party tools like Synder or MyWorks handle the integration more reliably. They give you more control over sync rules, fee mapping, and how refunds and chargebacks post. The native connector works — it just wasn't built for scale.
For a comparison of native vs. third-party options across payment processors, see QuickBooks POS integration tools compared.
Square's default deposit schedule is next business day. Sales processed Monday through Friday deposit the following business day. Friday sales land Monday. Sales on the last few business days of the month land in the following month's bank statement.
For most months, this is a minor inconvenience. For year-end close, it's a real problem.
December 28 through December 31 sales don't hit the bank until January 2-4. Recording revenue when cash is deposited understates December revenue by those last few days. On accrual, the sales are December revenue regardless of deposit date. But the bank reconciliation won't close until you account for the timing difference.
The standard treatment: create an "In Transit" or "Square Clearing" account as a holding account. Sales processed by Square but not yet deposited post there. When the deposit arrives, it offsets the clearing account. At month-end, the clearing account balance shows exactly what Square has processed but not deposited.
Square offers Instant Deposit for an additional 1.75% fee per deposit. For clients who need same-day cash flow visibility or clean month-end books, Instant Deposit eliminates the timing gap. Most clients won't pay 1.75% for accounting convenience. But it's worth knowing the option exists.
For a deeper look at handling timing differences in QBO, the Undeposited Funds in QBO guide covers the clearing account mechanics in detail.
Sales tax timing is a related issue. Square collects tax at the point of sale. But the deposit is net of fees, so the tax portion needs to land in a liability account — not income. For the full sales tax sync walkthrough, see sales tax sync for POS and QBO.
The accounting treatments above require judgment. They're not things you set once and forget. Square Capital advances show up a few times a year. Chargebacks trickle in on a lag. Deposit timing creates a reconciling item every single month.
Pattern learning takes care of the recurring parts: fee categorization, deposit matching, and sales categorization that follows your chart of accounts. The flagging logic catches anomalies: a large round-number deposit, a negative transaction that doesn't match refund history.
That doesn't replace judgment on the edge cases. It means you spend time on the $15,000 Square Capital advance that needs a liability setup — not on categorizing 847 transactions that follow the same pattern month after month.
Free during alpha. Read-only access. You review every sync.
Growthy is dedicated to helping businesses of all sizes make informed decisions. We adhere to strict editorial guidelines to ensure that our content meets and maintains our high standards.

Bookkeepers managing Shopify clients: compare A2X, Synder, Webgility, and native connectors. Decision matrix included for every client scenario.

Clover shows $1,247. QBO shows $1,203. Here are the three causes of POS-to-QBO sales tax mismatches and how to fix each one before month-end close.
