Integration

Connect Shopify to QuickBooks

Book Shopify sales in QuickBooks Online without exporting a spreadsheet every week. Each paid order becomes a sales receipt with tax and shipping on their own lines, each Shopify Payments payout is reconciled to the bank deposit with fees split out, and refunds are booked as they happen. Every entry is an ordered run you can trace back to the Shopify order.

Shopify to QuickBooks
Direction
prompt on order, daily on payout
Latency
orders/paid
Common trigger
Template, then pick the accounts
Setup

Why teams connect Shopify and QuickBooks

Sales run through Shopify. The books are in QuickBooks. Without an integration, someone exports the Shopify finance summary each month, hand-keys a few journal lines, guesses at the Shopify Payments fee, and the QuickBooks bank balance never matches the statement.

  • Each paid order is booked as a sales receipt with product, shipping, discount, and tax on separate lines, so the revenue and liability accounts are right
  • Shopify Payments payouts are reconciled to a bank deposit whose total matches the bank line, with processing fees on a negative line to a fees account
  • Refunds and partial refunds post as refund receipts against the original order, categorized the same way
  • Every entry is an ordered run log, so a deposit or receipt that looks wrong traces back to the order and the transactions inside the payout

Worked example

The bookkeeping flow most stores turn on first.

Every paid Shopify order booked in QuickBooks as a sales receipt, payout reconciled

Two flows. One on the order, one on the payout, both idempotent.

  1. 1Trigger: Shopify orders/paid webhook, carrying id, name (the "#1001" order number), line_items, total_tax, shipping_lines, total_discounts, and customer.
  2. 2Idempotency: query QuickBooks for a sales receipt whose DocNumber equals the Shopify order name. If one exists, stop.
  3. 3Customer: upsert a QuickBooks customer matched on customer.email, so a repeat buyer is not duplicated.
  4. 4Sales receipt: QuickBooks Create SalesReceipt to Undeposited Funds, one line per line_item to a Sales Income account, plus a shipping line, a discount line, and a tax line mapped to the tax agency.
  5. 5Payout flow: on Shopify Payout settled, list its transactions (charge, refund, fee, adjustment), then Create Deposit to the bank account clearing the matching receipts, with a negative line for total fees to Merchant Fees.
  6. 6Exceptions: a payout transaction type the mapping does not cover, or an order whose tax lines do not sum, is posted to #finance-review with the Shopify link rather than guessed at.

Field mapping

The starting map for the Shopify order to QuickBooks SalesReceipt step.

ShopifyQuickBooks OnlineNotes
order.nameSalesReceipt.DocNumberIdempotency key. Queried before creating. Not order.id, which is not human-legible on the books.
order.customer.emailSalesReceipt.CustomerRefUpsert match key. A guest checkout with no email maps to a single "Shopify Guest" customer.
line_item.price * quantitySalesReceipt.Line.AmountOne sales line per item. Shopify prices are decimal strings; parse, do not divide.
line_item.skuSalesReceipt.Line.ItemRefMapped to a QuickBooks product or service. Unmapped SKUs fall back to a generic "Online Sales" item.
total_shipping_price_setSalesReceipt.Line (Shipping Income)Its own line, not folded into product revenue.
total_discountsSalesReceipt.Line (negative, Discounts given)Negative line so the receipt total matches Shopify's.
tax_lines[].priceSalesReceipt.TxnTaxDetailCurrency gotcha: Shopify sends tax already computed. Map to the QuickBooks tax code, do not let QuickBooks recompute.
order.currencySalesReceipt.CurrencyRefOverride only on a multi-currency company. Must match the deposit bank account currency.
order.processed_atSalesReceipt.TxnDateISO 8601 in Shopify, date only in QuickBooks. Use the store time zone.

What syncs, each direction

  • Paid orders. Each paid order becomes a sales receipt with product, shipping, discount, and tax on separate lines. (Shopify to QuickBooks)
  • Payout deposits. Each Shopify Payments payout is a bank deposit that clears the matching receipts, with fees on a negative line. (Shopify to QuickBooks)
  • Refunds. Full and partial refunds become refund receipts against the original customer and accounts. (Shopify to QuickBooks)
  • Product cost (optional). A QuickBooks item cost change can update the Shopify variant cost so margin reports line up. Off by default. (QuickBooks to Shopify)

Governance and audit

The same controls apply to this sync as to every other Neblex workload.

  • Ordered run log. Every entry is an event log with the Shopify order or payout, the transactions inside it, and the receipt or deposit it created. Replay without re-posting.
  • Review queue. Unmapped SKUs, tax lines that do not sum, and unrecognized payout transaction types queue for a person rather than posting a wrong line.
  • Scoped access. Shopify uses a custom app token scoped to read_orders and read_shopify_payments_payouts. QuickBooks uses an OAuth grant to one company file.
  • Environments. Build against a Shopify development store and a QuickBooks sandbox company, then promote the same flow to production.

Frequently asked questions

Do I get every order, or a daily summary?

Your choice. The default is a sales receipt per order for a full sub-ledger. A summary mode books one journal entry per day from the Shopify payout instead, if that is all your accountant wants.

Will the QuickBooks bank balance match my statement?

Yes. The deposit total equals the Shopify Payments payout that actually arrived, with fees and refunds as negative lines, so it reconciles to the bank line one to one.

How is sales tax handled?

Shopify computes tax at checkout and sends it on the order. The flow maps those amounts to your QuickBooks tax codes and agency without letting QuickBooks recompute, so the two always agree.

What about a redelivered Shopify webhook?

The flow queries QuickBooks for a receipt with the order number before creating one, so a redelivered orders/paid is a no-op.

Is this different from the QuickBooks Connector by Intuit or A2X?

A2X is strong for summarized ecommerce accounting and many teams are happy on it. Neblex fits when you want the per-order detail, the same run log and governance as your other integrations, and the freedom to branch the flow, for example holding high-risk orders for review before they post.

Can it sync inventory or fulfillment?

That is a separate flow and usually belongs between Shopify and an ERP or a 3PL, not the accounting system. See the Shopify to NetSuite page for that pattern.

Connectors on this page

Shopify

Finance & Commerce

Operations
367
Typed outputs
100%
Change triggers
Poll or inbound webhook
Authentication
None

QuickBooks

Accounting

Operations
50
Typed outputs
100%
Change triggers
Poll or inbound webhook
Authentication
OAuth2
See it on your data

Bring one real integration

We will build it with you against your own systems, with the run log open.