QuickBooks Power BI Connector: Step-by-Step Setup Guide (2026)

Microsoft retired the native Power Query QuickBooks Online connector in August 2025 — scheduled refreshes stopped and authentication broke. This guide covers the reliable replacement: syncing QuickBooks data to a SQL database with SyncTools and connecting Power BI via its native SQL connector.

Microsoft’s Power Query QuickBooks Online connector was the standard way to pull QuickBooks data into Power BI for years — until August 2025, when Microsoft retired it without a native replacement. Authentication broke. Scheduled refreshes stopped. Finance teams who had built their reporting stack on this connector found their Power BI dashboards showing stale data with no straightforward fix from either Microsoft or Intuit.

This guide covers the reliable replacement: syncing QuickBooks data to a SQL database with SyncTools, and connecting Power BI to that database via its native SQL connector — no deprecated Power Query connector, no fragile OAuth sessions, and no gateway required for cloud-hosted databases.

Finance team reviewing QuickBooks financial data in Power BI

TL;DR: SyncTools syncs QuickBooks Online records to a PostgreSQL, MySQL, SQL Server, or Azure SQL database on an automated schedule. Power BI Desktop connects to that database via its native SQL connector. Power BI Service refreshes on schedule against cloud-hosted databases without a gateway. No deprecated Power Query connector required. Flat $50/month, unlimited rows.

Related: QuickBooks Power BI Connector landing page — architecture overview, supported entities, and pricing.

Why the Deprecated Power Query Connector Was Not a Long-Term Solution

The native Power Query QuickBooks Online connector had structural problems before Microsoft retired it in August 2025.

OAuth session fragility. The connector relied on a user-level OAuth session, not a service account. When the OAuth token expired — typically every 90–180 days — scheduled refresh silently failed. Finance teams discovered the issue when someone noticed the dashboard hadn’t updated in weeks. Refreshing the token required a user to manually re-authenticate through a browser on the machine running Power BI Desktop, which was not viable for unattended scheduled refresh in the cloud.

No Direct Query. The connector imported data at refresh time with no Direct Query support. On QuickBooks accounts with years of transaction history, the initial import was slow and memory-intensive. Every scheduled refresh re-imported the full dataset rather than pulling only new and changed records — increasing both refresh time and Power BI capacity consumption.

Power BI Service limitations. Power Query’s QuickBooks connector could only refresh through an on-premises gateway — it could not reach the QuickBooks API directly from Power BI Service. For cloud-first teams expecting a gateway-free setup, this was an unexpected infrastructure dependency.

The retirement problem. All of these issues became permanent on the August 2025 deprecation date. Microsoft removed the connector from Power BI Desktop. Existing reports pointing to it stopped refreshing. Intuit did not provide an alternative native connector. Teams were left without an official path.

The database sync approach avoids all of this. SyncTools uses the Intuit QuickBooks API directly to pull data into your database. Power BI reads from the database with no OAuth session maintenance, no live API calls at refresh time, and no gateway required for cloud-hosted databases.

What QuickBooks Data Syncs to Your Database

SyncTools structures QuickBooks Online data into query-ready SQL tables with header and line-item detail. You do not receive raw API responses — you get normalised relational tables ready to use in Power BI.

QuickBooks EntitySQL TablesPower BI Use Case
Invoicesinvoices, invoice_linesAR aging, revenue by customer and product
Billsbills, bill_linesAP aging, spend by vendor and category
CustomerscustomersCustomer dimension for sales and AR reporting
VendorsvendorsVendor dimension for AP and spend reporting
Items / ProductsitemsProduct dimension for revenue and margin reporting
Chart of AccountsaccountsAccount dimension for P&L and balance sheet
Payments ReceivedpaymentsCash receipts, AR clearance
Vendor Paymentsvendor_paymentsAP clearance, cash disbursements
Depositsdeposits, deposit_linesBank deposits, undeposited funds
Journal Entriesjournal_entries, journal_entry_linesManual adjustments, trial balance
Bank Transactionsbank_transactionsBank feed reconciliation

Line-item detail is included. Invoice lines, bill lines, deposit lines, and journal entry lines sync with their parent transaction — giving you row-level reporting on quantity, unit price, account code, class, and location across every QuickBooks transaction.

QuickBooks classes and locations sync as dimension columns. Class and location are included as columns on transaction tables, enabling segment-level P&L reporting in Power BI without custom DAX workarounds.

Step 1: Connect QuickBooks Online to SyncTools and Configure Your Sync

Sign up at synctools.io and select QuickBooks Online as your source. Authorization uses the standard Intuit OAuth 2.0 flow — SyncTools requests read-only access to your QuickBooks account. No developer app registration, no QuickBooks Advanced upgrade, no administrator credentials required beyond the QuickBooks owner or admin authorizing the connection.

In the SyncTools dashboard, configure:

  • Which entities to sync: For Power BI financial reporting, the recommended minimum set is Invoices + lines, Bills + lines, Customers, Vendors, Items, Accounts, and Payments.
  • Historical date range: Set how far back to sync on the initial run. SyncTools performs a full historical sync first, then switches to incremental updates that pull only new and changed records.
  • Sync schedule: Hourly sync keeps dashboards current throughout the business day. Daily sync is sufficient for end-of-day or next-morning reporting.

