WooCommerce QuickBooks sync setup guide for automated bookkeeping

How to Sync WooCommerce with QuickBooks for Automated Bookkeeping and Tax Prep

Manually exporting WooCommerce orders to QuickBooks is one of those tasks that seems manageable at 50 orders a month and becomes genuinely painful at 500. Beyond the time cost, manual data entry introduces errors that surface at tax time as reconciliation nightmares. The good news: connecting WooCommerce to QuickBooks Online for automated sync is straightforward, and the setup effort pays off almost immediately. This guide covers the complete process.

What Gets Synced Automatically

A properly configured WooCommerce-QuickBooks integration automatically handles:

  • Orders as invoices or sales receipts – Each WooCommerce order becomes a QuickBooks transaction automatically, with line items, pricing, and customer details
  • Customer records – New WooCommerce customers get created in QuickBooks, and return customers match to existing records
  • Product mapping – WooCommerce products map to QuickBooks items for consistent categorization and reporting
  • Tax data – Order tax amounts sync to the appropriate QuickBooks tax accounts
  • Refunds – WooCommerce refunds create corresponding credit memos or refund receipts in QuickBooks
  • Payment methods – Different payment gateways map to different QuickBooks accounts (Stripe to one deposit account, PayPal to another)

The primary integration options are the official QuickBooks Online Connector by WooCommerce (paid) and third-party alternatives like MyWorks Sync or Webgility. The official connector is the most straightforward for standard QuickBooks Online accounts.

Installation and connection

  1. Purchase and install the QuickBooks Online Connector plugin from WooCommerce.com
  2. In your WordPress admin, go to WooCommerce > Integrations > QuickBooks Online
  3. Click “Connect to QuickBooks.” You’ll be redirected to Intuit’s authorization flow.
  4. Log into your QuickBooks Online account and authorize the connection
  5. Return to your WordPress admin – the integration status should show “Connected”

Initial configuration: accounts mapping

After connecting, you need to map WooCommerce transaction types to your QuickBooks chart of accounts. Key mappings to configure:

WooCommerce TransactionQuickBooks Account TypeExample
Sales revenueIncome accountSales of Product Income
Shipping charges collectedIncome accountShipping Income
Discounts givenIncome deduction or expenseDiscounts Given
Tax collectedTax liability accountSales Tax Payable
Stripe depositsBank accountStripe Checking
PayPal depositsBank accountPayPal Account
Refunds issuedExpense or income reductionRefunds – Products

If your QuickBooks chart of accounts doesn’t have these accounts set up, create them in QuickBooks before completing the mapping. The integration can only map to existing accounts.


Product mapping determines how WooCommerce products appear in QuickBooks reports. You have two approaches:

Map by product (detailed)

Each WooCommerce product maps to a specific QuickBooks item. This gives you per-product sales reporting in QuickBooks but requires maintaining the mapping when you add products. Best for stores with a stable product catalog or where per-product financial reporting matters.

Map by category (simpler)

WooCommerce product categories map to QuickBooks item categories. All products in a category roll up to the same QuickBooks item. Best for stores with large or frequently changing catalogs where category-level reporting is sufficient.

For most stores, a hybrid approach works: map your top 20-30 SKUs individually for detailed tracking, and map the remainder by category.


Tax sync is where most WooCommerce-QuickBooks integrations have problems. The root cause: WooCommerce’s flexible tax configuration and QuickBooks’s structured tax codes don’t always map cleanly.

If you use WooCommerce Tax or TaxJar for automated US sales tax, you’ll need to map each state/jurisdiction’s tax rate to the corresponding QuickBooks tax code. The integration handles this via the Tax Settings panel – assign each WooCommerce tax class to a QuickBooks tax code.

For international stores collecting VAT or GST, QuickBooks Online (UK/Australia/Canada editions) has built-in VAT/GST support that maps more naturally to WooCommerce’s tax structure than the US edition.

Get a bookkeeper or accountant to review your account and tax mappings before running the first sync. Fixing miscategorized transactions after the fact is significantly more work than getting it right initially.


Refund handling is the most common configuration error. When a WooCommerce refund syncs to QuickBooks, it should:

  1. Create a credit memo or refund receipt in QuickBooks matching the refund amount
  2. Reverse the revenue recognition for the returned product
  3. Reverse the tax liability if tax was collected and is being refunded
  4. Post the outbound payment back to the correct bank/payment account

