Setup guide · WooCommerce · QuickBooks ● Free on WordPress.org

Setting up Demfilz Sync for QuickBooks

Connect WooCommerce to your QuickBooks Online company and start pushing orders across. Here's how to install the plugin, register a free Intuit developer app, connect with OAuth, map your item and tax codes, and sync your first order.

Updated 26 June 2026~15 minWooCommerce 6.0+ · PHP 7.2+

✓ Free on WordPress.org. This plugin writes to your live accounting company, so before you use it on real books, connect it to an Intuit sandbox or trial company first, run a few test orders, and confirm the sales look right in QuickBooks.

1

Install

Upload the plugin zip and activate it.

2

Intuit app

Get a free Client ID & secret.

3

Connect & map

Sign in, then map item & tax.

4

Sync

Push an order to QuickBooks.

What this plugin does

Demfilz Sync for QuickBooks connects your store to QuickBooks Online through the official Intuit Accounting API. The free Basic version lets you push an order to QuickBooks as a sale at the click of a button, syncs the customer, and pulls quantity-on-hand back for a product. The Pro version ($19.95/month via Stripe) adds automatic order sync, scheduled inventory, bulk backfill, refunds and per-tax-class rules.

You'll need: a WordPress site with WooCommerce 6.0+ and PHP 7.2+, and a QuickBooks Online company to connect to. You do not need a paid plugin licence to test — the free tier does the full connect-and-sync. To have a company you can use a free QuickBooks Online trial, or the free Intuit sandbox company that comes with every developer account.

Step 1 — Install & activate

  • In WordPress admin, go to Plugins → Add New and search for Demfilz Sync for QuickBooks, then click Install Now and Activate.
  • Or install it from the WordPress.org listing (Download, then Plugins → Add New → Upload Plugin).
  • Make sure WooCommerce is installed and active too.
  • Find the settings under WooCommerce → QuickBooks Sync.

Step 2 — Register a free Intuit developer app

Intuit needs you to register a small "app" so it can issue you API keys. This is free and takes a couple of minutes.

  • Open the plugin's Connection tab and copy the redirect URI shown there (it looks like https://your-store.com/wp-admin/admin.php?page=dwtq&dwtq_action=oauth_callback).
  • Go to developer.intuit.com and sign in with your Intuit account.
  • Create a new app for the QuickBooks Online Accounting API. Under Keys & OAuth, add the redirect URI exactly (including https, no trailing slash) to the app's Redirect URIs.
  • Copy the Client ID and Client Secret — note that the Sandbox and Production keys are different.

Tip: Intuit requires an https callback, so test on a real (staging) site with a valid SSL certificate rather than localhost. One Intuit app can hold several redirect URIs, so you can add both a staging and a live store to the same app.

Step 3 — Connect QuickBooks

  • Back on the Connection tab, choose your environmentProduction (your live company) or Sandbox (Intuit's test company) — and paste the matching Client ID and Secret.
  • Click Save & Connect to QuickBooks. You'll be sent to Intuit to sign in, choose the company, and approve access, then returned to WordPress.
  • The connected company is shown on the Connection tab. The keys and tokens are stored encrypted in your database.

Step 4 — Map your item & tax codes

  • Go to the Mapping tab and choose:
    • Default product/service (item) — QuickBooks requires every sale line to reference an item; your order lines are posted against this one, each carrying its own description and amount.
    • Default tax code and shipping tax code — e.g. GST and GST-free. Leave blank if your QuickBooks region doesn't use tax codes on sales.
    • Post orders as — Invoice (default), Sales Receipt or Estimate.
  • Save mapping.

Step 5 — Sync an order

Open any WooCommerce order. In the QuickBooks Sync box, click Sync to QuickBooks. The plugin creates or matches the customer, posts the sale against your mapped item and tax codes, and stores the QuickBooks reference on the order so it's never duplicated. Open the sale in QuickBooks to confirm the totals. The Logs tab records every attempt.

To pull stock, edit a product, open the Inventory tab, and click Pull stock from QuickBooks (matched by SKU; the QuickBooks item must track quantity on hand).

Pro — automation & scale

Upgrade on the Pro Licence tab ($19.95/month via Stripe — cancel anytime). Pro adds:

  • Automatic order sync when an order reaches a status you choose (e.g. Processing or Completed), with retry and email alerts.
  • Scheduled inventory sync across all products.
  • Bulk backfill — push past orders with a "Sync to QuickBooks" bulk action.
  • Refunds → credit memos and per-tax-class tax mapping.
PlatformQuickBooks Online (Production and Sandbox), via the official Intuit Accounting API (OAuth 2.0). QuickBooks Desktop is not supported.
Sale typePosts as an Invoice (default), Sales Receipt or Estimate. Line totals are sent tax-exclusive and your QuickBooks tax codes are applied per line, so totals reconcile.
CustomersMatched in QuickBooks before creating, to avoid duplicate customers.
IdempotentThe QuickBooks sale id is stored on the order; re-syncing updates it rather than duplicating.
SecurityOAuth tokens encrypted at rest; data sent to QuickBooks only on connect/sync.

FAQ

Do I need to pay for the plugin to test it?

No. The free Basic tier does the full connect-and-sync (orders, customers, stock). You only need a QuickBooks Online company to point at — a free trial or the Intuit sandbox company is fine. The $19.95/mo Pro plan only unlocks automation.

Does it work with QuickBooks Desktop?

No — this integrates with QuickBooks Online via the Intuit API. QuickBooks Desktop uses a different, local interface and isn't supported.

Why do I have to pick a default item?

QuickBooks requires every line on a sale to reference a product/service item. The plugin posts your order lines against the item you choose, while keeping each line's own description and amount.

Is my data safe?

OAuth tokens are encrypted in your WordPress database, and order data is only sent to QuickBooks when you connect or sync. The plugin declares its use of the Intuit API as required for WordPress.org.

Will it create duplicate sales or customers?

No. Customers are matched before being created, and each order stores its QuickBooks sale id — re-syncing updates the existing sale rather than making a new one.

What should I watch for on first use?

Because it writes to your accounts, test on a sandbox or trial company first and eyeball the first few synced sales (totals, tax, item) in QuickBooks. Found something off? Let us know — we're happy to help.

This plugin is independent and not affiliated with, endorsed by, or sponsored by Intuit, QuickBooks, WooCommerce, Automattic or Stripe. Product names are trademarks of their respective owners.

← Back to QuickBooks Sync Need a hand setting it up?

Want a WordPress plugin like this?

Accounting integrations, payments, shipping or something custom — tell us what you need and we'll come back with a plan and a fixed quote.