The initial sync duration depends on your QuickBooks transaction volume — five years of history with 50,000 transactions typically completes in under 30 minutes.

Step 2: Configure Your Destination Database

SyncTools supports four destination options:

Azure SQL — Recommended for Power BI teams on Microsoft Azure. Power BI Service reaches Azure SQL directly for scheduled refresh without a gateway. Standard Azure SQL at the S1 tier ($30/month) handles typical QuickBooks Power BI workloads.

PostgreSQL — Works with cloud-hosted PostgreSQL (Amazon RDS, Google Cloud SQL, Azure Database for PostgreSQL). Power BI Service reaches cloud PostgreSQL directly for gateway-free scheduled refresh.

SQL Server — On-premises SQL Server requires the standard Power BI on-premises data gateway for cloud-scheduled refresh. The gateway is shared across all SQL datasets, not specific to QuickBooks.

SyncTools-hosted database — Zero infrastructure setup. SyncTools provides a cloud-hosted database with the connection string pre-configured. Power BI connects directly. Best for teams without existing database infrastructure.

SyncTools creates and maintains all table schemas automatically — no DDL to write, no migration scripts to maintain.

Step 3: Connect Power BI Desktop to the Database

Open Power BI Desktop → Get Data. Select the connector matching your database:

  • Azure SQL: Use the Azure SQL Database connector.
  • PostgreSQL: Use the PostgreSQL connector.
  • SQL Server: Use the SQL Server connector.

Enter your server hostname, port, and database name from SyncTools. Load the tables you need. The recommended initial import for QuickBooks financial reporting:

invoices
invoice_lines
bills
bill_lines
customers
vendors
items
accounts
payments
deposits

Build relationships in Power BI’s model view:

  • invoice_lines.invoice_idinvoices.id
  • bill_lines.bill_idbills.id
  • invoices.customer_idcustomers.id
  • bills.vendor_idvendors.id
  • invoice_lines.item_iditems.id
  • invoice_lines.account_idaccounts.id

Common QuickBooks Power BI DAX measures:

  • Total Revenue: SUM(invoices[total_amount])
  • Total AP Spend: SUM(bills[total_amount])
  • Gross Margin %: ([Total Revenue] - [COGS]) / [Total Revenue]
  • AR Aging Bucket: classify open invoices by DATEDIFF between due_date and today

Step 4: Publish to Power BI Service and Schedule Refresh

Publish your report from Power BI Desktop to Power BI Service. In the dataset settings, configure data source credentials for your SQL database.

For Azure SQL and cloud-hosted PostgreSQL: Power BI Service connects directly. Set your refresh schedule under Scheduled refresh — up to 8 refreshes per day on Power BI Pro, up to 48 per day on Premium. No gateway configuration needed.

For on-premises SQL Server: Install the standard Power BI on-premises data gateway on a machine with network access to your SQL Server. Configure the gateway connection in the dataset settings before enabling scheduled refresh.

After the first scheduled refresh, your QuickBooks dashboards in Power BI Service update automatically, pulling the latest records SyncTools has written to the database since the previous run.

Common QuickBooks Power BI Report Structures

Once your QuickBooks data is in a SQL database, Power BI can replicate and extend every standard QuickBooks report:

Income Statement (P&L): Filter accounts on income and expense types. Join invoice_lines and bill_lines to accounts via account code. Pivot by month using the transaction date. Add a class or location slicer for segment reporting.

Balance Sheet: Join journal_entry_lines to accounts, filter on asset, liability, and equity account types. Use CALCULATE with a date filter to pull end-of-period balances.

AR Aging: Join invoices to customers, filter for open status (balance > 0), calculate days outstanding from due_date, and bucket into 0–30, 31–60, 61–90, 90+ day columns.

AP Aging: Same structure as AR aging using bills and vendors.

Revenue by Customer and Product: Join invoice_lines to invoices, customers, and items. Pivot by month. Slice by class, location, or item category.

Cash Flow Summary: Combine payments (inflows) and vendor_payments + deposits (outflows) over time. Group by account to reconcile against bank balances.

Deprecated Power Query Connector vs SyncTools: Side-by-Side

Power Query QuickBooks ConnectorSyncTools
Still functional as of 2026?No — retired August 2025Yes
Requires OAuth re-authentication?Yes — manual, every 90–180 daysNo — service-level auth
Queries live QuickBooks API at refresh?YesNo — queries your database
Gateway required for Power BI Service?Yes — on-premises onlyNo (for cloud databases)
Line-item detail on invoices and bills?PartialYes
Works with Tableau, Metabase, Looker?NoYes — any SQL tool
PriceFree (now retired)$50/month flat, unlimited rows

The database sync approach gives you a more reliable, more capable replacement for the retired connector.


Get Started

Start a free SyncTools trial → — no credit card required, setup in under 15 minutes.

Also using Xero, Sage, MYOB, or NetSuite alongside QuickBooks? SyncTools can sync multiple accounting systems into the same database, giving you a consolidated reporting layer across your entire accounting stack.

Related reading:

Ready to automate your accounting?

Connect Shopify, WooCommerce, or Linnworks to QuickBooks, Xero & more. Setup in minutes.

Start Free Trial No credit card required