Collect QuickBooks bills in Snowflake
Load QuickBooks bills, bill payments and vendors into your own Snowflake account with a custom OWOX connector. The payables side of the books lands as tables, ready to join to purchasing, inventory and ad cost.
QuickBooks Endpoints
26 QuickBooks endpoints you can import. Each lands in its own table in your data warehouse.
A/P Aging Summary report
A/P Aging Summary as of report_date (window end): one row per vendor with aging buckets.
11 fieldsTime seriesA/R Aging Summary report
A/R Aging Summary as of report_date (window end): one row per customer with Current, 1-30, 31-60, 61-90, 91+ and Total columns.
11 fieldsTime seriesAccounts
Chart of accounts, active and inactive.
20 fieldsBalance Sheet report
Balance Sheet as of the run window end (Assets, Liabilities, Equity by account).
12 fieldsTime seriesBill payments
Payments against vendor bills; joins to Bill through Line[].LinkedTxn.
23 fieldsBills
Vendor bills (payables).
25 fieldsCash Flow report
Statement of Cash Flows for the run window.
12 fieldsTime seriesCompany info
One row per company: names, country, fiscal-year start.
15 fieldsCredit memos
Credits issued to customers (reduce receivables; negative revenue in reconciliations).
23 fieldsCustomers
Customers, including inactive ones and sub-customers, with open balance and a flattened billing address.
28 fieldsDeposits
Bank deposits, including the ones that group undeposited customer payments.
21 fieldsGeneral Ledger Detail report
General Ledger: every posting line per account for the run window, with opening balance and totals.
12 fieldsTime seriesInvoice changes (CDC, incl. deletes)
Change data capture for Invoice: every invoice created, updated or deleted since the run window start, full payload, deleted ones with status = Deleted.
9 fieldsTime seriesInvoices
Invoices with header amounts, customer and Line[] as JSON (SalesItemLineDetail.ItemRef, Qty, UnitPrice, Amount).
36 fieldsItems
Products and services with price, purchase cost and the three account links.
25 fieldsJournal entries
Manual and adjusting journal entries; the postings the transaction tables miss.
15 fieldsPayments
Customer payments.
21 fieldsPreferences
One row per company: home currency, multi-currency flag, fiscal-year and tracking settings.
17 fieldsProfit and Loss report
Profit and Loss per run window, one column per month (summarize_column_by=Month), rows nested by account group.
12 fieldsTime seriesPurchases
Expenses paid directly (cash, check, card) without a bill.
26 fieldsRefund receipts
Money refunded to customers.
26 fieldsSales by Customer report
Sales by Customer Summary for the run window.
12 fieldsTime seriesSales receipts
Sales paid at the time of sale (no receivable).
27 fieldsTransfers
Money moved between balance-sheet accounts.
16 fieldsVendor Expenses report
Expenses by Vendor for the run window.
12 fieldsTime seriesVendors
Vendors, including inactive ones, with open payable balance.
19 fields
Why join QuickBooks payables with the rest of your costs
What you owe vendors sits in QuickBooks, what you spend on ads in the ad platforms and what you buy in your own systems. Asking what a product line really costs needs all of it in one warehouse, joined on keys.
- See what is owed to each vendor next to what was paid
- Compare vendor bills with the spend that triggered them
- Close payables from the same tables that feed reporting
Step 1: Connect QuickBooks and pick the fields
Create a Data Mart, choose QuickBooks as the source and authorize QuickBooks Online with OAuth. Add the company (realm) id, open an endpoint and tick only the fields you need.
- Bills carries vendor, dates, amounts, balance and the line array
- A custom connector: the credential and company id are yours
Step 2: Load QuickBooks into Snowflake
Each endpoint becomes its own table, and refresh settings are set in the Data Mart. Run it and the first load lands as a table in a schema of the database you choose in Snowflake. The location is pre-filled from your storage, and you can change it.
- Bills and bill payments each get their own table
- Every run is logged in Run History
Step 3: Get a business-friendly QuickBooks output schema
After the first run you get the output schema: every field with its type and, for key fields, a plain description. Your quality checks can read it too.
- Bill lines stay as JSON and unnest in SQL by their detail type
- txn_date separates the business date from the edit date
Step 4: Keep the QuickBooks tables linked
Vendors, bills and bill payments stay separate tables, joined by vendor_id. Together they become the payables part of one QuickBooks model.
- Bills carry vendor_id; bill payments carry it and name the bills they settle
- Add purchasing and ad tables to the same model
Step 5: Schedule the QuickBooks refresh and backfill history
Set it once. A daily scheduled refresh keeps the payables tables current, and a manual backfill loads earlier periods.
- Daily runs with no pipeline to maintain
- Backfill bills and payments the first time you connect
Step 6: Reuse the same QuickBooks table everywhere
One table feeds your model, , , assistants and scheduled insights in Slack or email.
- Define open payables once
- Every report reads the same table
- 0.41.0Rotating a warehouse key is one change: Storages share reusable Credentials
- 0.41.0Dates from Google Sheets arrive as dates, not text
- 0.41.0Shared SQL logic stays in one place: build a Data Mart on top of another
- 0.41.0Rotating a connector key is one change: Sources share reusable Credentials
- 0.40.0Connecting a plan from Google Sheets takes fewer guesses
Why OWOX for QuickBooks in Snowflake
Vendor bills exported by hand go stale on the day they are made. OWOX keeps payables in Snowflake current and joined to what else you spend.
- You own the data. It lands in your own data warehouse, in tables you control.
- Owed and paid, side by side. Bills and bill payments are separate tables you join on vendor_id.
- Room to grow. 26 endpoints are available, so payables can grow into the full books.
- One place to fix. When QuickBooks's API changes, you publish one new connector version.
You are booked. The invitation is on its way to , with the calendar invite and the meeting link.