In the integration settings, configure the refund document type (credit memo vs. refund receipt) based on how your accountant wants refunds recorded. Credit memos are typically used when the customer will reapply the credit to a future purchase; refund receipts are used for cash refunds.


Even with automated sync, monthly reconciliation remains important. The sync creates the transactions – reconciliation verifies they’re accurate.

Monthly reconciliation checklist

  1. Match QuickBooks total revenue to WooCommerce revenue report – Go to WooCommerce > Analytics > Revenue for the month. Compare the total to QuickBooks’s Profit and Loss for the same period. They should match within rounding.
  2. Match bank deposits to QuickBooks bank accounts – Reconcile your Stripe and PayPal deposits against what’s recorded in the corresponding QuickBooks accounts.
  3. Verify tax liability – QuickBooks’s Sales Tax Liability report should match your WooCommerce tax collected report for the period.
  4. Check for sync errors – The integration plugin typically has a log of sync errors. Review it monthly and manually resolve any transactions that failed to sync.

IssueCauseFix
Duplicate transactions in QuickBooksOrders syncing twiceCheck for duplicate sync triggers, disable historical import after initial setup
Customer merge failuresEmail address conflicts between QBO and WCAudit customer email list before initial sync, standardize on one email per customer
Missing transactionsSync error during high-volume periodReview sync error log, manually re-sync affected date range
Tax amounts not matchingTax code mapping incompleteReview tax class to QBO tax code mapping, ensure all rates covered
Refunds creating new customersCustomer matching logic issueUpdate to latest plugin version, check customer matching settings

Inventory synchronization is one of the most requested features and also one of the trickiest to get right. The core challenge is that WooCommerce and QuickBooks track inventory differently, and conflicts arise when both systems try to be the source of truth.

The official WooCommerce QuickBooks connector provides one-way inventory sync, WooCommerce stock levels update QuickBooks inventory counts when orders are placed. This works well for stores where WooCommerce is the only sales channel. When a customer buys three units of a product, QuickBooks inventory decreases by three automatically.

Problems emerge when you sell through multiple channels. If you also sell on Amazon, at retail locations, or through wholesale, inventory changes in QuickBooks (from those other channels) need to flow back to WooCommerce. The official connector does not support this reverse sync. MyWorks Sync and Webgility both offer bidirectional inventory sync, making them better choices for multi-channel sellers.

For stores with WooCommerce as the sole sales channel, one-way sync works fine. Configure the inventory tracking settings to update QuickBooks inventory on order completion (not order placement) to avoid inventory discrepancies from cancelled orders. Set the sync frequency to real-time or every 15 minutes depending on your order volume, high-volume stores benefit from real-time sync to prevent overselling.

Variable products and inventory

Variable products (like a t-shirt in multiple sizes and colors) require careful mapping. Each WooCommerce variation needs to map to a separate QuickBooks inventory item. If you have a product with 5 sizes and 4 colors, that’s 20 QuickBooks inventory items for a single WooCommerce product. Plan your QuickBooks item hierarchy before setting up the mapping, creating a parent item in QuickBooks with child items for each variation keeps reports organized.


If your store uses WooCommerce Subscriptions for recurring revenue, the QuickBooks integration needs additional configuration to handle recurring transactions correctly.

Each subscription renewal generates a new WooCommerce order. These orders sync to QuickBooks as individual transactions, which is correct for cash-basis accounting. For accrual-basis accounting, you may want to recognize subscription revenue across the subscription period rather than at the moment of payment. This requires manual journal entries or a more sophisticated integration setup.

Key configuration decisions for subscription stores:

  • Revenue recognition method, Cash basis records revenue when payment is received (each renewal creates income). Accrual basis may require deferred revenue accounts and monthly recognition entries.
  • Failed payment handling, When a subscription renewal payment fails, WooCommerce retries based on your settings. Configure the integration to only sync successful payments, not failed attempts, to avoid phantom transactions in QuickBooks.
  • Subscription upgrades and downgrades, Prorated charges from plan changes can create unusual order amounts. Ensure these sync correctly by testing a plan change before going live with the integration.
  • Free trials, Zero-dollar orders from free trial starts should either be excluded from sync entirely or mapped to a specific QuickBooks item for tracking trial conversions.

International WooCommerce stores accepting multiple currencies face additional complexity when syncing with QuickBooks. QuickBooks Online supports multi-currency, but the setup requires attention to exchange rate handling.

