Skip to main content

QuickBooks Online integration guide for SKULabs

A complete guide to connecting, configuring, and troubleshooting the QuickBooks Online integration in SKULabs — covering setup, order sync, purchase order sync, inventory, and common issues.

Updated today

SKULabs integrates with QuickBooks Online (QBO) to keep your accounting in sync with your fulfillment operations. This guide covers everything from initial setup to configuration, common workflows, and how to fix the issues we see most often in support.

Before you start: You'll need a QuickBooks Online Plus or Advanced plan. Some API features used by SKULabs are not available on the Essentials plan.

What SKULabs can sync with QuickBooks Online

Understanding what does and doesn't sync will help you configure the integration correctly and avoid surprises.

What SKULabs can send to QuickBooks (outbound)

  • Sales receipts — pushed for orders when payment has been collected upfront

  • Invoices — pushed for orders where payment is collected later (post-shipment billing)

  • Purchase orders — closed POs and optionally processing POs are pushed to QBO

  • Inventory quantity adjustments — SKULabs can directly update stock levels in QBO (not recommended for most setups — see below)

What SKULabs can import from QuickBooks (inbound)

  • Listings — QBO product/service items can be imported as listings and linked to SKULabs items

  • Invoices as orders — invoices created in QBO can be imported into SKULabs as orders for fulfillment

What does NOT sync

  • Shipping costs on purchase orders — QBO does not have a standard shipping cost field on POs. If you need to track shipping costs, create a line item called "Shipping Charge" on the PO instead.

  • Changes to orders after they've been pushed — once an order is pushed to QBO as a sales receipt or invoice, it will not be re-pushed. Any edits, cancellations, or refunds must be applied directly in QuickBooks.

  • Changes to purchase orders after they've been pushed — same rule applies. Updates after a PO is synced must be made directly in QBO.

  • Product details (titles, barcodes, costs, SKUs) — SKULabs does not update product information in QBO.

Step-by-step setup

Step 1: Prepare QuickBooks

  1. In QuickBooks, go to Account & Settings > Sales and click Edit next to "Sales form content." Enable Shipping and save. This allows SKULabs to include shipping charges on sales receipts and invoices.

  2. In QuickBooks, go to Taxes and click Set up sales tax. Sales tax must be configured in QBO before SKULabs can push orders with tax correctly.

  3. Make sure all products you want to push from SKULabs already exist in QuickBooks, or be aware that SKULabs will create them automatically using the default accounts you configure (see Step 3).

Step 2: Connect QuickBooks to SKULabs

  1. In SKULabs, go to Settings > Stores and click Connect new sales channel.

  2. Select QuickBooks from the list of available channels.

  3. On the Connect QuickBooks page, give your store a Name (e.g. "QuickBooks").

  4. Choose your Initial stock take option:

    • Manual (Do not automatically import) — SKULabs will not import any stock quantities from QBO. Choose this if you want full control over inventory.

    • Import into existing warehouse — SKULabs will import current QBO stock levels into one of your existing warehouses. Select the warehouse from the dropdown.

    • Import as new warehouse — SKULabs will create a new warehouse and import QBO stock levels into it.

  5. Click Connect to QuickBooks to authorize the connection. You'll be redirected to sign in to QuickBooks and approve access.

  6. Once authorized, click Save & Continue.

Step 3: Configure accounting settings

Go to Settings > Advanced > Accounting to open the QuickBooks Online Sync Setting page. If QuickBooks is not yet connected, you'll see a "No QuickBooks Online store found" message — click the Connect QuickBooks Online button in the top right to connect first, then return to this page.

Once QuickBooks is connected, assign the following accounts from your QuickBooks chart of accounts:

  • Accounts payable — used as the payable account for purchase orders pushed to QBO

  • Inventory assets — used as the asset account when SKULabs creates items in QBO

  • Product sales income — used as the income account for items on sales receipts and invoices

  • Cost of goods sold expense — used as the expense account for items pushed to QBO

  • Sales tax code — optional; defaults to "TAX" if left blank

Once your accounts are assigned, enable the sync toggles you want to use — Sync orders, Sync purchase orders, or both — then click Save.

Tip: These are default accounts used when SKULabs needs to auto-create a product in QBO. If you want specific items to use different accounts, create those items directly in QuickBooks first with the correct accounts assigned. SKULabs will find and use the existing item rather than creating a new one.

Syncing orders to QuickBooks

SKULabs can push orders to QBO as sales receipts (for paid orders) or invoices (for orders billed later). By default, all orders are pushed as sales receipts when order sync is enabled.

Enabling order sync

  1. Go to Settings > Advanced > Accounting and assign the required accounts (see Step 3 above).

  2. Enable the Sync orders toggle and click Save.

Controlling which orders push as sales receipts vs invoices

Use shipping rules to route different orders to different QBO document types.

  1. Go to Settings > Shipping > Rules and click Add rule.

  2. Give the rule a Name (e.g. "QBO Sales Receipt").

  3. Click the + button under Filters and select your filter criteria from the dropdown — for example, Store name, SKULabs order status, or Payment status — to control which orders this rule applies to.

  4. Click the + button under Actions and select Create sales receipt (accounting) or Create invoice (accounting) from the dropdown.

  5. Click Save.

  6. Create a second rule for the other document type, using filters that don't overlap with the first rule.

Post-shipment invoicing: If you bill after shipping, use SKULabs order status as your filter and set the value to Shipped on your invoice rule, so SKULabs only pushes after the order has been fulfilled.

How often do orders sync?

Sales receipts and invoices sync to QBO every 30 minutes on average after they are created or imported into SKULabs. Orders that fail to push will automatically retry for up to 30 days from the order creation date.

Syncing purchase orders to QuickBooks

SKULabs can push closed purchase orders to QBO within the last 120 days. You can also enable syncing of processing (open) POs.

Enabling PO sync

  1. Go to Settings > Advanced > Accounting.

  2. Assign the Accounts payable, Inventory assets, Product sales income, and Cost of goods sold accounts.

  3. Enable Sync purchase orders and click Save.

Optional PO sync settings

  • Include processing purchase orders — When enabled, open POs (not just closed ones) created within the last 120 days are also pushed to QBO.

  • Create Bill for closed purchase orders — When enabled, SKULabs creates a Bill in QBO when pushing a closed PO. This automatically closes the PO in QBO, increments quantity on hand, and updates your inventory asset and accounts payable balances.

Shipping costs on POs: SKULabs does not sync the shipping amount field on a PO to QuickBooks — QBO does not have a standard shipping cost field on purchase orders. To track shipping costs, add a line item (e.g. "Shipping Charge") to the PO instead.

Managing listings and items

How SKULabs handles items it doesn't find in QuickBooks

When SKULabs pushes a PO, sales receipt, or invoice that contains an item that doesn't exist in QBO, it will automatically create that item in QBO using your default accounts. The item is backdated to allow inclusion in the transaction, and created with 0 on-hand quantity to avoid backfilling historical transactions.

To prevent unwanted auto-creation, create items directly in QuickBooks first — especially if you need them assigned to specific non-default accounts.

QuickBooks listings appearing in SKULabs

When QuickBooks is connected as a store, its product/service items are imported as listings. SKULabs is configured to either:

  • Link-only mode — QBO listings are only linked to existing SKULabs items if the SKU matches. No new items are created from QBO listings. This is the recommended setting for most businesses that already manage their catalog in Shopify or another channel.

  • Import mode — QBO listings can create new items in SKULabs. Use with caution if you have duplicate or legacy SKUs in QBO.

New items not appearing from Shopify after connecting QBO? This is a common issue. When QBO runs a listings sync before Shopify, a QBO listing can claim the item slot before the Shopify listing arrives. If items from Shopify aren't appearing in SKULabs after connecting QBO, run a listings sync using the Import all listings option rather than the standard sync. This performs a deeper crawl that catches items that may have been missed.

Using different SKUs in QuickBooks and SKULabs

You can use different SKUs in QBO and SKULabs. Link the QBO listing to the correct SKULabs item manually, and SKULabs will use the QBO SKU when communicating with QuickBooks.

Inventory sync to QuickBooks

SKULabs can directly push inventory quantity updates to QBO through stock sync. This is not recommended for most setups and should only be enabled if SKULabs is your single master of inventory and you understand the limitations:

  • QuickBooks does not log adjustment reasons for inventory changes made via the API.

  • QBO defaults all inventory adjustments to the Inventory Shrinkage account.

  • Once enabled, all inventory changes in SKULabs will overwrite QBO quantities.

If you want to sync inventory to QBO, go to Settings > Stock Sync, find your QuickBooks store, and enable stock sync with the appropriate warehouses linked.

Multi-currency