When a WooCommerce order is placed in a foreign currency, the integration needs to record both the foreign currency amount and the home currency equivalent in QuickBooks. Most integrations use the exchange rate at the time of the transaction, which matches the payment gateway’s conversion rate. However, if your gateway batches settlements in your home currency, the actual deposited amount may differ from the calculated equivalent due to exchange rate fluctuations between order time and settlement time.

For stores processing significant international volume, consider these QuickBooks settings: enable the multi-currency feature in QuickBooks Online (Settings > Account and Settings > Advanced > Currency), set up separate income accounts for each major currency to track revenue by currency, and configure the integration to use the payment gateway’s exchange rate rather than QuickBooks’s daily rate. Reconciliation for multi-currency stores should compare gateway settlement reports (which show the actual converted amounts) against QuickBooks bank account entries.


The biggest payoff from WooCommerce-QuickBooks sync comes at tax time. With properly synced data throughout the year, tax preparation shifts from a weeks-long data gathering exercise to a review-and-file workflow.

Quarterly tax tasks (automated by sync)

With the sync running, these reports generate automatically in QuickBooks: Profit and Loss statement with accurate revenue categorization, Sales Tax Liability report showing tax collected by jurisdiction, Expense reports categorized by type (COGS, shipping costs, refunds), and Customer reports showing top customers and purchase patterns. Run these quarterly to catch any sync issues early rather than discovering them during annual tax prep.

Year-end tax preparation checklist

TaskQuickBooks ReportWhat to Verify
Revenue verificationProfit and Loss (annual)Total matches WooCommerce annual revenue report
COGS calculationInventory Valuation SummaryCost of goods sold aligns with purchase records
Sales tax filingSales Tax LiabilityTax collected matches tax filed/remitted per jurisdiction
1099 preparationVendor expenses over $600Contractor payments properly categorized for 1099-NEC
Deduction documentationExpense by CategoryBusiness expenses categorized correctly for deductions
Payment gateway reconciliationBank ReconciliationStripe/PayPal deposits match QuickBooks bank entries

State sales tax compliance

For US-based WooCommerce stores with economic nexus in multiple states, the QuickBooks sync provides the data needed for multi-state sales tax filing. QuickBooks Online’s sales tax center shows liability by jurisdiction. If you use TaxJar or WooCommerce Tax for automated rate calculation on the WooCommerce side, the tax amounts synced to QuickBooks should match exactly. Any discrepancies usually indicate a tax code mapping issue that needs attention before filing.

Stores selling in states with marketplace facilitator laws need to ensure marketplace sales (Amazon, eBay) aren’t double-counted in their QuickBooks tax liability. If marketplace sales flow through WooCommerce via integration plugins, configure the tax mapping to exclude marketplace-facilitated tax from your direct filing obligations.


The WooCommerce-QuickBooks connection uses OAuth 2.0 authentication, meaning your QuickBooks login credentials are never stored in WordPress. The integration stores an access token and refresh token that are used for API calls. These tokens expire and rotate automatically.

Security best practices for the integration include limiting the QuickBooks user account connected to the integration to only the permissions it needs (don’t connect as the company admin if a restricted role suffices), reviewing the connected apps list in QuickBooks periodically to remove any integrations you no longer use, ensuring your WordPress site uses HTTPS (which it should regardless) since OAuth tokens travel over this connection, and keeping the integration plugin updated since security patches for API communication are common.

If your QuickBooks connection disconnects (which happens when Intuit’s OAuth tokens expire beyond the refresh window), the integration will queue transactions and sync them once you re-authenticate. Check the connection status weekly, a disconnected integration that goes unnoticed for a month creates a large backlog of transactions to process at once, which increases the chance of sync errors.


FeatureOfficial QBO ConnectorMyWorks SyncWebgility
Price$79/year$24-69/month$47-247/month
Inventory sync directionWooCommerce → QuickBooksBidirectionalBidirectional
Multi-channel supportWooCommerce onlyWooCommerce + others15+ channels
Subscription supportBasicFullFull
Multi-currencyLimitedFull supportFull support
Historical importManual date rangeAutomated with mappingAutomated with mapping
Support qualityStandard WooCommerceDedicated, responsivePriority support
Best forSimple single-channel storesMid-size multi-channelEnterprise multi-channel