If you create POs or receive orders in multiple currencies, you can enable multi-currency sync. Warning: once you turn on multi-currency in QuickBooks, you cannot turn it off. Only enable this if you need it.

  1. Enable multi-currency in QuickBooks settings.

  2. In SKULabs, go to Settings > Advanced > Accounting and enable Sync currency code.

  3. Assign currency codes to all suppliers in SKULabs.

  4. Ensure all vendors in QBO also have currency codes assigned.

  5. Make sure vendor/supplier names match exactly between QBO and SKULabs so SKULabs can find existing vendors instead of creating duplicates.

Common issues and fixes

The accounting settings page shows "No QuickBooks Online store found"

This means QuickBooks has not yet been connected to SKULabs, or the connection was removed. Go to Settings > Advanced > Accounting and click Connect QuickBooks Online in the top right corner to start the connection flow. Alternatively, go to Settings > Stores > Connect new sales channel and select QuickBooks.

Missing credential error on accounting settings page

Error: SKULabs Internal Error: Missing private credential... quickbooks_credentials

This means your QuickBooks OAuth connection has expired or been revoked. To fix it, go to Settings > View all store settings, find your QuickBooks store, click the pencil icon, and reconnect by clicking Connect to QuickBooks and going through the authorization flow again. After reconnecting, reload the accounting settings page — the account dropdowns should now be populated.

Accounting settings dropdowns are blank after connecting

If the account dropdowns on the accounting settings page are empty after connecting, it usually means the connection wasn't fully authorized, or you're on the wrong QuickBooks plan. Make sure you're on QuickBooks Online Plus or Advanced. If the plan is correct, disconnect and reconnect by going back through the Connect to QuickBooks flow, then reload the page.

Shipping cost on PO not syncing to QuickBooks

QuickBooks does not have a standard shipping cost field on purchase orders, so there is no field for SKULabs to map to. To track shipping costs on a PO in QBO, add a separate line item (e.g. a non-inventory service item called "Shipping Charge") to the PO. SKULabs will include it as a line item when the PO is pushed.

Orders are pushed as sales receipts but should be invoices (or vice versa)

This is controlled by shipping rules. Go to Settings > Shipping > Rules and check which rules have the "Create sales receipt (accounting)" or "Create invoice (accounting)" actions. Make sure the filters on each rule are specific enough to avoid overlap.

Items from Shopify not appearing in SKULabs after connecting QuickBooks

When QuickBooks runs a listings sync first, it may create placeholder listings that prevent Shopify items from being properly linked. To fix this, run a full listings sync using the Import all listings option on your Shopify store.

Archived or old items appearing in QuickBooks from SKULabs

If you have archived or legacy items in SKULabs that are still linked to QBO listings, those items may be included when POs or orders are pushed. Review your linked listings in SKULabs and unlink any items you no longer want to sync to QBO.

Orders from QuickBooks not appearing in SKULabs

QBO invoices are only imported into SKULabs as orders if they were created within your store's maximum order days setting. Check this in Settings > View all store settings > (pencil icon on your QBO store) and increase it if needed. Also make sure orders sync is enabled for the QBO store.

Frequently asked questions

Do I need to run a listings sync before orders can push to QBO?

No — only stock sync requires imported listings. Sales receipts, invoices, and POs can push to QBO without running listings sync first. SKULabs will auto-create any items in QBO that don't exist yet.

Can I push orders from a manual store or multiple channels to QBO?

Yes. All orders in SKULabs — including manual store orders and orders from any connected sales channel — can be pushed to QBO as sales receipts or invoices.

Can I connect multiple QuickBooks accounts?

Inbound sync (importing QBO listings and orders into SKULabs) supports multiple QBO accounts. Outbound sync (pushing from SKULabs to QBO) only supports one QBO account at a time. If you have multiple QBO company accounts, each should be treated as a separate connection.

Will SKULabs re-push an order if I edit it after it's been synced?

No. Once an order is pushed to QBO, it won't be re-pushed regardless of changes made in SKULabs. Apply any edits, cancellations, or refunds directly in QuickBooks.

How do I assign different QBO accounts to different items?

Create the items directly in QuickBooks with the correct Income, Expense, and Asset accounts assigned before they are included in any transactions. When SKULabs needs to push a transaction containing that item, it will find the existing item in QBO and use its pre-configured accounts instead of the defaults.

Does SKULabs update cost of goods sold in QuickBooks?

Not directly. SKULabs provides inputs to QBO (purchase orders, sales receipts, invoices) and QuickBooks calculates COGS on its side. SKULabs does not have control over how QBO processes those inputs.

Related articles

Did this answer your question?