For most WooCommerce stores with under $500K annual revenue and a single sales channel, the official connector provides sufficient functionality at the lowest cost. For multi-channel sellers or stores with complex inventory needs, MyWorks Sync offers the best balance of features and price. Webgility is the enterprise option for businesses that need to sync multiple sales channels, manage complex fulfillment workflows, and generate advanced financial reports from a single dashboard.


If you’re setting up the integration on an existing store, you’ll want to decide whether to import historical orders or start fresh from a specific date.

Recommendation: start fresh from the beginning of a fiscal year or quarter. Import historical data only if your accountant specifically needs it and has reviewed the mapping configuration. Historical imports often surface mapping issues that need manual cleanup, the work scales with the number of historical orders.

If you do import historical data, run the import during off-peak hours when your store has minimal order activity. The import process can be resource-intensive, and processing hundreds or thousands of historical orders simultaneously while new orders are coming in increases the risk of timeout errors or duplicate entries. After the import completes, immediately run a reconciliation check, compare the total number of imported transactions against your WooCommerce order count for the same period to verify nothing was missed or duplicated.


Stores processing more than 100 orders per day need to consider the integration’s impact on site performance. Each order sync involves an API call to QuickBooks, and these calls happen on your WordPress server. During high-traffic events like flash sales or holiday promotions, hundreds of simultaneous sync requests can slow down your site.

Best practices for high-volume stores include configuring batch sync instead of real-time sync during peak periods (queue orders and sync every 15-30 minutes rather than on each order), using a separate worker process or cron job for sync operations so they don’t block the main PHP process handling customer requests, monitoring your WordPress server’s memory usage during sync operations since each API call consumes memory that could otherwise serve storefront requests, and setting up error alerting so you know immediately when sync failures occur rather than discovering a backlog days later.

For stores processing over 500 orders per day, consider dedicated QuickBooks API middleware, a separate service that receives webhook notifications from WooCommerce, queues them, and processes them asynchronously against the QuickBooks API. This completely decouples your storefront performance from your accounting sync and eliminates the risk of sync operations affecting customer experience during peak traffic.


Once the sync is running cleanly, QuickBooks becomes your single source of truth for financial reporting. The reports that become most valuable for WooCommerce store owners include the Profit and Loss by Product or Category report (shows which product lines are actually profitable after accounting for COGS, shipping, and refund costs), the Sales by Customer Summary report (identifies your highest-value customers and helps prioritize retention efforts), the Cash Flow Statement (tracks the timing gap between when orders are placed and when money actually hits your bank account, critical for stores with net-30 wholesale terms or delayed marketplace payouts), and the Accounts Receivable Aging report (relevant for stores offering payment terms to B2B customers through WooCommerce).

These reports update automatically as new transactions sync, giving you real-time financial visibility that would require hours of manual spreadsheet work without the integration. Schedule weekly automated email reports from QuickBooks for the metrics you track most closely, most store owners find that a weekly Profit and Loss summary and a monthly Cash Flow Statement provide the right cadence of financial awareness without information overload.


For the Xero equivalent of this workflow, see the WooCommerce-Xero integration guide. For understanding the broader financial picture of managing a WooCommerce store through changing market conditions, the e-commerce market conditions guide covers cash flow management strategies.


A working WooCommerce-QuickBooks sync eliminates the manual data entry that eats accountant hours and introduces errors. The initial setup investment, typically 2-4 hours of careful configuration plus a thorough review session with your accountant, pays back within the first billing cycle.

The configuration quality matters as much as the connection itself. Spend the time getting account mapping, product mapping, and tax codes right before your first sync. A clean setup runs quietly in the background and saves your bookkeeper dozens of hours each quarter. A misconfigured one creates monthly reconciliation work that negates the automation benefit entirely.

Start with the official connector if your needs are straightforward, and upgrade to MyWorks or Webgility only if you hit limitations around multi-channel inventory, bidirectional sync, or advanced reporting. Most stores that think they need the premium option actually just need the basic connector configured correctly. The stores that genuinely benefit from paying more are the ones selling across multiple channels where inventory accuracy across platforms is critical to avoiding overselling and customer disappointment.

Custom WooCommerce Integrations

For stores with non-standard QuickBooks configurations or complex tax scenarios that the standard connector doesn’t handle, WooCustomDev builds custom accounting integrations using the QuickBooks API directly. Get in touch to discuss your specific setup.

Facebook
Twitter
LinkedIn
Pinterest
WhatsApp

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *